您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > μCOS-Ⅱ在船用电控柴油机监控系统中的移植
基于μC/OS-Ⅱ的船用电控柴油机监控系统软件开发方红庆,龚元明,吴长水上海工程技术大学汽车工程学院,上海市201600[摘要]:船用电控柴油机监控系统集成了数据监控、声光报警、数据通讯、速度控制等功能,应用层的任务繁多,其对实时性的要求参差不齐,简单的前后台系统难以满足任务调度的需要,因此,应用了第二代嵌入式操作系统μC/OS-Ⅱ对各应用层任务进行调度。将监控系统软件分为硬件抽象层、操作系统层、应用层。使用英飞凌单片机XC2267M开发该控制系统;对应用层任务进行分类封装并对其进行优先级划分;使用μC/OS-Ⅱ操作系统对各任务进行调度。实验证明,报警和控制功能能快速响应,数据通讯误码率低。关键词:μC/OS-Ⅱ操作系统;柴油机ECU;监控系统;软件开发SoftwaredevelopmentofmonitoringsystemofmarineelectroniccontroldieselenginebasedonμC/OS-ⅡHongqingFang,YuanmingGong,ChangshuiWu(CollegeofAutomotiveEngineering,ShanghaiUniversityOfEngineeringScience,Shanghai201620,China)[Abstract]:Marinedieselenginemonitoringsystemintegratesthedatamonitoring,alarm,datacommunicationandcontrolthespeedfunctions.Thetaskoftheapplicationsissomuchandtherequirementsofreal-timeunevenissodifferentthatthebeforeandaftersystemisdifficulttomeettheneedsoftaskscheduling.Therefore,theapplicationofthesecondgenerationembeddedoperatingsystemμC/OS-Ⅱisusedontheapplicationlayertaskscheduling.Themonitoringsystemisdividedintohardwareabstractionlayer,operatingsystemlayerandapplicationlayer.DevelopthecontrolsystemusingInfineonMCUXC2267M;onapplicationlayertaskofpackagesortingandprioritizationofthe;useUCOSIIoperatingsystemschedulingofeachtask.Experimentalresultsshowthatthealarmandcontrolfunctionscanbefastresponse,andtheerrorrateofdatacommunicationislow.Keywords:μC/OS-Ⅱoperatingsystem;dieselengineECU;monitoredcontrolsystem;softwaredevelopment引言柴油机广泛应用于常规动力潜艇、中小型水面舰艇、各种军辅船特种舰艇的主动力、大中型水面舰船的巡航动力和电站动力[1]。目前,我国舰船动力柴油机大多采用功能单一的电子控制系统,自动化水平低、功能简单,缺少智能控制、监测保护、故障诊断、完善的安全保护等功能,使舰船动力装置的经济性、动力性、可靠性和可维性与国际先进水平有较大差距,难以满足新一代舰船动力的控制与性能要求。并且柴油机的电控设备更新换代速度越来越快。为保障舰船上柴油机运行安全,监控柴油机的排放性能和提高舰船的自动化水平,快速高效的研发兼有监测、控制、报警功能的船用柴油机监控系统具有十分重要的意义[2]。舰船柴油机监控系统的意义在于监控和安保。出现故障需及时报警,船速控制功能响应迅速,通讯需要准确无误并且实时性好。在前人的研究和开发基础上,对该系统的软件进行了进一步的优化设计。将应用层的软件进行详细的功能分类,将不同的功能进行模块封装,然后把每一个模块作为一个任务并指定其优先级,使用实时性较强的μC/OS-Ⅱ操作系统作为任务调度机制,使用英飞凌芯片作为开发平台,系统的实时性和开发效率得到了极大的提高。1船用电控柴油机监控系统总体设计船用电控柴油机系统主要由柴油机ECU、机旁监控系统、远程监控系统三大系统组成。三大系统由CAN总线进行通信,其总体结构如图1所示。系统中,柴油机ECU除了负责原柴油机的正常工作外,还需要向机旁监控系统和远程控制系统发送数据报文,这些报文包括机油进机温度、中冷进气压力、中冷进气温度、燃油温度、大气压力、排气温度、大气温度、各缸排气温度等信息。柴油机ECU也需要接收来自机旁或者远程监控系统的控制报文信息,并根据这些信息对柴油机发出相应的控制指令。机旁监控系统和远程监控系统是两个功能基本相同的系统,都具有监测、控制、保护、报警等功能。需要检测的数据和系统的当前状态都能够在机旁监控系统和远程监控系统的屏幕上显现。机旁和远程监控系统的屏幕显示界面如图2所示。图1船用电控柴油机监控系统总体结构船用电控柴油机监控系统的机旁控制系统安装在柴油机旁,操作人员可在机旁对柴油机进行控制。机旁控制系统主要实现以下功能:(1)数据采集功能。通过霍尔传感器采集柴油机曲轴信号齿齿间中断时间得到柴油机转速;采集发动机的机油进机压力和淡水出机温度等工作参数。也能够通过CAN总线获得其他的发动机数据。(2)数据显示功能。将来自柴油机ECU采集的数据和机旁监控系统本身的采集的数据实时显示在液晶屏上;将ECU上电状态信息、发动机运行状态信息、主控状态(由近机旁主控还是由远程主控)信息、越控状态(越控是否报警)信息、柴油机六缸排温信息实时显示在液晶屏上。(3)操作控制功能,通过监控系统机体上的按键控制柴油机启动、停止、加速、减速等。(4)监测与报警功能,实时监测柴油机运行工况,出现异常进行声光报警,并显示故障信息。(5)参数修改功能,将需要修改的参数永久写入单片机。远程控制系统的功能和机旁控制系统的功能相同,故后面涉及到的内容针对的是机旁控制系统。2硬件抽象层监控系统软件划分为硬件抽象层(底层)、操作系统层和应用软件层。硬件抽象层主要船用电控柴油机ECU远程控制系统ECU远程控制系统ECU屏幕显示开关控制系统保护声光报警对硬件资源进行封装并向操作系统层和应用软件层提供接口;操作系统层主要完成对应用层任务进行合理的调度;应用软件层主要对任务经行分类封装并实现具体的功能[3]。图2机旁和远程监控系统屏幕显示界面监控系统使用英飞凌单片机XC2267M进行开发。该单片机拥有模数转换ADC模块、串行通信USC1模块、CAN通信MultiCAN模块、实时时钟RTC模块、捕获比较CCU6模块等,符合该监控系统软件设计的要求。监控系统硬件抽象层主要对系统的输入输出做硬件的封装,并向上层提供接口[4]。(1)转速信号采集。霍尔传感器感应柴油机曲轴信号盘的转动产生方波信号,并将信号送到CCU6模块的输入通道中。利用CCU6捕获机制捕获相邻两次中断的时间间隔即可计算出发动机转速。(2)模拟信号采集。需要通过传感器获得机油进机压力和淡水出机温度两个参数。开启ADC转换通道并且转换完毕后,利用ADC0模块本身的函数ADC0_uwGetResultData()获取结果寄存器中的数据,然后,清除结果结存期中的值,等待下一次转换结果的到来。(3)串口通信。英飞凌芯片由USIC模块负责串行通信。监控系统中,串行通信用于屏幕按键事件的响应。(4)CAN通信。英飞凌有专门的MultiCAN模块用于CAN通信。机旁控制系统ECU将自身采集的数据或接收的状态参数和命令输出到屏幕显示,并将有关的控制命令输出到执行器:如终端控制元件、断油电磁阀等。机旁监控系统使用20个报文对象,共用一个报文节点。其中,报文对象1~9负责接收来自柴油机ECU的报文信息;由报文对象14~17负责接收来自远程监控系统ECU发送的报文信息;由报文对象11~13以及报文对象18负责向柴油机ECU和远程监控系统ECU发送报文信息。接收到的报文信息主要为需要实时监控的数据以及发动机的状态信息。3基于μC/OS-Ⅱ的应用层软件设计3.1μC/OS-Ⅱ简介基于μC/OS-Ⅱ的多任务应用软件设计需要将软件按功能划分为不同的任务,每个任务分配有唯一的优先级[6]。μC/OS-Ⅱ系统运行时依靠CPU在多个任务之间进行转换和调度。多任务操作系统很像前后台系统,但后台有多个任务处于就绪状态。CPU只有一个,轮番服务于一系列任务中的一个,即每次只处理后台中优先级最高的任务[7]。这种多任务运行机制使CPU的利用率得到最大限度的发挥,并使应用程序模块化。因此,在实际应用中,可以将复杂的应用软件划分为不同的任务,使每个任务相对独立,简化了程序的逻辑结构,从而大大降低了开发人员的工作难度[8]。根据监控系统的复杂程度,使用了一种基于优先级抢占式的小型实时操作系统。该操作系统共有8个组优先级,每个组优先级有8个子优先级,这两个优先级组成的十六进制位共同构成了一个任务优先级。μC/OS-Ⅱ巧妙地通过构造一张就序表。并使用查表法来实现对最高优先级的就绪任务的查找,这样可保证查找时间与应用程序中的任务数无关,即以空间换时间,确保查找时间的确定性,保证内核的实时性并提高任务切换效率。该操作系统最多可以处理64个任务,能满足系统的要求。3.2系统任务的划分为了充分发挥操作系统强大的任务调度功能,需要将应用层划分为功能相对独立、模块大小适中的任务模块。这些任务在调度程序的管理下,轮流获得CPU资源,任务属性的设置,运行以及切换时间直接影响系统的性能。任务功能太多,任务数就少,不适合模块化设计,也不能充分利用操作系统的功能;任务功能太小,任务数多,任务频繁切换,CPU开销大,应用程序的CPU占有率低。任务的划分需要遵循功能独立和大小适当两个原则。划分标准主要从任务完成的功能、执行效率、实时性以及优先级四个方面来考虑。图3μC/OS-Ⅱ调度的任务船用柴油机监控系统的功能较多但每个功能对应的内容相对较少,必须将功能进行分类,并将实时性要求相近的功能放入同一个任务。在任务的划分时就应该考虑任务的优先级,任务与优先级一一对应。为保证监控系统的报警特殊功能要求,并考虑监控系统的任务执行逻辑顺序。必须以系统报警的需求为最高优先级;以按键处理和发动机的数据采集为较高优先级;以数据发送为较低优先级;以数据屏幕实时显示为最低优先级。在本柴油机监控系统中,操作系统能够调度的任务如图3所示。屏幕按键包括“暂停”键、“自检”键、“消音”键、“目标转速键”、“步长”键,如图2所示。屏幕按键通过串口和机旁监控系统ECU进行通信。这些按键使用频率较小,但实时性要求较高,任务优先级设置得应稍高一些。当ECU串口有屏幕按键中断时,立即将相应的任务送入操作体统后台运行。设定任务号为0x15,组优先级为1,子优先级为5。用虚拟键盘对步长和目标转速进行编辑时,有四个步骤。分别为响应按键、显示虚拟键盘、编辑虚拟键盘、虚拟键盘消失并显示数字。可以将这四个步骤归纳为按键响应和屏幕显示两个事件,并定为任务八,任务号为0x13。任务由按键响应触发,也就是按键相应中断时,将屏幕显示任务送入操作系统后台运行。由于自检时,发动机必须处于停机状态,此时屏幕以一定的频率更新已经设定的数据,检查屏幕的相应情况和通信情况,数据处理量较大,可单独作为一个任务,即第九个任务,任务号为0x17。数据每更新一次,屏幕也需要将更新后的数据显示一次,将此任务定为任务十,任务号为0x20。机箱按键包括“主电源”键、“ECU电源”键、“启动”键、“停机”键、“机旁/远程”键、“降速”键、“升速”键、“报警”键、“紧急停机”,机旁按键
本文标题:μCOS-Ⅱ在船用电控柴油机监控系统中的移植
链接地址:https://www.777doc.com/doc-2832108 .html