• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > 技术文章 > 解析军事指挥系统中VxWorks下汉字显示技术

解析军事指挥系统中VxWorks下汉字显示技术

录入:edatop.com    点击:

  VxWorks 是美国 Wind River System 公司( 以下简称风河 公司 ,即 WRS 公司)推出的一个实时操作系统。Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似Microsoft Visual C,但是提供了更丰富的调试、仿真环境和工具。由于对实时性和可靠性的要求,现代军事指挥系统越来越广泛地采用嵌入式实时操作系统VxWorks其UGL组件提供了显示模式设置、标准输入/输出控制和点、线、面作图等函数,但没有直接提供完备的汉字显示解决方案,不支持汉字显示。

  1 VxWorks在军事指挥系统中的应用

  嵌入式系统是"控制、监视或者辅助装置、机器和设备运行的装置"(devices used to control, moNItor, or assist the operation of equipment, machinery or plants)。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

  将嵌入式系统内置到火控、战车、飞机、导弹以及卫星和舰船导航等各类武器系统和作战平台上的计算机系统。嵌入式计算机系统用于军事指挥控制和通信系统,军事国防历来就是嵌入式系统的一个重要应用领域。现在,各种武器控制(火炮控制、导弹控制、智能炸弹制导引爆装置)、坦克、舰艇、轰炸机等,以及陆海空各种军用电子装备、现代化的军事指挥系统等都可以看到嵌入式系统的影子。

  在实时嵌入式操作系统中,VxWorks以其高可靠性和高实时性得到了广泛的应用。VxWorks是一个运行在目标机上的高性能、可裁剪的嵌入式实时操作系统,具有专门为实时嵌入式系统设计开发的操作系统内核,它包括了进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等几部分。

  军事指挥系统中所显示战场信息如图1所示。

  2 VxWorks下汉字显示方案

  2.1 WindML基本功能

  WindML是由WindRiver公司提供的媒体库,其UGL组件提供了显示模式设置、标准输入/输出控制和点、线、面作图等函数,以及对芯片、输入/输出设备、音频/视频、帧缓冲器等开放的应用程序接口。

  WindML 2 特性 n 极小内存占用 n 从75KB 到150KB可变 n 容易移植到定制硬件上 n 高性能图形输出 n 直观的、完善的C API n 灵活的内存管理 n 事件路由 n 基本窗口创建 n ISO 8 位和UniCODe 16-位字体支持 n 带有抗混淆支持的AGFA 单型第三方字体引擎插件选项 n 多线程支持 n Alpha混合支持 n 视频叠加支持 n JPEG图像支持 n 用于Tornado II的VxSim模拟程序支持 要求 Tornado II VxWorks 5.4 今天的智能连接设备。

  WindML的主要功能有二维图形API、事件服务、区域和视窗管理、多媒体API和资源管理。其中,二维图形API是最常用的部分,事件服务程序用来处理输入设备的输入请求。它会把键盘、鼠标等输入数据转化为事件并加入应用队列;区域和视窗管理可以在界面上定义一个区域或多线程之间共享的窗口,以进行绘图操作;多媒体APl支持NTSC,PAL,SECAM等视频制式下DSP或混频器两种设备的音频输出,也支持JPEG图形格式;资源管理器是指常规的WindML资源、内存管理和驱动器注册等资源的建立、控制和删除。

  2.2 WindML字体驱动体系结构

  WindML字体驱动在WindML 2D API上提供了一个通用的抽象层,允许应用程序通过一个通用2D字体API库使用不同的字体引擎。通用2D字体API是提供给应用程序使用字体API的公共接口。字体驱动不同于VxWorks中的其他驱动,它不允许执行或使用任何图形驱动接口以下的程序,也就是说它不直接访问硬件,只访问系统所使用的图形驱动或间接通过UGL图形驱动结构来访问硬件。WindML字体驱动体系结构如图2所示。

  2.3 点阵汉字输出过程

  点阵汉字的显示是利用WindML的图形输出功能来实现的。设计开发中利用WindML对位图字符显示和双字节编码的支持,按照WindML位图字体文件的格式完成汉字点阵的转换存储,并使用WindML的双字节显示函数实现点阵获取、点阵显示,将汉字显示出来。

  WindML有很多字库文件,原始安装状态下都是西文字库文件,解决方案是将西文字库文件修改成为中文字库文件,字库文件经过系统配置、编译后生成点阵字库文件目标代码,点阵驱动程序从目标代码中获取点阵信息传递给应用程序编程接口,应用程序调用图形显示函数输出汉字。WindML下汉字显示处理过程如图3所示。

2.4 点阵汉字存储结构

  国家标准对汉字库结构做了统一规定:字库分为94个区,每个区有94个汉字,每个汉字有确定的区和位编码,用两个字节表示,第一个字节表示汉字所在的区号,第二个字节表示位号,即所谓的区位码。每个汉字在字库中以点阵字模形式存储,一般采用16×16点阵、24×24点阵,每个点用二进制位(0或1)表示,对应在屏幕上显示出来就是相应的汉字。

  点阵汉字字库C语言文件有固定的结构,分为三个部分:点阵属性表、点阵信息描述总表和点阵信息表。点阵属性表用来描述点阵汉字的字符结构和字模结构参数的结构体,包含参数有像素大小、字符名称、字符家族名称等,特别定义了指向点阵信息总表的数组指针,字体驱动程序利用这个指针寻找点阵信息总表。

  点阵信息表点阵信息表以数组的形式表示,主要用来存储汉字的GB2312码(西文是ASCII码)和详细点阵信息。可以是一个表也可以是若干个表。把汉字按 GB2312编码的页分类,构建多个汉字分表,也可以把中西文装在混合表里做成一个大表,西文字符被扩展成双字节存储。

  3 点阵汉字字库实例

  自己开发点阵存储、点阵获取、点阵显示,改造WindML的双字节或单字节显示函数,使其能判断汉字码,一旦判断出汉字码,则使用自己开发的点阵获取、点阵显示等把汉字显示出来。该方法对点阵的操作更加灵活,适合非标准的点阵算法,或者当开发者已有成熟的点阵操作方法时,把该方法绑接到WindML上。

  不必理会WindML双字节编码机制,这里需要的是一个汉字的点阵字库,这个点阵字库不必按照WindML的双字节编码机制进行编码,里面所存储的只是汉字的点阵信息和区位码信息,这个字库可以通过从Windows中导出;由于不选用WindML的双字节编码机制,更重要的是拥有更大的灵活性,因此这里必须要求自己写点阵的存储、点阵显示、汉字显示函数。汉字双字节编码中,高、低字节的最高位都是为"1',而西文字符编码中最高位为'0',利用这点来判断所要显示的字符是汉字还是英文。

  在设计开发过程中,在现有的西文字库的基础上进行修改,添加相应的字体参数和汉字的点阵信息,形成点阵汉字字库文件uflhz12.c,uflhz16.c,uflhz24.c,以分别存储12,16和24号宋体的字库信息。这个过程用Windows编程来实现。

  以下是16号宋体字库文件中的点阵信息表:

  该指针指向点阵信息表的首地址,并被点阵描述结构直接调用。

  字库文件的最后定义了点阵属性表,该表规定了整个点阵字库的属性以及字模和间距,并定义点阵指针。

  4 结 语

  在VxWorks嵌入式平台下采用点阵汉字显示技术,使得战场信息、态势、指令等获得了中文显示。最终使设计开发的军事指挥系统不仅具有良好的可靠性和卓越的实时性,同时具有直观而方便的中文平台以及友好的交互能力,大大提升了整体作战效能。

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:基于单片机的万年历设计
下一篇:基于电话网的多功能煤气管道自动抄表系统

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图