当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于嵌入式 RFID 中间件的标签数据处理


    1 引言

 射频识别(Radio Frequency Identification, RFID中间件介于RFID 阅读器和上层应用之间,用来屏蔽不同型号的阅读器和各种协议标准的标签,为上层应用软件提供统一接口。另外,还负责整合和过滤数据,产生报表,减少应用层软件的处理负担,使海量标签数据的传输和应用成为可能。目前,国内外的RFID 中间件体积庞大,只适用于PC 机,不能移植到嵌入式阅读器中。本文提出一种可直接运行于各种嵌入式阅读器设备,基于EPCglobal ALE 标准的嵌入式 RFID 中间件,并详细研究其中的标签数据处理流程。

 2 软件体系结构

 嵌入式 RFID 中间件体系结构如图1 所示。采用Linux 2.4.18 作为操作系统,操作系统自带有网络驱动和串口驱动。DSP 驱动是为本阅读器DSP 模块开发的驱动模块,相当于一个连接到中间件服务器的阅读器。中间层是GoAhead Web 服务器和嵌入式数据库SQLite,上层是阅读器管理,阅读器协议服务和ALE 服务模块。

 

图 1 软件体系结构

     GoAhead Web 服务器是一款面向嵌入式系统的Web 服务器,作为中间件的数据转发和模块承载平台。阅读器与客户端之间,阅读器与阅读器之间的数据通信都是由GoAhead Web服务器完成。ALE 服务模块,数据库管理模块,阅读器管理模块,阅读器协议服务模块等的开发也是建立在GoAhead 基础上。

 数据库采用 SQLite 3.3.9。SQLite 是轻型,免费和开源的嵌入式数据库。提供绝大多数标准的SQL92 语句,工作速度快,满足中间件数据处理的实时要求。在嵌人式系统中,数据库管理、执行、维护的简单化比企业数据库提供的复杂应用更重要。因此选用SQLite数据库在大小和功能方面是一个理想的折中。

 ALE 协议服务模块是过滤和统计数据的基层部件与高层应用程序之间的接口。ALE 协议服务模块采用EPCglobal ALE 标准,为高层软件提供了通用接口。[!--empirenews.page--]

 3 标签数据处理流程

 SQLite 的应用开发是在GoAhead 基础上对数据进行接收、过滤和分组处理。客户端将用户填写的XML 表单通过HTTP 协议发送到GoAhead 服务器端。GoAhead 进程中的主线程接收XML文件,将文件内容通过命令消息通道传给ALE子进程。ALE子进程通过ezXML模块把XML 文件解析出来,提取出数据存入ECSpec 结构体中。

 DSP 解调出二进制EPC 数据,通过DSP 驱动发送到接收模块。接收模块滤除重复EPC码,屏蔽阅读器数据格式差异,转换成统一数据格式后将数据送入到SQLite 中,作为数据库操作的数据源。每个 ECSpec 对应创建一个线程。该线程根据ECSpec 结构体执行数据库操作,将查询结果封装成XML 数据报表通过数据消息通道发送给XML 报告线程。XML 报告线程通过TCP 协议发送给客户端。数据流程图如图2 所示。下面以EPC 标签数据的流动方向进行详细分析。

图2 标签数据处理流程

    3.1 EPC 标签数据格式

 EPC(Electronic Product Code)是本世纪初由美国麻省理工学院(MIT)的AUTO-ID 中心提出的编码方式。EPC 数据标准1.3 版本[5]中,EPC 由代表版本号的头部、过滤字段、制造商、物品种类以及物品序列号组成。是唯一存储在RFID 标签中的信息。AUTO-ID 中心将全球接受的EAN/UCC 编码整合到新的EPC 中,共8 种格式:GID,SGTIN,SSCC,GLN,GRAI,GIAI,GDTI 和GSRN。后两种是数据标准1.4 版本新增加的。为了在应用软件中更好地表示EPC 码以及方便用户阅读和查询,AUTO-ID 中心定义另一种表示方式:统一资源标识符(Uniform. Resource Identifier,URI)。嵌入式中间件中用到的URI 格式如:urn:epc:pat:sgtin-96:0.*.*.*。“urn:epc:pat:”部分为URI 命令格式的固定内容,“sgtin-96”即由EAN/UCC 编码转化而来的96 位二进制SGTIN 编码头部分,其后四部分为具体编码内容。

 3.2 EPC 二进制数据转化成标准URI

 在数据转化标准[6]中,EPC 有四种表示方式:二进制、URI、不带物品序列号的纯识别URI 和EAN/UCC 编码。在中间件中需要将阅读器发送过来的二进制EPC 编码转换成标准URI 形式,才能方便数据库的分组过滤操作。方法是首先将EPC 二进制数据转换成一个字符一位的‘0’和‘1’字符串。选出代表版本号的头部,根据头部查询EPC 格式表找到这种类型标签的分段结构,然后依据该分段结构分别提取出各个部分。例如96 位标签数据300833B2DDD9014935050007(十六进制数表示)转换成URI 格式为urn:epc:pat:sgtin-96:0.0867360217.005.39544225799。

 3.3 标签数据插入 SQLite 数据库

 因为用户端的 filter 或group 命令是以URI 命令格式发送,查询结果也是以URI 格式返回,所以在二进制EPC 码到达数据库时,立即转化为URI 格式存储到SQLite 中,方便查询操作。tableURI 就是用来保存URI 形式标签数据的信息表。tableURI 分成七个字段存贮URI 标签数据:Header,Filter,Company,Class,Serial,ReaderID,Time。前五个字段都是EPC 码URI 格式的组成部分,ReaderID 为阅读器ID 号,表明EPC 码来自哪个物理阅读器。Time 为DSP 上交标签数据的时间,是控制产生报表的边界条件。EPC 数据转化成标准URI 后提取各个数据段,使用sqlite3_mprintf 函数将数据段的值添加到SQL 语句中,然后通过sqlite3_exec 函数执行该SQL 语句把标签数据插入到数据库中。[!--empirenews.page--]

 3.4 过滤和分组标签数据

 用户定义的 ECSpec 中包含一个或多个Report,每个Report 由一个或多个filterSpec 或groupSpec 组成,每个filterSpec 有一个或多个includePattern 和excludePattern 组成,每个groupSpec 也包含一个或多个groupPattern 命令。这些过滤和分组命令可以方便用户选择出所需标签数据。因此,需要实现两种数据库操作:filter 和group。

 3.4.1 过滤

 filter 是根据所给规则对数据进行过滤筛选,找出符合过滤条件的标签数据。整个filter命令包含若干includePattern 和若干excludePattern,结果集为包含于任何一个或多个includePattern 中但是不包含于任何一个excludePattern 中的EPC 码。用集合形式表示为:


 其中,R 为EPC 数据源集合,Ii 为EPC 集中符合第i 个includePattern 的数据集,Ei 为EPC集中的符合第i 个excludePattern 的数据集。

 过滤操作的 URI 命令中可出现:确定数值/部分值[low-high]/所有值*,如:urn:epc:pat:sgtin-96:0.0867360217.[001-1000].*。查询时直接使用SELECT 操作,对各个字段逐个判断格式类型生成SQL 语句,将各部分生成的SQL 语句汇总到一句中即可完成过滤操作。

 3.4.2 分组

 group 是根据用户所给规则对标签数据进行分组归类,不属于任何group 命令条件的EPC 码自动归为default group 组中。分组操作的URI 命令可出现:确定数值/部分值[low-high]/所有值*/分组X(即按该字段分组,有不同的值就分组,相同值的EPC 码分到同一组中)。如:urn:epc:pat:sgtin-96:0.0867360217.X.*。

 当使用多个 groupPattern 命令时,为使EPC 码只被归为一个groupPattern 组中,要求URI 命令设置时,几个groupPattern 不能有重叠区域。命令集:G = (Pat_1, Pat_2, ..., Pat_N)。Pat_i 和 Pat_j 为命令集G 中任意两个URI 命令。

 Pat_i = urn:epc:pat:type_i:field_i_1.field_i_2.field_i_3...

 Pat_j = urn:epc:pat:type_j:field_j_1.field_j_2.field_j_3...

 Pat_i 和Pat_j 满足下面任一规则时两个URI 命令是无重叠区域的,允许使用。[!--empirenews.page--]

 (1) type_i 和type_j 为不同编码方式;

 (2) type_i 和type_j 编码方式相同,但是字段field_i_1 和field_j_1 取值不冲突;

 (3) type_i 和type_j 编码方式相同而且前面对应k-1 个字段都是固定值且相等,但是field_i_k 和field_j_k 取值不冲突;

 对应字段 field_i_k 和field_j_k 满足下面任一规则时不冲突。

 (1) field_i_k 和field_j_k 都为固定值且不相同;

 (2) field_i_k 和field_j_k 一个是固定值,另一个是区间low-high,固定值不包含在区间中;

 (3) field_i_k 和field_j_k 都是区间值而且没有重叠。

 groupPattern 无重叠,即可进行分组操作。分组时URI 命令明确指出头部分,查询时直接使用SELECT 操作。其他4 个字段,因为格式可选(确定的数值/部分值[low-high]/所有值*/分组X),所以要对各个字段逐个判断其格式类型,对不同格式分别生成SQL 语句,将各部分生成的SQL 语句汇总到一句中。例如分组命令urn:epc:pat:sgtin-96:0.X.*.[20000-90000],最终产生SQL 操作语句为:

 CREATE VIEW viewGroup AS SELECT * FROM tableURI WHERE Header=’sgtin-96’AND

 Filter = 0 AND Serial BETWEEN 20000 AND 90000 GROUP BY Company。

 3.5 提交数据报表

 每个 EventCycle(中间件向客户端提供报表的时间间隔,客户端定义ECSpec 时设置)结束时根据Time 字段,选取生成视图中当前EventCycle 的数据封装成XML 数据报表发送给客户端。相应操作语句为:

 //time2 = 当前时间,time1 = time2 - EventCycle

 sql = sqlite3_mprintf(“SELECT * FROM viewGroup WHERE Time BETWEEN %d AND %d”,

 time1, time2);

 3.6 删除过期数据

 为了使中间件能长期稳定工作,必须定期删除过期数据。过期数据包括多次插入数据库的重复URI 以及过滤和分组产生的临时视图。对重复产生的URI 标签数据,只保留最新记录。标签数据表table URI 总记录条数大于某个值时调用数据备份程序,将表中的数据存贮到另一个目录下,供用户进一步处理。EventCycle 结束时删除相应视图。

 4 结束语

 经编译运行测试,该系统体积非常小,除去 SQLite 动态库不足1MB。兼容不同类型阅读器,稳定可靠,标签数据处理速度高。客户端使用过滤和分组命令能非常方便地订阅所需数据。SQLite 凭借轻型,易于移植,免费开源的优点,除了可以作为RFID 中间件的数据库,还可广泛用于其它嵌入式领域,比如嵌入式家庭网关,POS 终端、智能手机和远程监控系统等。

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭