石 云 黄玉清 张素文 蒋 楠
(武汉理工大学自动化学院 武汉 430070)
当前,在警车上警务人员要了解犯罪嫌疑人的信息是通过移动电话或车载电台与指挥中心联系,这些途径掌握的信息量有限,特别是对犯罪嫌疑人外貌特征的了解却无能为力;况且自己建立车载电台需要花费大量的人力和物力.本文采用了GPRS的无线通信方式和嵌入式技术,设计了警用车载读写系统,可以很好的解决实时性、信息量、费用等问题.
车载读写系统主要工作是从存有罪犯信息库的U盘里查询并读出所需的详细信息,另外还可以通过GPRS模块进行无线数据传输获取并更新最新犯罪嫌疑人的相关信息,包括图像信息.因此,本系统设计关键点:(1)USB主机驱动及支持优盘操作的 Mass Storage类协议的设计;(2)如何根据输入的关键字搜寻出所需的信息并显示;(3)GPRS的无线通信的实现.
处理器选用接口丰富、性价比高三星公司的S3C2410,特别是其带有USB主机接口而不需要再加USB主机控制器,有利于系统设计.系统硬件结构[1]如图1所示,其中存储器包括64MB SDRAM,32MB NOR FALSH 和 8MB NAND FLASH,另外还需处理器工作必要的时钟电路、复位电路.
图1 系统硬件结构图
为节约成本,直接将车载提供12V电压转换成本系统需要的5,1.8,3.3,4.2V 等电压,考虑到警车行驶振动大、电气环境差等因素,因此电源的设计关系到系统能否正常工作,具体电路请参考文献[2].
GPRS采用分组交换技术,具有“高速”和“永远在线”优点,而且可以按传输的数据量来计费,这比自己建立车载电台的费用低廉多了.本系统GPRS模块选择M22.
M22是BENQ公司生产的一款多功能GSM/GPRS无线通信模块,具有如下特点:(1)内置TCP/IP over PPP的协议,可以支持数据业务的透明和非透明传输,方便运用开发;(2)支持GPRS CLASS4,即上行速度21.4kbit/s,下行速度 42.8kbit/s;(3) 支 持 EGSM900MHz,DCS1800MHz,PCS1900MHz三个工作频段;(4)提供一个支持RS232的接口,方便硬件连接.相比其他产品,M22价格更便宜,而又具有如上特点,系统选择该模块进行开发.硬件直接通过S3C2410X的UART1接口驱动M22进行无线通信,其基本连接如图2所示.
图2 M22连接简图
1)支持U盘操作的内核配置(内核层) 系统要识别U盘Linux内核中必须添加USB HOST驱动,USB主机驱动由USB主控制器驱动程序(HCD)、USB 核心驱动程序(USBD)、USB设备类驱动(Mass Storage类)3部分组成.而Mass Storage驱动中把USB设备看作SCSI设备,所以在内核配置优化中以下几个内核选项必须选上:scsi设备支持,USB support中的Support for Host-side USB,OHCI HCD support以及USB Mass Storage support等选项.
2)Bulk-Only传输协议的实现(驱动层)Linux内核内部通过file_operations数据结构来访问驱动程序提供的函数,对数据进行read,write,open和close等操作.而在硬件驱动层对数据操作实现过程,首先是通过Mass Storage类协议建立起Bulk-Only传输协议,包括对CBW和CSW两个封包的定义,其次就是利用其子类UFI的特定的请求命令,实现对U盘文件的读写[3].如常用的查询命令(Inquiry)、读命令(Read(10))、写命令(Write(10))、读容量命令(Read Capacity).
3)文件系统的建立(用户层) UFI命令要实现对U盘中的文件操作还需建立相应的文件系统,完成对磁盘的各种操作,实现对文件的管理.U盘大多是按FAT文件系统格式存储的,所以在系统配置中还需添加支持FAT文件系统的选项.FAT格式的磁盘上数据大致可分为5个部分:MBR(主引导记录)区、DBR(系统引导记录)区、FAT(文件分配表)区、FDT(文件目录表)区和DATA(数据)区.FAT文件系统检索文件机制是[4]:首先在FDT区找到要检索文件的目录项,得到该文件在DATA区的起始簇号,由此可以在DATA区的这个簇读到检索文件的数据,然后再查找到FAT表的这个簇号单元,如果内容是文件结束标志(0xFFFF),则表示该文件结束,否则该单元的内容指的是该文件保存数据的下一个簇的簇号.系统检索文件流程如图3所示,假设犯罪嫌疑人的信息以bmp图像格式存储,其姓名为文件名.
图3 文件检索流程
在处理器S3C2410与GPRS模块M22之间通过UART进行通信,因而GPRS的驱动核心就是实现该模块RS-232接口电路的驱动程序.本系统与指挥中心的远程服务器采用TCP/IP协议进行数据通信,具体方式是S3C2410向M22发送AT命令控制与指挥中心建立连接,接收犯罪嫌疑人的信息,其建立过程如下:(1)AT+CGATT=1//GPRS网络附着;(2)AT+CGDCONT=1,“IP”,“APN”//设置 GPRS接入网关,APN是所申请专网的名称;(3)AT%CGPCO=1,“PAP,usename,password”,1//PAP验证,设置登录名及密码;(4)AT$DESTIFO=“XX.XX.XX”,1/2,PORT//设置连接远端的IP地址,XX.XX.XX为指挥中心的IP地址,1代表TCP连接,2代表UDP连接,PORT为端口号;(5)ATD*99#//用服务码99拨号建立连接.而在GPRS通信程序模块中定义两函数gprs_send_cmd()和gprs_rec_cmd()分别实现发送AT命令和接收数据.
首先建立QT/Embedded交叉开发环境,本系统使用Trolltech公司的发布的自由版本qtembedded-free-3.3.4,arm-linux-gcc-3.4.1 作 为交叉编译工具.
在QT中,事件处理时通过Signal-Slot(信号和槽)机制实现[4],信号是由各可视化组件产生的事件,而槽是对某个信号(事件)的处理方法,它们之间通过connect函数把信号和指定的槽连接起来.基于上述机理,窗口控件就能很简单的与具体处理子程序连接起来,GUI结构如图4所示.
图4 GUI结构图
车载读写系统关键部分是对U盘的识别和对U盘中犯罪嫌疑人信息检索并显示.实验首先在系统移植2.4.10Linux内核[5]并运行操作系统后,插入512M的FLASH介质的U盘,在屏幕上显示如下信息说明系统可以识别U盘:
在U盘中以jpeg图片格式保存罪犯信息,其姓名的汉语拼音作为文件名.在检索窗口中用拼音输入已存的犯罪嫌疑人姓名,检索成功并在液晶上显示,其效果图5略.
本文将嵌入式ARM-Linux技术与GPRS无线通信方式结合,设计了警用车载罪犯信息读写系统,该系统为警务人员破案提供了强有力的实时信息源,具有很强的社会和经济价值.同时,只要添加其他应用软件,该系统就能成为车载办公系统和娱乐系统,因此,该系统还具有广泛的运用价值.
[1]王宏强,王太勇,张志强.便携式数采仪中嵌入式USB主机系统的研究与实现[J].兰州大学学报:自然科学版,2008,44(1):92-95.
[2]马 伟.计算机 USB系统原理及其主/从机设计[M].北京:北京航空航天大学出版社,2004.
[3]李文亮.基于ARM的车载GPS_GPRS系统[D].南京:南京理工大学交通学院,2007.
[4]陈 赜.ARM9嵌入式技术及Linux高级教程[M].北京:北京航空航天大学出版社,2005.
[5]倪继利.QT及Linux操作系统窗口设计[M].北京:电子工业出版社,2006.