冷链物流车载终端的串口扩展方法研究
串口扩展(物流POS机设计)
串口扩展IC的物流POS机一、背景随着互联网技术的发展与进步,我们越来越多的工作都需要依赖电脑或者是电子设备,就连很多传统行业,也在“互联网+”的推动下发生了翻天覆地的变化,比如我们曾经的物流行业,现在物流行业的货物从邮寄放发出邮寄需求到收件人签收,我们都可以随时随地查询,那么这些信息是怎么实现实时传输到互联网的那?当然离不开我们功能越来越强大的智能手持终端。
难道这不就是一个“互联网+行业智能硬件”的成功例子。
当然,有这样需求的行业还有很多,比如电商、零售、政府部门等。
二、行业概况智能硬件终端在我们生活中越来越多的被应用于各个行业,同时也为了满足各个行业的实际需求,对于这些设计智能硬件中断行业也在不停的进步和探索新的需求。
目前我们常见的智能硬件终端主要包括POS机、手持PDA等。
下面我们就介绍一款基于串口扩展芯片WK2XXX的手持终端设备的设计。
现在越来越多的手持终端都会集成丰富的功能,所以也就会增加比较多的功能硬件模块,比如我们常见的读卡器模块、GPS模块、无线通信模块、打印头模块、扫描仪模块、指纹阅读器模块等。
而这些模块通常都是用UART接口来实现和主CPU来实现通信。
我们通常的CPU自带2到3个UART,除了一个调试的uart,那么留个我们的UART 接口就只有1个或者2个,那么我们就不得不扩展更多的串口来实现相关功能模块的加载。
我们在考虑了国内和国外的一些串口扩展IC后,最终决定选着为开微电子有限公司的wk2xxx系里的串口扩展芯片,原因如下:wk2xxx系列串口扩展芯片的硬件收发缓存大,有超时中断等三、总体设计方案1、总体原理框图本设计采用了三星的S5PV210作为主控CPU,运行linux、安卓、wince7.0系统平台都可以,然后使用WK2204串口扩展芯片实现不同串口模块的搭载,具体的串口扩展模块包括读卡器、GPS、串口打印机、串口扫描仪等2、WK2204介绍WK2204是首款具备256级FIFO的低功耗并支持 UART/SPI TM/IIC位并行总线接口的4通道UART器件。
基于ARM9的车载智能终端多串口扩展设计与应用
一,难以适应车载GPS系统发展的要求。基于上述情况,笔 者在车载智能终端的研究中选择了运算能力强、兼容性和可扩 展性好的ARM9处理器作为核心器件,并利用嵌入式操作系
统管理各功能模块。该车载终端具备实时定位监控、多媒体网 络、无线上网等多种功能。开发时ARM9处理器需通过串口
软件设计时,在应用程序与GM8125串口芯片的中断驱 动之间加入一个缓冲区,对5个子串口划分相应的子缓冲区, 主机读寄存器各标志位flag的值确定是否向相应的子串口发送 数据或接收子串口发送的数据.这样主机不需要直接对各子串
口中断进行操作,提高了程序运行的速率。系统软件结构框图
如图2所示。
的MS相连,用于对MS的控制,选择GM8125的工作模式, nGCSI与GM8125的RST连接,通过对其输入低电平信号实
‘1’表明有数据存人,再通过TI是否为‘1’判断发送还是接 收数据,若TI=1说明有数据发送,控制STADD2~0的状态 选择希望发送数据的子串并置TI=0;若TI不为‘1’说明有
D^TA0 D^TAI mT^2 D^T^3 MTA4 毗TA5
SJiAD∞
T】【D4 麟D4
S从DDl S髓伽2
STADD0 ST^DDl ST^DD2
port
use
of
a
five serial
ports——GM8125
toLeabharlann implement serial
expansion,and the means of the delaminating deign for the serial communica・
at
optimize the stability and efficiency of the system.And
串口扩展方案总结
串口扩展方案总结串行接口设备凭借其控制灵活、接口简单、占用系统资源少等优点,被广泛应用于工业控制、家庭安防、GPS卫星定位导航以及水、电、气表的抄表等领域。
在这些嵌入式系统中,可能会有很多从设备都通过串行接口与主机进行通信,如GPRS MODEM、红外发送和接收模块、RS485总线接口等。
这使得开发人员常常面临嵌入式系统中主机串行通信接口不足的问题,针对此问题,本文介绍了几种常见的解决方法。
软件模拟法软件模拟法可根据串行通讯的传送格式,利用定时器和主机的I/O口来模拟串行通讯的时序,以达到扩展串口的目的。
接收过程中需要检测起始位,这可以使用查询方式,或者,在端口具有中断功能的主机中也可以使用端口的中断进行处理。
接收和发送过程中,对定时的处理既可以使用查询方式也可以使用定时器中断方式。
为了确保数据的正确性,在接收过程中可以在检测异步传输的起始信号处加上一些防干扰处理,如果是无线传输系统,在接收每个位时可以采用多次采样。
对于有线系统来说,1次采样就够了,你看IIC,SPI等,谁去进行了多次采样。
如今软件模拟以其价格低廉,使用方便,已经成为一种潮流.但是不是所有的单片机都适合用来进行串口的软件模拟的.软件模拟的方法一般有两种,一种是读写I/O,另外一种是读写端口.很容易想到采用读写端口的方式模拟的方式,各串口的波特率必须保持一致.而且当各路数据的输入时间差只有那么几十微秒时,很容易造成数据丢失,虽然看上去这种方式也可以承受输入数据端短路的高数据量压力测试,但这种测试方法是刚好落在了该方案的最佳输入点上.所以真正的使用中是有几率出错的.而采用我们PDK80CXX系列在进行8路以下(4路全双工通讯)的串口模拟时,完全可以采用读写I/O口方式来完成,这样,我们可以非常轻松完成个子口的波特率不等的设置.而且可以达到非常高的速率,当外接8MHz的晶体时,3路子口的最高速度可以达到38400以上.我想就是38400的波特率一般的单片机也就足够了.俗话说,"打铁还需墩子硬",而我们PDK80CXX都是工业规格设计,超强的抗干扰性,超宽的高低温工作范围.不知道各位看官目前有没有用过可以在-40~+120摄氏度工作的单片机.所以采用PDK80CXX模拟串口扩展无疑是目前性价比最高的一种解决方案.利用并口转串口扩展串行口基于Intel8251的串行口扩展Intel8251是一种通用的同步/异步发送器(USART),它的工作方式可以通过编程设置,并具有独立的接收/发送器。
串口扩展方案
串口扩展方案随着IoT行业的不断发展,越来越多的设备需要通过串口接口进行数据通信。
然而,随着设备数量和复杂度的增加,传统单一串口接口已无法满足需求,因此,串口扩展方案应运而生。
一、传统串口接口存在的问题1.串口数量有限。
通常情况下,单片机的串口数量较少,只有2-3个,难以满足众多设备对串口的需求。
2.传输速率慢。
由于串口属于同步通信方式,数据传输速度受限于波特率,无法满足高速数据传输的需求。
3.线路长度受限。
串口通信的线路长度受限于数据传输速率和传输距离,过长的线路会导致数据传输的错误率增加。
二、串口扩展方案的应用为了解决传统串口接口存在的问题,一些公司推出了串口扩展方案,通常采用多路串口扩展芯片控制多个串口通信。
与传统串口接口相比,串口扩展方案有以下优点:1.多路串口同时工作,可扩展串口数量。
采用多路串口扩展芯片可同时控制多个串口,最多可扩展到数十个,可以满足多设备同时通信的需求。
2.高速数据传输。
通过采用高速串口扩展芯片,可实现高速串口通信,提高数据传输速率。
与传统串口通信方式不同的是,串口扩展方案支持异步通信方式,传输速度可达115200 bps。
3.传输距离较长。
采用串口扩展方案,可通过增加串口重复器等设备扩展传输距离,解决了传输距离有限的问题。
三、串口扩展方案的实现串口扩展方案通常由两部分组成:串口扩展芯片和串口重复器。
串口扩展芯片负责控制多个串口,实现多路串口通信。
串口重复器则负责扩展传输距离,可由多个串口级联来扩展传输距离。
目前市面上主流的串口扩展芯片包括CH341、CP2102、FT232等。
这些芯片具有高性能、稳定性好、价格低廉等特点,广泛应用于串口扩展方案中。
四、串口扩展方案的应用案例1.智能家居方案中的串口扩展智能家居设备通常需要通过串口进行通信,但一个家庭内通常需要大量智能家具,单一的串口无法满足需求。
串口扩展方案可以满足多个设备同时通信的需求,使智能家居方案更加智能化。
串口扩展方案
串口扩展方案在现如今的数字化时代,串口扩展方案成为了重要的解决方案之一。
随着人们对设备互联的需求不断增长,串口的数量往往成为了限制因素之一。
本文将探讨串口扩展方案的重要性以及适用的场景,并提供一些实用的解决方案。
1. 串口的重要性串口作为一种通信接口,广泛应用于各类设备之间的数据交互。
在工业控制系统中,串口用于连接PLC、传感器、执行器等设备,实现数据的采集和控制。
在通信领域,串口常用于调试和与外设的连接,例如模块的升级和配置。
可以说,串口在现代设备中扮演着重要的角色,但受制于硬件的限制,设备往往只提供有限的串口接口。
2. 串口扩展的需求在实际应用中,很多场景需要连接大量的串口设备,例如工业自动化中需要同时连接多个传感器和执行器。
此时,设备提供的有限串口接口无法满足需求,这就需要通过串口扩展方案来解决问题。
串口扩展方案可以通过添加外部设备或者使用插卡等方式来增加串口接口数量,提供更多的串口供应。
3. 常见的(1)串口扩展器串口扩展器是一种常见的硬件方案,它可以通过连接到设备的串口接口上,实现串口数量的扩展。
串口扩展器通常具有独立的电源和控制芯片,可以提供稳定的信号传输和控制。
通过串口扩展器,用户可以方便地连接更多的串口设备,同时保持原设备的串口接口不变。
(2)USB转串口适配器USB转串口适配器是另一种常见的串口扩展方案。
它可以通过连接到设备的USB接口上,实现串口与USB之间的互相转换。
使用USB转串口适配器,用户可以在不改变原有设备的情况下,通过USB接口连接串口设备。
USB转串口适配器通常具有小巧的外形和良好的兼容性,适用于普通计算机和移动设备等。
(3)网络串口服务器网络串口服务器是一种便捷的串口扩展方案,它通过将串口信号通过网络传输,实现远程访问和控制。
用户可以通过网络访问串口设备,实现数据的读取和控制。
网络串口服务器通常具有良好的兼容性和可扩展性,可以满足大规模的串口扩展需求。
4. 选择适合的串口扩展方案在选择串口扩展方案时,需要根据实际需求和应用场景进行综合考虑。
串口扩展方案
串口扩展方案在现代技术应用中,串口通信是一种非常重要的通信方式之一。
串口通信通过串口线连接设备,可以实现设备之间的数据传输和通信。
然而,在某些情况下,单个串口的数量可能无法满足需求,这时候就需要考虑串口扩展方案。
串口扩展方案是指通过一定的硬件和软件设计来扩展串口的数量,以满足特定应用场景的需要。
串口扩展方案通常包括硬件层面和软件层面两部分。
在硬件层面上,串口扩展方案通常需要使用串口扩展芯片或模块。
这些芯片或模块可以提供额外的串口接口,从而增加系统的串口数量。
常见的串口扩展芯片或模块有UART(通用异步收发器)、USB转串口模块、PCIe串口卡等。
这些设备通常具有多个串口接口,可以通过连接到主机来实现串口的扩展。
在软件层面上,串口扩展方案通常需要开发相应的驱动程序或库。
这些驱动程序或库可以与操作系统进行交互,实现对串口扩展设备的控制和数据传输。
同时,还需要开发相应的应用程序,以实现对扩展串口的应用和管理。
在软件层面上,串口扩展方案还可以利用现有的串口通信协议和通信方式,对扩展串口进行配置和控制。
串口扩展方案的应用非常广泛。
例如,在工业自动化领域,需要对多个设备进行串口通信,以实现设备之间的数据传输和控制。
串口扩展方案可以通过增加串口接口,使得多个设备可以同时进行串口通信,提高工作效率和通信质量。
此外,在物联网领域,需要对多个传感器进行数据采集和通信,串口扩展方案可以通过增加串口接口,方便传感器与终端设备之间的数据交互。
然而,串口扩展方案也存在一些挑战和考虑因素。
首先,需要根据实际需求选择合适的串口扩展设备。
不同的设备有不同的接口和性能特点,需要根据具体需求进行选择。
其次,在开发软件层面时,需要考虑兼容性和稳定性问题。
在不同的操作系统和平台上,可能需要针对不同的硬件和接口进行相应的驱动程序和应用程序的开发。
总之,串口扩展方案是一种有效的手段来满足特定应用场景下的串口需求。
通过合理选择硬件设备和开发相应的软件,可以实现串口的扩展和应用。
808-2013车载终端通讯扩展协议草案V1.0-20160913
808-2013车载终端通讯扩展协议序号版本号修订日期修订概述修订人备注808-2013车载终端通讯扩展协议草案本协议是对JT/T 808-2013的扩充,规定了道路运输车辆卫星定位系统车载终端(以下简称终端)与监管/监控平台(以下简称平台)之间的扩展,包括协议基础、消息定义、分类与说明及数据格式,外设是对终端外各类设备的统称,包括各类传感器、信息终端、视频等。
本协议规定与外设有关的信息包括测量数据信息、标定信息、设置参数三类,通过终端与平台的数据交互有三种方式:1)传感器测量数据作为位置信息的附加信息定期上报2)标定数据通过透传方式进行下传上报信息3)参数设置通过设置终端参数和查询终端参数方式下传上报约定:1)外设ID为外设的唯一标示,代表与外设有关的输出消息,设置参数、外设地址的低八位2)数据长度单位:BYTE,适用于本文本,数据长度简称长度3)传感器的测量数据为4个字节,设置参数规定为2个字节4)所有数据按照HEX格式编码、数据为整形数1 位置信息附加外设消息扩展消息ID:0x0200消息体:位置基本信息+附加外设消息体附加外设消息体:附加消息标志外设消息包总数外设消息项列表0xF3 n外设ID 外设消息长度外设消息内容外设ID定义见表1 长度内容2 透传指令扩展透传下行消息ID:0x8900透传上行消息ID:0x0900透传消息体:透传消息类型透传消息包总数外设消息项列表见表2 n外设ID 外设消息长度外设消息内容外设ID见表1 长度内容表2、透传消息类型扩展定义透传消息类型描述及要求0xF7 外设传感器测量数据结果0XF6 外设传感器标定数据0XF5 外设参数设置3 参数查询/设置扩展设置外设参数消息ID:0x8103查询外设参数消息ID:0x8104参数信息体:参数消息包总数外设消息项列表n(BYTE)参数ID (DWORD) 外设参数长度(BYTE)外设参数内容参数标志(BYTE) 外设ID(BYTE)0xF3 外设ID见表1 长度内容说明:参数ID采用DWORD为保持与部标统一,本协议使用低16位,高位补零;4 外设软件升级扩展下发外设升级包消息ID:0x8108 外设升级结果消息ID:0x0108 下发外设升级包消息体:升级类型(BYTE) 外设ID(BYTE)数据长度(WORD)升级文件包内容分包总数(WORD) 分包序号(WORD) 分包内容扩展类型F3:外设见表1 包长度分包总数分包序号升级包文件注:808协议升级类型:0:终端,12:运输证IC卡读卡器,52:北斗卫星定位模块说明:由于终端存储空间限制,平台向终端分包发送传感器升级文件,每包的数据内容不大于500字节,首个升级包的文件内容为升级文件的校验码,该校验码为升级文件所有字节之和,终端接收完升级包,并验证无误后,向平台确认接收完整正确,升级包文件一般是加密的,无需解析。
物流终端多串口扩展的设计
项 目分 析
RI FD读写 模 块所 支 持 的频 段包
由于 射 频 和 无 线模 块 自带 的 接 口是 非 标 准 的 ,不 能直 接 与 单 片 机
物 流 终端 — — 双 频读 写 器 设 计 括 1 . MHzH ) 9 5 35 6 ( F 和 1 MHzUHF 。 ( )
子 板 方 案 ,选 择 了 P / 0 C 1 4并 口总 线 ,通 过 并 /串 转换 芯 片 T 6 5 L1 C5 4扩 展 4个 串 口的设 计 ,分 析 了 T 6 5 4的 内部 结 构 及 外部 特 性 ,并 据 此 给 出了扩 展 电路 图。 L1 C 5 关 键 词 :串 口扩 展 ; T 6 5 4 L1 C 5 ;读 写器 ;GP RS;CDMA;P /0 C 1 4总线
—
nR I 、 U A R T A
— — _ —
nC T S A 、
U A R T RX DA 、 U A RT nD S A 、 R UA RT
~
n DCDA 是 与 GPRS模 块
(I S EM ENS M C5 i的接 口信 号 ; 3)
U A R T T X D B 、 U A R T nRTSB 、
AM D NS Ge d Gx 0 M Hz处 理 独 立 ,其 中 ,1 .6 o e 3 0 l 35 MHz 块 采用 中 通 过 设 计 扩 展 子 板 来提 供 这 4个 模 模
器 和 cs5 30 协 处 理 器 ,支 持 距 离 识别 , 1MHz 块 实 现 长距 离 块 与 C U的 接 口。 5 A 95 模 P 1 8 SDRAM ,并 提 供 Ulr 芯 片 读 写 。两 个 模 块 均 接 收 来 自信 MB 2 ta DMA I DE接 口, 可外 接 硬 盘 。 外 , 息 平 台的控 制消 息 ,进 行 相 关 读 写 此 它 还 提 供 了 LCD 等 丰 富 的 外 设 接 操 作 ,并将 结 果 反 馈 给 信 息 平 台进
并口扩展技术和串口扩展技术
一、概述随着科技的不断发展,各种智能设备的应用日益广泛,而这些设备往往需要通过接口与其他设备进行通信和数据传输。
在这种情况下,并口扩展技术和串口扩展技术成为了不可或缺的重要部分。
本文将从技术原理、应用场景、发展趋势等方面深入探讨这两种技术,旨在为读者提供全面深入的了解。
二、并口扩展技术1. 技术原理并口扩展技术是指通过并行接口来扩展设备的连接数量和功能。
它采用并行传输的方式,可以同时传输多个比特的数据,具有传输速度快的特点。
通常使用并口接口来连接打印机、扫描仪、摄像头等外部设备,实现数据传输和设备控制等功能。
2. 应用场景并口扩展技术在计算机、工业自动化、通信设备等领域有着广泛的应用。
工业控制系统常常需要连接多个传感器和执行器,通过并口扩展技术可以实现对这些设备的同时监控和控制。
在传统打印机和扫描仪等外设仍然使用并口接口的情况下,也需要并口扩展技术来连接更多的设备。
3. 发展趋势随着数字信号处理技术的不断成熟和发展,数字接口的应用逐渐增多,而并口接口由于其传输速度慢、线缆多等缺点逐渐被淘汰,因此并口扩展技术的应用范围将逐渐减小。
但在特定领域仍然会有一定的市场需求,尤其是一些老旧设备的维护和更新中仍然需要使用并口扩展技术。
三、串口扩展技术1. 技术原理串口扩展技术是指通过串行接口进行数据传输和设备连接的技术。
串口传输是逐位传输的方式,具有传输距离远、线缆简单等优点,通常使用在远距离通信和对传输速度要求不高的场景中。
2. 应用场景串口扩展技术在工业自动化、通信设备、安防监控等领域有着广泛的应用。
在工业控制系统中,需要对分布在不同位置的设备进行数据采集和控制,通过串口扩展技术可以实现长距离的数据传输和设备连接。
在安防监控系统中,摄像头、门禁等设备通常需要与中心监控系统进行数据交换,串口扩展技术可以满足这些设备的通信需求。
3. 发展趋势随着通信技术的不断进步,以太网、无线通信等技术在数据传输和设备连接方面的优势逐渐显现,串口扩展技术在某种程度上受到了一定的冲击。
串口扩展方案总结
串口扩展方案总结行接口设备凭借其控制灵活、接口简单、占用系统资源少等优点,被广泛应用于工业控制、家庭安防、GPS卫星定位导航以及水、电、气表的抄表等领域。
在这些嵌入式系统中,可能会有很多从设备都通过串行接口与主机进行通信,如GPRS MODEM、红外发送和接收模块、RS485总线接口等。
这使得开发人员常常面临嵌入式系统中主机串行通信接口不足的问题,针对此问题,本文介绍了几种常见的解决方法。
软件模拟法软件模拟法可根据串行通讯的传送格式,利用定时器和主机的I/O口来模拟串行通讯的时序,以达到扩展串口的目的。
接收过程中需要检测起始位,这可以使用查询方式,或者,在端口具有中断功能的主机中也可以使用端口的中断进行处理。
接收和发送过程中,对定时的处理既可以使用查询方式也可以使用定时器中断方式。
为了确保数据的正确性,在接收过程中可以在检测异步传输的起始信号处加上一些防干扰处理,如果是无线传输系统,在接收每个位时可以采用多次采样。
对于有线系统来说,1次采样就够了,你看IIC,SPI等,谁去进行了多次采样。
如今软件模拟以其价格低廉,使用方便,已经成为一种潮流.但是不是所有的单片机都适合用来进行串口的软件模拟的.软件模拟的方法一般有两种,一种是读写I/O,另外一种是读写端口.很容易想到采用读写端口的方式模拟的方式,各串口的波特率必须保持一致.而且当各路数据的输入时间差只有那么几十微秒时,很容易造成数据丢失,虽然看上去这种方式也可以承受输入数据端短路的高数据量压力测试,但这种测试方法是刚好落在了该方案的最佳输入点上.所以真正的使用中是有几率出错的.而采用我们PDK80CXX系列在进行8路以下(4路全双工通讯)的串口模拟时,完全可以采用读写I/O口方式来完成,这样,我们可以非常轻松完成个子口的波特率不等的设置.而且可以达到非常高的速率,当外接8MHz的晶体时,3路子口的最高速度可以达到38400以上.我想就是38400的波特率一般的单片机也就足够了.俗话说,"打铁还需墩子硬",而我们PDK80CXX都是工业规格设计,超强的抗干扰性,超宽的高低温工作范围.不知道各位看官目前有没有用过可以在-40~+120摄氏度工作的单片机.所以采用PDK80CXX模拟串口扩展无疑是目前性价比最高的一种解决方案.利用并口转串口扩展串行口基于Intel8251的串行口扩展Intel8251是一种通用的同步/异步发送器(USART),它的工作方式可以通过编程设置,并具有独立的接收/发送器。
物流终端多串口扩展的设计
物流终端多串口扩展的设计
雷建龙
【期刊名称】《传感器世界》
【年(卷),期】2007(13)5
【摘要】本文详述了863子课题-"双频RFID读写器"的设计.根据项目的基本需求情况提出了扩展多串口通信子板方案,选择了PC/104并口总线通过并/串转换芯片TL16C554扩展四个串口的设计,分析了TL16C554的内部结构及外部特性,并据此给出了扩展电路电路图,对电路图进行了分析说明.
【总页数】4页(P33-35,45)
【作者】雷建龙
【作者单位】武汉船舶职业技术学院电子系
【正文语种】中文
【中图分类】TN92;TP73
【相关文献】
1.物流终端多串口扩展的设计 [J], 雷建龙
2.物流终端多串口扩展的设计 [J], 雷建龙
3.基于WinCE和ARM的多串口扩展及485通信设计 [J], 贾继鹏;张永坚;胡延凯
4.基于嵌入式多串口扩展的出租车智能导航终端设计与实现 [J], 郭歌;许军
5.基于ARM9的车载智能终端多串口扩展设计与应用 [J], 涂清;杜列波;罗武胜因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间: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网络通讯模型,通信串口属于WinCE网络模块的一个部分,其串口驱动的构架如图2所示。
驱动采用分层结构设计,上面一层称为模型设备驱动(Model Device Driver,简称MDD),MDD层向设备管理器提供标准的流设备驱动接口,是独立于硬件平台的框架性的实现;下面一层称为平台相关驱动(Platform Dependence Driver,简称PDD),PDD层包含特定的硬件平台专用代码,是与硬件平台相关的具体实现。
两层驱动通过设备驱动服务接口(DDSI)进行交互,串口驱动是作为流接口驱动来实现的。
图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串口的实现北斗定位技术应用于冷链物流运输行业,可以获取物流运输车辆的位置以及速度信息,将这些信息上传至远程的运营中心,可以实现车辆和货物的追踪以及监控管理。
另外,由于车载终端配合第三方的导航软件,可以实现道路导航,物流车辆可以按照固定线路运行,或者根据导航软件规划的最优路径运行,可以提高物流运输的效率。
但是,串口是独占设备,同一时间只能由一个应用功能使用,为了满足本项目的使用需要,让物流车辆监控和道路导航能同时进行,本文提出了一种软件虚拟串口的实现方法,软件框架如图3所示。
图3虚拟串口采用标准的流接口驱动模型,MDD层是两个虚拟串口驱动的标准实现,为两个虚拟串口初始化并分别分配数据接收缓冲区;PDD层采用与北斗模块通信的物理串口,将获取的北斗数据分别放在虚拟串口的数据缓冲区中,两个虚拟串口可以分别获取北斗数据给上层应用程序使用。
虚拟串口的实现中主要的数据结构体定义如下:typedef struct tVirtual_Port{DWORD com_number;BOOL com_open_flag;MyCircleBuffer *buffer;CRITICAL_SECTION g_csOpen;CRITICAL_SECTION g_csWrite;CRITICAL_SECTION g_csRead;} Virtual_Port, *PVirtal_Port;该结构体定义中,com_number表示和北斗模块通信的物理串口号;com_open_flag表示该物理串口是否已经打开,由于两个虚拟串口初始化时都会打开物理串口的操作,所以该变量防止物理串口被多次打开;MyCircleBuffer是接受数据的循环缓冲区,每个虚拟串口分配一个2K字节的缓冲区,将北斗模块的数据存在缓冲区中,由应用程序来获取使用;g_csOpen、g_csWrite和g_csRead 是临界区变量,起到保护物理串口的打开以及读写操作,两个虚拟串口操作同一个物理串口,需要互斥操作,否则会发生数据冲突,导致数据通信异常。
虚拟串口的COM_Init函数会初始化上述的结构体变量,申请内存资源,创建接收数据的通知事件;COM_Oepn函数中会打开和北斗模块连接的物理串口,同时创建物理串口的数据接收线程,将接收到的北斗数据存放于循环缓冲区中;COM_IOControl函数实现串口的电源管理,同时实现接收虚拟串口数据的事件,通知应用层北斗数据可以获取;COM_Read函数实现应用层读数据的操作,从循环缓冲区中将北斗数据读到应用层处理;COM_Write函数实现从应用层的数据通过物理串口写到北斗通信模块中,可以对模块进行信息设置。
3、物理UART串口的扩展3.1 VK3224芯片介绍本项目采用VK3224芯片来实现物理UART串口的扩展,该芯片是SPI接口的4通道UART器件,实现SPI桥接/扩展4个串口的功能。
该芯片广泛适用于多串口服务器,多串口卡,工业自动化RS-485控制,车载信息平台,远传自动抄表系统等领域。
扩展的子通道的UART具备如下功能特点:每个子通道UART的波特率、字长、校验格式可以独立设置,最高可以提供1Mbps的通信速率。
每个子通道可以独立设置工作在IrDA红外通信、RS-485及其9位网络地址自动识别、软件/硬件自动流量控制、广播接收等高级工作模式下。
每个子通道具备收/发独立的16 BYTE数据缓冲区,FIFO的中断为4级可编程条件触发点。
VK3224采用SOP20绿色环保的无铅封装,可以工作在2.5~5.5V的宽工作电压范围,具备可配置自动休眠/唤醒功能。
3.2 VK3224的软件实现在本项目中,VK3224工作在SPI同步串行通信的从机模式下,为实现与主处理器S5PV210的通信,在主处理器端需要设置CPOL=0(SPI时钟极性选择位),CPHA=0( SPI时钟相位选择位),VK3224和S5PV210之间通过数据输入/输出信号(SDIN,SDOUT),时钟信号(SCLK),片选信号(SCS)以及中断信号(IRQ)连接,如图4所示。
图4S5PV210工作在SPI主模式,发送数据时,首先,通过片选信号选中VK3224,然后S5PV210产生时钟将数据发送到VK3224端,VK3224根据制定的UART串口号,将数据发送至外设;S5PV210接收数据时,VK3224从外设的UART串口接收到数据后,首先产生中断信号通知主机,然后S5PV210产生时钟通过数据输入信号将数据读取。
VK3224有两级中断:子串口,全局中断。
当IRQ引脚指示有中断时,可以通过读取全局中断寄存器以判断当前中断的类型,然后去读取相应的中断状态寄存器,以确定当前的中断源。
VK3224的每个子串口都有独立的中断系统,包括:FIFO数据错误中断,接收地址中断(RS485模式),XOFF发送中断,发送FIFO触发点中断,接收FIFO 触发点中断。
当任意一个中断使能后,满足中断条件就会产生相应的中断。
3.3 SPI扩展UART的实现本项目的主处理器三星S5PV210有4个UART串口,本文通过SPI接口连接VK3224芯片额外再扩展4路UART串口。
图5所示为S5PV210处理器自带串口的驱动模型,串口驱动采用标准的串口类,Wince驱动层提供流接口函数COM_XXX,链路层通过UART控制器提供UART串口,驱动的实现如本文第一章内容所介绍。
图5在上图所示的串口驱动构架上,我们提出了UART串口扩展的方案,新的驱动构架如图6所示。
新的驱动构架上,WINCE驱动层依然采用标准的串口类,提供标准流接口函数。
链路层分成两部分,第一部分采用UART控制器提供多个UART串口,和图5所示驱动模型一样;第二部分采用SPI扩展的方式,通过SPI 控制器和UART扩展芯片VK3224连接,数据通过SPI传输给VK3224,然后VK3224根据数据传输的协议,将数据分发给不同的外扩串口。
本文主要介绍通过SPI外扩串口的驱动实现,4个外扩串口共享一套驱动,提供标准的流接口函数。
在COM_Init函数中,首先通过注册表获取当前的串口号并记录在结构体变量中,初始化该串口的读、写操作同步信号量,接着创建当前串口的接收循环缓冲区,然后初始化SPI控制器,配置SPI的主从传输模式,以及SPI传输时钟及数据格式,最后初始化外部接收中断,创建SPI接收数据线程,有数据接收时,VK3224会中断CPU启动接收。