工控网首页
>

应用设计

>

基于Windows CE的遥控遥测警报系统的设计

基于Windows CE的遥控遥测警报系统的设计

2010/3/19 13:39:00
系统的选择论证

  目前,一般警报发放系统是基于PC机/单片机技术的半双工的点对多点天线专用遥控网。系统中控制中心由PC/工控机担任,各执行终端以单片机为核心的控制器来执行控制功能。从使用管理和建设角度看,有如下不足:基于PC机/工控机技术的控制中心单位体积大,设备成本较高,且由于承担的任务相对简单,故使用效率不高,而基于单片机技术的控制执行终端能较好地完成解码控制功能,但不能满足警报发放技术的信息交互化改进和运行管理的需求,例如由单片机完成高质量,高效率的音频编解码,录入和还原来实现信息交互化功能是一个比较棘手的问题。本文设计的目的是鉴于以上需求,采用硬软件资源丰富且可裁减的数据处理能力强大且具备一般单片机控制功能的嵌入式技术,设计一种体积小,成本低,功能强,开发周期短的嵌入式中心控制器和终端控制器,以对原有警报发放系统进行改进。

  系统整体介绍

  改进的系统由一个控制中心和多个终端构成。控制中心和终端之间使用无线数传模块来构成无线数据通路。每个终端配置唯一的地址,当发放警报时,控制中心既可以以群发的方式发放警报内容,又可以通过指定终端地址,以点对点的方式向某一指定的终端主机发放指定的警报内容。

  终端控制器的音频输出端口和功放相连。当终端接收到属于本机的警报指令后,根据不同的警报内容,调用不同的音频文件,最后由音频输出单元和功放发放。

  为保证控制器的可靠性,需要定时进行检测。检测时主控中心以串行点名的方式对每个终端进行查询。检测的内容包括中心和终端的无线数据通路和音频发放设备的工作情况。为了能正确了解终端设备的工作情况,在终端音频输入接口配备麦克风,用于采集发放的警报声音,采集的声音压缩文件再通过无线网络返回给主控中心,再在主控中心进行处理,分析终端的整套设备工作正常与否。

  一般来说嵌入式控制器是针对某一特定功能来设计的,它可被认为是一种具有特定功能的专用计算机。在本系统中,控制中心和终端控制器需要实现的主要任务都是数据传输和音频的处理,所以在硬件资源选择上,中心和终端可以使用同一套硬件设备。在系统组网时,只需在中心控制器和终端控制器上安装不同的应用软件即可完成系统要求。所以在设计开发中,一旦实现了控制中心的功能,也就是基本上完成了终端的设计任务。

  系统硬件软件资源的选择

  系统选择

  为了能方便的实现音频的处理功能,加快系统的开发时间,选择Windows CE作为控制器的操作系统。虽然Windows CE是一个软实时的操作系统,但是完全可以满足本系统队实时性的要求。同时Windows CE具有出色的图形用户界面,强大的多媒体功能,良好的通信能力。界面友好的嵌入式平台工具Platform Builder为Windows CE的制定提供了方便。具有和Visual C++基本相同特性的应用程序开发工具Embedded Visual C++又为熟悉Windows编程的开发人员提供了捷径。所以使用具有功能完备的API函数库的Windows CE操作系统,能使系统显示出很大的优越性。

  硬件结构

  目前已有多款CPU内核支持WinCE操作系统,例如ARM、x86、MIPS、PowerPC、SH等。目前市场上采用MIPS和ARM架构的CPU占据了主导地位。本系统控制中心的CPU选择Intel @XScale PXA255微控制处理器它遵从ARM 5V.TE体系构架,运行速度高达400MHz,Intel超流水线技术和独特的动态功率管理技术,使它兼有高性能与低功耗的特点。为了达到嵌入Win CE操作系统的要求,系统配置64M SDRAM和32M Flash。系统还配置LCD显示系统和触摸屏。音频控制器采用TI公司的TSC2301 Audio Codec芯片,该芯片支持AC’97标准20位立体声编/解码、支持可编程采样率、输入输出增益和数字音响处理功能,同时集成触摸屏控制功能。它也是本系统硬件的重要组成部分。基于串口通信的无线数传模块在实际应用中已经很成熟,在市场上也有多种可供选择的产品。本文对此不作详细介绍。以下是系统硬件结构图。

  Windows CE操作系统和应用程序

  系统的制定

  每一个Windows CE操作系统都是基于固定的硬件平台来运行的。一个完整的Windows CE操作系统的基本内容包括以下几个方面:

  1. Bootloader,用于加载Windows CE操作系统的程序;

  2. CPU初始代码,基于特定的CPU系列;

  3. 驱动程序,包括键盘、鼠标、声卡、COM等等,不同的硬件设备可能有不同的设置,驱动程序分别由Windows CE和硬件厂商提供;

  4. 用户界面接口;

  5. 完成特定功能的应用程序。

  WinCE的制定是在Platform Builder下完成的,在此过程中需要选择特定的开发板支持包BSP和相应的应用程序和服务组件,在选择过程中为了节约硬件资源,使内核在能到达要求的前提下尽可能的小,需要尽量精简应用程序和组件。

  自己编写应用程序后,为了使应用程序也能成为镜像系统的一部分,可以在Platform Builder下创建自己的CEC文件,使其成为新的特性并添加到需制定的系统特性目录中去。

  制定完成的系统经过编译后即可生成系统内核镜像,同时还能生成一个Eboot文件。首先通过JTAG下载Eboot文件,再通过以太网下载系统镜像文件,在这基础上便可以完成对系统同的调试和固化。

  应用程序

  应程序主要是绘制人机交互界面,实现串口通信功能,并具有声音的采集、编码和播放功能。

  应用程序是在Embedded Visual C++的环境下编辑的。Win CE同桌面Windows系统一样也是一个图形界面的操作系统他可以帮助我们设计出丰富的图形界面,Win CE提供了功能强大的图形设备接口(GDI),利用GDI函数可以方便地绘制出点、线、矩形、多边形、椭圆、位图、以及文本等,同时和Visual C++一样embedded Visual C++也提供了许多常用的控件,所以绘制人机交互界面的工作相对简单。

  Windows CE的串行口通信程序

  在Visual C++中实现串口通信可以简单地使用MSCOMM控件,但是在Embedded Visual C++中没有此控件,所以串口的实现相对复杂。但是Win CE提供了丰富的API函数库,在EVC的编辑环境中可以使用API函数来实现嵌入式系统控制器和无线数传模块的通信。具体过程是首先对串口进行初始化,其中包括使用CreateFile函数打开存在且没有被占用的串口资源,设置设备的属性例如波特率,数据位数,校验方式等。然后设置串口的读写时间,指定端口监测的事件集。在串口的读写过程中,因为写是可以控制的,而读的时候无法确定数据什么时候能收到,所以可以在程序的主线程中写数据,同时创建一个辅助线程专门用来读数据,当有数据需要发送时,使用WriteFile函数向已打开的串口写需要发送数据。而在辅助线程中,用WaitCommEvent来检测线路状态,当检测到收到一个字符的事件发生时调用ReadFile函数对串口进行读操作。读取数据后,为了触发事件响应以完成数据处理,可以在辅助线程中使用PostMessageBox函数向应用程序主窗体类邮递一个自定义消息,这样就可以在主线程中完成消息响应过程。

  值得注意的是Win CE操作系统是一种UNICODE环境它只支持UNICODE的应用程序和控件,这也是为什么同样是32位机,具有基本类似的API函数,很多在Windows下能运行的控件或类在WINCE环境中无法正常工作的原因。所以在进行串口数据发送的时候需要把数据由UNICODE字符串转换为ANSI字符串,可以使用API函数,WideCharToMulitByte进行转换。

  另外WINCE操作系统中不支持重叠I/O模式,所以在打开串口的时候需要选择以非重叠I/O方式打开,但是在同步方式下如果有一个通讯API在操作,另一个会被阻塞,直到上一个操作完成,所以当读数据的线程停留在WaitCommEvent的时候,WritFile就无法继续执行。为了解决此问题需要在调用WritFile函数之前使用TerminateThread函数先终止写线程,在发送完数据后再次创建同样的写线程用来等待数据接收事件。因为无线数传模块就是被设计成使用半双工方式进行数据传输的,所以使用非重叠方式是合理的。

  系统进行警报发放时,由控制中心向终端发送数据包,数据包被定义为如下格式:

  终端接收到数据头后,判断设备地址是否为本机地址,如果是则读取命令,根据命令字,发送不同的警报,如果地址不是本机地址则丢弃数据包。

  Windows CE中声音播放程序的实现

投诉建议

提交

查看更多评论
其他资讯

查看更多

助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案

车规MOSFET技术确保功率开关管的可靠性和强电流处理能力

未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?

2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会

2023钢铁展洽会4月全新起航 将在日照触发更多商机