CAN总线在汽车车身控制中的应用
时间:07-30
来源:作者:戴西槐 朱建新
点击:
2. 帧格式仲裁场和控制场定义
仲裁场由29位标识符ID28-ID0以及SRR、IDE和RTR组成,SJA1000中的寄存器17-21用来存放扩展帧格式帧信息的标识符。发送时,SRR=1,IDE=1,RTR=1/0(远程帧/数据帧)。标识符中的ID28-ID25为车身控制模块交换报文的帧类型(共4位)。 ID24-ID19为车身控制模块中帧信息使用者的地址(或称为目的地址,共6位)。ID18-ID13为车身控制模块中帧信息发送者的地址或称为源地址(共6位)。ID12-ID5为车身控制模块中交换的命令、状态、数据或报告属性(共8位),ID4位需附加命令或状态、数据、报告属性时的分段标志。 ID3-ID0为附加命令或状态、数据、报告属性的分段号(共4位)。当ID4=0时,ID3-ID0控制场、数据寄存器0-7有效。对于远程帧,则可忽略ID4-ID0以及控制场的值。SJA1000的寄存器16低四位DLC3-DLC0可构成控制场,以决定数据帧的数据长度。
3. 车身控制模块CAN2.0B通讯报文约定
按车身控制模块的节点要求,通讯的信息帧分为表1所列的6种,表1中的优先级按序号从高到低排列。其目的地址和源地址的分配见表2所列。
表1 车身控制模块帧模型
表2 车身控制模块各节点地址分配
其工作方式如下:
(1)开机后或唤醒时,从节点向主节点发送状态信息,主节点发送广播信息远程帧(两次),广播信息为共用信息,包括车速信号,档位信号,点火开关位置信号等。
(2)正常情况下,从节点内部巡查各端口状态,如有故障则向主节点发送故障代码3次,主节点收到三次故障报警后开始响应,从节点停止发送,一旦故障消失,再向主节点发送正常信息。在主节点中应有一故障表,以用于已诊断模块的通讯。
(3)主结点分别发送自检信息后,如各从节点正常,则发送正常信息,状态和数据帧。如有故障,则通过分段数据帧发送故障报警帧。
(4)从节点监测到正常输入信号的变化(包括开关量和模拟量采样级数的变化)后,便通过报告帧发送信息给主节点,主节点则发送命令帧以示响应。
4. 通讯报文定义
表3所列是中央控制模块与诊断模块的通讯报文定义。表中,aaaa为分段号,可在故障代码多于8个时设置,最多可达传送16×8个字节代码;bbbbbb 为各传感器代号,其响应帧采用不分段的数据帧,cccccccc为执行相应动作的代码,如车窗上升为00000001,下降为00000010,该响应最多可以执行256个动作。响应帧采用远程帧,请求帧为远程帧。
表3 中央控制模块与诊断模块通讯
表4 正常工作时各节点通讯协议约定
* 数据寄存器1=车速信息高8位;
* 数据寄存器2=车速信号低8位;
* 数据寄存器3=发动机转速信号高8位;
* 数据寄存器4=发动机转速信号低8位;
* 数据寄存器5=点火开关位置,其中,0表示钥匙拔出;1表示钥匙位于OFF;2表示钥匙位于ACC;3表示钥匙位于RUN;4表示钥匙位于START;
* 数据寄存器6=档位信号,0表示空档;1表示驱动档;2表示驱动档;3表示倒档;4表示驻车档;
* 数据寄存器7=遥控信号,0表示遥控解锁主驾车门;1表示遥控锁定主驾车门;2表示遥控解锁所有车门;3表示遥控锁定所有车门;4表示遥控解锁行礼箱;
* 数据寄存器8用于防盗模式;0表示进入防盗模式,1表示解除防盗模式;
* 数据寄存器9-16:保留。
四、软件流程
各控制器应按规定格式和周期发送数据到总线上,同时也要接受其他控制器的信息。总线上的其他控制器则根据需要各取所需的报文。对于接收数据,本系统采用中断方式实现。一旦中断发生,即将接收的数据自动装载到相应的报文寄存器中,此时还可采用屏蔽滤波方式,利用屏蔽滤波寄存器对接收报文的标识符和预先在接收缓冲器初始化时设定的标识符进行有选择地逐位比较,只有标识符匹配的报文才能进入接收缓冲器,那些不符合要求的报文则将被屏蔽于接收缓冲器之外,从而减轻 CPU处理报文的负担。此外,不同数据应放入不同的报文寄存器中,因此在接收中断服务程序中,就可以容易地判断出中断是由哪个接收报文引起的,其程序流程图如图3所示。
图3 程序流程框图
五、结束语
CAN总线作为一种可靠的汽车计算器网络总线,现已开始在先进的汽车上得到应用,从而使得各汽车计算机控制单元能够通过CAN总线共享所有的信息和资源,以达到简化布线、减少传感器数量、避免控制功能重复、提高系统可靠性和可维护性、降低成本、更好地匹配和协调各个控制系统之目的,进而使得汽车的动力性、操作稳定性、完全性都上升到新的高度、随着汽车电子技术的发展,具有高度灵活性、简单的扩展性、优良的抗干扰性和纠错能力的CAN总线通信协议必将在汽车电容系统中得到更广泛的应用。
仲裁场由29位标识符ID28-ID0以及SRR、IDE和RTR组成,SJA1000中的寄存器17-21用来存放扩展帧格式帧信息的标识符。发送时,SRR=1,IDE=1,RTR=1/0(远程帧/数据帧)。标识符中的ID28-ID25为车身控制模块交换报文的帧类型(共4位)。 ID24-ID19为车身控制模块中帧信息使用者的地址(或称为目的地址,共6位)。ID18-ID13为车身控制模块中帧信息发送者的地址或称为源地址(共6位)。ID12-ID5为车身控制模块中交换的命令、状态、数据或报告属性(共8位),ID4位需附加命令或状态、数据、报告属性时的分段标志。 ID3-ID0为附加命令或状态、数据、报告属性的分段号(共4位)。当ID4=0时,ID3-ID0控制场、数据寄存器0-7有效。对于远程帧,则可忽略ID4-ID0以及控制场的值。SJA1000的寄存器16低四位DLC3-DLC0可构成控制场,以决定数据帧的数据长度。
3. 车身控制模块CAN2.0B通讯报文约定
按车身控制模块的节点要求,通讯的信息帧分为表1所列的6种,表1中的优先级按序号从高到低排列。其目的地址和源地址的分配见表2所列。
表1 车身控制模块帧模型
表2 车身控制模块各节点地址分配
其工作方式如下:
(1)开机后或唤醒时,从节点向主节点发送状态信息,主节点发送广播信息远程帧(两次),广播信息为共用信息,包括车速信号,档位信号,点火开关位置信号等。
(2)正常情况下,从节点内部巡查各端口状态,如有故障则向主节点发送故障代码3次,主节点收到三次故障报警后开始响应,从节点停止发送,一旦故障消失,再向主节点发送正常信息。在主节点中应有一故障表,以用于已诊断模块的通讯。
(3)主结点分别发送自检信息后,如各从节点正常,则发送正常信息,状态和数据帧。如有故障,则通过分段数据帧发送故障报警帧。
(4)从节点监测到正常输入信号的变化(包括开关量和模拟量采样级数的变化)后,便通过报告帧发送信息给主节点,主节点则发送命令帧以示响应。
4. 通讯报文定义
表3所列是中央控制模块与诊断模块的通讯报文定义。表中,aaaa为分段号,可在故障代码多于8个时设置,最多可达传送16×8个字节代码;bbbbbb 为各传感器代号,其响应帧采用不分段的数据帧,cccccccc为执行相应动作的代码,如车窗上升为00000001,下降为00000010,该响应最多可以执行256个动作。响应帧采用远程帧,请求帧为远程帧。
表3 中央控制模块与诊断模块通讯
表4 正常工作时各节点通讯协议约定
* 数据寄存器1=车速信息高8位;
* 数据寄存器2=车速信号低8位;
* 数据寄存器3=发动机转速信号高8位;
* 数据寄存器4=发动机转速信号低8位;
* 数据寄存器5=点火开关位置,其中,0表示钥匙拔出;1表示钥匙位于OFF;2表示钥匙位于ACC;3表示钥匙位于RUN;4表示钥匙位于START;
* 数据寄存器6=档位信号,0表示空档;1表示驱动档;2表示驱动档;3表示倒档;4表示驻车档;
* 数据寄存器7=遥控信号,0表示遥控解锁主驾车门;1表示遥控锁定主驾车门;2表示遥控解锁所有车门;3表示遥控锁定所有车门;4表示遥控解锁行礼箱;
* 数据寄存器8用于防盗模式;0表示进入防盗模式,1表示解除防盗模式;
* 数据寄存器9-16:保留。
四、软件流程
各控制器应按规定格式和周期发送数据到总线上,同时也要接受其他控制器的信息。总线上的其他控制器则根据需要各取所需的报文。对于接收数据,本系统采用中断方式实现。一旦中断发生,即将接收的数据自动装载到相应的报文寄存器中,此时还可采用屏蔽滤波方式,利用屏蔽滤波寄存器对接收报文的标识符和预先在接收缓冲器初始化时设定的标识符进行有选择地逐位比较,只有标识符匹配的报文才能进入接收缓冲器,那些不符合要求的报文则将被屏蔽于接收缓冲器之外,从而减轻 CPU处理报文的负担。此外,不同数据应放入不同的报文寄存器中,因此在接收中断服务程序中,就可以容易地判断出中断是由哪个接收报文引起的,其程序流程图如图3所示。
图3 程序流程框图
五、结束语
CAN总线作为一种可靠的汽车计算器网络总线,现已开始在先进的汽车上得到应用,从而使得各汽车计算机控制单元能够通过CAN总线共享所有的信息和资源,以达到简化布线、减少传感器数量、避免控制功能重复、提高系统可靠性和可维护性、降低成本、更好地匹配和协调各个控制系统之目的,进而使得汽车的动力性、操作稳定性、完全性都上升到新的高度、随着汽车电子技术的发展,具有高度灵活性、简单的扩展性、优良的抗干扰性和纠错能力的CAN总线通信协议必将在汽车电容系统中得到更广泛的应用。
- 浅谈数据线扼流圈改善电磁兼容问题使汽车更加安全(06-23)
- CAN总线技术在汽车车身控制中的应用(03-28)
- 汽车电子须知 汽车网线与CAN总线的标准(04-17)
- 基于CAN总线重型汽车内轮差预警系统的设计(05-16)
- 利用CAN总线的进行汽车轮速传感器设计(06-27)
- 浅谈汽车车载网络的应用(07-07)