CAN做为应用比较广泛的通信总线,受到了越来越多的客户喜欢和青睐,广泛应用于工业和汽车,常见的高层协议有CANopen,J1939,DeviceNet等,在公众号曾经分享过超过15篇有关CAN的高层协议J1939的有关内容,今天起我们将连续分6次推文来详细介绍CAN的高层协议J1939的基础和应用以及开发,应该算是比较全面系统的介绍,希望对大家有帮助,如果对你有帮助,欢迎关注嵌入式程序猿公众号。今天我们来看第二部分数据链路层的上半部分,数据链路层比较重要,内容也比较多,分为上下两部分来讲。
SAE J1939通信是基于CAN通信的一种高层协议,广泛应用于商用车,各种卡车,重型建筑车辆,发电机组,农业机械,森林防火车辆,以及特种车辆,现在也被广泛应用移植于工业控制。现在也广泛应用于新能源。
SAEJ1939 协议是由汽车工程协会(SAE)定义的,基于传输可靠性能优越的CAN-bus总线,常用250Kbps,500Kbps的通讯速率。在协议中,报文内容本身做了精确的定义, SAE J1939 协议由美国SAE( Society of AutomotiveEngineers)组织维护和推广。
今天我们来看数据链路层的第二部分,主要搞懂以下问题
如果一个节点不能处理其它的会话通信,就应该拒绝其它节点的建立连接要求
网络上的每个节点每次可以发起一个给定目标地址的指定目标地址连接传送。
在一个指定时刻,一个发送者只能发送一个多包 BAM 消息
响应者必须能识别来自多个不同发送者的多包消息,接收时不能搞混。
一个节点必须能够支持同时来自于同一个源地址的一个 RTS/CTS 会话和一个 BAM 会话发送者和响应者分别有自己的传输和接收时间要求。