冷链物流车载终端的串口扩展方法教程.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
冷链物流车载终端的串口扩展方法研究 关键词:冷链物流 北斗定位 串口扩展 文/黄伟 冷链物流是我国物流行业的重点和难点,食品企业的物流及供应链管理能力逐渐成为企业的核心竞争力,代表了交通运输现代化的发展趋势。而随着我国北斗卫星导航的全面推广,基于北斗卫星导航的食品冷链物流信息监控系统有着巨大的应用前景。冷链物流监控终端以嵌入式硬件平台为基础,通过北斗和GPS双模技术、无线通信和无线传感技术的有机结合,实时获取车辆的位置信息、车厢温湿度状态数据,并将信息发送到远程运营中心,实现了货物在流通过程中的质量与安全监控问题,可以提高车队的利用率和整体效率。 本项目终端采用先进的CortexA8内核、主频1GHz的处理器S5PV210,配合嵌入式实时操作系统WINCE6.0,性能和稳定性好。同时采用北斗/GPS双模定位技术、GPRS/3G/4G无线通信技术、温湿度传感器及门禁传感器、ZigBee短距离通信等技术应用于车载物流信息终端,实现冷链物流运输的无缝实时监控。车载终端结构如图1所示。 图1 从图1可以看出,该车载终端串口外设较多,比如,北斗/GPS模块、IC读卡器、ZigBee通信模块、指纹仪等外设都通过串口与核心处理器通信,但是一般的核心处理器没有这么多串口资源,该项目的S5PV210处理器只有4个UART串口,难以满足冷链物流的车载终端的使用要求,所以本文提出了在WinCE系统下的该车载终端的串口扩展方法。 1、WinCE UART驱动模型 WinCE中串口驱动遵循ISO/OSI网络通讯模型,串口属于inCE网络模块的一个部分采用分层结构设计MDD层向设备管理器提供标准的流设备驱动接口,是独立于硬件平台的框架性的实现;下面一层称为平台相关驱动(Platform Dependence Driver,简称PDD),PDD层包含特定的硬件平台专用代码,是与硬件平台相关的具体实现。串口驱动是作为来实现的。 图2 下面主要描述串口驱动的具体实现,WinCE中串口驱动由设备管理器Device.exe加载,MDD层是以完整的流接口函数给出的,下面介绍串口驱动中基本流接口函数。?? COM_Init是串口驱动的初始化函数,在设备管理器加载该驱动后被首先调用,用于初始化所需的变量,硬件设备等资源。分配代表设备硬件实例的数据结构,并通过硬件抽象接口初始化硬件,接着为接收串口数据创建相应事件并初始化临界区,最后创建数据接受缓冲区。?? COM_Deinit函数在驱动卸载时被执行,实现与COM_Init相反的操作。这个过程会释放驱动中所使用的内存和临界区等系统资源,停止接收数据线程的执行等操作。 COM_Oepn函数在串口被打开时调用,首先为打开设备的结构体分配空间并初始化,检查设备句柄是否有效,加载数据中断服务线程,最后调用PDD层函数对硬件进行初始化。 COM_Close函数是释放COM_Open所分配的系统资源,停止在COM_Open中创建的相关线程和一些避免线程竞争的处理,恢复驱动状态。 COM_Read函数是从串口获取所接收到的数据,该函数有三个参数,第一个参数是COM_Oepn打开的设备句柄,后两个参数与文件系统的使用方法完全一样,一个是接受缓冲指针,另一个是长度。首先进行参数检查,包括对存取权限,计算超时时间。如果设定了超时读取动作会在超时后返回,然后就是对数据缓冲区进行读取的操作。?? COM_Write是与COM_Read相对应的写串口操作。首先检查参数的合法性,然后进入临界区(保障多线程下的独占)设置写数据的目标地址和长度,等待数据发送完成事件后开始新的数据发送。最后,需要处理数据异常情况,如果使用了硬件流控制还要在这里清除发送请求信号,然后通知发送数据操作结束。?? COM_PowerUp和COM_PowerDown操作,这两个函数的调用都由WinCE的电源管理事件来触发,驱动的MDD层并没有对这两个函数进行处理,具体设备上电及下电操作,以及驱动的状态恢复等操作都由PDD层来完成。? COM_IOControl函数用于向设备发送控制命令。包括驱动的电源管理,串口通讯的参数设置,读写串口的同步事件等,具体操作都由PDD层完成功能。 2、软件虚拟UART串口的实现 北斗定位技术应用于冷链物流运输行业,可以获取物流运输车辆的位置以及速度信息,将这些信息上传至远程的运营中心,可以实现车辆和货物的追踪以及监控管理。另外,由于车载终端配合第三方的导航软件,可以实现道路导航,物流车辆可以按照固定线路运行,或者根据导航软件规划的最优路径运行,可以提高物流运输的效率。 但是,串口是独占设备,同一时间只能由一个应用功能使用,为了满足本项目的使用需要,让物流车辆监控和道路导航能同时进行,本文提出了一种软件虚拟串口的实现方法,软件框架如

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档