控制器区域网络(CAN)
CAN或控制器局域网是一种两线半双工高速串行网络技术。它主要用于低半径区域内不同设备之间的通信,例如在bob的是什么网站汽车上。CAN协议是一种基于消息优先级的载波侦听多访问冲突检测仲裁协议。CSMA确保每个节点在发送任何消息之前必须等待给定的时间。冲突检测通过根据消息的指定优先级选择消息来确保避免冲突。
它提供从125kbps到1mbps的信令速率。它提供了2048个不同的消息标识符。
它是ISO-11898标准,利用了7层开放系统互连模型。
历史:
1986年由Robert Bosch于1986年由罗伯特博世开发,并于1986年由底特律的汽车工程师协会正式发布。一流的CAN总线于1992年由梅赛德斯奔驰制造。
ISO 11898架构:
分层架构由三层组成
- 应用层:与操作系统或CAN设备的应用程序交互。
- 数据链路层:在发送、接收和验证数据方面,它将实际数据连接到协议。
- 物理层:表示实际的硬件。
标准CAN帧包括以下位:
标准CAN帧包括以下位:
- sof- fr的开始ame。消息从这一点开始。
- 标识符:决定消息的优先级。二进制值越小,优先级越高。是11位。
- rtr.- 远程传输请求。当从另一个节点需要信息时,它是主导的。每个节点接收请求,而是仅该节点与其标识符匹配的节点是所需节点。每个节点也接收响应.z
- ide.—单一身份扩展。如果它占主导地位,则意味着正在传输一个没有扩展的标准CAN标识符。
- R0.- 保留位。
- DLC.-数据长度码。它定义了正在发送的数据的长度。是4位
- 数据—最多支持传输64位的数据。
- 儿童权利公约—循环冗余校验。它包含用于错误检测的上述应用程序数据的校验和(传输的位数)。
- ACK.——承认。它是2位的。如果接收到准确的信息,它就占主导地位。
- EOF.- 框架的结尾。它标志着CAN框架的末尾并禁用位填充。
- ifs.- 帧间空间。它包含控制器将正确接收的帧移动到正确位置所需的时间。
5种不同的消息类型是:
- 数据帧:由任意字段、数据字段、CRC字段和确认字段组成。
- 远程框架:请求从另一个节点传输数据。这里RTR位是隐性的。
- 错误帧:当检测到错误时发送。
- 过载帧:用于提供消息之间的延迟。当节点太忙时发送。
- 有效的框架:如果EOF字段是隐性的,则会有效。否则再次传输消息。
物理层:
班车
它由双线串行链路 - CAN_H和CAN_L相对于彼此的电压电平决定是否发送了1或0。这是差分信令。在每个信号线中流动的电流相等但在方向上相反,导致现场取消效果,这是低噪声发射的关键。这确保了平衡的差分信令,其降低了噪声耦合并允许在电线上进行高速速率。通常,电线是双绞线电缆,总线长度为40米,最多30个节点。它是一种屏蔽或非屏蔽电缆,具有120欧姆的特性阻抗。
可以收发器:
可以努力用雨果普罗瓦的车辆。两根电线罐和CAN1通常由两个晶体管和2.5V电压源决定2.5V。基本上两根电线之间的差异应始终为0.驱动器控制确定施加到罐和CANL线的电压。当两个晶体管都进行导通时,1跨越1的电压降英石晶体管和二极管是1.5V,使罐子线拉动高达3.5V。2的电压降nd晶体管和二极管是1V,使CANL线向下拉到1.5V。二极管用于高压保护。接收器是当两个输入CANH和CANL相同时给出1的鉴别器电路,该输出为1,如果两个输入不同,则输出为0。TXD主导块用于接地故障保护,如果二极管和晶体管过热,则热关断块禁用驱动器控制。
的优点可以:
- 它减少了布线,因为它是一个分布式控制,这确保了提高系统性能。
- 许多CAN芯片厂家提供了与芯片接口的数据链路层和物理层,而软件开发人员所要做的只是开发应用程序编码。
- 它提供了在不同的电气环境下工作的能力,并确保无噪音传输。
- 根据消息的优先级进行传输,消除了网络拥塞,使整个网络满足时间限制。
- 它提供了无错误传输,因为每个节点都可以在消息传输过程中检查错误并发送错误帧。
可以工作的例子:
控制器区域网络在工业和车辆中具有广泛的应用。其中一个主要应用程序参与了车辆中不同设备之间的通信。bob的是什么网站另一个可以在不同的微控制器中,假设用于检测密码,用于满足使用密码打开锁定门的任何要求,也可以使用灯泡等。
基本应用程序由3个微控制器组成,它们之间使用CAN网络中的两根线进行通信。1英石微控制器与键盘接口,2nd使用LCD,第三个具有蜂鸣器和操作灯的继电器。在键盘中输入密码时,2nd微控制器作为一个接收器,从1中逐位接收发送的信息英石发送并在LCD上显示信息。当整个消息被传送时,2nd微控制器进行验证,如果密码错误,它会向3发送信号rd.微控制器,它依次发送蜂鸣器打开与此信号。当密码正确时,3rd.微控制器在继电器上切换,又在灯泡上开关。
你好先生
您的项目基于CAN协议非常适合对我的理解
因为我正在与同一项目一起工作,但如果您可以提供代码,我会面临一些问题。