带CAN通信控制器的8位微控制器P8XC592
适用于自动和通用工业领域的高性能8位微控制器。它是Philips现有微控制器P8XC552和CAN通信控制器82C200的功能组合
带CAN通信控制器的16位微控制器87C196CA/CB及P51XA-C3
INTEL 82527CAN通信控制器的功能框图
CAN总线收发接口器件82C250
82C250是CAN控制器与物理总线之间的接口,器件可以提供对总线的差动发送和接收功能。82C250的主要特性如下:
与ISO/DIS 11898标准全兼容
高速性(最高可达1Mbps)
具有抗汽车环境下的瞬间干扰,保护总线能力
降低射频干扰的斜率控制
热保护
总线与电源及地之间的短路保护
低电流待机方式
掉电自动关闭输出
可支持多达110个节点相连接
CAN总线收发器82C250的功能框图
对于CAN控制器及带有CAN总线接口的器件,82C250并不是必须使用的器件,因为多数CAN控制器均具有配置灵活的收发接口并允许总线故障,只是驱动能力一般只允许20~30个节点连接在一条总线上。
而82C250支持多达110个节点,并能以1Mbps的速率工作于恶劣电气环境
I/O功能
16条可配置的数字及模拟I/O口线
每条I/O口线均可通过CAN总线单独配置,包括I/O方向,口模式和输入跳变的检测功能
在用作数字输入时,可设置为由输入端变化引起CAN报文自动发送
两个分辨率为10位的准模拟量(分配脉冲调制PDM)输出
具有6路模拟输入通道的10位A/D转换器
两个通用比较器
CAN总线I/O器件82C150
82C150是一种具有CAN总线接口的模拟和数字I/O器件,可用于传感器、执行器接口。主要功能包括: CAN接口功能和I/O功能
CAN接口功能
符合具有严格的位定时的CAN技术规范2.0A和2.0B
全集成内部时钟振荡器(不需要晶振),位速率为20K~125Kbit/s
具有位速率自动检测和校正功能
由4个可编程标识符位,在一个CAN总线系统上最多可连接16个82C150
支持总线故障自动恢复
具有通过CAN总线唤醒功能的睡眠方式
带有CAN总线差分输入比较器和输出驱动器
CAN总线I/O器件82C150的应用
汽车内部网络
SAE J1939
CAN规范只包括了物理层和数据链路层,是一个可以封装在通信控制器集成电路芯片内部的规范。
SAE J1939以CAN为基础,其物理层和数据链路层基本上沿用了CAN规范,并增加了网络层、应用层和网络管理规范。
SAE J1939目前已经发布的规范如下:
J1939/01 卡车、公共汽车控制与通信网络
J1939/12 物理层,250Kbps, 四线双绞线
J1939/13 物理层,诊断连接器
J1939/31 网络层
J1939/71 车辆应用层
J1939/72 虚拟终端应用层
J1939/73 应用层-诊断
J1939/81 J1939网络管理协议
通信参考模型比较
J1939的物理连接与网络拓扑
总线由CAN-H、CAN-L、 CAN-SHLD导线组成;CAN-H为黄色、CAN-L为绿色。
网段由屏蔽双绞线对组成,允许用分枝短线将每个ECU连接到总线上,不要求每个ECU直接接近总线。
网段上的ECU数量
SAE J1939汽车内部网络是将许多电控单元ECU连接成的网络的物理实现。ECU的数量受到总线上负荷的限制。根据现有规范对电气参数的规定,在一个给定的网段上,ECU的最大数量被限制为30
网段以250 Kbps 的数据传输速率运行,
为防止信号反射,使网段运行对电子信号的影响最小,在总线的每个终端都应连接终端电阻
每个部件均有终端电阻(120 ),终端电阻采用支架安装,以便调整。同时,终端电阻同网络线之间通过跳线相连,以便灵活搭配。
J1939网络可以由一个或多个网段组成,网段间由网络互连ECU(如网桥)连接。
J1939报文帧的格式与定义
J1939为采用CAN 2.0B扩展帧格式。
J1939 29位ID的位定义图
SAE J1993进一步定义了CAN数据帧仲裁域的标识位
SAE J1993报文帧包含一个单一的协议数据单元PDU
PDU包括7个预定的域
优先级、保留位、数据页、PDU格式、PDU细节(可以是目标地址、组扩展或专有)、源地址和数据域。
CAN数据帧中的SOF、SRR、IDE、RTR、部分控制域、CRC、ACK和EOF没有包括在PDU内。因为这些部分完全由CAN规范控制,未被SAE J1939修改
J1939中29位ID的位定义图
优先级(P)。
这三位用于总线仲裁时优选发送到总线上的报文。它们被接收器完全屏蔽。报文的优先级设置从最高的0(0002)到最低的7(1112)。
所有面向控制的报文其缺省优先级为3(011)。其它报文、专有报文、请求以及AKC报文的缺省优先级为6(110)。随着参数组号PGN的分配情况和总线通信的变化,允许提高或降低优先级。
保留位(R)。该保留位供SAE将来使用。不能与CAN的保留位混淆。传输时所有的报文应该将SAE保留位设为0。
数据页(DP)。数据页位选择了参数组描述的一个辅助页。在第0页上可获得的所有参数组号的分配完成后,再作对第1页的分配。
PDU格式(PF)。PDU格式域是一个8位域。J1939规定了PDU1和PDU2两种格式。
其值低于240为PDU1格式,其值为240~255为PDU2格式。
PDU1格式允许将参数组发送给一个指定目标或全局目标。
不能选用PDU2格式将PGN传送给特定目标。
PDU细节(PS)--这也是一个8位的域,它的定义取决于PDU格式(PF)域的内容。当PDU格式(PF)域的值低于240,则PDU细节域表示的是一个目的地址;当PF域的值是240~255时,则PDU细节域表示的是一个组扩展(GE)值
源地址SA域,共8位。网络中仅容许一个设备对应给定的源地址 ,应防止地址重复
数据域为 0~8字节的数据。当某参数组的数据字节等于或小于8时,数据域的所有8个字节都可用。推荐使所有参数组号都保留8个数据字节
当需要9~1785个字节来表达某个参数组时,数据通信将由多个CAN数据帧完成。
在某一时刻需要传输的数据字节数小于9时,将在一个单一的将DLC设定为8的CAN数据帧中被发送。
当某一参数组有9个或多于9个数据字节要传输时,则使用"传输协议功能",以启动和关闭多包参数组的通信
J1939 允许在同一网络中使用11位ID的设备
ECU的设计说明
J1939规范将工作在网络上的ECU分为标准ECU、网络互连ECU、诊断/开发工具几种类型。
标准ECU指用于发动机﹑变速器﹑ABS系统﹑虚拟终端﹑仪表盘等的电控单元。标准ECU不具备修改其他ECU源地址的能力
网络互联ECU---网络互联ECU用于网段互连.它们主要由中继器﹑网桥﹑路由器﹑网关组成
诊断/开发工具用于分析﹑调试﹑开发、监视在网段上的ECU。
ECU的名称
SAE J1939规定,每个 ECU将至少有一个名称和一个与之关联的地址。
一个电控单元ECU中可能有多个名称与多个地址共存。容许多个作相同工作的ECU在同一网络上共存,但要为每个ECU命名独特的名称。
名称可以用ECU的功能来表示 ,例如,1#发动机号﹑2#发动机号﹑1#变速器﹑ABS系统等。通过名称指明在网络上可以找到的任何功能
ECU的首选地址
为了方便于网络初始化过程,通常使用的设备都有一个由委员会指派的首选地址。采用首选地址可以避免多个设备企图在网络上宣称相同的地址
运用一个在上电之后分配地址的专门程序来解决可能发生的冲突。
每个ECU都必须有能力宣布它想要采用的地址,这是地址宣称特征。
在J1939网络上运行的ECU都应该有一个可用的首选地址。
首选地址的分配从0开始, 0 to 127 分配给在工业组0中最常用的ECU;128 to 247 留给行业特定分配;248 to 253 留给特殊的ECUs;
ECU的地址号不能超过254。 254 为空地址;255 为全局地址。ECU不能宣称空地址和全局地址。
一个ECU可以要求有多个地址,以区别要发生的作用
ECU的能力类型
1)自组态ECU (Self-Configurable ECUs)。自组态ECU有能力动态地计算并宣称一个网络上未用过的地址。大多数的服务工具和网桥都应该有这个能力。
2)命令组态ECU(Command Configurable ECUs)。命令组态ECU可以命令另一个ECU采用一个给定的地址。网络互连ECU,如桥,或服务工具可以是命令组态ECU。接收该地址的ECU则应发布一个地址宣称报文来确认收到了这个新命令的地址。即使在一个节点已经宣称了一个合法的地址的情况下,也可以命令ECU接受一个新地址
ECU的能力类型(续)
3)维护性可组态ECU( Service Configurable ECUs)。可由维护者修改其地址的ECU,通常指采用DIP开关方式或服务工具可改变其地址的ECU。当采用 "commanded address" 报文时,它的选项不同于命令组态。
4)不可组态ECU( Non-Configurable ECUs)。这些ECUs既不能自组态,也不能接受其它节点对它的命令组态。如果它们在宣称地址中失败,将不得不终止通信。
ECU的通信方式
ECU作为J1939网段上节点,有三种通信方式
有明确目的地址(包括采用全局目的地址255)的通信方式
采用PDU2格式的广播通信方式。其PF值为240-255,报文从单一或多个源节点传到多个目的地。
既采用PDU1也采用PDU2格式的专有通信方式
ECU的处理能力
250 Kbps 的数据传输速率意味着每个数据位占400 S, 一个包含有8个字节数据域的典型报文,其长度是128位(不包括填充位),大约占0.5 ms。而数据域为0个字节的最短的报文有64位长。这意味着网段上每250微秒可能会出现一个新的报文。
作为接收节点的ECU,其处理器应该一直能处理(或缓存)多个紧接着的报文。这就要求ECU有一定的RAM空间以及存储转换的处理时间。要求不能因ECU硬件或软件的设计限制而导致报文丢失
应用数据的格式约定
为了使应用数据的收发双方能正确理解数据意义,应该对数据域内应用数据的格式、排列顺序等作出相应规定。
对测量数据,如发动机转速、扭矩、踏板位置、电压、电流、温度值等,需要分别设置其数据长度、有效范围、分辨率、量程范围、运行范围、所属参数组号、在数据域中的排列位置、出错指示、故障参数号SPN等
对各种开关量,应统一规定表明其正处于正向、反向、闭合、断开、不起作用等状态的状态代码,以及命令开关量处于上述某一状态的控制命令代码。
对发动机、变速器等车辆中常用的ECU,J1939规范中已经对它们的应用数据的格式约定、参数等作出了详细规定,以便不同厂商生产的ECU在同一网络条件下工作时能相互理解数据意义。
由于牵引车要挂接一个或多个拖车,并需要频繁地卸掉和加挂拖车,因而应在牵引车、拖车和拖斗内各自采用单独的网段,由多网段组成的网络来支持系统工作。
当暴露在牵引车和拖车之间的总线发生故障时,牵引车上的J1939主子网段将继续发挥作用,维持系统的正常工作。
在车辆内部网络节点ECU的数量较多时,也需要组成多网段的网络系统。各网段之间采用网桥等网络互连ECU连接。
当网络系统中存在着多个网段时,需要网络管理来协调系统工作。
多网段的车辆内部网络系统