基于CAN总线结构的并联液压混合动力车控制系统
3 控制系统的通讯管理
3.1 CAN总线节点地址分配
对于以上述P80C592和PC104结构CAN通讯卡为硬件基础的CAN总线网络形式,节点之间通讯报文所用到的信息帧有两种:数据帧和远程帧。数据帧和远程帧的帧起始位之后都包括有标识符和远程发送请求位(RTR)组成的仲裁场。标识符的长度为11(ID.10~ID.0)位,包含信息帧目标地址特征。RTR位在数据帧中必须是“显性”电平,用以标记帧类型。
节点报文接收器的接收滤波器由两部分组成:接收码寄存器(ACR)和接收屏蔽寄存器(AMR)。此两个寄存器均为8位:验收码位(AC.7~AC.0),验收屏蔽位(AM.7~AM.0)。当信息帧的报文标识符最高8位(ID.10~ID.3)满足下列等式:
〔(ID.10~ID.3)=(AC.7~AC.0)〕或(AM.7~AM.0)=11111111B
则该信息帧将被报文接收器接收。
对于本系统的5个网络节点,定义各节点的验收码和验收屏蔽码如下:
1#:ACR=81H,AMR=BEH;
2#:ACR=82H,AMR=BDH;
3#:ACR=84H,AMR=BBH;
4#:ACR=88H,AMR=B7H;
主机:ACR=A0H,AMR=9FH;
根据上述节点地址分配,各节点均可实现对其它任意节点组合的信息发送。如主机对1#、2#、3#节点同时发送信息,则主机发送信息帧的标识符高8位可写为:87H或07H。
可见对报文接收器而言,ID.10=0或1没有区别。但根据CAN总线协议,显性位“0”将比隐性位“1”具有更高的总线优先权。定义ID.10=0的信息帧为“快速帧”,ID.10=1的信息帧为“普通帧”。
因此,上述地址分配方法具有以下优点:
(1)容易实现单点对其他点任意组合的信息发送;
(2)各节点具有不同的优先级,从1#到5#到主机优先级依次降低,保证发往关键节点的信号不被阻塞;
(3)每个节点都有两种地址编码,且优先级不同,保证关键指令首先被接收。
3.2通讯方式及信息帧分类
由于分布式控制通讯量较大,对信息进行分类和规定相应的协议将有利于软件的标准化,提高编程效率和程序的可靠性。首先,依据CAN总线协议标准,定义以C语言描述的CAN信息帧格式:
struct CAN_MSG
{
unsigned char CAN_FLAG;
unsigned char CAN_DLC;
unsigned char CAN_DATA[8];
};
其中CAN_FLAG是信息目标标识符,CAN_DLC含远程帧信号位、帧定义描述和数据帧长度信息,CAN_DATA为8字节数据。
依据信息的流向、总线优先级和作用的不同,将通讯信息分为5类,其具体定义如下(按优先级从低到高排列):
(1)远程帧:由主机以一定节拍发往各控制器,击活相应控制器的状态帧发送。目的是使主机能在规定的时间内获得电动车的状态信息,同时减少因各控制器自动发送状态帧而引起总线阻塞。
格式:CAN_FLAG采用“普通帧”点对点编码;CAN_DLC=0xF0;CAN_DATA为空。
(2)状态帧:由控制器发往主机或其他控制器。状态帧返回当前命令执行状态和采集量信息,作为上层控制器执行下一步规划的标志。
格式:CAN_FLAG采用“普通帧”点对点、点对多编码;CAN_DLC=0xE8;CAN_DATA[0]为状态或信息数据标识,确定后续数据的含义;CAN_DATA[1]~ CAN_DATA[7]为数据。
(3)间接命令帧:由主机发往控制器,或由某运行复合动作元的控制器发往其他控制器。间接命令帧含有复合动作元或动作元指令,接收方必须对命令进行分解才能产生驱动外设动作的控制元指令。
格式:CAN_FLAG采用“普通帧”点对点、点对多编码;CAN_DLC=0x60+DLC,DLC等于有效数据的字节数;CAN_DATA[0]为状态或信息数据标识,确定后续数据的含义;CAN_DATA含有具体指令信息。
(4)直接命令帧:发送方向同间接命令帧。但该命令帧所含命令将被接收方直接执行,驱动控制元动作,因此,应具有比间接命令帧更高的优先级。
格式:CAN_FLAG采用“快速帧”点对点、点对多编码;CAN_DLC=0x20+DLC,DLC等于有效数据的字节数;CAN_DATA含有具体指令信息。
(5)紧急命令帧:从检测到紧急状态的控制发往其他相关控制器。此命令具有最高优先级,用以在检测到紧急状态时,快速执行相应动作、避免事故发生。该命令将被接收方直接运行。
格式:CAN_FLAG采用“快速帧”点对点、点对多编码;CAN_DLC=0x00+DLC,DLC等于有效数据的字节数;CAN_DATA含有具体指令信息。
3.3 软件设计
CAN总线为分布式控制提供了良好的硬件基础,使各节点的通讯不再是制约分布式控制实现的主要因素。整个系统从本质上说已经不存在主、从节点之分,整个系统的控制的控制已经从传统网络中主节点的单一控制(这种体系结构要求上位机具有大容量的程序存储器和高运算速度,必然造成上位机的大型化),转化为各节点的协调控制,整加了系统控制的灵活性,也同时降低了对主节点的要求。
图3 控制器1#,3#输入输出参数
如上图3所示,车辆信息采集模块采集车速、发动机转速、档位信号(前进、空档、倒车)、油门踏板及刹车踏板的状态及幅度。液压系统测控模块采集蓄能器的压力,控制离合器的吸合与断开,通过油路控制(4个开关量)实现油路分配控制,最后通过液压泵/马达控制实现液压系统回收/释放功能及强度。
评论