新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于CAN总线的并联液压混合动力车控制系统

基于CAN总线的并联液压混合动力车控制系统

作者: 时间:2016-12-01 来源:网络 收藏

节点报文接收器的接收滤波器由两部分组成:接收码寄存器(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

unsignedcharCAN_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个开关量)实现油路分配控制,最后通过液压泵/马达控制实现液压系统回收/释放功能及强度。

各节点控制器均能独立完成部分命令分解和调用底层指令的功能。这样,对于某一动作元而言,节点控制器将充当“命令主机”。下面以“液压系统运行调节”这一复合动作元执行时,1#,3#控制器流程图(如图4,图5所示)为例,说明各控制器在分布式控制系统中的作用。可以看出,在该指令执行过程中,3#控制器充当了1#控制器的“命令主机”。



评论


技术专区

关闭