基于μC/OS-II的电动车电池管理系统设计
2 软件系统设计
软件系统设计包括系统软件设计和应用软件设计。系统软件设计的主要任务是实现μC/OS-II在LF2407上的移植;应用软件设计的主要任务是系统功能的实现。
2.1 系统软件设计
2.1.1 μC/OS-II简介
μC/OS-II是由美国人Jean Labrosse编写的一个嵌入式实时操作系统内核。它是一个基于优先级的、可移植、可固化、可裁剪、占先式实时操作系统,其绝大部分源码是用ANSI工字电感器 C编写的。μC/OS-II支持56个用户任务,支持信号量、消息邮箱、消息功率电感器队列等多种常用的进程间通信机制,现已成功应用到众多商业嵌入式系统中,其稳定性与可靠性已经得到检验。
2.1.2 μC/OS-II在TMS320LF2407上的移植
LF2407满足μC/OS-II移植的条件。TI公司提供的编译软件CCS也支持C语言与汇编语言混合编程。要完成移植的工作需要进行以下4个内容:
◇在OS_CPU.H中定义与处理器相关的常量、宏及数据类型。
◇调整和修改头文件OS_CFG.H,以裁减或修改μC/OS-II的系统服务,减少资源损耗。
◇编写C语言文件OS_CPU.C。
◇编写汇编语言文件OS_CPU.ASM。
上述工作完成后,μC/OS-II就可以运行了。
2.2 应用软件设计
2.2.1 系统多任务功能和优先级设计
根据电池管理系统的功能要求,将系统分为电压电流采集处理模块、温度采集模块、通信模块、系统监视模块和SoC计算模块等共8个任务和5个中断来实现。每个任务根据其实时性的要求并参照单调执行率调度法RMS分工字电感配一定的优先级。任务及中断的定义分别如表l、表2所列。
根据整车控制策略,CAN上电池状态数据每帧的刷新周期为20ms,故设置操作系统时钟节拍为20ms;相应地设置ADProsTask()、CANTXDTask()、SOCTask()和MoniTask()的执行周期均为20 ms;考虑到电池组的温度变化相对较慢,同时温度传感器DS18820的温度转换时间相对较长,设置TempTask()的执行周期为100ms;CANR电感器市场XDTask()和SCIRXDTask()的执行采用中断触发方式;SCITXDTask()由上位机的启动和停止信号控制执行,执行周期为40 ms。
应用软件设计的难点在于,可靠地设计固态继电器阵列(TLP296)的时序逻辑。由于TLP296存在最大4ms的打开和关断时间,因此必须设计死区时间,以确保在采集电池模块电压时,电池不会发生短路;同时还要保证在A/D转换之前,采样通道(即相应的TLP296)完全打开。所以利用了DSP的Timerl下溢中断配合系统时钟周期来有效地控制CPLD的时序。整体工作的时序逻辑如图3所示。
2.2.2 任务间的通信与同步
μC/OS-II提供了5种用于数据共享和任务通信的方法:信号量、邮箱、消息队列、事件标志及互斥型信号量。为了减少操作系统的开支,在电池管理系统应用软件设计中只利用了其中的邮箱作为任务间的通信手段,如图4所示。
电池管理系统的核心是以数据采集为基础的,所以ADProsTask()是其他任务的前提。通过ADC中断向邮箱1发消息就绪ADProsTask(),待其执行完后相应的数据保存和处理后向邮箱2发消息就绪其他等待数据的任务,其他任务按照优先级依次执行;温度采集和处理的任务独立进行;CAN接收任务和SCI任务是在相应的邮箱中得到消息后执行,消息也是由相应的中断服务程序发出。
结语
电池管理系统采模压电感器用了DSP+CPLD的结构,加之相应的抗干扰措施,具有性能高、可靠性强的特点。由于内嵌μC/OS-II,使程序的开发周期大大缩短,增强了系统的可维护性和扩展性,在实际的应用中取得了良好的效果。
利用FPGA实现高性能的罪犯抓捕系统由于高科技工具成为抓捕罪犯的武器中越来越关键的部分,因此执法机构和安全专业人员不断寻求更快更方便的数据收集和解读方式就不足为奇了。针对这一领域的应用越来越复杂,必须适应不断演变的要求,并把成本控制在机
如何设计一个合适的系统电源(上)对于现在一个电子系统来说,电源部分的设计也越来越重要,我想通过和大家探讨一些自己关于电源设计的心得,来个抛砖引玉,让我们在电源设计方面能够都有所深入和长进。Q1:如何来评估一个系统的电源需求Answe
[开关电源]求“ 开关电源实用技术--设计与应用 附图为 周志敏 周纪海 纪爱华 编著的 “ 开关电源实用技术--设计与应用(第二版) ” 封面截图求 该书的电子版 !非常感谢!附图满意回复+20PowerAnts 查看完整内容电源书(含硬件基础类),不应苟于某人写的,英文好的话就看原版,实在要看汉字版,就看八*九十年代的。 近一十几年新出的书,看点在于介绍新器件,安规,EMI. ...没人理电源书(含硬件基