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

发布者:anluran最新更新时间:2015-10-12 来源: eechina关键字:混合动力  实时操作系统  整车控制器 手机看文章 扫描二维码
随时随地手机看文章
混联式混合动力系统的子系统众多,其中整车控制器作为实现驾驶员驾驶需求和能量安全的管理系统,需要协调发动机、扭矩、电机和电池的功率在不同工况下的合理分配,实现制动能量回馈,并控制外围设备(如空调、灯光),以达到最佳的节能排放效果。系统任务的复杂性和强电磁干扰环境都对整车控制器的实时性和可靠性提出了重大挑战,传统的单任务循环式的程序控制模式难以满足需求,因此作者采用了开放源码的嵌入式操作系统μ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中。  [page]

在 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系统移植过程,优化了系统软件设计,充分满足了系统的需求。经实车试验测试取得了很好的效果。
关键字:混合动力  实时操作系统  整车控制器 引用地址:实时操作系统在混合动力整车控制器中的应用

上一篇:基于SPCE061A的车载DVD播放器设计与实现
下一篇:微处理器在电动车无刷电机控制器上的应用

推荐阅读最新更新时间:2024-03-16 14:35

μC/OS—II的嵌入式串口通信模块设计
在嵌入式应用中,使用RTOS的主要原因是为了提高系统的可靠性,其次是提高开发效率、缩短开发周期。μC/OS-II是一个占先式实时多任务内核,使用对象是嵌入式系统,对源代码适当裁减,很容易移植到8~32位不同框架的微处理器上。但μC/OS-II仅是一个实时内核,它不像其他实时操作系统(如嵌入式Linux)那样提供给用户一些API函数接口。在μC/OS-II实时内核下,对外设的访问接口没有统一完善,有很多工作需要用户自己去完成。串口通信是单片机测控系统的重要组成部分,异步串行口是一个比较简单又很具代表性的中断驱动外设。本文以单片机中的串口为例,介绍μC/OS—II下编写中断服务程序以及外设驅动程序的一般思路。   1 μC/OS-I
[应用]
美国2020年纯电动销量将追平混合动力销量
  据外媒报道,近日,美国派克研究所(Pike Research)研究中心主任盖特纳(John Gartner)表示,21世纪20年代后期,美国的纯电动汽车销量将会出现大幅增长,截止2020年,混合动力汽车与纯电动汽车的销量将持平。 图表   盖特纳认为,随着电池技术的发展,纯电动汽车的续航能力将不断提高,其销量也会大幅增长。目前,只有美国电动汽车制造商特斯拉公司(Tesla Motors Inc.)生产的Model S续航里程能达到160公里。其他电动汽车续驶里程都不理想,美国加利福尼亚州圣塔莫妮卡市Coda汽车制造公司生产的Code Sedan续航里程为141公里,福特福克斯电动车为122公里,日产聆风为117公
[汽车电子]
基于OSEKturbo实时操作系统的ABS设计
0 引言     作为智能交通的主要组成部分,车载导航定位己成为最近的研究热点 。随着全球定位系统(GPS)从军用转为民用后,GPS技术应用于移动目标的监控有着其它无法比拟的优势,所以采用GPS技术对各种车辆实施监控、调度管理成为一个新的研究热点。      GPRS可以实现数据的实时交换,而且按照数据流量计费,特别适合应用在车辆卫星定位系统这种频繁的小流量数据传输的场合。因此,本系统采用GPRS作为车载电脑与服务器的通信方式。      由于地图匹配采用了复杂的算法,道路网络的拓扑结构须采用数据库方式,整个定位系统须采用高级语言编程实现。基于这些特点该车载定位装置采用单板工控电脑作为硬件平台,操作系统采用Windows X
[嵌入式]
恩智浦GreenBox开发平台加速推动混合动力汽车和电动汽车应用
恩智浦半导体(以下简称“恩智浦”)宣布推出GreenBox汽车电气化开发平台。GreenBox可以帮助汽车制造商和供应商利用恩智浦基于Arm Cortex技术的S32汽车处理器多核平台,实施下一代混合动力汽车和电动汽车应用的早期开发。 随着全球对汽车排放标准的限制监管日益加强,燃油经济性指标更加严格,传统汽车制造商和新兴企业都承受着很大的压力,必须尽快向消费者推出电动和混合动力汽车。 GreenBox提供了一个高性能处理器平台,用于设计和测试新一代混合动力汽车和电动汽车的控制算法和能源管理任务。 GreenBox是恩智浦新一代S32电气化MCU的开发平台之一,属于S32汽车处理器平台的一部分,旨在打造一个安全无忧的容错
[半导体设计/制造]
奔驰最新燃料电池混合动力型大巴即将面世
德国戴姆勒(Daimler)将在2009年6月于奥地利维也纳举行的“World Congress and Mobility & City Transport Exhibition”上,发布奔驰品牌的燃料电池混合动力大巴“Citaro FuelCELL Hybrid”。 该公司于1997年发布了世界首款配备燃料电池系统的试验大巴“NEBUS”。此次开发的Citaro FuelCELL Hybrid是NEBUS的延伸,该车吸收了配备燃料电池系统的“Fuel Cell Citaro”和“Citaro G BlueTec Hybrid”的柴油混合动力系统技术要素。与Citaro G BlueTec Hybrid共享装有轮毂电
[汽车电子]
日产推出的混合动力电池
今天东芝发布了日产和三菱要在小型的车上使用东芝的 SCIB 的电芯来做混合动力,按照目前原有的 Note 用松下的 HEV 电芯再到在中国本土化使用欣旺达的电芯,日产在混合动力方面也储备了三家不同的电芯供应商。在我们关注 BEV 拓展的过程中,日系持续推进 HEV 的功率型锂电化需求也越来越多了。本文对日产使用的这个路线做个整理。 01 在微型和小型车上使用的 SCiB 电池 这次日产和三菱做的车,都是微型车,有点像之前的 Fiat500 的小型混动系统,说是混动其实整体系统是中混,应用在日产的 ROOX 及 ROOX Highway STAR 车型、三菱的 eK X space 和 eK 车型。这个 SCiB 锂离子电池
[嵌入式]
日产推出的<font color='red'>混合动力</font>电池
如何优化汽车 HVAC 设计,以在持续增长的混合动力汽车 和电动汽车市场保持优势
如何优化汽车 HVAC 设计,以在持续增长的混合动力汽车 和电动汽车市场保持优势 随着混合动力汽车 (HEV) 和电动汽车 (EV) 的数量在全球范围内持续增长,汽车研发人员也在不断创新以保持优势。混合动力汽车/电动汽车动力总成系统差异化历来就是重点关注领域,而现如今,混合动力汽车/电动汽车热管理或加热、通风和空调 (HVAC) 系统差异化对于市场佼佼者而言亦是不容忽视的领域。热管理系统消耗的功率在混合动力汽车/电动汽车中排名第二(仅次于动力总成系统),会直接影响续航里程。 数十年来,内燃机 (ICE) 一直在为汽车及其 HVAC 系统提供动力。在混合动力汽车/电动汽车中,由于尺寸限制或不使用内燃机,需要额外引入两个元件
[汽车电子]
如何优化汽车 HVAC 设计,以在持续增长的<font color='red'>混合动力</font>汽车  和电动汽车市场保持优势
μC/OS-II在S3C44BOX处理器上的移植
    μC/OS-II 功能强大,支持56个用户任务,其内核为占先式,支持信号量、邮箱、消息队列等多种常用的进程间通信机制,现已成功应用到众多商业嵌入式系统中,是一个成熟稳定的实时内核。与大多商用RTOS不同的是, μC/OS-II 公开所有的源代码,90%的代码使用标准的ANSI C语言书写,程序可读性强、移植性好;同时它可免费获得,即使商业应用也只收取少量的许可费用。因此,对 μC/OS-II 实时操作系统的学习研究、开发、应用具有重要意义。       Samsung S3C44B0X微处理器是三星公司专为手持设备和其它嵌入式应用提供的高性价比的微控制器解决方案。它使用ARM公司的16位/32位RISC结构,内核
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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