汽车ECU 标定系统CCP 软件的实现
(2)DAQ 处理机
DAQ 处理机的任务是根据主设备的需要,定时向CAN总线上发送DAQ 数据。它由启动从设备的DAQ 发送、停止从设备的DAQ 发送、执行DAQ 循环发送的任务3 个部分构成。
启动或停止从设备的 DAQ 发送,由Command 处理机调用函数Start_DAQ (DAQ List
number ,)和Stop_DAQ (DAQ List number)来完成,该函数启动或停止相应的DAQ 发送任务,
其示意性代码如下:
Start_DAQ(INT8U DAQ_List_num) { //启动第n 个DAQ_List
DAQ_List[n].Started = 1;
DAQ_List[n].Prepared = 1;
OSTaskCreate (第n 个DAQ_List 的任务); //调用系统函数,创建DAQ 发送任务,
并使任务进入调度
}}
Stop_DAQ(INT8U DAQ_List_num) { //停止第n 个DAQ_List
DAQ_List[n].Started = 0;
DAQ_List[n].Prepared = 0;
OSTaskDel (第n 个DAQ_List 的任务); //调用系统函数,删除DAQ 发送任务
}
执行DAQ 循环发送的任务,需要按照ODT 设置把DAQ 数据发送到CAN总线上,同时需要按照DAQ 周期要求循环执行,该任务示意性代码如下:
void DAQ_task ( ) {
for( ; ; ) {
CCP.Upload(0); //根据ODT 设置把DAQ 数据发送到CAN总线上
OSTimeDlyHMSM(Period); //调用RTOS 函数,等待一个周期的时间
}
}
5 结束语
经过多次反复不断的实际调试,此CCP软件程序在系统上运行稳定可靠,实现了基于MC9S12DP256 上的FLASH 区的标定。
这种采用环形缓冲区以及结合实时操作系统的CCP软件程序设计,有效的避免在ECU标定过程中数据的丢失,并可以对多个ECU 同时进行在线标定,具有很强的实用价值。
参考文献
[1]陶恒燕,田江学,屈卫东. 基于MC68736 的CCP 软件程序设计. 测控技术,2005,3:49-52.
[2]宋雪桦,潘波.汽车电控制单元CAN-RS232-USB 诊断与通讯模块研制.微计算机信息,2006,2-2:226-228
[3]邵贝贝. 单片机嵌入式应用的在线开发方法. 清华大学出版社,2004.
[4]Jean J.Labrosse. 嵌入式系统构件. 机械工业出版社,2002.
[5]李雅博,张俊智,甘海云. 基于CCP协议的HEV 用ECU标定系统设计. 汽车工程,2004,4:375-378.
评论