目录
七、与CAN总线相关的标准
1、ISO 11898,ISO16845
2、SAE J1939,ISO 11783,NMEA 2000,CANopen
3、ISO15765/ISO14229
4、ISO 17356/OSEK
5、CCP(CAN Calibration Protocol)
6、GMLAN,VWTP,FNOS,DCNet,MCNet
八、CAN总线的特点
九、CAN总线基本概念
七、与CAN总线相关的标准
1、ISO 11898,ISO16845
一种标准化的**控制器局域网(CAN)**协议,用于实时数据通信和控制。 它提供了一种可靠的、实时的、多主机的、广播型的数据传输机制,并定义了CAN总线的物理层和数据链路层,支持在总线上发送多个优先级的消息,并提供了诊断和测试功能,以实现高效的数据通信和控制。
ISO 16845-1:2004提供了用于检查CAN是否符合ISO 11898-1规定所必需的方法和简要测试包。
ISO 16845-2:2014设立测试案例和测试要求,验证具有选择性唤醒功能的CAN收发器是否符合指定的功能。ISO 16845-2:2014中定义的测试类型称为一致性测试。
2、SAE J1939,ISO 11783,NMEA 2000,CANopen
SAE J1939(以下简称J1939)是美国汽车工程协会(SAE)的推荐标准,用于为中重型道路车辆上电子部件间的通讯提供标准的体系结构。J1939基于德国Bosch公司(Robert Bosch GmbH)开发的控制器局域网络(CAN:Controller Area Network),可达到250Kbps的通讯速率。它描述了重型车辆现场总线的一种网络应用,包括CAN网络物理层定义、数据链路层定义、应用层定义、网络层定义、故障诊断和网络管理。在SAE J1939协议中,不仅仅指定了传输类型、报文结构及其分段、流量检查等,而且报文内容本身也做了精确的定义。J1939是在商用车辆、舰船、轨道机车、农业机械和大型发动机中应用最广泛的应用层协议。
ISO 11783-1 是指农业和林业机械控制系统的数据总线(CAN)标准。该标准定义了用于在农业和林业机械之间传输信息的协议和数据格式。标准的完整文本和相关技术信息,包括 CAN 总线协议的细节、数据格式和命令,以及可以实现该标准的硬件和软件要求等。
NMEA2000协议是基于CAN总线的应用协议,波特率为250kbps,可以实现船舶设备之间的数据传输。速率是NMEA0183的26倍,在未来船舶设备中应用范围越来越广泛。NMEA2000基于CAN2.0B协议,多个设备可以连接在一条总线上,具有容量高,铺设线路成本低等诸多优点。
CANopen是一种架构在控制局域网路(Controller Area Network, CAN)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。CANopen 实现了OSI模型中的网络层以上(包括网络层)的协定。CANopen 标准包括寻址方案、数个小的通讯子协定及由设备子协定所定义的应用层。 CANopen 支持网络管理、设备监控及节点间的通讯,其中包括一个简易的传输层,可处理资料的分段传送及其组合。
3、ISO15765/ISO14229
ISO 15765协议是一种CAN总线上的诊断协议,即我们常说的CANTP层测试那块。其中ISO 15765-1包括物理层和数据链路层,ISO 15765-2对网络层进行说明,ISO 15765-3则是规定到应用层的具体服务。根据ISO 15765-2中的定义,网络层的功能是接收到应用层发送过来的消息流后,根据定义中的分包、位填充和时间控制等步骤,对消息流进行控制传输。流控制输有单帧传输、多帧传输两种类型,根据传输数据的长度进行帧传输方式的选择。
ISO 14229就是我们常说的UDS服务,诊断开发中常说的诊断服务都在该协议中有详细的介绍,从报文格式、应答方式等信息,你能想到的诊断服务相关的内容全都有。不过ISO 14229不仅应用于CAN和CANFD,同样会应用在LIN、DoIP、J1939等常见的车载协议上面,它主要是一个应用层的协议,因此只要存在诊断,几乎都可以用它
4、ISO 17356/OSEK
ISO 17356 即介绍OSEK网络管理,(OSEK Operating System,OSEK OS)、通信规范(OSEK Communication , OSEK COM )、网络管理规范( OSEK Net Management, OSEK NM)和OSEK实现语言(OSEK Implementation Language,OIL)。OSEK具有实时性、可移植性、可扩展性等优点;以及优秀的管理、调度、同步等机制,使车辆上的ECU能够完美的配合起来。
5、CCP(CAN Calibration Protocol)
CCP(CAN校正协议)是一种用于从电子控制单元(ECU)进行数据采集和进行数据校正的协议。CCP协议最常见的应用领域是汽车行业,在汽车行业中CAN被经常用到,而在其它行业中也可以使用CAN。已知的应用领域包括:ECU开发、ECU功能和环境测试系统、内燃机、齿轮箱或气候控制的试验工作台、车辆投产前的测量和校正、汽车行业之外的一般CAN应用。用CAN 2.0B协议的物理层、数据链路层和网络层。支持的功能:读写ECU内存、从ECU进行同步循环数据采集、同时校准和数据采集、处理CAN总线上的多个节点、闪存编程、即插即用、资源保护(数据采集和校准)。
6、GMLAN,VWTP,FNOS,DCNet,MCNet
GMLAN主要是大众使用的一款接近CAN诊断的协议,迄今为止我也仅仅在泛亚的项目上有过使用一次,就再也没用过了,而且也是作为备用通道协议使用,因此对这块的了解不是特别多,希望有精通的大神给点指导,我把这块补充上来。
八、CAN总线的特点
1、多主系统
2、最高速率1Mbit/sec
3、短帧结构(每条报文最多8字节数据)
4、错误检测与处理机制
5、数据校验,帧内应答
6、总线型拓扑结构
7、广播发送
8、基于优先级的总线仲裁机制
九、CAN总线基本概念
1、在CAN总线上传输的数据报文不包含发送节点和接收节点的信息
2、每个报文的内容通过标识符 (ID)识别,标识符在网络中是唯一的
将1、2条放在一起比较好说明一点,CAN总线上的单条报文发送与接收,报文不包含发送方信息和接收方信息,发送方和接收方均通过标识符(ID)来进行识别;即无论是发送方还是接收方,都是以报文ID和内部信号进行信息的交换,因此就要求CAN报文ID在同一个网络中必须是唯一的,否则将会出现不可预知的错误。
3、标识符描述了数据的含义,同时也是决定优先级的主要因素
标识符描述了数据的含义的意思是每一个CAN报文ID都有约定好功能,及数据含义;另外它也决定优先级的主要因素,我们知道CAN总线存在仲裁机制,这也就决定了CAN报文ID越小,它的优先级越高,因此一般重要的报文的ID都是设置的较小,这是为了保证它的数据传输的通畅性。
4、报文可以被所有节点同时接收 (广播)节点可以进行报文过滤
CAN通信是多主基于优先级的总线访问,就是说CAN总线是多主结构,总线上挂在的节点既可以作为发送方也可以作为接收方,当两个节点同时向总线发送报文,就会进行非破坏性的仲裁,谁的优先级高,谁就会获得发送权,优先级低的节点就会进入监听模式;由于CAN总线的报文都是广播发送,所有非发送节点都会接收总线的报文,那么是否使用某条报文该节点就会进行过滤,仅接收自身需要的报文。