引言动基座光电测量平台按载体的不同可分为车载、舰载、机载和星载四种。
为了保证测量平台系统的可靠性和测量的准确性,平台在正式放到载体上运行之前需要进行仿真检测。
目前的动基座光电测量仿真检测系统大多成本高、人机交互性差,携带不方便,给外场检测带来很多麻烦。
本文针对这个问题,利用三星的 ARM9 处理器 S3C2410、嵌入式 WinCE 操作系统,设计出了一种可视化便携的动基座光电测量仿真检测系统。
该系统使用终端控制命令操纵光电平台,通过串口通信实时检测平台的各种性能指标。
S3C2410 是三星公司生产的一款基于 ARM920T 内核的 32 位 RISC 微处理器,主频可达 203 MHz。
其内部集成大量的外围资源,具有高性能、低功耗、接口丰富的特性。
WinCE 是微软开发的一个开放的、可升级的 32 位嵌入式实时操作系统,它的图形用户界面相当出色,具有模块化、结构化的特点, WinCE 支持各种硬件外围设备、其它设备及网络系统。
WinCE 有完善的配套开发软件工具集,使嵌入式系统开发者和应用开发者能够定做各种产品。
1 系统的硬件构成在经过分析、筛选之后,选择合适的硬件搭建硬件开发环境。
光电测量仿真检测系统的硬件环境,主要由以 S3C2410 为核心的单片机、带触摸屏的 LCD 和 SD 卡三部分组成。
系统的总体结构图如图 1 所示。
图 1 系统整体结构图虚线以上的部分为光电测量仿真检测系统的硬件环境,其各部分组成与功能如下:(1)以 S3C2410 为核心的单板机。
这是整个系统的硬件核心。
它带有一个 64M 的 SDRAM 和一个 64M 的 Nand Flash。
一个 SD 卡插座用来安装数据存储用的 SD 卡,一个 USB Host 可以接鼠标键盘输入控制设备,一个 USB Device 接口用于系统程序的烧写。
为了开发时的调试方便,还扩展了一个 10M 的以太网接口,主要用于和宿主机通讯﹑调试和下载程序。
同时还带有两个 DB9 的串口,一个用于设计阶段的调试,另一个用于与下位机上的 PC104 通信,从而达到控制光电测量平台的目的。
(2)带触摸屏的 LCD。
这是系统的显示控制终端,负责用户控制端的图形界面显示。
用户可以在发送面板上根据自己的需求输入控制命令,同时在接收面板会显示下位机传过来的各项性能指标。
出于便携化设计的考虑,屏幕只有 3.5 寸大小,分辨率为 320*240。
(3)SD 卡。
它是系统的存储设备,负责存储通信数据。
出于系统小型化和便携的考虑,我们选择体积较小的 SD 卡作为数据存储介质。
由于篇幅的限制,这里只简要的介绍了一下系统的硬件开发环境。
在接下来的部分将详细的阐述其软件开发流程。
2 系统软件开发环境在进行软件开发之前,必须先建立软件开发环境。
本文将使用嵌入式 WinCE 操作系统作为软件的运行平台,下面将简要介绍其软件开发环境的建立。
(1)WinCE 内核的定制。
嵌入式系统由于受硬件资源的限制,在实际开发时往往需要裁减,然后定制出适合自己硬件资源的嵌入式操作系统。
根据现有的硬件设备配置,使用 Platform Builder 4.2 定制、配置、编译一个 WinCE 操作系统内核,这当中重要的是要加入所需设备的驱动程序,最终生成 WinCE 内核文件 nk.bin 和安装 WinCE 所需的 Eboot 程序。
(2)安装 WinCE 到 ARM 板上。
先通过 JTAG 板将 bios 烧写到 Nandflash,然后用 USB 数据线将 Eboot 程序和 WinCE 内核 nk.bin 下载到 ARM 板上,通过 Eboot 程序, WinCE 将自动被安装。
(3)应用程序的开发。
微软专门为 WinC++E 的软件开发推出了 eMbedded Visual C++ 4.0,利用 eMbedded Visual C++ 4.0 提供的工具可以方便的创建、修改和调试应用程序。
3 系统终端程序设计搭建软件开发环境后,接下来进行终端应用程序的开发。
动基座光电测量系统的终端程序主要由发送、接收和串口通信三大模块组成。
其中发送模块控制命令和发送显示两部分,接收模块分为接收显示和数据存储两部分。
终端系统的主要功能模块框架图如下图 2 所示:图 2 终端程序功能模块框架图终端程序的具体设计使用 eMbedded Visual C++ 4.0 软件,下面简要介绍一下程序设计过程:3.1 发送模块和接收模块发送和接收模块的设计主要是对窗口的设计。
窗口的建立并不复杂,主要是窗口初始化和各种按钮控件的建立。
同其他版本的 windows 程序一样,WinCE 程序也采用了消息驱动机制,用户的各种操作通过消息的形式发送给应用程序,而应用程序时刻等待着消息的到来,一旦发现它的消息队列中有未处理的消息,就获取并分析该消息,应用程序根据消息所包含的内容采取适当的动作来响应用户所作的操作。
下面是消息循环函数:while (GetMessage (&msg, NULL, 0, 0)) {TranslateMessage (&msg);DispatchMessage (&msg);当用户启动程序的时候,消息循环开始,建立各个窗口和按钮控件的消息被发送,应用程序接收到这些消息后,对其进行翻译,然后运行每个消息所对应的函数。
3.2 串口通信Windows CE 不支持重叠 I/O,所以如果在主线程进行大量读写串口操作时,有可能使整个程序陷入缓慢的串口等待中去,因此采用多线程来进行读写串口操作。
程序的主线程用来负责消息的处理,另外还有两个附加线程。
读线程负责从串口读回数据,写线程由事件触发,发送控制命令。
在程序初始化时创建事件,创建写线程并利用 WaitCommEvent 函数阻塞该线程,等待事件触发。
然手打开串口,创建读线程,读回数据,进行处理;当按下发送命令后,触发通信事件,解除阻塞的写线程,这时开始发送数据。
4 测试结果将最后定型的可执行程序烧写到目标板上,然后进行地面仿真试验。
该仿真系统使用 +5V 的输入电压,由系统终端软件的控制面板发送控制命令,灵活的操纵光电平台的各种运行状态。
接收面板上能以 100ms 的刷新频率实时显示光电平台的各种性能指标,同时如果选择数据存储的话,还可以将这些数据信息存储在 SD 卡上。
软件的运行界面如下图 3 所示:图 3 软件运行界面这里以光电平台的高低温实验为例,在全程 2 个小时中,该仿真系统始终能和光电平台正确通信,并实时显示平台的各项性能指标。
测试结果表明该系统具有功能丰富、可靠性高、操作便捷等优点。
5 结语我们利用 ARM9 处理器强大的功能,以及嵌入式 WinCE 操作系统的网络、可视化图形界面、多线程编程等提供的便捷高效的底层支持,开发出的嵌入式光电测量仿真检测系统具有功能丰富、可靠性高、界面友好、操作方便等诸多优点。
本文介绍了该系统的硬件组成部分和功能,重点阐述了嵌入式软件的开发流程和关键技术串口通信的解决过程,相信可以为其它基于 WinCE 嵌入式终端系统的开发提供参考。
项目最终能产生的经济效益为 20 万元。
本文作者创新点:本文采用 ARM&WinCE 相结合,多线程串口通讯,设计出了一种便携式、成本低、人机交互性好的动基座光电测量仿真检测系统。
讲解的很好,学到了
大功率电感 |