a&s专业的自动化&安全生态服务平台
公众号
安全自动化

安全自动化

安防知识网

安防知识网

手机站
手机站

手机站

大安防供需平台
大安防供需平台

大安防供需平台

资讯频道横幅A1
首页 > 资讯 > 正文

一种嵌入式RFID读写器的内部数据管理研究

  在保障装备装备时,训练使用、检修、加装改造等记录用传统手工操作,管理人员必须对进装备名称、随装配套类型及数量、出厂单位、出厂日
资讯频道文章B
  在保障装备装备时,训练使用、检修、加装改造等记录用传统手工操作,管理人员必须对进装备名称、随装配套类型及数量、出厂单位、出厂日期以及其他众多属性进行逐一登记,不但工作效率低、而且容易出差错,成为制约工作进度的瓶颈。如果装备信息管理运用RFID标签取代纸质履历表,记录装备从出厂、配备、动用、维修、保管、事故、加装改造、退役报废等全生命周期的履历信息,手持读写器读取射频标签及信息记录装置每日信息,可以帮助操作人员及时掌握装备工作情况,为维修保障人员提供信息支持。

  但不同于普通物流领域,由于装备信息较为复杂,单一普通标签难以胜任承载所需全部信息。考虑经济和实用性,采用不同频率多标签方式才能较好满足要求。因此,本文针对装备信息的RFID数据结构重点进行了分析,并详细研究了嵌入式读写器内部数据的存储和管理,以满足装备保障信息化需求。

  1 RFID数据模型研究

  1.1 RFID数据特性

  RFID数据模型是管理RFID数据的基础。从总体上RFID应用有着共同的需求特点:

  (1)识别:RFID标签唯一地标识该物体。

  (2)位置:一个位置可以是一个地理位置,也可以是有背景含义的特殊位置,如仓库、靶场等。

  (3)关系:RFID应用的另一个关键概念是聚合,即对象之间形成的关系。一种常见聚合情况是包含关系,即在物体运动过程中,被包含的物体与外包装物体有相同的运动路径等特性。另一个集合情况是协作,即贴有标签的物体之间有一定的关系[1],如某型导弹射击训练由发射车与检测车共同完成,则发射车与检测车之间有协作关系。

  1.2 数据模型

  本文重点是利用数据库技术实现装备数据信息的层次化管理。系统中涉及的数据主要有静态数据和动态数据两种类型。

  1.2.1 静态数据

  静态数据是有关固定信息、业务规则以及系统设置的数据,不轻易随时间变更[2]。在本系统中,静态数据主要包括:

  (1)Objects:所有使用射频标签进行标识系统,包括系统及随装配件的名称、型号、出厂单位、出产年份等信息。

  (2)Organizations:装备在生命周期(出厂到退役报废之间的时间)内装配变动信息,包括装配单位、装配时间、战斗序列等信息。

  (3)Actions:事务处理类型。包括重大活动记录、技术检查、维修、加装改装等信息。

  1.2.2 动态数据

  动态数据反映了系统运作中的事务过程,与时间、空间密切相关。动态数据主要包括:Arrangement,用于描述装备实体(Objects) 与状态的层次关系;ObjectOrganization,用于描述装备实体(Objects)在某时间内的调拨、调整;ActionItem,用于描述装备处理情况。

  1.2.3 数据模型的建立

  如果有静态关系,则根据ER模型的映射关系,映射成表即可[3]。对于两个实体之间的基于状态的关系,则在两个实体表的主键之间加上时间间隔 (stime,etime)组成,其中时间间隔代表了关系或者状态存在的生命周期。基于事件的动态关系,由映射在两个表的主键加上时间戳属性 timestamp组成,这个时间戳代表了时间发生的时间点。

  2 基于嵌入式的RFID读写器数据管理

  2.1 系统的设计思路

  根据以上分析,数据来源主要分为两类:一类是固定的装备身份信息,这些信息是一般不会随时间变化,数据量比较小;另一类是动态的装备寿命信息,通常是记录日常操作的起始时间和装备调拨、调整,数据量稍大且需要重复读写。

  为此,以某型车辆装备为例,采用一种13.56 MHz的无源标签存储装备身份信息,采用频率为2.4 GHz的有源标签存储动态寿命信息。本设计采用Windows CE作为操作系统,通过RFID射频收发模块读取所需求的数据,对数据进行解析、提取、存储,并构建嵌入式SQLite数据库,实现对数据的管理。而用户对存储的数据进行查询修改等操作,最方便的方法就是在Web页面里实现,因此需要搭建一个Web服务器,使用户可以通过Web页面来控制这些工作的完成并实现对数据的操作访问。

  设备管理提供了统一的读写器接口程序,可兼容性地控制多种类型读写器的工作;数据管理完成了数据的过滤、存储,并利用嵌入式Web服务器对数据进行查询和修改;嵌入式Web服务器是嵌入式技术和网络技术结合的产物,把Internet中的Web服务器进行一定的裁剪,嵌入到设备中,从而可以利用嵌入式Web服务器对设备进行操作、管理。本文拟使用GoAhead WebServer,它是一个源码免费、可以运行在多个平台的嵌入式Web服务器,并支持ASP、嵌入式JavaScript和标准的CGI执行,能较好地满足需求。

  2.2 数据的解析和过滤

  读写器从标签读取大量的未经处理的数据,一般来说读取到的数据并非完全有用的标签数据,需要对其进行提取、解析,以得到有用的信息。数据在传输过程中不可避免地会受到外界的干扰而发生错误,因此数据必须进行过滤,将过滤后的数据再进行存储[4]。

  标签数据一般都是二进制编码,读取后需要将二进制编码数据转换成unicode数据。

  在标签读取过程中实现标签的二进制位编码到unicode编码的转换,在标签数据处理环节则根据转换获得的标签unicode编码以及过滤条件对标签进行过滤,为信息应用层提供有意义的标签信息。

  过滤规则可以通过Web页面进行设置,设置信息存储到过滤规则配置文件中。进行过滤时,过滤器读取配置文件并应用于过滤规则。

  3 数据存储与管理的实现

  3.1 构建嵌入式数据库

  SQLite3是轻型、免费和开源的嵌入式数据库,支持绝大多数标准的SQL92语句,工作速度快,可以满足中间件数据处理的实时要求。因此选用SQLite3数据库在大小和功能方面是一个理想的折中。

  SQLite3嵌入式数据库提供了源码,在硬件平台上对源码进行交叉编译即可实现移植。编译后,生成了大小为93 KB的sqlite3可执行文件和大小为991 KB的sqlite3动态链接库libsqlite3.so。

  3.2 数据模型在数据库中的实现

  嵌入式数据库中以单个库文件形式进行数据存储,数据库文件可以在不同的操作系统平台下使用而无需转换。数据库文件内部采用表数据页和索引数据页两种存储结构进行组织。用户定义的临时表和系统中的临时表(用于排序、分组等操作)以临时数据库文件形式进行管理。

  在开发板上,使用上一步生成的sqlite3可执行文件来生成本系统所需要的数据库表。Sqlite3的数据库与Access数据库类似都采用了单文件的模式,为此生成了一个名为rfid的数据库文件,根据项目需求规划必须的数据表。

  直接在命令行下敲入“sqlite3 rfid;”即可生成rfid数据库,并得到提示符“sqlite3〉”,通过输入SQL语句即可建立所需的表:

  create table rfid(Number integer primary key, Objects varchar(),Organizations varchar(),Actions varchar(),ActionItem varchar(),ObjectOrganization varchar(),Arrangement varchar());

  .quit;

  这里只考虑了基本属性,可以为数据表做扩展表格实现其额外的属性。

  参照SQL DML的语法,该模型的逻辑结构主要元素描述如下:

  (1)Objects: Objects(EPC Primary Key, name, deseription),记录系统及随装信息。

  (2)Organizations: Organizations(organizationID Primary Key,organization),标识装备在生命周期内装配单位及编制序列。

  (3)Actions: Actions(actionID Primary Key,actType),标识业务流程中的事务类型。其中,actionID为事务类型标识码;actType表示事务类型的名称。

  (4)Arrangement:Arrangement(ID Primary Key,EPC,parentEPC,QtyOfChild,organizationID,stime,etime),Arran-

  gement关系是本数据模型的关键,反映了物品的物理层次关系。其中,parentEPC标识关于该EPC的上一层次的EPC编码;QtyOfChild记录了由该EPC标识的下一层次的物品数量;stime和etime分别标识该层次关系的发生和结束时间。

  (5)ActionItem:ActionItem(ID Primary Key,actionID,EPC references Objects,timestamp):ID标识每个发生的事务;timestamp为该事务发生的时间。

  (6)ObjectOrganization(ID Primary Key,EPC refferenees Objects, organizationID, timestamp):ID标识装备的调拨、调整及编制战斗序列的变化。

  SQLite数据库提供了丰富的C语言API接口函数,使得对数据库的操作十分方便。本系统只需要以下3个核心函数就可以实现连接数据库、处理查询等操作:

  int sqlite3_open(const char*db,int mode,char* *errmsg);

  int sqlite3_close(sqlite*db);

  int sqlite3_exec(sqlite*db,char*sql,int(*callback) (void*,

  int,char**,char**),void*parg,char**errmsg);

  其中,前2个函数用于打开与关闭数据库,第3个函数sqlite3_exec()用来处理SQL查询,此函数的第2个参数用来处理一条或多条 SQL语句,如果是查询(SELECT)语句,则查询结果的每一条记录都必须调用第3个参数的Callback函数,第4个参数则为Callback函数的第一个参数指针;如果不是查询语句,则第3、4个参数为NULL。所有SQL执行完毕后返回0,否则返回错误代码,可通过第5个参数值来查看详细错误信息。

  使用sqlite3_mprintf函数将数据段的值添加到SQL语句中,然后通过sqlite3_exec函数执行该SQL语句把标签数据插入到数据库中。

  3.3 数据的访问操作

  GoAhead WebServer是一款面向嵌入式系统的Web服务器,作为系统中数据转发和模块承载平台。向Wince系统中移植比较简单,在Visual C++ 6.0打开CE子目录下的工作空间webs.dsw,将生成的webs.exe和所需的Web页面导入WinCE系统中相应位置即可。需要注意的是:要设置计算机系统环境变量Path,使其包含include和lib,确保包含CE、UEMF、webs和UNICODE的特征值被定义在内。

  在使用GoAhead WebServer前,需要对GoAhead WebServer进行配置:

  (1)在浏览器输入地址时,服务器返回某一页面,该页面通过在main.c文件中的initWebs函数进行设定,设定语句为:

  websRedirec(wp,T("index.htm"));

  (2)当浏览器访问某一地址下的目录时,服务器将返回该目录下的缺省页面,通过main.c文件中的websHomePageHandler函数进行设定,设定语句为:

  websSetDefaultPage(T("default.asp"));

  用户在页面对过滤规则进行配置后,CGI程序将配置结果写入配置文件filter.conf中。在进行数据过滤时,过滤器将会读取此配置文件得到相应的过滤规则对数据进行过滤。

  首先使用C语言API调用sqlite3_open()打开数据库,然后调用sqlite3_exec()函数来执行SQL语句完成对数据库的读写更新等操作,最后执行sqlite3_close()关闭数据库。

  通常,CGI应用程序将执行结果输出到标准输出(stdout),WebServer从CGI应用程序中的标准输出中读取信息,并将这些信息返回给客户端[5]。因此,在程序中如果要将SQL查询结果输出给客户。CGI应用程序中可以使用prinf()函数将查询结果以HTML的形式输出到标准输出,进而Web服务器向客户端返回动态页面,这样就实现了用户、WebServer与SQLite3嵌入式数据的交互。

  通过编译,webs.ere最后将以操作系统的一个子进程运行,可与操作系统内的其他进程进行通信及数据传输,从而实现操作系统内部程序间的相互交互作用。

  本文研究了针对装备信息的RFID数据结构模型,使用SQLite数据库实现标签数据的存储、过滤,并设计了简单易用的Web界面,只需通过浏览器进行简单的操作,就可完成对过滤规则的设置以及与数据的交互等功能。今后的工作是进行更多的页面优化设计,将使其更加有实际应用价值。

参与评论
回复:
0/300
文明上网理性发言,评论区仅供其表达个人看法,并不表明a&s观点。
0
关于我们

a&s是国际知名展览公司——德国法兰克福展览集团旗下专业的自动化&安全生态服务平台,为智慧安防、智慧生活、智能交通、智能建筑、IT通讯&网络等从业者提供市场分析、技术资讯、方案评估、行业预测等,为读者搭建专业的行业交流平台。

免责声明:本站所使用的字体和图片文字等素材部分来源于互联网共享平台。如使用任何字体和图片文字有冒犯其版权所有方的,皆为无意。如您是字体厂商、图片文字厂商等版权方,且不允许本站使用您的字体和图片文字等素材,请联系我们,本站核实后将立即删除!任何版权方从未通知联系本站管理者停止使用,并索要赔偿或上诉法院的,均视为新型网络碰瓷及敲诈勒索,将不予任何的法律和经济赔偿!敬请谅解!
© 2020 Messe Frankfurt (Shenzhen) Co., Ltd, All rights reserved.
法兰克福展览(深圳)有限公司版权所有 粤ICP备12072668号 粤公网安备 44030402000264号
用户
反馈