串口扩展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/SPITM/IIC位并行总线接口的4通道UART器件。可以通过模式选择使得该芯片工作于以上任何一种主接口模式,将选定的主接口扩展为4个增强功能的UART。
扩展的子通道的UART具备如下功能特点:
每个子通道UART的波特率、字长、校验格式可以独立设置,最高可以提供1.5Mbps的通信速率。
每个子通道可以独立设置工作在IrDA红外通信、RS-485自动收发控制、9位网络地址自动识别、软件/硬件自动流量控制等高级工作模式下。
每个子通道具备收/发独立的256 级FIFO,FIFO的中断可按用户需求进行编程触发点且具备超时中断功能。
WK2204采用QFN24绿色环保的无铅封装,可以工作在2.0V~3.6V的宽工作电压范围,具备可配置自动休眠/唤醒功能。
四、 硬件设计要点
1、本硬件设计主要介绍WK2204的相关外围电路和扩展UART的方式
从上图我们可以看出,wk2204通过SPI接口和S5PV210实现数据通信,同时也把自身的中断信号输出到S5PV210的外部中断输入引脚,这样就可以通过中断快速的处理WK2204收到的相关数据。
同时wk2204连接的4个串口设备读卡器、GPS、打印机、扫描仪通过UART和wk2204通信,最终实现和S5PV210通信。
五、 软件设计要点
本设计就也LINUX系统为例。像这种系统级的产品,主要包括驱动设计、系统移植、和应用APP设计。我们主要重点介绍WK2204在LINUX下的驱动程序设计。因为这也是本设计中的重点和难点。
1、 Wk2204总体驱动框架介绍
嵌入式系统的驱动程序是linux系统内核和设备硬件之间的接口。他把系统调用映射到具体设备对于实际硬件的特定操作上,关系如下图所示:
通过这种方法,应用程序就可以像操作普通文件一样操作硬件设备,用户程序只需要关心这个抽象出来的文件,而一切同硬件打交道的工作都交给了驱动程序。比如我们要向屏幕输出一串字符串,我们只需要把字符串写到显卡所抽象出来的文件里,而真正把字符串传到显卡里的工作就是由驱动程序来完成的。
在Linux下,驱动程序是内核的一部分,运行在内核态下,你可以将驱动静态的和内核编译在一起,这样的缺点是内核会比较大,而且如果驱动出错,会导致整个系统崩溃;也可以module的方式编译,在需要的时候动态的载入。
Linux3.0是目前应用较广的版本,易于开发驱动程序,也很方便移植到其它版本的Linux中。本软件产品就是基于S5PV210的Linux(linux3.0内核)平台,开发的WK2XXX系列串口扩展芯片的驱动软件 。
在此我们不在对驱动的程序做详细的介绍,具体的驱动程序可以向为开微电子有限公司索取,他们都做好了相关的驱动
2、 系统调用
由于驱动最后在系统上体现都是一个个串口设备文件,那么我们在制作打印机、扫描仪相关应用程序的时候,那么就直接调用系统的串口设备文件,实现应用程序即可。
六、 总结
现在在互联网高速发展的年代,作为设备设计,我们首先是要了解市场需求和并把需求快速实现产品。这一切都需要产品设计的模块化设计,这样既可以减少开发时间,也可以增加系统的稳定性,并降低成本。串口设备越来越多的今天,我们选择一款好的串口扩展芯片可能就更加重要了。Wk2204从为开微电子的了解来看,已经实现量产,而且从市场的反馈来看产品稳定,而且比较好用也更加实用。
|