实时操作系统在混合动力整车控制器中的应用

发布者:清新心情最新更新时间:2018-01-15 来源: 21IC中国电子网关键字:混合动力  实时操作系统  整车控制器 手机看文章 扫描二维码
随时随地手机看文章

混联式混合动力系统的子系统众多,其中整车控制器作为实现驾驶员驾驶需求和能量安全的管理系统,需要协调发动机、扭矩、电机和电池的功率在不同工况下的合理分配,实现制动能量回馈,并控制外围设备(如空调、灯光),以达到最佳的节能排放效果。系统任务的复杂性和强电磁干扰环境都对整车控制器的实时性和可靠性提出了重大挑战,传统的单任务循环式的程序控制模式难以满足需求,因此作者采用了开放源码的嵌入式操作系统μC/OS-II设计整车控制器系统软件。


1 整车系统结构


所开发的全混合动力轿车是天津市重大专项课题,以长城哈佛SUV轿车为平台。该车动力系统主要由发动机、交流电动机、交流发电机和高性能的镍氢电池、行星架动力分配机构以及DC-AC逆变器组成。整车控制器采用总线与发动机管理系统、电机控制器和动力电池组管理系统交换信息,并且预留了1路CAN以便后期与车身系统通信。


整车控制器根据驾驶员输入信号,结合电池组状态和车辆当前运行状态,根据一定的策略控制各个子系统的工作,实现节能减排的目标。系统网络拓扑如图1所示。

 

2 整车控制器硬件设计


ECU的硬件设计按照模块化原则,可分为如下几个功能模块:微控制器模块、数据采集模块、功率驱动及保护模块、D/A转换模块、电源模块、通信模块、显示及报警接口和标定诊断接口等。采用 Infineon公司的XC164CS微控制器,它基于增强的C166SVZ内核,并在性能上优于其他16位微控制器:内部集成DSP功能、扩展的中断处理能力、强大的片上外设以及高性能片上Flash,如图2所示。

 


3 μC/OS-II的移植


μC/OS-II嵌入式实时操作系统采用ANSI C语言编写,具备很好的可读性和可移植性;对硬件资源要求不高,在大多数8位、16位微控制器上都可以实现移植。


3.1 μC/OS-II的启动


首先要调用硬件驱动程序对硬件进行初始化设置,然后调用系统初始化函数OSlnit()初始化μC/OS-II所有的变量和数据结构。


启动μC/OS-II之前建立1个应用任务。OSlnit()建立空闲任务idletask,这个任务总是处于就绪态。空闲任务OSTaskIdle()的优先级设成最低,即OS_LOWEST_PRIO。多任务的启动需要用户通过调用OSStart()实现。当然还有其他设置,这里不再一一介绍。


3.2 μC/OS-II的移植


μC/OS-II操作系统在XC164CS微处理器上的移植主要实现对3个文件OS_CPU.H、OS_CPU_C.C、OS_CPU A.ASM的处理。


3.2.1头文件 INCLUDES.H


INCLUDES.H头文件应被包含到所有C文件的第1行。尽管包含不相关文件可能会增加文件的编译时间,但增强了代码的可移植性。用户可以编辑增加自己的头文件,但必须添加在头文件列表的最后。


3.2.2 OS_CPU.H文件


OS_CPU.H 文件中包含与处理器相关的常量、宏和结构体的定义。针对XC164CS处理器,定义堆栈数据类型为16位,栈向下递减;将μC/OS-II控制中断的2个宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()定义为微控制器关闭(SETC)和打开(CLRC)中断的指令;声明 OS_TASK_SW()函数,中断服务程序ISR的入口指向函数OSCtxSw()。

 


3.2.3 OS CPU A.ASM


μC/OS-II移植时要求用户编写4个汇编语言函数:OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()和OSTickISR()。


(1)OSStartHighRdy()


调用该函数使处于就绪状态的优先级最高的任务开始运行。由于实时操作系统是不返回的函数,所以调用后需移去堆栈栈顶的返回地址,然后执行用户调用函数 OSTaskSwHook(),最后开始运行多任务,获得优先级最高的任务的指针,根据这个指针从任务堆栈中恢复所有寄存器,恢复完后执行中断返回,运行就绪态任务。


(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系统移植过程,优化了系统软件设计,充分满足了系统的需求。经实车试验测试取得了很好的效果。

关键字:混合动力  实时操作系统  整车控制器 引用地址:实时操作系统在混合动力整车控制器中的应用

上一篇:模拟芯片有多重要
下一篇:S3C2440开发板如何修改LCD参数

推荐阅读最新更新时间:2024-05-03 02:19

丰田式另类“混动”:内燃机+发电机=纯电动驱动系统
丰田对于混合动力可谓是相当执著,尤其是非插电式混合动力。因此,哪怕是在纯电动动力系统的研发中,这种“混动”思维也是如影随形。 如同在上一篇文章《燃效提升30%,“专宠”混动的丰田表错情了么?》中提到的那样,在向纯电动车的过渡阶段,内燃机将依然扮演重要的角色,因此,即便是压注混动的丰田,也并没有放弃对发动机的研究。而如何让内燃机在纯电动车事业中继续发光发热也是工程师们的研究方向之一。 就是在这样的指导思想之下,丰田的中央研究所研发出了一种新式的发电机,功率为10千瓦。这款线性发电机虽然是发电机,但是却是在内燃机的结构上改造而成的,有一个让人不明觉厉的名字——Free Piston Engine Linear Generato
[嵌入式]
TIStellarisLM3S2000混合动力汽车电池充电器解决方案
    TI公司的Level 3电动/混合动力汽车电池充电器采用数字功率控制器,通信器件,高性能驱动器以及接口器件. Level 3充电器包括从AC产生DC电压的带PFC的AC/DC转换器,DC/DC转换器,其核心器件是实时C2000系列MCU.本文介绍了EV/HEV充电器方框图以及EV/HEV充电器主控制器Stellaris LM3S2000 32位MCU主要特性,方框图, 开发板主要特性和方框图,电路图和PCB元件布局图.     Block Diagram (SBD) EV/HEV Charger Level 3 using TI’s Digital Power Controllers, communication devic
[电源管理]
TIStellarisLM3S2000<font color='red'>混合动力</font>汽车电池充电器解决方案
一文看透新能源汽车电控系统技术
新能源汽车电控系统,狭义的讲是指整车控制器,广义上讲,则包括整车控制器、电池管理系统和驱动电机控制器等。 ▲电控系统组成简图 01 整车控制VCU 整车控制器作为电动汽车中央控制单元,是整个控制系统的核心,也是各个子系统的调控中心。VCU的主要功能是协调管理整车运行状态,包括采集电机及电池状态,采集加速踏板信号、制动踏板信号、执行器及传感器信号,根据驾驶员意图综合分析做出相应判定后,监控下层各部件控制器动作。 02 驱动电机控制器 电机控制器的作用主要是接收整车控制器的扭矩报文指令,进而控制驱动电机的转速与转动方向;另外,在能量回收过程中,电机控制器还要负责将驱动电机副扭矩产生的交流电进行整流回充给动力电池。
[嵌入式]
一文看透新能源汽车电控系统技术
实时操作系统-RTLinux
摘要: 介绍了RTLinux的两个重点特点:硬实时性和完备性,及其在嵌入式系统应用中的一些重要功能,并结合实时处理的具体实例对其编程方法加以说明。 关键词: 操作系统 实时处理 Linux 嵌入式系统 近年来,基于PC的嵌入式系统得到迅速的发展。在各种不同的操作系统中,由于Linux操作系统的廉价、源代码的开放性以及系统的稳定性,使其在基于PC的嵌入式系统中的应用日益广泛。RTLinux(RealTime Linux) 是一种基于Linux的实时操作系统,是由FSML
[应用]
投资超10亿欧元,博世持续深化“三化”布局
受新冠肺炎疫情的影响,今年全球汽车产业遭受了前所未有的冲击。尽管如此,在对电气化、自动化、互联化等新技术趋势的追逐上,零部件企业们并没有停下步伐,反而呈现进一步强化的态势。 日前,在2020北京车展上, 博世 集团董事会成员、汽车与智能交通技术业务部门主席StefanHartung透露,今年博世将继续在前述新技术领域投入超过10亿欧元,助力汽车和智能交通加速转型升级,使移动出行更安全、可持续和激动人心。特别是中国,作为博世最重要的战略市场之一,将是博世布局的重中之重。 保持“技术中立”,双线开展动力总成创新 受相关技术快速发展及政策持续释放利好的双重驱动,近几年新能源汽车产业获得了长足的发展,市场规模持续扩大。不过距离
[汽车电子]
投资超10亿欧元,博世持续深化“三化”布局
基于CygnalF040的RTOS51的研究与开发
0.引 言 目前,我国对于大部分供电电力设备的监控和管理上基本还停留在人工巡查这种比较原始的管理方式下(例如铁路道口的信号电源),不但管理效率低下,而且供电质量和水平都得不到有效的保证。本文以实时操作系统small RTOS51为基础,主要探讨了一个用于电力系统现场监控终端单元的设计过程,希望能够为提高配电自动化水平提供一些思路,尽一点微薄之力。 1.Small RTOS51多任务实时操作系统 Small RTOS51是一个源代码公开的多任务实时操作系统,它可以简化那些复杂而且对时间要求严格的工程软件设计工作。它具有公开源代码、可移植、可固化、占先式、中断管理及RAM 需求小等特点。 2.系统功能描述 本故障诊断终端主要
[单片机]
基于CygnalF040的<font color='red'>RTOS</font>51的研究与开发
AVR单片机的RTOS-AVRX应用
引 言   随着技术的发展,嵌入式系统的设计及应用对人们的生活产生了很大的影响,并将逐渐改变人们未来的生活方式。在特定的操作系统上开发应用程序,可以使开发人员忽略掉很多底层硬件细节,使得应用程序调试更方便、易于维护、开发周期缩短并且降低开发成本,因而嵌入式操作系统深得开发人员的青睐。   AVR微处理器是Atmel公司开发的8位嵌入式RISC处理器,它具有高性能、高保密性、低功耗、非易失性等优点,而且程序存储器和数据存储器可独立编址,并具有独立访问的哈佛结构。AVR单片机内核有丰富的指令集,通过32个通用寄存器直接与逻辑运算单元相连接,允许在一个周期内一条单一指令访问两个独立的寄存器,这样的结构使代码的执行效率比传统的复杂指令集
[单片机]
既不是混动也不是增程式 融合动力了解一下
你知道什么是融合动力吗? 在我们的认知里,汽车的动力模式不过就是燃油、纯电、混合动力几大类,然而在上海车展上,东风日产以前所未有的融合动力之名,带来了全新动力模式——e-POWER。从结构上来看,e-POWER也是同时拥有发动机和电动机,但它和丰田THS和本田immd诸类混动的差异就在于,发动机和电动机是以单纯串联的模式连接的,发动机全程不会参与驱动链路,所以比起混动的双打模式,e-POWER整体更像一台加油的纯电车型。 第一大融合:100%燃油融合100%纯电 正如我们前面提到的,无论是丰田的双擎、本田的锐混动,还是正在热度上的理想one,他们的发动机和电机是共同参与驱动车轮的,在行驶过程中,传统混动油电两种
[汽车电子]
既不是混动也不是增程式 融合动力了解一下
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved