CAN总线的概述:
CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO国际标准化的串行通信协议。在当今汽车总线中CAN总线是应用最广泛的通信方式。此外CAN由于其高可靠性和高性能使其在工业自动化,船舶,医疗等领域也得到了广泛应用。
CAN总线的工作原理:
1、CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。CAN与I2C总线的许多细节很类似,但也有一些明显的区别。
2、当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,所有数据均进行了接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。
3、当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。
4、由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。所以在CAN总线中加进一些新站非常便利且无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。
CAN总线的优点:
1、高性能:具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点;
2、抗干扰:采用双线串行通信方式,纠错能力强,可在高噪声多干扰环境中工作;
3、高集成:具有优先权和仲裁功能,可实现多个控制模块通过CAN 控制器集合到CAN-bus 上,从而形成多主机局部网络;
4、可控性:可根据报文的ID决定接收或屏蔽该报文;
5、验证与纠错:可靠的错误处理和检错机制;
6、修复能力:发送的信息遭到破坏后,可自动重发;
7、智能化:节点在错误严重的情况下具有自动退出总线的功能;
8、安全性:报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。
CAN总线缺点:
1、可能出现的数据不一致性;
2、可能出现的不可预估错误;
3、信道堵塞情况。
CAN总线的应用:
1.楼宇自动化,在楼宇自动化中,现代的建筑安装系统(通风、照明、安全、监控)越来越多地建立在CAN总线系统上,通过其现实开关、按钮、传感器、照明设备、其他执行器和多控制系统之间的数据交换,实现建筑中各操作单元之间的协作,并对各单元不断变化的状态实时控制。
2.安全监控,在当前的各种监控系统中,普遍存在可靠性、实时性不高,分站缺乏统一规范等缺点,不能够很好地满足实时监控的要求。CAN总线由于具有高数据传输率、完善的规范和协议、高实时性、安全性、可靠性等,可很好解决上述各种问题。多应用如:水电站高边坡监控系统、大型远程高边坡监控网络、辊道陶瓷窖等监控系统。
3.汽车工业,在汽车工业领域,CAN被设计作为汽车环境中的微控制器通信,在车载各电子控制装置ECU之间进行信息交换,并形成汽车电子控制网络。如:汽车动力系统、制动控制系统、变速箱控制器、仪表、车载网络、电子主干系统中,均嵌入CAN控制装置。其应用使汽车的安全性、舒适性、动力性等性能更智能现代化。现在CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面,CAN总线在当今自动化领域成长迅速、被誉为自动化领域的计算机局域网络。它实现了分布式控制系统对象各节点之间进行实时、可靠的数据通信。
ESP32的CAN通信:
参考网页:https://lingshunlab.com/book/esp32/esp32-use-canbus-tja1051-esp32-arduino-can
TWAI 简介:
1、在ESP32中的外设有TWAI,是可兼容CANBUS控制器。
2、TWAI 是一种适用于汽车和工业应用的实时串行通信协议。它与ISO11898-1经典帧兼容,因此可以支持标准帧格式(11位ID)和扩展帧格式(29位ID)。
3、ESP32 包含 1 个 TWAI 控制器,可配置为通过外部收发器在 TWAI 总线上进行通信。
4、TWAI 是一种多主、多播、异步、串行通信协议。
5、TWAI 还支持错误检测和信令以及内置消息优先级。具体请查看以下官方文档: