新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于μC/OS-II的整车控制器系统技术设计

基于μC/OS-II的整车控制器系统技术设计

作者:时间:2012-03-13来源:网络收藏

(2)OSCtxSw()

当从低优先级的任务切换到较高优先级的任务时,调用任务切换函数OSCtxSw()保存处理器的内容和任务指针到当前任务的任务堆栈,然后执行用户调用函数OSTaskSwHook(),最后从要执行任务的任务堆栈里恢复寄存器和堆栈中的内容,执行中断返回指令开始运行新的任务。

(3)OSIntCtxSw()

当需要在中断发生后切换到更高优先级的任务时,调用中断级任务切换函数OSIntCtxSw(),然后执行用户调用函数OSTaskSwHook()。因为该函数是在中断程序中被调用,所以不需要保存中断任务的寄存器;中断子程序在调用函数OSInExit()时,将返回地址压入堆栈,在这里不需要再返回,所以必须从堆栈中清理掉返回地址。

(4)OSTickISR()

OSTickISR()是μC/OS-II中的时钟节拍中断服务程序。在每个时钟节拍调用该函数,给每个处于延时的任务延时减1,并检查所有处于延时状态的任务是否延时结束成为就绪任务。然后调用OSIntExit(),如果有优先级更高的任务就绪,OSIntExit()就会进行任务调度。OSIntExit()并不返回调用者,而是用新的任务堆栈中的内容来恢复CPU现场,由中断返回执行新的任务。

3.2.4OS_CPU_C.C

用户需要编写6个C语言函数OSTaskStkInit()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskSwHook()、OSTaskSatHook()、OSTimeTickHook()。其中,唯一必要的是OSTaskStkInit(),其他5个必须声明,但可以不包含代码。

OSTaskStkInit()由任务创建函数OSTaskCreate()或OSTaskCreateExt()调用,在建立每个任务的时候初始化任务堆栈。开始运行这个任务就是模拟中断返回,把初始化后堆栈中保存的值恢复到各个寄存器。初始化任务堆栈时,要传递任务代码起始指针(Ptask)、参数指针(Pdata)、任务堆栈栈顶指针。任务堆栈初始化完成后,返回一个新的堆栈栈顶指针,OSTaskCreate()或OSTaskCreateExt()将它保存到OSTCB中。

在OS_CPU_C.C文件中可以创建5个钩子函数,使用的前提是配置文件中常量OS_CPU_HOOKS_EN使能。

至此,μC/OS-II操作的移植基本完成。

4 软件多任务

软件以实时操作作为开发平台,将应用程序分解成多任务,简化了软件的,保证了控制系统的实时性,提高了系统的稳定性与可靠性。整个系统的主程序流程如图3所示。



4.1 定时器模块

定时器的主要功能是为软件程序提供基准时钟。本应用选择T5作为时钟基准,在初始化函数void GPT_vInit()中完成模块寄存器配置;中断服务程序设置为OSTicklSR(),中断向量为0x25。通过建立时钟任务函数Timer_Int(),调用时钟节拍函数OSTimeTick(),实现定时器与系统时钟的连接。系统时钟节拍编程为1 ms,可以减少中断服务时间,提高实时性。


4.2 CAN通信模块

CAN通信模块功能是实现整车与其他节点间的信息传输。周期性传输,传输周期为20 ms,通信速率为250 kbps,中断调用CAN通信服务程序。

创建CAN通信模块任务CAN_Trans,任务优先级3:



4.3 A/D模块

A/D模块功能是完成读取蓄电池电压、加速踏板传感器和节气门位置传感器信号,并进行模数转换,被其他函数调用。

创建A/D转换模块任务ADC_Cony,任务优先级4:



4.4 整车控制主程序模块

在混合动力汽车系统各模块自检成功后,整车控制器要求启动电池,进入正常EV工作模式。然后通过判断档位,钥匙开关和油门踏板等信息,进入不同的处理模块。控制策略包括整车控制策略和能量流管理策略,实现扭矩算法的控制输出。

创建整车控制主程序任务Drive_Ctr,优先级9:

OSTaskCreate(Drive_Ctr,(void*)Drive_Ctr[OS_TASK_STK],9)

这里限于篇幅不再介绍其他模块,大体过程相似。

结语

随着汽车整车的不断发展和法规日益严格的要求,汽车电子系统会变得越来越复杂,采用操作系统来实现对复杂任务的管理和协调,将成为不可避免的趋势。

本文通过混合动力整车控制器的软硬件设计,详细说明了μC/OS-II系统移植过程,优化了系统软件设计,充分满足了系统的需求。经实车试验测试取得了很好的效果。

本文引用地址:http://www.eepw.com.cn/article/149436.htm
上一页 1 2 下一页

评论


相关推荐

技术专区

关闭