您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 基于OSEKTurbo的强电保护系统软件开发--冯春
基于OSEKTurbo的强电保护系统软件开发作者姓名:冯春东风电动车辆股份有限公司研发部【摘要]】强电保护系统负责混合动力汽车电器安全方面的检测与管理,任务多,功能较多,程序复杂,各种功能的实时性要求高。为了满足设计要求,我们在Codewarrior软件开发平台上嵌入了OsekTurbo实时操作系统,对强电保护系统进行开发,目前已应用到混合动力轿车及客车上。【关键词】强电保护系统OSEKTurbo操作系统混合动力汽车DevelopmentsoftwareofheavycurrentprotectionsystembasedonOSEKturboFENGChunDongfengElectricVehicleCo.,LTD[Abstract]:Heavycurrentprotectionsystemtakechargeofhybridvehiclesafetytestandmanagement.Ithasmanytaskandhashighreal-timerequirement.Inordertomeetthenecessaryofdesign,weembedOsekTurborealtimeoperationsysteminsoftwaredeveloptoolCodewarrior.Ithasbeenusedinhybridcarandhybridbus.Keywords:heavycurrentprotectionsystem,OSEKTurbo,realtimeoperationsystem,hybridvehicle1前言迅速发展的电动汽车,无论是纯电动汽车、混合动力电动汽车车及燃料电动车,其共同的特点是,电气系统的高电压和大电流。与传统汽车的电气系统相比,有了明显的变化:电压等级高、用电功率增大、电缆长度增加、电气附件增多,系统复杂性明显增强。对电动汽车电气系统的可靠、安全控制和保护是重要的新课题。强电保护系统的研制可以对电动汽车电气系统实现安全控制与保护。目前,电动汽车强电保护系统有多种分类,国内已将电动汽车的电气系统的控制与保护联合起来研究,可以提高保护的可靠性,但采取的是硬件电路的实现,缺乏控制的灵活性和通用性,无法实现故障的诊断、记忆,工作状态和故障信息的上传(通信)。我们研制的通用型强电保护系统,只需更换电源模块和驱动继电器,可以适用于不同类型的电动汽车,具有高压电路通、断控制,电容器充电控制,车辆上电的逻辑控制,车用电器控制(水泵、发动机水箱风扇、空调、转向泵、电池组电扇电源等),漏电检测与保护,CAN通讯功能,故障诊断、统计和上报功能。由于该系统是一个多任务,实时性要求较高的系统,因而采用实时操作系统也就非常必要。下面就具体介绍OSEK/VDX协议,OSEKTurbo架构及规范,OSEKTurbo与软件开发工具Codewarrior集成配置方式,强电系统软件开发。2OSEK/VDX协议为解决汽车电子控制系统的扩展性、移植性差的问题,1993年德国汽车工业界联合推出了汽车电子的开放式系统及接口-OSEK(OpenSystemsandtheCorrespondingInterfacesForAutomotiveElectronics)规范,旨在为汽车上的分布控制单元提供一个开放结构的工业标准。1994年法国汽车工业界的相似规范VDX(VehicleDistributedExecutive)和OSEK规范合并,从而形成OSEK/VDX规范体系。OSEK规范从实时操作系统(Real-TimeOperatingSystem,RTOS)、软件接口、通讯和网络管理等方面对汽车电子控制软件开发平台作了较为全面的定义与规定。尽管该规范还处在不断完善中,但它所提出的一整套解决方案则是未来汽车电子软件开发的发展方向。目前OSEK规范正在申请ISO国际标准,国际上也有一部分公司推出了符合OSEK规范的操作系统并得到了OSEK委员会的认证[1]。3OSEKturbo简介Metrowerks公司的OSEKturbo满足最新的OSEK/VDX开放系统的标准,它支持8、16、32位微处理器,它的设计主要是为了满足性能的需求,同时在稳定性和软件质量(按CMM五级标准研制)方面在业界享有极高的声誉,是目前市场上实现OSEK标准使用最为广泛的实时操作系统之一。基于OSEK/VDX协议的汽车控制系统平台由以下几部分构成,即:通信模块COM(Communication),网络管理模块NM(NetworkManagement),实时操作系统RTOS(RealTimeOperatingSystem),通用实现语言OIL(OSEK/VDXImplementationLanguage)。要求运行在该平台上的应用软件具有可移植性、可扩展性和可重用性。为此OSEK/VDX提出了基于标准化接口和协议的模块化软件设计规范。其中OS为操作系统的特性提供了一组公用的API函数,操作系统的配置也可以通过OSEKOIL语言实现。COM为通信网络中的数据交换提供了标准的接口和协议。NM为监视网络的流量,提供了一组标准的功能函数,以保证网络的安全性和可靠性。OIL为操作系统和通信的实现提供系统的配置和对象描述。ORTI(OSEKRunTimeInterface)提供对调试接口的定义,OSEKtimeOS(OSEKtimeOperatingSystem)为分布式应用定义了一个触发操作系统的时间。图1给出了OSEK/VDX的层次模型[2]。图1OSEKOS的OSEK/VDX层次模型应用程序OSEK/VDX网络管理数据链路层总线通讯硬件交互层网络层OSEKCOMOSEK操作系统OSEK/VDX具体包含的服务有任务管理(TaskManagement),调度(Scheduler)、ISR管理(ISRManagement)、资源管理(ResourceManagement)、计数器(Counter)、警告(Alarms)、事件(Events)、通信(Communication)、错误处理(ErrorHanding)、钩子例程(HookRoutings)。具体见图2[2]。图2OSEK/VDX所包含的服务图3给出了基于OSEK应用的一般开发流程。图3基于OSEK应用的一般开发流程OSEK编译器器应用程序构造文件(OIL)可执行文件系统生成器系统文件编译器链接器OSEKOS源代码用户源代码“C”代码“C”代码“C”代码库库4OSEK技术规范实时操作系统OSEK规范提供了一系列服务和处理机制。操作系统作为并发应用程序的受控实时执行基础,并且提供应用程序在处理器上的开发环境。OSEK/VDX操作系统的结构区分了三种处理级:中断级,操作系统行为逻辑级和任务级。其中中断级级别高于任务级,除了处理级别管理之外,操作系统还提供了任务管理、调度、事件管理(如用于任务间通讯的邮箱、消息队列等)、内存资源管理、报警和出错处理等诸多功能。OSEK规范定义了两种不同的任务类型,即基础任务(basictask)和扩展任务(extendedtask)。基础任务不能有等待的状态,它适合于那种一运行就全部执行的任务。基础任务需要的资源少并且能够加速执行。扩展任务通常是一次激活并且能响应不同的事件。所有的任务有一个固定的优先级,而且这个优先级在运行状态下是不能改变的。每个任务的抢占权都是单独设定的。描述保护性访问共同资源的优先级最高协议(PCP)导致了稳定的实时行为。信号量的使用将使死锁或者优先级翻转这样的严重后果不会发生。事实上,仅仅用基础任务构造应用程序就可以避免在每一次设计死锁的发生。汽车应用程序的任务行为主要被临时的请求或者同步事件触发。因为效率的原因,OSEK警告服务直接映射计数器,而不需要引入计数器API。计数器通常都是和硬件时钟连在一起,硬件时钟可以减少运行时间超前。可以通过中断处理同步事件。定义了不同级别的中断来协调中断运行及操作系统资源分配的问题。级别1情况下硬件中断,不被操作系统调用;级别2情况下能被操作系统调用,但要求附加计算的时间。5OsekTurbo的安装与配置需要安装的开发工具:CodeWarriorDevelopmentStudioForMotorolaHC(S)12Microcontrollersv3.1OSEKturboOS/HC12v2.2.2build2.2.1.59OSEKBuilderv2.3安装步骤:使用默认路径安装CodeWarriorDevelopmentStudioForMotorolaHC(S)12Microcontrollersv3.1.在CodeWarrior的安装路径下添加一个新的目录osek,如.C:\ProgramFiles\Metrowerks\CodeWarrior\osek安装OSEKturboOS/HC12v2.2.2build2.2.1.59.在安装界面出现“ChooseDestinationLocation”,你需要定义下面的路径SharedComponents:{CodeWarrior的安装路径}osek例如.C:\ProgramFiles\Metrowerks\CodeWarrior\osekTargetdirectory:{CodeWarrior的安装路径}osek\ost12e.g.C:\ProgramFiles\Metrowerks\CodeWarrior\osek\ost12在c盘新建文件夹flexm,把Licence文件放入,注意该文件是CodeWarrior与OsekTurbo的复合Licence文件,原来CodeWarrior的Licence文件需删除,否则容易出现程序紊乱。完成安装。完成安装后的CodeWarrior界面中,我们可以看到OsekTurbo的相关文件已嵌入。如图4所示图4OsekTurbo实时操作系统嵌入CodeWarrior的软件开发界面6强电保护系统软件开发6.1.需求分析使用强电保护系统负责混合动力汽车电器安全方面的检测与管理,需要接收来自电机控制器、电池管理系统等混合动力汽车上各系统传来的CAN报文,从中提取出故障信息,据此对整车上电过程、故障处理过程进行管理,同时将故障相关信息记录到EEPROM,便于事后进行故障分析与诊断。RS232实时通讯,将EEPROM的信息传递到上位机,开发相应的上位机程序,输出为EXCEL格式,进行相关信息分析处理。根据上述功能需求分析,我们可以划出强电保护系统功能模块图。图5强电保护系统功能模块图6..2osdef.oil文件设计需求分析结束后,根据强电保护系统功能模块图可以设计出实时操作系统配置所需的任务、中断、报警、周期等参数,既完成osdef.oil文件的设计,具体步骤如下:双击图4CodeWarrior界面中Source文件夹下的osdef.oil,进入OSEKBuilder界面。在这里可以对系统中使用的任务(Task)、中断(ISR)、资源(Resource)、事件(Event)、计数器(COUNTER)、报警(ALARM)、操作系统(os)等进行设置,完成设置后点击G按钮进行编译即可。整个过程无需编程,把程序员从繁琐的操作系统底层编程工作中解放出来,也是osekTurbo比uCOS-II等其他实时操作系统使用方便快捷的原因。保存生成的osdef.Oil文件,如图6所示。OSEKTurbo操作系统AD采样CAN通讯模块故障处理模块上电流程及电器管理SCI通讯系统初始化图6OSEKBuilder主界面6.3osdef.oil文件的设计完成后,回到CodeWarrior开发界面,完成驱动及控制程序开发。6.4上位机程序开发,接收RS232发来的串口信息。我采用Delphi7.0软件开发了RS232串口数据接收、记录程序。Delphi是Borland公司推出的面向对象的可视化编程工具,它拥有功能强大的开发环境(IDE)和速度极快的编译器。该程序的界面如图7所示。点击“开始接收”按钮,可以采集下位机EEPROM中存储的故障信息。。图7上位机程序界面6.5上位
本文标题:基于OSEKTurbo的强电保护系统软件开发--冯春
链接地址:https://www.777doc.com/doc-2571161 .html