基于Windows CE的物流车载终端设计

发布者:sokaku最新更新时间:2012-03-27 来源: 单片机及嵌入式系统应用 关键字:车载终端  电子地图  GPS定位  GPRS通信 手机看文章 扫描二维码
随时随地手机看文章

    物流在现代社会中正扮演着越来越重要的角色。但是,与国外技术密集型的物流行业相比,国内物流行业在信息化、智能化程度上还存在着较大差距。鉴于这样一种状况,本文提出了一个基于WindowsCE平台的物流车载终端设计方案。该物流车载终端以Liod评估板(简称为“Liod板”)为硬件平台,在嵌入式操作系统Windows CE上实现的功能有:电子地图,实现地图4级缩放、平移、归中功能;无线通信,实现终端与控制中心的GPRS无线通信;GPS定位,定位车载终端当前的位置;称重与打印,读取电子秤数据,实现票据的打印;语音提示,提供更好的人机交互功能。

1 软硬件平台简介
    本车载终端以Liod板为硬件平台。Liod板的核心PXA270是一款属于Intel XScale微架构的高性能、低功耗嵌入式处理器。在本设计中要用到的主要有LCD、触摸屏、以太网接口、全功能串口、音频接口等。本设计方案采用 WindowsCE作为软件平台。WindowsCE是一种针对小容量、移动式、智能化设备的多任务、抢占式、模块化实时嵌入式操作系统。Windows CE具有与桌面Windows几乎完全兼容的API接口,为了配合WindowsCE上的应用程序开发,微软公司推出了eMbedded Visual C++(简称 “eVC”)集成开发环境。本系统采用的是eVC 4.O。

2 硬件设计
2.1 系统硬件设计
    在Liod板的基础上扩充了部分外围电路。根据Liod板提供的硬件资源和系统需要使用的硬件情况,硬件设计主要包括两个部分:以太网口转串口电路设计和电子秤硬件电路设计。
    无线通信设备采用GPRS Modem。该GPRS Modem通过Liod板的串行口COMl发送和接收数据;GPS定位采用12通道定位模块GARMIN-15L;打印机采用TD58热敏打印机;电子秤采用应变片压力传感器结合C805lF020单片机自行开发;语音提示模块直接使用Liod板提供的音频接口。由于GPS接收模块、热敏打印机、电子秤都要通过串行口与Liod板通信,Liod板原有的串口数量已经无法满足要求,因此采用ZNE-100T以太网转串口模块,把Liod板的以太网口扩充成3 个串行口。系统的硬件连接如图1所示。

2.2 以太网口转串口电路
    该电路的核心转换部分采用ZNE-100T网络模块。经过该电路的转换,对串口的操作跌射为通过以太网进行的数据发送和接收。ZNE-100T模块引脚定义如表l所到。

    上述引脚中,GPIO0~GPIO4是可控制通用I/O口。在功能板的设计中,使用了3个RS232串口分别发送和接收电子秤数据、打印机数据和GPS数据。本系统采用带有使能控制信号的MAX322l电平转换芯片选择要使用的串口,具体做法是将GPIO0~GPIO2分别连接到3个MAX322l的使能端(EN),这样就可以通过软件来选择需要的串口。使能端均为低电平有效,当有一个串口的使能端为O时,其他两个串口使能端必须为l。
2.3 电子秤硬件设计
    电子秤使用应变片压力传感器、AD822l运算放大器和C8051F320芯片进行设计。电子秤硬件电路框图如图2所示。

    物品重量通过应变片压力传感器转换成比较微弱的电压信号。此电压信号经过AD822l运算放大器放大,送到C805lF020的ADC1转换器;转换后的数据通过串口发送出去,同时在扩展板的液晶显示屏上显示重量。电子秤的UART0和PC串口都使用9600 bps的波特率。
    C8051F020的ADCl转换器是8位的,因此转换数据是0~255。电子秤的分辨率为20g,最大称量量程是5.1 kg。[page]

3 软件设计
3.1 电子地图
    电子地图模块采用栅格图像实现。栅格图像又称“位图”,由像素点组成。与矢量图像不同,栅格图像在用作电子地图时需要在地图元素和数据之间建立对应关系。
    首先对坐标系统进行简单的说明。假设有一个形状为严格矩形的地图,其像素坐标原点为(O,0),地图X轴方向上的宽度假设为W个像素点,Y轴方向的高度假设为H个像素点,某个点的像素坐标为(x,y),则定义该像素点的归一化坐标为(x/W,y/H)。这样,地图左上角的归一化坐标为(0.0,O.O),右下角归一化坐标为(1.0,1.O。把这样的坐标系统称为“归一化坐标系”。
    采用归一化坐标系可以简化栅格地图的多级缩放。由于本终端要将车辆当前的位置显示在地图上,而对于不同的地图级别,地图的分辨率是不一样的。那么,当地图放大或缩小时,车辆对应的像素坐标就会发生改变;但是,在GPS连续的两次更新间隔之间,车辆在地图上的归一化坐标是不会变化的。地图放大或缩小后,只需要用新地图的像素宽度乘以归一化x坐标,即可得到车辆在新地图上的X轴像素坐标;同理,可得车辆在新地图上的Y轴像素坐标。这样,坐标计算过程就可以统一起来。本设计中的电子地图模块统一采用归一化坐标系。
    根据设计要求,本终端的电子地图支持4级缩放。设计中采用一幅大小为225l×1557、格式为BMP的成都地图作为原始地图,即所能支持的最大分辨率的地图。把缩小8倍以后的地图作为所能支持的最小分辨率地图,因此地图级别与放大倍数之间具有如表2所列的对应关系。

    程序启动时将所有位图文件载入内存,以加快响应速度。此后,当执行放大或缩小地图的操作时,则将相应的位图显示在屏幕上;同时,根据新的位图大小和车辆的归一化坐标计算出车辆在地图的像素位置,并将车辆位置在地图上显示出来。
    就车载终端而言,所覆盖的地理范围相对地球半径来说几乎无穷小,故可以认为该电子地图所对应的经纬度坐标是线性变化的,即地图坐标和GPS坐标之间近似为线性映射关系。此线性映射关系的原理如图3所示。

    由于GPS得到的是当前车辆的经纬度坐标,而电子地图模块使用的是归一化坐标系,因此需要在两种坐标之间进行转换。此转换过程是依靠地图左上角点和右下角点这两个基准点来实现的,因此首先需要求得地图左上角和右下角的经纬度坐标。有了这两个数据以后,当从GPS硬件模块读取到经纬度坐标时,根据近似的线性映射关系,就可计算出该坐标在地图上的归一化坐标,由此可得相应的像素点坐标,即可将车辆位置显示出来。
    对于地图左上角点和右下角点的经纬度坐标的求取,通过实际测量的方法是很难做到准确无误的。因此本设计采用一种间接的方法来求得地图左上角和右下角的经纬度坐标。
    假设在地图边界内部有两个任意点,把这两个点称为“参考点”,并且已知这两个参考点的经度、纬度、归一化x坐标、归一化,坐标;设参考点1的这4个参数为 point1=(lon1,latl,x1,y1),参考点2的这4个参数为point2=(lon2,lat2,x2,y2),即pointl和 point2已知。根据前面的说明可知,左上角点的归一化坐标为(O.O,O.0),而右下角点的归一化坐标为(1.0,1.0)。另外假设左上角点用 pomtTL表示,其经纬度为lonTL和latTL;右下角点用pointBR表示,其经纬度为lonBR和1atBR(TL意即TopLeft,BR 意即BottomRight),则有pomtTL=(lonTL,latTL,0,0,0.O)。同理,对于右下角的点有pointBR=(lonBR, latBR,1.O,1.O)。
    由于将经纬度与地图坐标之间近似为线性映射关系,因此根据欧氏几何原理可知,由已知的pointl和point2,可以计算出pointTL和pointBR的未知参数:


    可见,要得到地图左上角和右下角的经纬度坐标,只需要知道2个参考点的4个参数就可以了。在本系统中,实地采集了3个参考点,得到的数据如表3所列。

    根据式(1)和式(2),上面的3个参考点之间两两结合可以求出一组左上角和右下角的经纬度,总共可以有3种组合方案,也就是可以求得3组经纬度值。然后,对这三组经纬度取平均,以减小误差,提高精度。
    上述过程是在GPS数据处理模块初始化过程中完成的。为了提高系统的灵活性和可靠性,参考点数据都是存放在外部数据文件中的,因此,需要在程序启动时将相应的数据读入到内存中。为此,专门为参考点定义了一个数据结构

[page]

    本设计定义了用于存储参考点信息的数据文件的格式,如表4所列。
    上述工作完成之后,参考点数据的存储和读取就比较简单了。基准点和车辆位置的计算都只是简单的代数计算过程,容易实现。至于地图的显示和控制则需要通过Windows CE的API接口来完成。
3.2 GPRS模块
    本车载终端采用GPRS Modem与控制中心进行无线数据通信,对GPRS Modem的控制和读写通过串口进行。由于与控制中心交互的数据种类较多,因此定义了相应的应用层数据包格式。数据包的所有字段均采用单字节ASCII编码且为固定长度。在发送端,数值型字段需要在发送前格式化为定长字符串再封装到数据包中;在接收端,需要将数据包中的格式化字符串还原为数值型常量。数值型字段不足部分以字符“O”为前导字符进行填充;字符型字段不足部分以空格(SPACE,0x20)为前导字符填充。字符串型字段的长度不包括字符串结尾的NULL字符(在C语言中为0x00)。所有采用UNICODE编码的字符数据在封装到数据包中之前必须进行转换。
    定义的数据包主要有以下几类:客户端位置更新数据包;客户端接件信息数据包;客户端送达签收数据包;服务器新任务数据包;客户端确认数据包;服务器确认数据包;客户端车辆故障数据包;客户端道路堵塞数据包。
    为了能够正确解析数据包中的数据,所有数据包都具有相同的包头(head),即数据包类型(packet type),时间戳标记(time stamp)、数据包顺序号(packet sequencenumber)3个字段。当接收到一个数据包之后,根据包头中的类型字段就能判断该数据包主体部分的长度,由此即可正确解析出包中的内容。包头之后是数据包主体(body)部分,不同数据包类型有着不同的字段和长度。上述8种定义类型之外的数据包均为未定义类型,应当被丢弃。类型为 NTSK、TMLF、RCNG的数据包需要接收端的确认;而RECV、SEND、UPDT、CACK、SACK这5种类型的数据包不需要确认。
    GPRS Modem的数据传输与接收是通过串口编程来实现的。Windows CE平台上的串口编程依赖于与文件相关的API接口:CreateFile()打开串口,ReadFile()从串口读取数据,WriteFile()向串口写入数据。由于网络数据包的到来是一个异步过程,因此还需要处理串口的异步事件:GetCommMask()取得串口已经设置的事件,setCom- mMask()设置串口事件集,WaitCommEvent()等待预先设置的串口事件集中的某一事件发生。
3.3 称重与打印模块
    该模块实现了电子称重和凭单打印功能。
    由于采用ZNE-100T以太网口转串口模块把Liod板的以太网口扩充为3个串口,因此对外扩的3个串口的访问是通过以太网口进行的,这涉及 Windows CE下的网络编程。对外扩串口的控制是通过向ZNE-100T模块的3003端口写入控制命令字来实现的;数据的收发是通过ZNE-100T模块的 4001端口实现的。
    网络编程接口采用的是Winsock1.1,采用面向连接的TCP协议。对数据的读写采用了非阻塞的方式:写操作直接将数据写到套接口的输出缓冲区中;而数据的读取因为是一个异步过程,因此放在一个单独的线程中完成。在此线程中定义了OnRead()、OnError()、OnDisconnect()回调函数,用于把线程中读取到的数据递交给上层或者处理读取过程中发生的异常事件。
    由于打印机、电子秤、GPS都是通过ZNE-lOOT模块进行控制的,而Liod板提供的以太网口只有一个,因此在任何时刻都只能与打印机、电子秤、 GPS三者中的一个通信,而其他两个设备的串口则处于关闭状态。这是通过向ZNE-100T模块的3003端口发送不同的控制命令字完成的。
    对于称重,只存在由C8051F020单片机向Liod板的单向数据传输,称量的范围为40g~5lOOg,因此重量数据采用2个字节表示,单位为g。为了确保数据传输的准确,除了2个字节的重量数据之外,还加入了几个字节的冗余数据。电子秤的数据帧格式如下:

   
    其中,OxAA Ox55作为起始标记;结尾处的0x05既表明重量数据帧的长度,也作为结束标记。
    就打印机而言,控制命令字和要打印的数据都在同一个数据流中发送给打印机,由打印机去区分命令和数据。由于Windows CE默认支持的字符集是UNICODE字符集,因此输出给打印机的字符需要转换成多字节字符发送给打印机才能正确打印,这是通过标准C提供的wcs tombs()库函数实现的。
3.4 语音提示模块
    考虑到配送人员在驾驶车辆的过程中不便于时刻留意系统中任务的变化情况,因此在车载终端上加入了语音提示模块。
    Windows CE提供了音频API接口:
    BOOL WINAPI PlaySound(LPCSTR pszSound,HMOD-ULE hmod,DWORDfdwSound);
    该函数的第1个参数表示要播放的音频文件,第2个参数设置为NULL,第3个参数指定影响声音播放的一些标志。因此,语音模块的实现就是在不同的情况下播放不同的提示声音。

4 结论
    基于Liod评估板的车载物流终端集成了电子地图、GPS定位、GPRS无线通信、打印与称重、语音提示等功能。由于采用栅格图像来实现电子地图,因此通过将小范围内的地理经纬度坐标简化为线性坐标模型,可成功地在栅格图像上实现车辆定位的功能。

关键字:车载终端  电子地图  GPS定位  GPRS通信 引用地址:基于Windows CE的物流车载终端设计

上一篇:三种嵌入式多内核设计模式的比较分析
下一篇:Linux操作系统目录配置标准FHS详细介绍

推荐阅读最新更新时间:2024-05-02 21:59

车载智能终端之车联网网关
我国已形成基本齐全的物联网产业体系,部分领域已形成一定市场规模,网络通信相关技术和产业支持能力与国外差距相对较小,传感器、RFID等感知端制造产业、高端软件和集成服务与国外差距相对较大。仪器仪表、嵌入式系统、软件与集成服务等产业虽已有较大规模,但真正与物联网相关的设备和服务尚在起步。 如果说互联网是把人与人联系起来,那么车联网就是加入了车,人可以跟车交流,车可以主动显示关于它自己的信息。 国内,车联网作为物联网中的一种表现形式,已经通过国家专家组论证,预计投入2000个亿,被国内学术界认为是第一个切实可行的物联网系统,车联网作为物联网在道路交通行业的重要应用,也是物联网应用做得比较好的行业之一。在国外,车联网可能被成为 In
[嵌入式]
基于ARM的车载GPS定位终端的设计
1 引言 车载GPS定位终端在过去十年内已经成为汽车工业发展的焦点。在欧美国家和日本,车载GPS定位终端在最近几年内得以广泛的应用。车载GPS定位终端是融全球卫星定位技术(GPS)和现代无线通信技术于一体的高科技系统。该终端的主要功能是通过GPS模块从卫星获取GPS数据,将移动车辆的动态位置(经度、纬度、时间、速度)等信息实时地通过无线通信链路上传至监控中心,同时接收监控中心发送的控制命令。目前的车辆监控系统中大多采用GSM通信网以短信息的方式进行通信,不能充分满足实际应用的需要。而GPRS(General Packet Radio Service)通用分组无线业务是一种以分组交换技术为基础,采用IP数据网络协议的高效数据传输
[嵌入式]
外媒:确认4G通讯信号对GPS定位有干扰
·由散到聚 汽车后市场已进入“高铁时代” ·远峰YFinside全球化 新品将亮相CES展 ·假日自驾游注意检灯光 爱车须“护眼” ·试驾长城汽车腾翼C50 配备iphone自动读.. ·独特安卓系统GPS 尼派G70界面与设置 ·GPS、电子书与xPad相争 挣热钱并不容易 ·改走豪华路线!日产顶级SUV新途乐实拍 ·车联网时代来临 Wi-Fi通讯望超有线通讯 ·汽车驾驶小常识如何正确使用远近光灯? ·政策频发定调新能源 中国汽车再寻追赶机会
[网络通信]
基于PXA270嵌入式开发板GPS定位系统的设计
作为卫星导航系统,GPS具有性能好、精度高、应用广的特点,是迄今为止应用最广泛的导航定位系统。将GPS与嵌入式技术融合在一起,形成一个嵌入式的地理平台,是当前GPS领域的一个重要趋势。本文是在PXA270嵌入式开发板和GPS模块上开发实现的。在Linux下的嵌入式开发环境中,利用C++设计完成定位。嵌入式系统利用软件设计主要完成GPS定位信号的处理、电子地图的移植、地球坐标的转换、定位的显示等功能。 1 系统概述 嵌入式系统是控制、监视或者辅助装置、机器和设备运行装置;是软件和硬件的综合体,可涵盖机械等附属装置;有着友好的人机界面,支持LCD及GPS模块;主要完成提取GPS定位信号的数据、坐标转换、电子地图的显示等功能。软
[电源管理]
基于PXA270嵌入式开发板<font color='red'>GPS定位</font>系统的设计
gps定位,gps授时|L1+L5双频多模定位模块SKG123N系列模块介绍
SKG123N系列模块包括SKG123N、SKG123ND、SKG123NT、SKG123NR和SKG123NRD,是一款L1+L5双频段、高精度、高性能的GNSS领域定位模块,模块能够同时支持GPS、BDS、GLONASS、Galileo 以及QZSS的 卫星定位 系统、并且支持AGPS;集成了高性能、高可靠性的定位引擎,可实现快速精确的GNSS 定位。 SKG123N系列模块提供了两个串口,其中, UART 0用于发送卫星信息,UART2用于输出差分信息。支持数据传输、固件升级功能,输入/输出信号类型为 LVTTL 电平 (3.3V)。默认 波特率 为115200bps,最高可设为 921600bps,串口波特率均可由用户
[汽车电子]
<font color='red'>gps定位</font>,gps授时|L1+L5双频多模定位模块SKG123N系列模块介绍
一种基于PIC单片机和GPS接收模块的手持式GPS定位系统
  1 引言   GPS以其高精度,全天候,全球覆盖,方便灵活和优质价廉吸引全世界许多用户。GPS的广泛应用改变了人们的工作方式,提高工作效率,带来巨大的经济效益。这里提出一种基于EM411 GPS接收模块和PIC18F2550单片机的手持式GPS定位系统设计方案。该系统采用点阵字符液晶屏显示接收GPS卫星数据,并用SD卡记录所接收到的GPS信息,从而实现GPS数据导入电子地图。   2 NEMA协议简介   目前,GPS采用NMEA-0183协议做为发送和接收数据的标准,NMEA-0183是美国国家海洋电子协会(NationalMarine Electronics Association)为统一海洋导航规范而制定的标准,该格
[单片机]
一种基于PIC单片机和GPS接收模块的手持式<font color='red'>GPS定位</font>系统
基于BF533的智能车载终端
引言 机动车辆迅速增长,给人们的生活带来方便的同时,也带来了车辆管理、车辆防盗、车辆遇抢等问题。如何使车辆的管理科学化,提高车辆的运营安全,已经成为一个亟待解决的重大课题。 基于BF533的智能车载终端整合了高性能处理器、全球定位系统、全球移动通信系统GSM/GPRS、蓝牙耳机、TFT-LCD显示器、CMOS摄像头、FPGA逻辑接口、计算机网络等资源。主要实现的功能指标有: *图像实时拍摄、处理功能:提供实时路面情况分析。 *实时定位功能:获得高精度的位置及状态信息。 *监控报警:监控中心通过数据分析可得出车辆位置并提供帮助。 *车载电话功能:可以实现蓝牙免提电话功能,保证语音通信。 *图像存储和文件管理:可存储压缩图像两百多
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

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