CAN概述
CAN 是Controller Area Network 的缩写,是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商BOSCH公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议,同时在其他领域也有广泛的应用。
(资料来源:http://baike.baidu.com/view/14823.htm)
现场总线
一种工业数据总线,是自动化领域中底层数据通信网络,是指安装在制造或过程区域的现场装置与控制室内的自动装置之间的数字式、串行、多点通信的数据总线。
(资料来源:http://baike.baidu.com/view/15180.htm)
J1939协议
SAE J1939协议是由汽车工程协会(SAE)定义的,主要用于商用车辆,但也用于舰船、轨道机车、农业机械和大型发动机。另外,SAE J1939用作国际标准 NMEA 2000(海事) 和 ISO 11783(农业机械)的基础,因而此协议栈也能用于这些应用。
SAE J1939的功能被分为如下几层:
第一层(物理层)描述在其它事物中与物理媒介的电子接口;
第二层(数据链路层)描述通过基于CAN 2.0B技术规格的CAN的数据通信;
第三层(网络层)主要描述两个网络部分间针对报文传输的网桥的功能,并且只与 J1939网桥实现相关;
第四层(传输层)基本上描述的是针对报文申请模式、确认传输和大数据块的分段传输的各种网络服务;
第七层(应用层)描述实际的数据(参数或带有值域的网络变量、分辨率、物理单元和传输类型)。每个报文
无歧义地对应一个数(参数组数);
由于网络管理可以被当作一个分离的单元,能直达硬件(第一层),因此在这个层模型中,该模块是作为右手边的一个独立的功能块。网络管理基本上包括自动分配或决定节点地址(即插即用原则)。在 SAE J1939中没有定义节点监视,因而必须在应用时通过循环报文实现。
J1939和CAN的关系
根据ISO(国际标准化组织)定义的OSI模型,CAN协议定义了物理层及数据链路层规范,这为不同的汽车厂商制定符合自身需要的应用层协议提供了很大的便利。如果需要建立更加完善的系统,还需要在CAN的基础上选择合适的应用层协议。如CANopen、SAE J1939等。即,J1939是CAN的应用层协议。
IAR System
是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,迄今已有27年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C++编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。