[导读]混联式混合动力系统的子系统众多,其中整车控制器作为实现驾驶员驾驶需求和能量安全的管理系统,需要协调发动机、扭矩、电机和电池的功率在不同工况下的合理分配,实现制动能量回馈,并控制外围设备(如空调、灯光),
混联式混合动力系统的子系统众多,其中整车控制器作为实现驾驶员驾驶需求和能量安全的管理系统,需要协调发动机、扭矩、电机和电池的功率在不同工况下的合理分配,实现制动能量回馈,并控制外围设备(如空调、灯光),以达到最佳的节能排放效果。系统任务的复杂性和强电磁干扰环境都对整车控制器的实时性和可靠性提出了重大挑战,传统的单任务循环式的程序控制模式难以满足需求,本文采用了开放源码的嵌入式操作系统μ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(),最后开始运行多任务,获得优先级最高的任务的指针,根据这个指针从任务堆栈中恢复所有寄存器,恢复完后执行中断返回,运行就绪态任务。[!--empirenews.page--]
(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系统移植过程,优化了系统软件设计,充分满足了系统的需求。经实车试验测试取得了很好的效果。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
(全球TMT2021年9月22日讯)汽车流体系统技术供应商TI Fluid Systems(TIFS)宣布了三位高管级任命,Hans Dieltjens将于2021年10月1日就任总裁兼首席
关键字:
汽车
系统技术
TI
整车控制器(VCU),电动汽车的大脑,相当于电脑的Windows,手机的Andrio。作为电动汽车上全部电气的运行平台,它的性能优劣,直接影响其他电气性能的发挥,是整车性能好坏的决定性因素之一。
关键字:
整车控制器
电动汽车
混联式混合动力系统的子系统众多,其中整车控制器作为实现驾驶员驾驶需求和能量安全的管理系统,需要协调发动机、扭矩、电机和电池的功率在不同工况下的合理分配,实现制动
关键字:
实时操作系统
混合动力
驱动开发
整车控制器
电池管理系统(BMS)作为实时监控、自动均衡、智能充放电的电子部件,起到保障安全、延长寿命、估算剩余电量等重要功能,通过一系列的管理和控制,保障电动汽车的正常运行。据
关键字:
安全性
系统技术
锂电池
驱动开发
μC/OS-II功能强大,支持56个用户任务,其内核为占先式,支持信号量、邮箱、消息队列等多种常用的进程间通信机制,现已成功应用到众多商业嵌入式系统中,是一个成熟稳定的
关键字:
移植
处理器
μC/OS-II
S3C44BOX
μC/OS-II是美国人Jean Labrosse编写的一个免费的、源码公开的嵌入式实时内核。对于开发计算机嵌入式应用产品的技术人员来说是一个实用价值很高的实时嵌入式操作系统 E
关键字:
CAN总线
μC/OS-II
MESSAGE
CPU
μC/OS-II在ARM平台的移植是一个重要的学习过程,有助于提高对RTOS的认识与理解,从而提高嵌入式工作者的理论与技术水平。μC/OS-II是一个小的实时内核,源代码公开,有
关键字:
ARM
移植
μC/OS-II
C/OS-II
25日,在青岛举行的CMS主动柔性智能充电系统新品发布会上,由500余位专家教授、政府领导、整车企业、电池及零部件企业、充电和服务运营商等共同见证,CMS主动柔性智能充电技
关键字:
智能充电系统
系统技术
充电技术
防护
1 引言μC/OS-II是专门为嵌入式系统应用而设计的嵌入式实时操作系统,人们在学习μC/OS-II时,一开始往往在基于PC机的DOS或 Windows环境下进行分析与研究。在这种环境
关键字:
移植
PC机
μC/OS-II
C/OS-II
作为基于摄像头的驾驶辅助系统(DAS)的技术领导者,麦格纳国际今日宣布,将为第二代福特S-MAX配备前视和后视摄像头系统。这是DAS技术首次在非高端车型得到综合应用,是其应用
关键字:
电子
系统技术
视觉系统
摄像头
电动汽车的发展包括电动汽车以及能源供给系统的研究和开发,其中能源供给系统是指充电基础设施,供电、充电和电池系统及能源供给模式。电动汽车充电技术作为一个新的科技领
关键字:
充电系统
电动汽车
系统技术
监控系统
0引言工业色谱仪是是一种大型流量分析仪器,主要用于石化、炼油、钢铁等行业。针对色谱仪的研究也有很长的历史[1],而在色谱仪中,对压力的检测和控制是至关重要的。在文献
关键字:
压力测控
测控系统
μC/OS-II
移植
引 言μC/OS-II操作系统是建立在微内核基础上的实时操作系统,抢占式多任务、微内核、移植性好等特点,使其在诸多领域都有较好的应用。在μC/OS-II 2.83及其以后的版本
关键字:
软件定时器
μC/OS-II
时钟
控制
电动轨道车控制系统一般分为多个子系统,子系统受一个主控器控制。这样的结构设计繁琐,编程复杂。采用μC/OS-III操作系统、STM32F103RC微控制器、12864液晶屏、PVC按
关键字:
STM32
控制器设计
μC/OS-II
OS-III
μC/OS-II操作系统是一种抢占式多任务、单内存空间、微小内核的嵌入式操作系统,具有高效紧凑的特点。它执行效率高,占用空间小,可移植性强,实时性能良好且可扩展性强。
关键字:
处理器
移植
操作系统
μC/OS-II
近日,由中国南车株洲所自主研制的新一代列车网络控制系统(dtecs-2)产品,首次亮相国际电工委员会(iec)在德国举办的该项技术互联互通测试现场,并通过国际专家组测试考核。专家认为,该项技术整体难度高,系统设计复
关键字:
通信
网络控制系统
系统技术
TE
摘要:以DSP为信心的嵌入式系统具有实时性、利于并行处理等优点,这也是嵌入式系统中的重要技术。本文在讨论嵌入系统基本技术特征的基础上,比较详尽地介绍了DSP嵌入式系统
关键字:
DSP
器件
嵌入式系统
系统技术
1 引言电力参数的测量与监控对于电能管理的科学化水平有着至关重要的影响,于是研制了各种电力监测仪器。随着电子技术的发展,微型机、单片机以及DSP处理器的处理速度大大提
关键字:
监测仪
电力参数
μC/OS-II
MDASH
本文介绍一种基于 ARM9 的激光测距系统的硬件原理设计和软件设计方案。以 ARM9 处理器为控制核心,采用相位法激光测距技术,首先用正弦信号调制半导体激光器的发射激光,然后将被测物反射的激光用光电探测器转换为电信号,采...
关键字:
嵌入式
激光测距系统
μC/OS-II
C/OS-II
随着接入网(AN)范围内多种传输媒介、多种接入配置和业务发展的需要,ITU制定了V5.1接口的G.964建议和V5.2接口的G.965建议。这些标准的制定使得交换机可以通过此接口支持多种
关键字:
接口
μC/OS-II
定时器
TIMER