基于WiFi无线网络的嵌入式打印终端的设计

2011-02-18 17:32:56来源: 电子产品世界
  目前,国内外大多数打印终端是以固定设备的方式为用户提供数据录入和打印服务,设备投资较大,并存在安装、使用不方便等缺陷。嵌入式无线打印终端可以很好地克服以上的缺点,它融入了无线网络的新技术,可以通过扫描仪、键盘和打印机来输入输出数据,同时通过WiFi无线网络,与远程服务器的数据库进行数据交互,能满足超市的收银系统、图书馆的借还书系统、火车站的售票系统等系统的基本功能的需求;同时随着打印终端运用的越来越广泛,它也会为流动性比较强的应用场合提供方便,例如节假日期间,在旅游区、火车站、电影院等增加临时售票点、在营业厅和各种消费场所的移动打印查询终端以及在仓库配送管理中的应用等等。

  嵌入式打印终端的系统架构

  无线移动打印系统的架构图如图1所示,本系统采用C/S结构,PC机作为远程服务器,嵌入式打印终端作为客户端。嵌入式打印终端以S3C2440A处理器为核心,选用Linux操作系统,外接触摸屏,同时有良好的人机界面,它负责接收输入设备(扫描仪和键盘)的数据,并通过无线局域网与远程服务器完成数据的查询与交互,并将结果从打印机输出;远程服务器用于存放大型数据库,并通过无线网络接收无线移动打印终端发来的数据,完成数据的查询、更新、发送工作。

  系统硬件

  嵌入式打印终端硬件结构图如图2所示。该平台选用S3C2240A为处理器,它功能引脚丰富,包含了3个串口引脚,同时集成了丰富的外设控制寄存器,包括LCD控制器、USB设备寄存器等等,以方便外设的扩展。嵌入式打印终端的外设按照作用分类,主要分为两大模块:功能模块和系统调试与升级模块,功能模块主要是实现嵌入式打印终端的查询和打印功能,系统调试和升级模块主要方便系统的调试和以后系统的升级。

  功能模块主要包含扫描仪、打印机、扩展键盘、WiFi无线设备、7英寸的触摸屏显示器和128M Nandflash。S3C2440A有三个串口,通常情况下,串口0用作整个系统的控制终端,我们选用串口1连接带RS-232串口的扫描仪,选用串口2连接带RS-232串口的微型打印机;扩展键盘,由GPIO引脚扩展而成,包含基本的数字键和确认键,主要是在扫描仪失效或者条形码不能扫描的时候使用;WiFi无线网卡一般为USB口,目前最流行、性价比最高的是TP-Link USB WiFi无线网卡,我们可以将WiFi无线网卡插在电路板的USB Host接口上;7英寸的触摸屏显示器主要用于显示,也可以通过触摸屏进行一部分选择和确认操作;128M Nandflash用于存储Linux操作系统和文件系统。

  系统调试与升级模块主要由一个串行接口、一个RJ45的网络接口、一个USB接口组成,串口作为整个系统的控制终端,显示调试信息;RJ45网络接口可以运用NFS服务,进行在线系统调试;USB接口可以下载更新的程序,也可以对Nandflash的程序进行拷贝与备份。

  系统软件

  Linux驱动程序

  嵌入式打印终端外接了输入输出设备,所以要编写输入设备和输出设备的驱动。编写设备驱动就是为具体硬件的file-operations结构编写各个函数(包括open、read、write、ioctl等),Linux内核中驱动程序种类齐全,我们可以在同类型驱动的基础上进行修改以符合具体的单板。

  嵌入式打印终端与服务器之间的网络通信,主要是无线网卡与服务器端的无线路由之间的通信。Linux内核驱动丰富,包含了多种型号的USB无线网卡驱动,用户可以选择合适无线网卡型号。本嵌入式打印终端系统中采用Linux-2.6.32.2内核。为了加载无线网卡驱动,我们在内核所在的目录运行make menuconfig,进入内核的配置主菜单。进行如下选择:networking support→wireless→Generic IEEE 802.11 Networking Stack(mac80211),这样就选择了无线网卡的协议类型,然后退回到内核配置主菜单,选择device drivers,通过device drivers-->netword device support-->wireless LAN,选择Wireless LAN(IEEE 802.11)子项,并进入就可以看到已经配置了以芯片厂商为分类方式的常见的各种USB无线网卡类型,我们可以选择我们需要的USB无线网卡类型。我们重新编译内核,然后下载到程序存储芯片中重启,就可以在启动信息中看到无线网卡已被识别。通过正确配置无线网卡,就可以实现无线网卡与无线路由的无线连接了,连接信息如图3所示。如果无线路由连接网络,嵌入式打印终端通过无线网卡连接上网,那么它发挥作用的空间也就更大。

  服务器网络通信的实现

  服务器网络通信主要是实现对打印终端发出的信号进行侦听,如果打印终端有连接信号发出,则与之连接,然后按照终端的要求实现数据接收、查询以及发送,具体步骤如下。

  (1)建立socket。分三步进行:首先,要定义服务器的端口和最大连接数;其次,填充服务器的IP地址和端口号;最后,建立一个TCPsocket,如下所示:

  server=socket(AF_INET,SOCK_

  STREAM,0);//定义为局域网,

  套接字为流格式

  if(server==INVALID_SOCKET)

  //需要错误检查

  {

  printf(create server error!\n’);

  exit(1);

  }

  (2)绑定IP,即绑定服务器的IP地址和端口号,以便接收打印终端的连接要求。

  (3)监听打印终端的请求。如果打印终端无连接,则进入等待状态,即无限循环状态,如果有连接,则建立连接并执行accept。

(4)收发数据。收发数据也分为三个步骤,首先,接收打印终端发来的数据;然后,服务器根据接收的数据的关键字,在数据库中进行查询;最后将数据库中查询的结果发送到打印终端。

  打印终端网络通信

  打印终端应用程序的主要功能是:将条形码扫描仪等输入设备读取的数据,经过开发板的串口接收,然

  后由无线网络传送到服务器,服务器接收并查询数据库,并将查询的结果返回到打印终端,由打印机打印出相应的结果。其中打印终端的网络部分的程序设计的具体步骤如下所示:

  (1)建立socket,并进行错误检查,失败则返回;

  (2)设定端口、连接方式、连接地址,并试图连接服务器;

  (3)等待输入设备输入数据,如果没有数据输入,则一直等待;

  (4)如果有数据输入且录入完毕,则发送给服务器;

  (5)等待服务器返回数据;

  (6)将返回的数据进行打印;

  (7)关闭socket和相应的设备文件。

 

  应用程序的开发

  服务器端采用Windows Server 2003操作系统,并安装SQL server 2005数据库软件。使用Visual C++ 6.0开发服务器端应用软件[3]。服务器端接收到终端发送的查询指令后,解析后分析所要查询的内容,并通过SQL查询,根据需要查询的关键字搜索到相对的内容,编码后发送给相应终端。

  嵌入式无线移动打印终端采用QT4.6[4-5]开发人机界面,显示查询结果。QT是一个跨平台的C++图形界面库,它有优良的跨平台特性,运用于多种操作系统,它有良好的封装机制使得它模块化程度非常高、可重用性非常好。同时,QT还有一个轻量级的跨平台集成开发环境Qt Creator,可以让首次接触QT开发框架的开发人员能迅速上手和操作,嵌入式无线打印终端人机界面在qvfb下的效果图如图4所示。

  结语

  与PC机无线打印终端相比,基于WiFi无线网络的嵌入式移动打印终端具有明显的优点,它价格便宜、功耗低、传输速度快、体积小、移动方便;选用Linux作为嵌入式操作系统,其设备驱动或新文件系统模块化,用户可根据需要动态加载,这样有利于支持新设备、新功能,方便系统的升级。

 

关键字:WiFi  Linux  mini2440

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/wltx/2011/0218/article_4058.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
WiFi
Linux
mini2440

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved