微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 基于ALE标准的嵌入式RFID中间件设计

基于ALE标准的嵌入式RFID中间件设计

时间:12-21 来源:互联网 点击:
件体系结构

本系统采用分层的软件体系结构,低层是Linux操作系统和各外设接口的驱动模块,包括DSP驱动、网口驱动和串口驱动。中间层是GoAhead Web服务器和嵌入式数据库SQLite,上层是阅读器管理,ReadProtocol和ALE层,如图2所示。


                                            图2 软件体系结构

操作系统是中间件的基础,采用嵌入式Linux作为本嵌入式RFID中间件的操作系统,Linux支持TCP/IP,HTTP等多种协议,省去了协议移植等复杂工作,降低了中间件的开发难度,缩短了开发周期。DSP驱动、网口驱动、串口驱动,是为RFID阅读器开发的驱动模块,只需在linux的支持上作些修改。Linux 移植技术已经成熟, 本文不作详细的阐述。

GoAhead Web 服务器是一款主要面向嵌入式系统的 Web 服务器,主要功能模块有安全模块,GoForm模块,CGI模块,SSL(Secure Sockets Layer)模块。其中安全模块中又包含内存数据库模块,主要负责存储用户信息,以及提供保密安全机制。GoForm模块主要负责处理客户提交的表单数据,并以web页面的形式返回相应的处理结果。CGI模块主要处理客户的CGI请求。SSL模块在GoAhead中实现了SSL协议。它是本文设计嵌入式中间件的基本软件架构,系统的所有网络开发都是在这个架构上进行,GoAhead web服务器作为中间件的一个数据转发平台和模块承载平台,阅读器与客户端之间,阅读器与阅读器之间的数据通信都是由GoAhead Web服务器来完成,ALE协议实现模块(ALE模块),数据库管理模块,阅读器管理模块,ReaderProtocol Server模块等的开发也是建立在GoAhead的基础上的。

数据库采用SQLite,SQLite是一种小巧、免费、开源的嵌入式数据库应用软件,它提供了标准SQL语言,并且由于其工作速度较快,满足了数据的实时要求。它可以集成在应用软件中,也可以独立运行,本系统选用它主要是对原始数据进行平滑、过滤以及根据客户端的命令筛选出数据。

Reader Management是阅读器管理模块,负责设置本阅读器的工作状态和工作模式。
Reader Protocol是阅读器协议服务器,它负责管理所有与该中间件阅读器相连的阅读器,是Reader Protocol协议在中间件上的实现。

ALE Server是ALE协议服务器,它是该系统的核心,负责向上层应用程序提供标准的ALE接口,实现各个ALE接口。

3.4 ALE标准在该嵌入式中间件系统中的实现

如何在RFID中间件的软件系统中实现EPCglobal ALE规范,是本系统开发的核心。在系统中,我们开发了ALE模块用以实现了EPCglobal ALE标准,由于中间件采用的基本软件架构是GoAhead Web服务器,它作了一个模块承载平台,在上面可以很好地嵌入ALE模块。ALE模块在GoAhead中的位置以及ALE模块的处理流程如图3所示。


                               图3 ALE模块在GoAhead中位置以及其处理流程

客户端用http协议发送一个ALE命令的XML文件给服务器端,服务器端在GoAhead进程中接收该xml文件,然后将该文件封装成消息,根据不同的接口函数填充上具体消息类型,然后用命令消息队列传给ALE进程,在ALE进程中从命令消息队列把消息取出,根据消息的类型把XML文件交给相应的函数去解析和做相应的操作。

在ALE模块中,对于每个用户定义的ECSpec(它是一个复杂的数据结构类型,规定了如何处理和完成一个事件周期),系统实现了四个状态:Undefine,Unrequested,Requested,Active。Undefine表示该ECSpec现在已不能再使用,即将被释放;Unrequested表示该ECSpec现在处于没有用户订阅状态;Requested 表示该ECSpec现在处于有用户订阅状态;Active表示该ECSpec现在正要触发线程来制作和发送报表的状态。每个不处于Undefine的ECSpec将对应一专有的子线程(在ALE进程中创建),该子线程处理该ECSpec所规定的具体数据提取,报表制作和发送。各个ECSpec对应的子线程将互不干扰,子线程只跟主线程(ALE进程原线程)有联系,通过条件变量机制实现主线程对子线程的触发和控制。

系统在根据对应的ECSpec要求进行数据提取、过滤、整合时,将与数据库系统模块相互结合。数据库系统模块首先把从阅读器读到的原始数据进行滤除重复多余的EPC码,并屏蔽各种不同阅读器数据格式的差异,统一数据格式后将数据送入到数据库SQLite中,成为数据库操作的数据源。系统的数据提取等操作就是在该数据源中进行的,这些操作是通过应用SQLite自身标准SQL语言来实现的。在相应的数据操作完成后,必须把数据源中的过期数据进行删除。

在完成了数据的提取和整合后,系统将把数据根据对应ECSpec的具体要求封装成为XML格式,并以TCP方式发送给所订阅的用户。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top