2 软件设计
系统软件设计主要包括数据采集存储和CAN通信两大模块。
2.1 CAN通信模块
MC9S08DZ60内部集成了应用CAN 2.0A/B协议的CAN控制器,包含5个先进先出的接收寄存器、3个使用本地优先级的发送寄存器。在ID识别方面提供了64 bit的掩码寄存器,可分用为2个32 bit的满值寄存器,或4个16 bit、8个8 bit的寄存器,这使总线上的消息寻址更加灵活方便。为满足低功耗需求,该模块提供睡眠、掉电和MSCAN使能3种模式[5]。
CAN总线中的数据帧由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结尾。其中数据场的长度可以为0,但模块封装的帧最多不超过8个字节。根据仲裁位的不同可分为标准帧(11 bit标识符)和扩展帧(29 bit标识符)。扩展帧格式包括4个ID寄存器IRD0~IRD3,8个数据寄存器DSR0和1个数据长度寄存器DLR,其中IRD0首位是ID28,IRD3末位是ID0。两者之间还存有信号标识位SRR、IDE和RTR[4]。
2.2 CAN通信协议
CAN总线的通信采用主叫轮询方式。由于CAN的限制,每个网络内子节点不宜超过1 000个,这里取10 bit作为源和目的设备的ID标识。因为ID28只能为1,这里规定ID27~ID18为帧源ID,而ID17~ID8为帧目的ID。因为通信需要传输的数据多于8个字节,这里把DSR0作为传输多帧数据的总帧数寄存器,把DSR1作为传输多帧数据的当前帧数寄存器,DSR2作为帧功能寄存器,DSR3~DSR6传输数据,DSR7为校验寄存器[2]。
2.3 程序设计
Initialize()完成单片机硬件初始化(手柄ECU初始化、应用程序初始化等)。上电初始化后,单片机开始采集I/O口挡位的电压信号,并存储到片上存储单元。与主机的CAN通信将以中断形式完成。图5为系统整体流程。
各挡位位置对应的逻辑电平如表1。
经过试验,CAN总线传送的挡位变化信息如图6所示。
经试验证明,该手柄ECU在实验室条件下能够实现数据采集和网络通信,并达到换挡目标。采用CAN总线技术的手柄ECU不仅可以降低成本、实现数据共享,同时还可以提高AMT的性能。其最高1 Mb/s(40 m以内)的传输速度使得手柄ECU实时性好、可靠性高、运行情况良好。
参考文献
[1] 和卫民,秦贵和.基于AMT的汽车换挡手柄ECU的系统设计[D].长春:吉林大学,2006.
[2] 孔慧芳,危洋.基于CAN总线的AMT通信系统研究[D].合肥:合肥工业大学,2008.
[3] 徐斌,丁圣彦,李计融.燃料电池轿车水冷却监控系统的实现[D].上海:同济大学,2004.
[4] 徐泽华.一种基于CAN接口的数字式控制手柄研制及其功能测试软件设计[D].长沙:中南大学,2003.
[5] Motorola. Inc. Motorola’s MC9S08DZ60 data sheet, Rev.4, 6.2008.