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

发布者:Jikai最新更新时间:2010-06-23 来源: 电子产品世界关键字:Windows  终端控制器  串口通信  中心控制器 手机看文章 扫描二维码
随时随地手机看文章

      目前,一般警报发放系统是基于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和硬件厂商提供;

  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++也提供了许多常用的控件,所以绘制人机交互界面的工作相对简单。

  [page]

      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中声音播放程序的实现

  系统的在检测时需要系统在终端进行声音播放和录入,再通过无线网络把录入的声音文件传送到控制中心。在应用程序中,声音的录入和播放使用波形音频编程接口来实现,通过这个接口可以对音频以脉冲编码调制(pulse code modulation,PCM)的方式进行压缩编码,并能使应用程序精确地控制波形音频的输入输出设备。

  声音的录制过程如下:

  1. 使用waveInOpen函数打开一个音频输入设备;

  2. 使用WAVEHDR结构体分配录制声音时所需的内存,然后调用waveInPrepareHeader函数准备一个音频输入的数据头;

  5. 录音结束时使用waveIn UnprepareHeader函数释放音频输入缓存区,并调用waveInClose函数关闭音频设备。

  音频的播放过程如下:

  1. 使用waveOutOpen函数打开一个音频输出设备;

  2. 使用WAVEHDR结构体分配录制声音时所需的内存,然后调用waveOutPrepareHeader函数准备一个音频输出的数据头;

  3. 使用waveOutWrite函数发送数据块到音频输出设备;

  4. 录音结束时使用waveIn UnprepareHeader函数释放音频输入缓存区,并调用waveInClose函数关闭音频设备。

  相对来说音频地录入比输出更为复杂一些。将模拟的(连续的)声音波形数字元化(离散化)的过程,主要包括采样和量化两个方面。数字音频的质量也主要取决于:采样频率和量化位数这两个重要参数。此外,声道的数目、相应的音频设备也是影响音频质量的原因。在PCM语音压缩编码中:

  数据量=(采样频率×量化位数)/8(字节数) ×声道数目

  应用程序录制的Wave文件中也同样有几个重要的参数来定义声音数据格式,它们是:采样方式、采样位数、采样频率和声道数。一般采样频率有8kHz、11kHz、22kHz和44kHz,采样频率越高,声音的保真性就越好,但同时也就使音频数据的存储量增大了。在本设计中采集声音只是为了检测设备的运行情况,所以对声音的质量要求不是很高,同时为了减轻网络负担,提高检测速度,设定数据格式为8kHz采样频率、8位量化、单声道。通过实验发现,采样得到音质有所下降,但是可以十分清晰地分辨警报类型的。假设我们测试设备的时间为三秒钟,那么数据量为8000×8÷8×1×3=24KB,在串行口波特率为76800bps时,加上数据包的包头、包长,大约在3~4秒的时间能完成一个终端设备的检测。

  结语

  本设计完成了对遥控遥测警报系统中心控制器的硬件结构的设计,并在嵌入式硬件平台的基础上,开发了控制中心和终端的应用程序。新的系统更好的满足了用户的,同时控制器体积变小了,可靠性增加了。不过,由于系统中无线通信模块无法达到太高的波特率,导致系统检测时间比较长,在这一点有待进一步改进。

  参考文献:

  1 Nick. Grattan and Marshall. Brain.Windows CE 3.0 Application Programming, Prentice Hall PTR, 2000.

  2 Eric J.Braude. Soflt Engineering An Object-oriented Perspective. John Wiley&Sans Inc. 2001

  3 周毓林 宁杨 陆贵强 付林林.Windows CE. Net 内核制定及应用开发.电子工业出版社,2005

  4 田东风.Windows CE应用程序设计. 机械工业出版社.2003年

  5 龚建伟. Visual C++/Turbo C串口通信编程实践.电子工业出版社,2004

关键字:Windows  终端控制器  串口通信  中心控制器 引用地址:基于Windows CE的遥控遥测警报系统的设计

上一篇:无线报警系统终成民用安防市场主力军
下一篇:高科技电子商品防盗系统之介绍与应用

推荐阅读最新更新时间:2024-03-16 10:53

Windows Embedded Standard开发初体验(二)
    好了,完成安装之后,我们就可以来做Windows Embedded Standard的第一个操作系统镜像了。在开始菜单中找到“Microsoft Windows Embedded Studio”,启动其中的Target Designer。然后再Target Designer的File菜单中选择New,创建一个新的Configuration。     输入名称后,点击OK,进入Target Designer的主界面。为了简单起见,我们选择Virtual PC作为我们的目标设备,这样就可以省去获取硬件设备信息的步骤。     首先,我们要在左侧的组件列表中找到我们要添加的组件。第一个自然是Silverlight组
[嵌入式]
S3C2440 Windows CE的RTC模块驱动设计与实现
引言   桌面Windows系统的时间显示功能已为大家所熟知,它是通过BIOS上的时钟模块实现的。用户通过点击桌面系统任务栏右下脚的时间,可以修改当前时间、时区以及实现与Internet时间同步等功能。      目前流行的手机、PDA、HMI(人机接口设备)等嵌入式系统中,都大量移植了微软的Windows CE操作系统。虽然WinCE系统也实现了时间显示,但是在具体的实现中,其原理和方法与桌面系统大不相同,即使是基于不同嵌入式硬件平台的WinCE开发,也有所不同。由于嵌入式系统的复杂性、分散性,目前嵌入式系统的实时时钟RTC功能的实现,大部分是在基于内嵌于SoC处理器的RTC功能IP模块的基础上,通过软件驱动实现的。   
[单片机]
S3C2440 <font color='red'>Windows</font> <font color='red'>CE</font>的RTC模块驱动设计与实现
TQ2440 学习笔记—— 6、Windows、Linux环境下相关工具、命令的使用
目标: 1、掌握Windows下的代码阅读工具、编辑工具Source Insight 2、掌握在Windows下与Linux进行交互的工具:Cuteftp、SecureCRT 3、掌握Linux下的代码阅读、编辑工具KScope,串口工具C-kermit 4、掌握一些常用的Linux命令 1、Windows环境下的工具介绍 a、代码阅读、编辑工具Source Insight Source Insight 是一款极具革命性的代码阅读、编辑工具,它内建了C/C++、C#、Java 等多种语言的分析器。 Source Insight 会自动分析源代码,动态地生成、更新一个数据库,并通过丰富而有效的表现形式使得
[单片机]
TQ2440 学习笔记—— 6、<font color='red'>Windows</font>、Linux环境下相关工具、命令的使用
PC价格上涨,2018年全球装置出货量成长持平
国际研究暨顾问机构预测,2018年全球包括个人电脑( PC )、平板与移动电话(手机)在内的所有电子装置出货量将成长0.9%,达22.8亿台,其中PC和平板市场将下滑1.2%,移动电话市场则预计成长1.4%。   研究总监Ranjit Atwal表示:“由于没有新的 晶圆 产能开出,2018年全年PC市场仍将受限于DRAM供货短缺。因此2018年全年PC厂商将继续提高售价。随着荧幕尺寸和显示卡数量的不断提升,成本也将随之上扬,都让企业和一般消费者必须在硬体上付出更高的价格。”   虽然PC市场对价格极为敏感,却观察到企业需求逐渐转向高价的Ultramobile顶级机种等高端PC产品,估计,2018年Ultramobile顶级机种的
[嵌入式]
小米MIX 3首获5G CE认证
3月20日消息,华为终端官方微博宣布,华为P30将于3月27日0点开启预售。同时官方公布了P30的宣传片,“近到你想不到”暗示华为P30拥有超强的变焦能力,值得期待。   根据知名爆料人士Roland Quandt公布的渲染图,华为P30采用水滴(珍珠)屏,支持屏幕指纹识别。这是华为P系列首款屏幕指纹手机,也是P系列首款水滴(珍珠)屏手机。   核心配置上,华为P30搭载麒麟980处理器,这是全球首款基于7nm工艺制程打造的手机芯片。麒麟980率先实现基于Cortex A76架构的开发商用,并在业内首商用Mali-G76 GPU。   拍照表现上,华为P30后置后置4000万主摄(光圈为F/1.8)
[手机便携]
小米MIX 3首获5G <font color='red'>CE</font>认证
传微软将于2015年4月发布最新Windows系统
    间:2014年1月13日 06:59 腾讯科技 李路1月12日编译 有关于下一代Windows操作系统“Threshold”的传闻近日甚嚣尘上,不过知名微软观察人士保罗•斯洛特(Paul Thurott)则在周六就该系统透露了更多的信息。 据斯洛特称,“Threshold”较目前的Windows 8相比将有重大变化,例如“开始”菜单的回归以及微软针对Windows Phone和Windows RT平台的整合等。此外,微软还正在研发单一的应用平台,以满足Xbox、Windows Phone和Windows用户的需求。 所谓的“Threshold”很有可能就是传说中的Windows 9操作系统。而之所以使用“Thresh
[手机便携]
51单片机~串口通信
(一)计算机串行通信原理: 综上:所以在设置的时候,经常将SCON设置为0X50==0101 0000 ,使用方式1. (二)工作: 中断控制 led灯,每发送一条指令灯亮或灭(反转一下) #include reg52.h typedef signed char int8; typedef signed int int16; typedef signed long int32; typedef unsigned char uint8; //字符型 typedef unsigned int uint16; typedef unsigned long
[单片机]
51单片机~<font color='red'>串口通信</font>
运用LabView控制DS3900串口通信模块
本篇应用笔记讨论了DS3900串口通信模块和LabView的使用问题,LabView是适用于嵌入式应用的图形化界面开发平台。本文可作为面向DS3900的LabView界面用户指南。 介绍 LabView作为嵌入式应用的图形化界面开发平台得到了广泛应用。DS3900串口通信模块是一款通用接口板,借助该接口板,用户可使用PC串口与具有I²C接口的器件通信。DS3900的指令集允许应用软件与I²C器件直接通信。 本应用笔记是面向DS3900的LabView界面的用户指南。首先,用户需要安装LabView。为用户提供了标准VI,以加载并运行程序。可以下载与本应用笔记相关的LabView代码(ZIP,321K)。 使用LabVie
[电源管理]
运用LabView控制DS3900<font color='red'>串口通信</font>模块
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
502 Bad Gateway

502 Bad Gateway


openresty
随便看看
    502 Bad Gateway

    502 Bad Gateway


    openresty

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 视频监控 智能卡 防盗报警 智能管理 处理器 传感器 其他技术 综合资讯 安防论坛

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
502 Bad Gateway

502 Bad Gateway


openresty