论文导读:本文提到的硬件平台指的是掌上电脑HPiPAQhx2100,软件平台即HP内置的WinCE操作系统,全站仪可以认为是嵌入式外围设备。目前最常见的硬件之间的数据通讯有串口通讯和USB通讯两种方式,而USB通讯常常涉及到驱动问题,实现起来相对比较困难。
关键词:串口通讯,PDA嵌入式操作系统,WinCE
1引言
掌上电脑PDA(Personaldigital assistants,个人数字助理)以其轻便、廉价、功能强大、便于野外作业的特点,越来越受到测绘界人士的青睐。在某些领域有逐渐替代台式机和笔记本电脑的趋势。基于PDA的嵌入式应用软件研究与开发是目前测绘领域中的一个热点,已经开发成功的掌上型测绘系统中,大多数是基于Windows CE嵌入式操作系统。Windows CE之所以能在嵌入式系统市场上取得如此辉煌的成果,与其自身与Windows操作系统的兼容性和相似性是分不开的。未来,将PDA用于常规的测量中,实现内、外业一体化、自动化是提高测量效率的必然趋势。
2嵌入式系统研究
2.1 嵌入式系统
根据国际电气和电子工程师协会(IEEE)的定义,嵌入式系统是“devices used to control, monitor, or assist the operation ofequipment, machinery or plants”,即控制、监视或者辅助设备、机器和车间运行的装置。一般而言,整个嵌入式系统的体系结构可以分成四部分:嵌入式处理器、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件,如图1所示。

图1 嵌入式系统的组成
嵌入式系统是以应用为中心、以计算机技术为基础、并且软、硬件可裁剪、适应于对功能、可靠性、成本、体积及功耗有严格要求的专用计算机系统[1]。嵌入式系统包含硬件和软件两部分:硬件架构上以嵌入式处理器为中心,配置存储器、I/O设备、通信模块等必要的外设;软件部分以软件开发平台为核心,向上提供应用编程接口(API),向下屏蔽具体硬件特性的板级支持包(BSP)。嵌入式系统中,软件和硬件紧密配合,协调工作,共同完成系统预定的功能。从软件方面讲,嵌入式系统使用的操作系统一般是实时操作系统(RTOS)。目前广泛使用的RTOS有EPOC、Palm、Windows CE、嵌入式linux等。
与其竞争对手相比,Windows CE功能更为强大,尤其是在多媒体应用方面。Windows CE是微软开发的以组件为基础的嵌入式操作系统,专门用于手持设备和信息家电。它的模块化设计方式使得软件开发人员可以根据不同的开发产品来自己设计系统。此系统与Windows OS极为相似,尤其是在GUI(即图形用户接口)方面,熟悉Windows OS的用户掌握Windows CE很容易。目前,使用Windows CE的掌上电脑除微软的Handheld PC外,还有CASIO、惠普、NEC和三星等厂家生产的手持设备。
2.2嵌入式开发研究
2.2.1 嵌入式应用软件开发
嵌入式应用软件一般是针对特定的应用领域(例如:旅游、餐饮、娱乐及本文提到的测绘等),基于某一固定的硬件和软件平台,用来达到用户预期目标的计算机软件。本文提到的硬件平台指的是掌上电脑HP iPAQ hx2100,软件平台即HP内置的WinCE操作系统,全站仪可以认为是嵌入式外围设备。嵌入式软件系统的开发流程如图2所示。

图2 嵌入式系统的开发流程
2.2.2嵌入式系统开发环境分析
嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统平台上编写软件比较困难,有时候甚至是不可能的。免费论文参考网。目前一般采用的解决办法是首先在PC机或笔记本电脑上编写程序,然后通过交叉编译环境(即常见的模拟器)部署成目标平台上可以运行的可执行文件,最后再下载到目标平台上的特定位置上安装运行。免费论文参考网。
需要交叉开发环境(CrossDevelopment Environment)的支持是嵌入式应用软件开发时的一个显著特点,交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式,如图3所示。
RS232/USB链路

图3 交叉开发环境
宿主机(Host)是一台通用计算机(如PC机或者笔记本电脑),它通过串口或者USB接口与目标机通信。宿主机的软硬件资源比较丰富,不但包括功能强大的操作系统(如Windows和Linux),而且还有各种各样优秀的开发工具(Microsoft的Embedded Visual C++或本文提到的VS.NET2005等),能够大大提高嵌入式应用软件的开发速度和效率。目标机(即本文提到的HP PDA)可以是嵌入式应用软件的实际运行环境,也可以是能够替代实际运行环境的仿真系统,但软硬件资源通常都比较有限。
3 开发环境与通讯方式选择
3.1 开发环境
目前,基于PDA的嵌入式开发主要有两种方式,一种是基于EVC4.0开发WinCE应用程序,另一种方式是基于VS.NET的智能设备应用程序开发。前者安装过程和环境配置比较复杂,主要是补丁和汉化包较多,在开发WinCE应用程序之初,用户往往因为软件安装不够齐全或环境配置不当等原因,造成开发环境无法正常使用。而后者可以避免前者的缺点,应用于开发比较方便。
Visual Studio.NET是.NET平台下最为强大的开发工具(目前最高版本为Visual Studio.NET2005),无论是软件服务商,还是企业应用程序的部署与发布,Visual Studio.NET都可以提供近乎完美的解决方案[4]。Visual Studio.NET提供了包括设计、编码、编译调试、数据库联接操作等基本功能和基于开放架构的服务器组件开发平台、企业开发工具和应用程序重新发布工具以及性能评测报告等高级功能。随着微软Visual Studio.NET开发平台的推出,在其上开发移动应用程序,有着EVT(包括EVB和EVC)无法比拟的优点。本文主要用到的是.NET平台下的智能设备应用开发。免费论文参考网。
3.2通讯方式选择
目前最常见的硬件之间的数据通讯有串口通讯和USB通讯两种方式,而USB通讯常常涉及到驱动问题,实现起来相对比较困难。这样串口通信常常成为首选的通讯方式,可以设计相应的串口通信程序,完成设备之间的数据通信任务。
大多数计算机应用系统与外围数据设备之间通讯只需使用3到5根信号线即可工作。这时,除了TXD、RXD以外,还需使用RTS、CTS、DCD、DTR、DSR等信号线[2]。(当然,在程序中也需要对相应的信号线进行设置。)

 
图4 发送数据TXD(2号引脚)与接收数据RXD(3号引脚)跳线
采用以上接法,在设计程序时,直接进行数据的接收和发送就可以了,不需要对信号线的状态进行判断或设置。
4 HP PDA与尼康全站仪双向通讯程序实现
4.1 PDA与全站仪通讯协议分析
为了实现PDA控制全站仪、实时的全站仪测量数据上传/下载,必须在PDA与全站仪间实现双工数据通讯。本文以Nikon DTM-352全站仪为例介绍双向通讯问题。凡涉及到通讯问题首先我们要解决的是通讯协议,表1为Nikon全站仪通讯协议格式[3]。
表1:
SOH (01h) |
Sender code |
Receiver code |
STX (02h) |
Command or data character |
ETX (03h) |
BCC |
EOT (04h) |
CR (0Dh) |
LF (0Ah) |
Header |
Code |
Contents |
Chk |
Trailer |
SOH:数据起始位,表示数据通讯开始
Sender/Receiver codes:T表示全站仪,C表示PDA(其他外部设备)
STX:命令或者数据串的开始
ETX:命令或者数据串的结尾
BCC:奇偶校验位
EOT:通讯结束
CR:回车
LF:换行
如果从PDA上传数据到全站仪时代码表示为‘CT’,如果从全站仪下载数据到PDA时代码为‘TC’。
4.2 通讯过程实现
以全站仪使用中最常见的水平度盘置零指令为例:
发送“$RHA”命令程序实现(全站仪水平角置零命令为:$RHA):
从表1中可得出PDA控制全站仪水平角置零命令格式为:
01 C T 02 $ RH A 03 BCC 04 0D0A(ASCII值)
01 43 54 02 24 5248 41 03 21 040D 0A(16进制值)
5 结束语
掌上电脑和全站仪之间串口通讯,实现数据双向传输,自动化程度高,在野外测量过程中大大提高了工作效率。本程序在尼康全站仪和HP 2100 PDA之间验证通过,运行良好。对其他类型全站仪,不同的地方就是通讯格式和使用的命令有所差异。
参考文献:
[1]何宗键著.Windows CE嵌入式系统[M].北京航空航天大学出版社,2006.9
[2]付杰.用MFC实现串口编程[J],2000.8
[3]Nikon Geotecs Co.,Ltd.:Nikon DTM-350/330/352/332Communication Interface Manual
[4]Microsoft Co.:《Microsoft Developer Network (MSDN)2005》
|