2.2 数据采集方案
下位机是一个基于高性能AVR单片机的超声波测距系统,具有温度校正和软件补偿,承担现场缓冲器恢复状态的实时数据检测采集,并按照一定的协议打包成数据包通过串口传给上位机。测量最小距离4cm,最大距离500cm,分辨率为1cm。图2为数据采集的硬件框图:
3 系统软件部分:
Windows CE主要分为四个模块,如图所示,这四个模块提供最重要的操作系统功能:内核,对象存储模块,网络与通讯模块和GWES模块。
Windows CE还包含其它可选模块,支持如管理可安装设备驱动程序和支持COM的任务,图3为系统结构图:
3.1 定制操作系统
为了把Windows CE移植到特定的目标平台上,微软提供了一套完整的开发工具Platform Builder。该工具以对象库格式提供给操作系统,以便开发人员可以将其作为特定操作系统平台的组件。
首先,选择造作系统的基本配置,并且为特定的平台选择相应的微处理器和板级支持包BSP(Board Suppor Packet)。本测试仪采用S3C2410处理器,因此我们改造了微软提供的基于S3C2410的BSP,自定义了符合我们要求的BSP。
其次,制定平台,在此阶段可开发设备驱动,适当地裁剪、添加组件。然后,封装所需的各功能模块,编译生成OS镜像文件。接着,把镜像文件下载到目标设备,进行调试。在此阶段,我们主要进行了串口和触摸屏程序系统相关组件的添加和裁剪,编译生成符合我们测试仪硬件要求的OS镜像。
最后,导出定制操作系统的SDK(Soltware Development Kit)软件开发工具包,安装到EVC中,便可以进行基于我们定制的测试仪硬件平台的应用程序开发。如图4所示为操作系统移植流程图:
3.2 应用软件开发
操作系统的主要任务是为了管理所有硬件资源,并且提供应用软件一个合适的操作环境。将Windows CE操作系统移植到ARM平台上以后,下一步工作就是进行应用软件的开发。本系统的上位机软件主要在EVC的环境下开发完成,使用C语言为主要编程语言。主函数主要包含以下几个模块:用户界面模块、上下位机串口通讯模块、算法分析处理模块。
3.2.1 串口通讯协议说明
模块串口波特率9600,无奇偶效验,一位停止位。控制命令通过一致的帧结构通讯,帧长度4字节:命令+数据0+数据1+校验和。效验和=命令+数据0+数据1的相加和的低8位。系统通过上位机串口直接对下位机模块进行操作。上位机向下位机发送启动16位距离读取命令:Ox22+度数+NC+SUM。当测量完毕时,这时返回的数据是:Ox22+距离高+距离低+SUM;当测量无效时返回的距离高位和低位数据都是Oxff。(注:NC代表任意数据,SUM代表效验和)串行端口在Windows CE下属于流接口设备,是串行设备接口常规I/O驱动程序的调用与通信相关的具体函数的结合。串行设备被视为用于打开、关闭和读写串行端口的常规的可安装的流设备。Windows CE的串口函数和Windows的串口函数基本相同,但有几点值得注意:Windows CE只支持Unicode字符集,在编程时必须特别注意; Windows CE不支持重叠的I/O操作。在所有的流设备驱动程序中,均使用CreateFile来打开串行端口设备,如果这个端口不存在,CreateFile返回ERROR_FILE_NOT_FOUND。因此,用户指定的端口必须是存在并且可用的,而且要遵循Windows CE流接口设备驱动程序的命名规则,即COM后接要打开的端口号再紧跟一个冒号。