基于Linux操作系统的射频识别安检设计方案

发布者:会哭的蓝精灵最新更新时间:2011-05-26 关键字:Linux操作系统  射频识别  安检设计 手机看文章 扫描二维码
随时随地手机看文章

引言

  射频识别(RFID)是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无需人工干预,可工作于各种恶劣环境下。RFID技术可识别高速运动物体并可同时识别多个标签, 操作快捷方便。非接触IC卡是目前RFID系统中最常用的一种电子标签,它诞生于20世纪90年代初,是世界上最近几年发展起来的一项新技术,它成功地将射频识技术和IC卡技术结合起来,解决了无源和免接触这一难题,是电子器件领域的一大突破。由于存在着磁卡和接触式IC卡不可比拟的优点,使之一经问世,便立即引起广泛的关注,并以惊人的速度得到推广应用,如我国的第二代公民身份证、公交卡、ETC免停车付费卡等。可以说RFID技术越来越多地应用到我国身份安检、质量安检、车辆安检、执法安检等诸多安检系统中。由于安检系统中往往涉及大量重要数据的读取、通信以及实时更新,因此数据库技术的引入必不可少。在操作系统上,本文选择了Linux操作系统,相比Windows,Linux更安全、更可靠,与其他操作系统相比有着许多独特的优势,更加适合用作嵌入式操作系统。

  1 系统结构介绍

  RFID安检系统主要包括RFID前段读写器、嵌入式Linux终端两大部分。

  其中嵌入式终端的CPU采用ARM9内核,内核执行速率达几百兆赫兹,可以很好地满足RFID数据的读取和存储。由于嵌入式系统一般是一个经过裁剪、资源极其有限的系统,因此对于安检系统中涉及到的大量数据只能存取到外围存储设备中,本方案中的SD卡模块正是用来存储数据库的,当RFID读写器读取到指定数据,便在SD卡中的相关数据库文件中查询,并根据查询结果做出相关反应并及时更新本地数据库。

  2 Linux下串口的开发

  在Linux下对串口进行配置、打开、读写等一系列的操作其使用方式与文件操作一样,区别在于串口是一个终端设备[1]。Linux中的串口设备文件存放于/dev目录下,其中串口1、串口2一般对应设备名依次为“/dev/ttyS0”、“/dev/ttyS1”。在使用串口之前必须设置相关配置,包括波特率、数据位、校验位、停止位等。

  串口设置由下面结构体实现:

  按照串口配置流程,对termios结构体设置相关参数,当串口按自己的设置要求配置成功后,即可将串口当做普通I/O文件,使用read和write函数对串口进行读取。

  3 sqlite3数据库的应用开发

  sqlite3数据库是一种嵌入式数据库,其目标是尽量简单,因此抛弃了传统企业级数据库的种种复杂特性,只实现对于数据库而言必备的功能。尽管简单性是sqlite3追求的首要目标,但是其功能和性能都非常出色,具有支持SQL92标准、所有数据存放到单独的文件中支持的最大文件可达2 TB、数据库可以在不同字节的机器之间共享、体积小、系统开销小、检索效率高、支持多种计算机语言、源码开放,并且可以用于任何合法用途等特性。

  3.1 sqlite3数据库的移植

  sqlite3数据库的移植过程如下所述:

  (1)首先从sqlite官网上下载最新的sqlite3源码包;

  (2)解压源码包,并进入解压目录:

  tar -zxvf sqlite-3.6.23.1.tar.gz

  cd sqlite-3.6.23.1

  (3)配置CONfigure脚本,使用相关选项生成编译文件Makefile文件:

  ./configure–-enable-share –-prefix=./sqlite-3.6.23.1/result –-hoST=arm-linux

  选项 -enable-share指定使用Linux的共享库

  选项 -prefix指定了安装目录为。/sqlite-3.6.23.1/result

  选项 -host指定了编译环境为目标机为arm的交叉编译环境[page]

  (4)交叉编译,生成嵌入式终端下数据库的管理程序和库文件, 最终在result目录下得到数据库管理程序sqlite3(相当于Windows下Access程序),提供编程所需的API的动态库libsqlite3.so.0.8.6,编程所需的头文件sqlite3ext.h sqlite3.h。交叉编译的命令如下:

  Make

  Make install

  (5)将数据库管理程序sqlite3、提供编程所需的API的动态库libsqlite3.so.0.8.6及其1个软链接拷贝到开发板根文件系统相应位置,分别在嵌入式终端的/usr/bin和/usr/lib这两个目录下,命令如下:

  Cp result/bin/sqlite3  /arm-Linux/usr/bin

  Cp –l result/lib/libsqlite3.so*  /arm-linux/usr/lib

  (6)为了能在开发机上编译,调用了sqlite3数据库的API的应用程序,需要将动态库libsqlite3.so.0.8.6及其2个软链接、2个头文件拷贝到交叉编译工具链所在目录的适当位置,至此sqlite3数据库的移植和开发环境的配置已完成。只要输入SQL语言便可以进行相关操作。

  3.2 Linux下sqlite3的C语言开发

  sqlite3里最常用到的是sqlite3 *类型。从数据库打开时开始,sqlite3就要为这个类型准备好内存,直到数据库关闭,整个过程都需要用到这个类型。数据库打开时起,这个类型的变量就代表了所要操作的数据库。

  (1)打开数据库API接口函数

  int sqlite3_open(文件名, sqlite3 *);

  用这个函数开始数据库操作。需要传入两个参数,其中之一是数据库文件名,例如:/home/test.db文件名不需要一定存在,如果此文件不存在,sqlite3会自动建立;如果存在,就尝试把它当数据库文件打开。

  sqlite3 * 参数即前面提到的关键数据结构。函数返回值表示操作是否正确,如果是SQLITE_OK则表示操作正常。相关的返回值sqlite3定义了一些宏,具体这些宏的含义可以参考sqlite3.h文件。

  (2)关闭数据库API接口函数

  int sqlite3_close(sqlite3 *);

  如果前面用sqlite3_open开启了一个数据库,结尾时不要忘了用这个函数关闭数据库。

  (3)执行SQL语句API接口

  由于嵌入式sqlite3数据库支持SQL语言,因而调用C中相关执行函数就如同在终端下操作数据库一样方面快捷,下面是具体的API函数:

  这就是执行一条sql语句的函数。

  Int sqlite3_exec(sqlite3 * db, const char *sql,sqlite3_callback,Void * ,char ** errmsg);[page]

  参数1是调用打开数据库函数sqlite3_open()打开的数据库对象。

  参数2 是一条待执行的SQL语句,其语法格式同标准SQL语言规范一样,如创建 table时插入的记录如下:

  create table student(id varchar(10) primary key, age smallint);

  此语句创建了名为student的表,表中定义了id(学号)和年纪两个变量,其中id是主键。

  Insert into student values(12345678,21);

  此语句向student表中插入一组数据(12345678,21),其中学号为12345678,学生年龄为21。

  对于数据库的其他操作,如数据库更新、修改、查找等用法同上。

  参数3 sqlite3_callback是自定义的回调函数,对执行结果的每一行都执行一次这个函数。

  参数4 void *是调用者所提供的指针,你可以传递任何一个指针参数到这里,这个参数最终会传到回调函数里,如果不需要传递指针给回调函数,可以填NULL。

  参数5 char ** errmsg是错误信息。sqlite3里面有很多固定的错误信息。执行sqlite3_exec之后,如果执行失败则可以查阅这个指针,即可知道执行过程中错误发生的位置。

  3.3 串口同sqlite3通信测试与分析

  为了验证sqlite3数据库在嵌入式Linux[3-4]终端下的执行效率和稳定性,为此做了一个简单的测试实验:通过上位机程序向嵌入式Linux终端的串口定时发送字符串;嵌入式Linux终端接收到字符串便立即写入到下位机的数据库中。自后查看数据中的数据,看看有没有遗漏和误码。上位机的程序使用VC6.0开发,整个程序界面只设了一个按键,按下按键,上位机就向嵌入式Linux终端不停地发送字符串数据,按键响应程序设计如下:


  可见程序是个定时100 ms便发送一条字符串的循环,而且发送的每一条字符串事先通过str.Format格式化为固定长度,本例中是11 B。按下按键后发送的第一条字符串为:“第1条记录”,每发送一条字符串里面的数字加“1”,这样写到数据库中就可以很清楚地查看有没有遗漏和误码,而且可以通过修改Sleep函数的延时参数检测出嵌入式Linux终端下sqlite3数据库操作的速度。

  下位机嵌入式Linux终端的程序设计为:先创建一个数据库文件test.db,接着就是一个死循环,串口不停地查找有没有数据写入,当检测到数据时,便写入到test.db中,若写入有误,则立即跳出循环,终止程序。


  4 结语

  整个测试根据上位机串口发送的频率不同做了多组实验,每组实验写入1 000个数据,最终结果分析如下:上位机在定时80 ms左右或大于80 ms的情况下发送数据时,数据库写入的误码率为零;当定时时间小于80 ms时,随着定时时间变小误码率会越来越高。通过数据分析可知原因有以下几点:一是数据库本身写入需用时几十毫秒,二是SD卡并非高速读写设备,当数据还未完全写入数据库时若有新数据发过来,则下次读写将会发生难以估计的错误。实验还得出了当把数据库文件写入到系统Flash上的总耗时约为50 ms,比写入SD卡中约少30 ms。不过就80 ms左右的一次读写速度而言,嵌入式数据库sqlite3执行效率和稳定性非常可观,现在一般的RFID读写器通过串口执行一条指令的时间也需几十毫秒的时间,因而使用sqlite3数据库在执行速率和稳定性上对于安检系统中RFID读写数据的处理可以很好地达到要求,而且sqlite3还支持数据加密,安全性同样非常出色。

 

关键字:Linux操作系统  射频识别  安检设计 引用地址:基于Linux操作系统的射频识别安检设计方案

上一篇:基于固态存储技术的DRFM设计
下一篇:浅谈虹膜技术及其应用领域

推荐阅读最新更新时间:2024-05-07 16:27

基于STM32MP157的Linux操作系统移植 —Trusted Firmware-A移植
嵌入式高速发展的今天,大量的嵌入式设备使用了arm为核心的芯片。我们会接触到越来越多的嵌入式设备,一个问题油然而生:数量如此巨大的嵌入式设备的安全性如何?目前针对嵌入式安全的技术和标准可谓千姿百态,除了必要的硬件安全技术,与之配套的安全软件也是必不可少的一部分。我们今天要介绍的是基于arm的可信固件Trusted Firmware-A,简称TF-A。它是一个开源软件,运行在一个硬件隔离的安全环境中并提供安全服务。 实验目的 完成TF-A的基本功能实现TF-A引导u-boot启动。 实验平台 华清远见开发环境,FS-MP1A平台 实验步骤 本实验基于tf-a-stm32mp-2.2版本,然后添加意法半导体提供的补丁文件。 导入代
[单片机]
XRA00射频识别(RFID)芯片的原理及应用
摘要:XRA00是意法半导体公司推出的一个甚高频(UHF)RFID存储器芯片,可用于设计感应式射频识别系统。文中介绍了XRA00射频识别芯片的基本工作原理,给出了它作为电子标签在消费品零售和行李搬运领域的典型应用。 关键词:射频识别(RFID);甚高频(UHF);XRA00;EPCglobal 1类规范 RFID(Radio Frequency IDentification)常被称为感应式电子晶片或近接卡、感应卡、非接触卡等。一套完整的RFID系统通常由Reader(读卡器)和Transponder(应答器)两部分组成。正常工作时,由Reader发射一特定频率的无线电能量波给Transponder,以驱动Transponder
[应用]
俄罗斯国产操作系统Alt Linux宣布支持龙芯处理器
11 月 23 日消息,ALT Linux 是俄罗斯公司 Basalt SPO 开发的一款国产操作系统,基于 KDE Plasma 及 xfce 桌面环境构建,在设计风格上有点类似微软 Windows。 ▲ ALT Linux 10.0 版本界面 而根据俄媒 cnews 报道,ALT Linux 现在已经正式加入对龙芯处理器的适配,支持龙芯 3A5000、龙芯 3A6000 等 CPU,得益于龙芯 CPU 出口限制已经被解除,俄罗斯相关部门可以采购这些 CPU 来取代 AMD 和英特尔的产品。 ▲ 图源 俄媒 cnews 俄媒声称,Basalt SPO 的开发团队非常高效,只花了 9 个月时间,就让 Alt Linux
[嵌入式]
物联网技术:开启太阳能热水系统中应用的新篇章
  长期以来,未来科技都让人们对生活充满幻想和憧憬。如果能将智能控制、物联科技与家用设备结合起来的话,我们的生活也许会更具未来感。经过三年不断的努力和实践,物联网太阳能热水系统就为这样的“梦想”与现实搭建了美丽的桥梁。   物联网太阳能系统,即将现有的成熟太阳能系统与射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备相配套,通过综合何止系统,按约定的协议,将太阳能系统与互联网相连接,进行信息交换和通讯,以实现智能化识别、定位、追踪、监控和管理的一种新型太阳能系统解决方案。该系统与传统太阳能系统比较而言,它在控制方式的空间上进行拓宽,通过手机、网络平台将控制范围延伸,可以在任意时间任意地点,通过电脑、手机等网
[电源管理]
基于射频识别技术的联机型门禁系统设计
   一. 引言   在数字技术、网络技术飞速发展的今天,门禁技术得到了迅猛的发展。门禁系统早已超越了单纯的门道及钥匙管理,它已经逐渐发展成为一套完整的出入管理系统。门禁系统的发展在经历了单一密码键盘门禁系统、IC卡门禁系统、非接触式IC卡门禁系统,到现在最新的生物识别门禁系统。非接触式IC卡门禁系统由于其技术成熟、价格低廉、使用方便等优异的性能,得到了广泛的应用。某音乐学院琴房14层大厦300多个琴房,过去一直采用的管理办法是学生在琴房管理中心登记领用钥匙使用琴房。这种管理办法存在着很多弊端,例如学生会私自配备琴房的钥匙从而不通过琴房管理中心登记私自使用琴房,或者学生在退还钥匙离开时不能保证琴房里已经无人。而且琴房内设备贵重
[安防电子]
基于<font color='red'>射频识别</font>技术的联机型门禁系统<font color='red'>设计</font>
一种应用于车载的无线射频识别系统
本系统是基于数字通信原理、利用集成单芯片窄带超高频收发器构建的无线识别系统。阐述了该无线射频识别系统基本工作原理和硬件设计思路,并给出了程序设计方案的流程图。从低功耗、高效识别和实用角度设计适用于车载的 射频 识别标签。测试结果表明,本系统在复杂路面状况(繁忙路面)的条件下可实现300m范围内有效识别,视距条件下可达到500 m范围有效识别。 物联网 是指通过各种信息传感设备,如 传感器 、射频识别( RF ID)技术、全球定位系统、红外感应器、激光扫描器、气体感应器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、电、生物、位置等各种需要的信息,与互联网结合形成的一个巨大网络。其目的是实现物与物、
[嵌入式]
基于32位RISC处理器SoC平台的Linux操作系统实现
引言 智原科技的FIE8100 SoC平台是一种低功耗、便携式视频相关应用开发SoC平台,也可用于基于FA526 CPU的SoC设计验证。 基于FA526的Linux软件开发套件,开发人员可将Linux一2.4.19软件环境在FIE8100平台上安装实现,并完成对平台上所有IP的驱动程序安装和对FA526的内部调试。 FA526介绍 FA526是一颗有着广泛用途的32位RISC处理器。它包括一个同步CPU内核(core)、独立的指令/数据缓存(cache)、独立的指令/数据暂存器(scratchpads)、一个写缓存(write buffer)、一个内存管理单元(memory management unit)和JTAG在线仿真(
[应用]
多层次总线下的煤矿安检设备系统设计
摘要 主要介绍一种适用于中小型煤矿安全生产与监测设备的设计方案。该设备能够实时采集、监测井下工作面的瓦斯浓度、一氧化碳浓度、风速、压力、温度等重要数据和风机、水泵、绞车和电机的开停状态,具有对交流电源的过压、失流、缺相及各种异常、危险情况的报警功能;另外还具有对班次产量的统计和数据存储功能。系统采用低压电力线载波通信及GSM/GPRS无线通信技术进行数据的传输。 关键词 低压电力线栽波通信 PL3105C DPSK调制/解调 DSl8820 GSM/GPRS 引 言 近年来,国内煤矿重大安全事故不断发生,尤其是中小煤矿情况更为突出,给国家、人民造成了重大损失。为此,国务院十分重视煤矿安全生产问题,不断加大行业管理力度,逐步形成
[应用]
小广播
最新网络通信文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved