- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于WindML语言的虚拟仪表设计
基于WindML语言的虚拟仪表设计
摘要: 随着计算机技术的不断发展,全电车辆自动化领域对综合电子信息系统的虚拟仪表显示的要求越来越高。用户希望拥有稳定的性能、友好的界面、丰富的监测功能、特定的控制功能和优良的性能价格比。在研究了多种综合电子信息系统的基础上,本文开发了一种基于CAN总线车辆综合电子系统中的虚拟仪表终端,并详细介绍了其在基于VxWorks系统下使用WindML包的软件开发。该系统在实际工程中得到应用,并取得了良好的效果。
关键词:全电车辆;车辆综合电子系统;虚拟仪表; VxWorks;WindML
1系统中虚拟仪表的设计方案
在全电战斗车辆中,虚拟仪表作为综合电子信息系统的重要组成部分,代替现有机电仪表,并可以实现定位导航信息、故障诊断信息、地理信息、态势信息、时间统一信息、环境信息等的显示;同时,作为网络中的节点和不同子网间的网关,可以实现各个功能设备之间,车长、炮长、驾驶员之间信息的交互和共享。虚拟仪表和各个功能模块一起以总线网络实现信息的共享和协调控制,从而实现信息系统以至整车的数字化、网络化和自动化。
1.1虚拟仪表的主要功能
本虚拟仪表位于基于CAN总线的车辆综合电子信息系统中,即作为驾驶员主控显示装置,同时也是指挥火控CAN总线子网和车辆测控CAN总线子网的网关。虚拟仪表主要完成的任务是:对各测控模块向车辆测控CAN总线子网发送的所有报文进行筛选,并且对有效的报文进行分析和判断,提取需要的数据信息,此后以图形图像的方式将结果显示在LCD屏上,在检测到报警信息或遇到突发情况时显示警示信息。同时,与车长计算机进行通信,传递车速、燃油量、供电状况、车辆的异常情况等车况,并显示车长调度指挥信息。虚拟显示模块基本构架如图(1)所示:
1.2虚拟仪表的组成
虚拟仪表硬件由控制单元(计算机)、CAN接口卡、视频采集卡、显示终端组成,其软件基于VxWorks操作系统设计,主要完成对CAN控制器的操作、接收报文的处理和虚拟仪表面板设计等工作,其中图形界面通过WindRiver公司的WindML库实现。
2.VxWorks操作系统下虚拟仪表软件设计
2.1通信协议
系统采用CAN2.0总线进行数据通信,以500kbps的波特率和标准帧格式SFF(Standard Frame Formats)进行报文传递。按照SFF的格式规定,ID号(报文标示位或信息识别码)为11位。[1]
CAN控制器的接收缓冲区一旦收到报文,就会产生消息。消息处理函数将根据报文进行分支处理。
2.2软件设计
2.2.1 任务调度
实时嵌入式操作系统VxWorks提供的多任务机制中对任务的控制,采用了优先级抢占和轮转调度机制,充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要求,为应用的开发留下更大的余地。
同时,VxWorks还提供了丰富的任务间的通信机制。该系统中任务与任务之间总是共享一块缓存,属于一种生产者和消费者的关系,因此选择了用一对互斥信号量来完成任务间的互斥和同步。同时根据实时性对任务的要求不同,对生产者和消费者的等待策略(不等、定时等、永久等待)也各不相同。这样既能保证数据流的正确性和连续性,又不至于让系统中的大多数任务处于空闲状态,保证了系统的高效和准确。
在任务设计的过程中,遵循以下针对实时设计的规范与评估标准:任务划分符合H.Gomma原则;任务占用的代码体要么被终止,要么死循环;任务要自杀,不要他杀;避免破坏程序设计结构化; ISR要短、精、直接硬相关,不调用可能阻塞中断的系统服务;避免死锁。
2.2.2 接收报文的处理
对于每个测控模块发送来的报文,软件设计时都分别编写了相应的处理子程序。在每个子程序中,都根据对应测控模块的数据包的格式来提取各自需求的信息,并指定相应的显示形式。
2.2.3 查错纠错处理
在完成以上基本设计任务之后还需考虑CAN控制器通信出错的情况以提高系统的稳定性。CAN控制器在报文的收发过程中可能会出现5种类型的错误:位出错、填充出错、循环冗余码出错、报文格式出错和应答出错,而在某些情况下主机也会要求复位CAN总线控制器,甚至需要对CAN控制器进行重新初始化。可以通过读取CAN控制器的出错计数器值进而查询出错捕捉码来获取详细的错误信息,再根据具体的错误类型进行相应的纠错处理。
2.2.4 虚拟仪表显示设计
虚拟仪表图形界面采用WindML设计。WindML(Wind Media Library) 是基于VxWorks的多媒体应用的支持链接库。主要提供了对芯片、输入、输出设备、音频、视频、帧缓冲器等的开放的应用程序接口(API)。为在VxWorks操作系统下开发的软件提供基本图形、视频和音频方面的操作。由于其可以在VxWorks操作系统上以较低的系统开销实现丰富多彩的图形界面,并有较高
文档评论(0)