当前位置: 首页 > news >正文

安徽长江建设集团有限公司网站淘宝官网电脑版网页

安徽长江建设集团有限公司网站,淘宝官网电脑版网页,WordPress电脑与手机,济南网站建设找凌峰CAN总线通信详解 (超详细配34张高清图) 1. CAN总线历史 CAN 是 Controller Area Network 的缩写#xff08;以下称为 CAN#xff09;#xff0c;是 ISO国际标准化的串行通信协议。 在当前的汽车产业中#xff0c;出于对安全性、舒适性、方便性、低公害、低成本的要求#…CAN总线通信详解 (超详细配34张高清图) 1. CAN总线历史 CAN 是 Controller Area Network 的缩写以下称为 CAN是 ISO国际标准化的串行通信协议。 在当前的汽车产业中出于对安全性、舒适性、方便性、低公害、低成本的要求各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同由多条总线构成的情况很多线束的数量也随之增加。为适应“减少线束的数量”、“通过多个 LAN进行大量数据的高速通信”的需要。 CAN 最初出现在80年代末的汽车工业中由德国 Bosch 公司最先提出。当时由于消费者对于汽车功能的要求越来越多而这些功能的实现大多是基于电子操作的这就使得电子装置之间的通讯越来越复杂同时意味着需要更多的连接信号线。提出 CAN 总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯减少不断增加的信号线。于是他们设计了一个单一的网络总线所有的外围器件可以被挂接在该总线上。1993年CAN 已成为国际标准 ISO11898(高速应用)和 ISO11519低速应用。 CAN 是一种多主方式的串行通讯总线基本设计规范要求有高的位速率高抗电磁干扰性而且能够检测出产生的任何错误。当信号传输距离达到10Km 时CAN 仍可提供高达50Kbit/s 的数据传输速率。由于 CAN 总线具有很高的实时性能现在CAN 的高性能和可靠性已被认同并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。 图 1 是车载网络的构想示意图。CAN 等通信协议的开发使多种 LAN 通过网关进行数据交换得以实现。 2. CAN总线结构 ​ CAN总线网络的结构有闭环和开环两种形式。如下图2所示是闭环结构的CAN总线网络总线两端各连接一个120欧的电阻两根信号线形成回路。这种CAN总线网络由ISO 11898标准定义是高速、短距离的CAN网络通信速率为125kbit/s到1Mbit/s。在1Mbit/s通讯速率时总线长度最长达40m。 图2.闭环结构的CAN总线网络 ​ 下图3是开环结构的CAN总线网络两根信号线独立各自串联一个2.2k欧的电阻。这种CAN总线网络由ISO11519-2标准定义是低速、远距离的CAN网络通信速率最高125kbit/s。在40kbit/s速率时总线最长距离可达1000m。 图3.开环结构的CAN总线网络 ​ CAN总线由两根信号线即图2和图3中的CANH和CANL没有时钟同步信号。所以CAN是一种异步通信方式与UART的异步通信方式类似而SPI、I2C是以时钟信号同步的同步通信方式。 ​ CAN总线的两根信号线通常采用的是双绞线如下图4所示传输的是差分信号通过两根信号线的电压差CANH-CANL来表示总线电平。以差分信号传输信息具有抗干扰能力强能有效抑制外部电磁干扰等优点这也是CAN总线在工业上应用广泛的一个原因。使用差分信号表示总线电平的还有RS485网络也是一种常用的工业现场总线。 图4.双绞线类型 两根信号线的电压差CANH-CANL表示CAN总线的电平与传输的逻辑信号1或0对应。对应于逻辑1的称为隐性Recessive电平对应于逻辑0成为显性Dominant电平。如图5所示上半部分为实际CANH和CANL的电平下半部分对于的逻辑电平。 图5.根据 ISO 11898 的额定总线电平 ​ 对应于逻辑1和逻辑0开环结构和闭环结构CAN网络的CANH和CANL的电压值不一样隐性电平和显性电平的电压值不一样。两种网络结构下的CAN总线信号典型的电压如下表1所示在ISO11898中隐性电平在电压差0附近显性电平主要在电压差2V附近。在ISO11519-2中隐性电平在电压差小于0V显性电平电压差大于2V 表1. ISO11898 和 11519-2 物理层的主要不同点 ​ 如图6所示的CAN总线网络中CAN总线上的一个终端设备称为一个节点Node在CAN网络中没有主设备和从设备的区别。一个CAN节点的硬件部分一般由CAN控制器和CAN收发器两个部分组成。CAN控制器负责CAN总线的逻辑控制实现CAN传输协议CAN收发器主要负责MCU逻辑电平与CAN总线电平之间的转换。 图6.闭环和开环结构 ​ CAN控制器一般是MCU的片上外设例如STM32F407由两个CAN控制器。CAN收发器一般是单独的芯片并且根据CAN总线的结构不同需要使用不同的CAN收发芯片例如STM32F407开发板上使用的CAN收发芯片是TJA1040只能构成闭环网络结构。 3. CAN总线特点 实时性 CAN总线具有优越的实时性能适用于需要及时传输数据的应用如汽车控制系统、工业自动化等。仲裁机制和帧优先级的设计保证了低延迟和可预测性。 多主机系统 CAN支持多主机系统多个节点可以同时发送和接收数据。这种分布式控制结构使得系统更加灵活适用于复杂的嵌入式网络。CAN总线上的节点既可以发送数据又可以接收数据没有主从之分。但是在同一个时刻只能由一个节点发送数据其他节点只能接收数据。 差分信号传输 CAN使用差分信号传输通过两个线路CAN_H和CAN_L之间的电压差来传递信息。这种差分传输方式提供了良好的抗干扰性能使得CAN总线适用于工业环境等有电磁干扰的场合。 仲裁机制 CAN总线采用非破坏性仲裁机制通过比较消息标识符的优先级来决定哪个节点有权继续发送数据。这种机制确保了总线上数据传输的有序性避免了冲突。 广播通信 CAN总线采用广播通信方式即发送的数据帧可以被总线上的所有节点接收。这种特性有助于信息的共享和同步同时减少了系统的复杂性。 低成本 CAN总线的硬件成本相对较低适用于大规模的系统集成。由于CAN控制器在硬件上实现了仲裁机制无需额外的主机处理器减小了成本和复杂性。 灵活性 CAN协议灵活适应不同的应用场景支持不同的波特率和通信速率。这使得CAN总线可以被广泛用于各种嵌入式系统从低速的传感器网络到高速的汽车控制系统。 错误检测和处理 CAN总线具有强大的错误检测和处理机制。通过CRC检查和其他错误检测手段CAN能够识别和处理传输过程中可能发生的错误提高了通信的可靠性。 **多种帧类型**CAN总线上的节点没有地址的概念。CAN总线上的数据是以帧为单位传输的帧又分为数据帧、遥控帧等多种帧类型帧包含需要传输的数据或控制信息。 **线与逻辑**CAN总线具有“线与”的特性也就是当由两个节点同时向总线发送信号时一个是发送显性电平逻辑0另一个发送隐性电平逻辑1则总线呈现为显性电平。这个特性被用于总线总裁也就是哪个节点优先占用总线进行发送操作。 特定标识符每一个帧有一个标识符Identifier一下简称ID。ID不是地址它表示传输数据的类型也可以用于总线仲裁时确定优先级。例如在汽车的CAN总线上假设用于碰撞检测的节点输出数据帧ID为01车内温度检测节点发送数据帧的ID为05等。 **滤波特性**每个CAN节点都接收数据但是可以对接收的帧根据ID进行过滤。只有节点需要的数据才会被接收并进一步处理不需要的数据会被自动舍弃。例如假设安全气囊控制器只接受碰撞检测节点发出的ID为01的帧这种ID的过滤时有硬件完成的以便安全气囊控制器在发送碰撞时能及时响应。 **半双工**CAN总线通信时半双工的即总线不能同时发送和接收。在多个节点竞争总线进行发送时通过ID的优先级进行仲裁竞争胜出的节点继续发送竞争失败的节点立刻转入接收状态。 **无时钟信号**CAN总线没有用于同步的时钟信号所以需要规定CAN总线通信的波特率所以节点都是用同样的波特率进行通信。 4. CAN位时序和波特率 ​ 一个CAN网络需要规定一个通信的波特率各节点都以相同的波特率进行数据通信。位时序指的是一个节点采集CAN总线上的一个为数据的时序位时序如图7所示。通过位时序的控制CAN总线可以进行位同步以吸收节点时钟差异产生的波特率误差保证接收数据的准确性。 图7.位时序 ​ 图7中的标称位事件Nominal Bit TimeNBT指的是传输一个位数据的时间用于确定CNA总线的波特率。这个事件被分成了3段。 同步段SYNC_SEG在这个时间段内总线上应该发送一次位信号的跳变。如果节点在同步段检测到总线上的一个跳变沿就表示节点与总线是同步的。同步段长度固定位1个tq。 tqtime quantum被称为时间片tq由CAN控制器的时钟频率fcan决定。在STM32F407中两个CAN控制器在APB1总线上CAN控制器有预分频器APB1总线的时钟信号PCLK1经分频后得到fcan。 位段1Bit Segment 1BS1定义了采样点的位置。在BS1结束的时间点对总线采样得到的电平就是这个位的电平。BS1的初始长度是1到16个tq但它的长度可以在再同步resynchronization的时候被自动加长以补偿各节点频率差异导致的正相位漂移。 位段2Bit Segment 2BS2定义了发送点的位置。BS2的初始长度是1到8各tq再同步时可以被自动缩短以补偿负相位漂移。 ​ CAN控制器可以自动对位时序进行再同步再同步时自动调整BS1和BS2的长度位段加长或缩短的上线称为再同步跳转宽度resynchronization Jump WidthSJWSJW的取值是1到4个tq。 ​ CAN总线的波特率就由标称位时间长度NBT决定而NBT时位时序3个段的时间长度和即 N B T ( 1 m n ) × t q NBT(1mn)\times t_q NBT(1mn)×tq​ B a u d r a t e 1 N B T Baudrate \frac{1}{NBT} BaudrateNBT1​ 5. CAN总线协议 5.1 OSI模型 CAN 协议如表 2 所示涵盖了 ISO 规定的 OSI 基本参照模型中的传输层、数据链路层及物理层。 表2.ISO/OSI 基本参照模型 CAN 协议中关于 ISO/OSI 基本参照模型中的传输层、数据链路层及物理层具体有哪些定义如图8 所示 数据链路层分为 MAC 子层和 LLC 子层MAC 子层是 CAN 协议的核心部分。数据链路层的功能是将物理层收到的信号组织成有意义的消息并提供传送错误控制等传输控制的流程。具体地说就是消息的帧化、仲裁、应答、错误的检测或报告。数据链路层的功能通常在 CAN 控制器的硬件中执行。 在物理层定义了信号实际的发送方式、位时序、位的编码方式及同步的步骤。但具体地说信号电平、通信速度、采样点、驱动器和总线的电气特性、连接器的形态等均未定义。这些必须由用户根据系统需求自行确定。 5.2 ISO 标准化的 CAN 协议 CAN 协议经 ISO 标准化后有 ISO11898 标准和 ISO11519-2 标准两种。ISO11898 和 ISO11519-2 标准对于数据链路层的定义相同但物理层不同。 (1) 关于 ISO11898 ISO11898 是通信速度为 125kbps-1Mbps 的 CAN 高速通信标准。 目前ISO11898 追加新规约后成为 ISO11898-1 新标准。 (2) 关于 ISO11519 ISO11519 是通信速度为 125kbps 以下的 CAN 低速通信标准。 ISO11519-2 是 ISO11519-1 追加新规约后的版本。 图9 表示 CAN 协议和 ISO11898 及 ISO11519-2 标准的范围。 (3) 物理层的不同点 如图 10 所示ISO11898 和 ISO11519-2 在 CAN 协议中物理层的标准有所不同。CAN 协议的物理层如图 7 所 示定义了三个子层ISO11898 和 ISO11519-2 在物理层中的 PMA 层和 MDI 层有所不同。 在物理层PMA 层、MDI 层ISO11898 和 ISO11519-2 的主要不同点如表 3 所示 5.3 CAN 和标准规格 不仅是 ISOSAE 等其它的组织、团体、企业也对 CAN 协议进行了标准化。 基于 CAN 的各种标准规格如表 4 所示如图 11 所示面向汽车的通信协议以通信速度为准进行了分类。 6. CAN各类型帧详解 6.1 帧的种类 CAN网络通信是通过5中类型的帧Frame进行的 数据帧Data frame遥控帧Remote frame错误帧Error frame过载帧Overload frame帧间空间Inter-frame space 另外数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有 11 个位的标识符Identifier: 以下称 ID扩展格式有 29 个位的 ID。 各种帧的用途如表5所示各种帧的结构如图12-图 表5.帧的类型及用途 帧类型帧用途数据帧Data frame节点发送的包含ID和数据的帧用于发送单元向接收单元传送数据的帧。遥控帧Remote frame节点向网络上的其他节点发出的某个ID的数据请求发送节点收到遥控帧后就可以发送相应ID的数据帧错误帧Error frame节点检测出错误时向其他节点发送的通知错误的帧过载帧Overload frame接收单元未做好接收数据的准备时发送的帧发送节点收到过载帧后可以暂缓发送数据帧帧间空间Inter-frame space用于将数据帧、遥控帧与前后的帧分隔开的帧 数据帧Data frame用于发送单元向接收单元传送数据的帧。 遥控帧Remote frame用于接收单元向具有相同 ID 的发送单元请求数据的帧。 错误帧Error frame用于当检测出错误时向其它单元通知错误的帧。 过载帧Overload frame用于接收单元通知其尚未做好接收准备的帧。 帧间空间Inter-frame space用于将数据帧及遥控帧与前面的帧分离开来的帧 6.2 数据帧 数据帧由 7 个段构成。数据帧的构成如图 17 所示。 帧起始表示数据帧开始的段。仲裁段表示该帧优先级的段。控制段表示数据的字节数及保留位的段。数据段数据的内容可发送 08 个字节的数据。CRC 段检查帧的传输错误的段。ACK 段表示确认正常接收的段。帧结束表示数据帧结束的段。 下面对帧的构成进行说明。 6.2.1 帧起始标准、扩展格式相同 ​ 表示帧开始的段。1 个位的显性位。 6.2.2 仲裁段 表示数据的优先级的段。 标准格式和扩展格式在此的构成有所不同。 6.2.3 控制段 控制段由 6 个位构成表示数据段的字节数。标准格式和扩展格式的构成有所不同。 6.2.4 数据段标准、扩展格式相同 数据段可包含 08 个字节的数据。从 MSB最高位开始输出。 6.2.5 CRC 段标准/扩展格式相同 CRC 段是检查帧传输错误的帧。由 15 个位的 CRC 顺序*1 和 1 个位的 CRC 界定符用于分隔的位构成。 6.2.6 ACK 段 ACK 段Acknowledge Bit用来确认是否正常接收。由 ACK 槽(ACK Slot)和 ACK 界定符 2 个位构成。 6.2.7 帧结束End of FrameEOF 帧结束是表示该该帧的结束的段。由 7 个位的隐性位构成。 6.3 遥控帧 接收单元向发送单元请求发送数据所用的帧。遥控帧由 6 个段组成。遥控帧没有数据帧的数据段。 遥控帧的构成如图 25 所示。 帧起始表示帧开始的段。仲裁段表示该帧优先级的段。控制段表示数据的字节数及保留位的段。CRC 段检查帧的传输错误的段。ACK 段表示确认正常接收的段。帧结束表示遥控帧结束的段。 6.4 错误帧 用于在接收和发送消息时检测出错误通知错误的帧。错误帧由错误标志和错误界定符构成。 错误帧的构成如图 26 所示。 1. 错误标志 错误标志包括主动错误标志和被动错误标志两种。 主动错误标志6 个位的显性位。被动错误标志6 个位的隐性位。 2. 错误界定符 错误界定符由 8 个位的隐性位构成。 6.5 过载帧 过载帧是用于接收单元通知其尚未完成接收准备的帧。过载帧由过载标志和过载界定符构成。 过载帧的构成如图 27 所示。 1. 过载标志 6 个位的显性位。过载标志的构成与主动错误标志的构成相同。 2. 过载界定符 8 个位的隐性位。过载界定符的构成与错误界定符的构成相同。 6.6 帧间隔 帧间隔是用于分隔数据帧和遥控帧的帧。数据帧和遥控帧可通过插入帧间隔将本帧与前面的任何帧数据帧、遥控帧、错误帧、过载帧分开。 过载帧和错误帧前不能插入帧间隔 帧间隔的构成如图 28 所示。 1. 间隔 3 个位的隐性位。 2. 总线空闲 隐性电平无长度限制0 亦可。本状态下可视为总线空闲要发送的单元可开始访问总线。 3. 延迟传送发送暂时停止 8 个位的隐性位。只在处于被动错误状态的单元刚发送一个消息后的帧间隔中包含的段。 7. CAN总线优先级及同步 7.1 优先级的决定 ​ 在总线空闲态最先开始发送消息的单元获得发送权。 ​ 多个单元同时开始发送时各发送单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。 ​ 仲裁的过程如图 29 所示: 前面的单元1和单元电平都一样到后面单元1是隐性电平单元2是显性电平显性优先级更高则单元2的优先级更高获得发送权而单元1则变为接收状态。 7.1.1 数据帧和遥控帧的优先级 具有相同 ID 的数据帧和遥控帧在总线上竞争时仲裁段的最后一位RTR为显性位的数据帧具有优先权可继续发送。 数据帧和遥控帧的仲裁过程如图 30 所示 7.1.2 标准格式和扩展格式的优先级 标准格式 ID 与具有相同 ID 的遥控帧或者扩展格式的数据帧在总线上竞争时标准格式的 RTR 位为显性位的具有优先权可继续发送。 标准格式和扩展格式的仲裁过程如图 31 所示。 7.1.3 优先级法则 ​ 数据帧和遥控帧的仲裁段用于多个节点竞争总线时进行仲裁优先级高的帧获得再总线上发送数据的权利。优先级的确认总结为以下几条法则 在总线空闲时最先开始发送消息的节点获得发送权多个节点同时开始发送时从仲裁段的第一位开始进行仲裁第一次出现各节点的位电平互异时输出显性电平的节点获得发送权相同ID和格式的数据帧和遥控帧数据帧具有更高优先级因为数据中的RTR位时显性电平而遥控帧的RTR位时显性电平对于11位标准ID相同的标志数据帧和扩展数据帧标准数据帧具有更高的优先级因为标志数据帧的IDE位时显性电平而扩展数据帧的IDE位时隐性电平。 7.2 错误的种类 错误共有 5 种。多种错误可能同时发生。 位错误填充错误CRC 错误格式错误ACK 错误 错误的种类、错误的内容、错误检测帧和检测单元如表 6 所示 (1) 位错误 位错误由向总线上输出数据帧、遥控帧、错误帧、过载帧的单元和输出 ACK 的单元、输出错误的单元来检测。 在仲裁段输出隐性电平但检测出显性电平时将被视为仲裁失利而不是位错误。 在仲裁段作为填充位输出隐性电平时但检测出显性电平时将不视为位错误而是填充错误。 发送单元在 ACK 段输出隐性电平但检测到显性电平时将被判断为其它单元的 ACK 应答而非位错误。 输出被动错误标志6 个位隐性位但检测出显性电平时将遵从错误标志的结束条件等待检测出连续相同 6 个位的值显性或隐性并不视为位错误。 (2) 格式错误 即使接收单元检测出 EOF7 个位的隐性位的最后一位第 8 个位为显性电平也不视为格式错误。即使接收单元检测出数据长度码DLC中 9∼15 的值时也不视为格式错误。 7.3 错误帧的输出 检测出满足错误条件的单元输出错误标志通报错误。 处于主动错误状态的单元输出的错误标志为主动错误标志处于被动错误状态的单元输出的错误标志为被动错误标志。 发送单元发送完错误帧后将再次发送数据帧或遥控帧。 错误标志输出时序如表 7 所示。 7.4 位时序 由发送单元在非同步的情况下发送的每秒钟的位数称为位速率。一个位可分为 4 段。 同步段SS传播时间段PTS相位缓冲段 1PBS1相位缓冲段 2PBS2 这些段又由可称为 Time Quantum以下称为 Tq的最小时间单位构成。 1 位分为 4 个段每个段又由若干个 Tq 构成这称为位时序。 1 位由多少个 Tq 构成、每个段又由多少个 Tq 构成等可以任意设定位时序。通过设定位时序多个单元可 同时采样也可任意设定采样点。 各段的作用和 Tq 数如表7 所示。1 个位的构成如图 32 所示。 7.5 取得同步的方法 CAN 协议的通信方法为 NRZNon-Return to Zero方式。各个位的开头或者结尾都没有附加同步信号。发送单元以与位时序同步的方式开始发送数据。另外接收单元根据总线上电平的变化进行同步并进行接收工作。 但是发送单元和接收单元存在的时钟频率误差及传输路径上的电缆、驱动器等相位延迟会引起同步偏差。因此接收单元通过硬件同步或者再同步的方法调整时序进行接收。 8.13 7.6 硬件同步 接收单元在总线空闲状态检测出帧起始时进行的同步调整。在检测出边沿的地方不考虑 SJW 的值而认为是 SS 段。 硬件同步的过程如图 33 所示。 7.7 再同步 在接收过程中检测出总线上的电平变化时进行的同步调整。 每当检测出边沿时根据 SJW 值通过加长 PBS1 段或缩短 PBS2 段以调整同步。但如果发生了超出 SJW 值的误差时最大调整量不能超过 SJW 值。 再同步如图 34 所示。 7.8 调整同步的规则 硬件同步和再同步遵从如下规则。 1 个位中只进行一次同步调整。只有当上次采样点的总线值和边沿后的总线值不同时该边沿才能用于调整同步。在总线空闲且存在隐性电平到显性电平的边沿时则一定要进行硬件同步。在总线非空闲时检测到的隐性电平到显性电平的边沿如果满足条件1和2将进行再同步。但还要 满足下面条件。发送单元观测到自身输出的显性电平有延迟时不进行再同步。发送单元在帧起始到仲裁段有多个单元同时发送的情况下对延迟边沿不进行再同步。 参考文献 [1] CAN入门书瑞萨电子 [2] STM32 Cube 高效开发教程. 王维波等著
http://www.zqtcl.cn/news/548021/

相关文章:

  • 北京旅游外贸网站建设博客集成wordpress
  • 中国最好的建设网站哪些网站教你做系统
  • 自己做网站别人怎么看见网站建设办公
  • 凡科做网站视频网站哪家好
  • 查询网站是否正规营销策略国内外文献综述
  • 做网页用的网站wordpress用户角色权限管理
  • 怎么查网站备案的公司wordpress 无刷新评论
  • 学前心理学课程建设网站百度极速版下载
  • 佛山做营销型网站建设深圳宝安区租房
  • 做汽车团购的网站建设营销方案有哪些
  • 做设计的网站网络公关什么意思
  • 一般课程网站要怎么做做钓鱼网站软件下载
  • 济南网站建设92jzh收不到wordpress的邮件
  • 一键优化在哪里打开新手怎么入行seo
  • 网站建设的费用明细创建公司网站需要注意什么
  • 微网站怎么做的好宣传片拍摄服务
  • 抚州网站开发机构wordpress开源
  • 企业营销网站建设不属于网页制作工具
  • 呼和浩特网站建设信息建服装类网站需要考虑的因素
  • 百度站长平台工具南京开发app的公司
  • 济南如何挑选网站建设公司设计 网站 现状
  • 网站开发建设流程图wordpress 插件 简码
  • 信宜网站开发公司阿里指数app下载
  • AAP网站开发需要多少钱网站核验通知书
  • 网站续费模板wordpress安装到ESC
  • 网站网址大全做商品条形码的网站
  • php购物网站开发成品各大网站收录提交入口
  • 怎么办个人网站网络管理系统中故障管理的目标是
  • 想做网站的客户在哪找下载网站系统源码
  • 网站建设是固定资产还是列费用soho做网站