一种电子车牌的接口协议统一适配方法与流程

文档序号:11878745阅读:268来源:国知局
一种电子车牌的接口协议统一适配方法与流程

本发明属于自动识别领域技术,特别是涉及到一种电子车牌的接口协议统一适配方法。



背景技术:

电子车牌是在是基于物联网无源射频识别(RFID)技术的细分、延伸及提高的一种应用,在机动车辆上装有一枚电子车牌标签,将该RFID电子车牌作为车辆信息的载体,并由在通过装有经授权的射频识别读写器的路段时,对各辆机动车电子车牌上的数据进行采集或写入,达到各类综合交通管理的目的。在行业应用中,由于生产读写器的厂家众多,需要有一套前后台接口协议进行前后台统一适配。



技术实现要素:

有鉴于此,本发明提出一种电子车牌的接口协议统一适配方法,可以实现不同后台和支持该接口协议的阅读器设备的适配。

为达到上述目的,本发明的技术方案是这样实现的:一种电子车牌的接口协议统一适配方法,包括:

1)定义电子车牌与上位机之间的通信链路形式,形成通信链路接口;

2)设有能力接口,用于通过其进行能力查询;

3)设有业务接口,用于通过其对电子车牌进行操作;

4)设有网管接口,用于通过其进行系统管理;

5)上述各接口业务独立,耦合性小。

进一步的,所述通信链路接口为基于TCP/IP协议的网口通信,或者基于RS232/RS485协议的串口通信,或者基于SPI,IIC总线的通信。

进一步的,所述能力查询包括:

当前boot软件版本序列号,应用版本软件序列号,附属的如射频板软件版本或FPGA软件版本序列号,设备序列号,支持的协议种类及数量,实际配置的协议种类及数量,前向发射及反向接收的数据速率,在位天线的数量查询,在位天线功率查询,在位天线频率查询,Q值查询,支持后续其他的扩展功能查询。

进一步的,通过业务接口对电子车牌的操作流程为:首先盘点电子车牌,如果有需要,再读取电子车牌的某一区中的数据,然后对电子车牌进行匹配,最后对匹配成功的电子车牌执行预定的操作。

进一步的,通过网管接口进行系统管理的内容包括设备认证、日志管理、配置管理、版本管理、告警管理。

进一步的,所述各接口的业务规则,即Select的调度规则,为:

Select的调度器定义成一个对象,主要依托于以下几个队列和对应的调度状态来进行:

(101)AddSelect队列:这个队列是所有加入到阅读器中Select的合集,而且是按照顺序添加的。用于查询Select和参数校验使用;

(102)DisableSelect队列:Select的一个初始状态队列,当Select添加完成后,即可转换到DisableSelect队列。Select状态也同时转换到Disable;

(103)Inactive队列:对应Select的Inactive状态组成的队列;

(104)Ready队列:Select的待执行的队列,排列顺序按照优先级和时间组合排序;Select的Inactive队列和Ready队列所对应的Select的状态都是Inactive;Select从Inactive队列转到Ready队列是由Select的Trigger触发的;

(105)Active运行节点:这个节点是阅读器空闲时,从Ready队列中的头节点摘除的,是由阅读器的调度函数实现的:实现流程即判断active运行节点是否存在,摘除Ready头节点;转入Active状态;ActiveSelect运行完成后;转入inactive状态,然后再根据trigger判断是否转换到Ready队列中,这里的Trigger只有period。

更进一步的,ADDSelect队列中,任何状态Select都有一个唯一的索引;其他队列,Select只能存在于一个队列中。

相对于现有技术,本发明所述的一种电子车牌的接口协议统一适配方法,主要有以下优势:

本发明通过所包含的业务接口,能力接口,网管接口等,可以实现不同后台和支持该接口协议的阅读器设备的适配。

附图说明

图1是本发明的接口包含接口协议的示意图;

图2是本发明的业务规则示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面将结合实施例以及附图来详细说明本发明。

本发明提出一种基于电子车牌的接口协议的方法,方法的设计原则如下:

1.对于整个电子车牌行业而言,接口以一个统一的形式出现。

2.业务和配置,通信等分开独立无耦合。

方法内容包括如图1,

该方法主要是超高频行标系统设备(以下简称设备)和上位机之间的接口,包括通信链路、能力接口、业务接口、网管接口等。

(1)通信链路:

通信链路定义电子车牌与上位机之间的通信链路形式,通信链路模块负责维护整机的通信链路,包括基于TCP/IP协议的网口通信,或者基于RS232/RS485协议的串口通信,或者基于SPI,IIC总线等的通信方式等,具体的实现采用回调函数的方式进行,对外所提供的为统一的函数指针,如对网管模块提供查询链路状态存活情况等函数指针,对业务和能力模块提供通讯的函数指针,具体的通信链路的自身业务由自己进行维护。

(2)能力接口:

能力接口用于负责向上位机提供自身的能力查询,通过配置文件等进行自身能力的获取,调用通信链路的通讯函数进行和上位机通讯(仅调用提供的函数指针)如失败仅返回错误码。

(3)业务接口

业务接口是指对标签的操作接口。对标签的操作流程可以概括为:盘点->读->匹配->执行。首先盘点标签,如果有需要,再读取标签的某一区中的数据,然后对标签进行匹配,最后对匹配成功的标签执行预定的操作。

业务接口用于维护电子车牌领域操作所需实现的具体业务,包括通信协议等的具体解析及分发处理以及采用行业内专用的安全协议进行加解密处理等任务。

(4)网管接口

包括设备认证、日志管理、配置管理、版本管理、告警管理等。

网管接口用于维护整机的管理配置等业务,同能力接口的通讯方式相同,与上位机通讯仅调用所提供的函数指针即可,失败返回相应的错误码。

各接口之间业务独立,耦合性极小,其中任意模块的消亡不会导致其他模块的代码出现问题。

本发明的适配方法业务规则如图2,说明如下:

Select的调度:

Select的调度器定义成一个对象,主要依托于以下几个队列和对应的调度状态来进行:

(101)AddSelect队列:这个队列是所有加入到阅读器中Select的合集,而且是按照顺序添加的。用于查询Select和参数校验使用;

(102)DisableSelect队列:Select的一个初始状态队列,当Select添加完成后,即可转换到DisableSelect队列。Select状态也同时转换到Disable;

(103)Inactive队列:对应Select的Inactive状态组成的队列;

(104)Ready队列:Select的待执行的队列,排列顺序按照优先级和时间组合排序。Select的Inactive队列和Ready队列所对应的Select的状态都是Inactive。Select从Inactive队列转到Ready队列是由Select的Trigger触发的;

(105)Active运行节点:这个节点是阅读器空闲时,从Ready队列中的头节点摘除的。是由阅读器的调度函数实现的:实现流程即判断active运行节点是否存在,摘除Ready头节点。转入Active状态。ActiveSelect运行完成后。转入inactive状态,然后再根据trigger判断是否转换到Ready队列中,这里的Trigger只有period;

其中,ADDSelect队列中,任何状态Select都有一个唯一的索引;其他队列,Select只能存在于一个队列中。

Select的规则处理消息的流程

AddSelect消息:Select同时在ADD队列和Disable队列生成节点。并构建Select的startTrigger和StopTrigger,ReportTrigger的处理函数。

EnabelSelect消息:扫描DisableSelect队列,寻找到对应的Select,然后插入到Inactive队列,然后调用Select的startTrigger处理函数,例如:如果Select的startTrigger是Immediate时,则转换状态Select到Ready。插入Ready队列。

StartSelect消息:扫描InactiveSelect队列。转入Ready队列。

StopSelect消息:如果Ready队列中有Select,则Select转入到Inactive队列中。如果ActiveSelect是要停止的Select,则把Select插入到Inactive对列,并转换Select状态。对于周期性ActiveSelect需要停止定时器。

DisableSelect消息:判断Select的调度状态,然后清空相应的队列,并构建DisableSelect队列中相应的节点。对于ActiveSelect来说,要停止Select的相应定时器。例如Select的startTrigger的定时器。

DeleteSelect消息:判断Select的调度状态。然后清空对应状态队列。删除实体Select,activeSelect等待Select调度结束后,再进行Select实体的删除。

Select的执行的优化

优化方向

数据方面:Select中AI的当前运行索引,AI中的AP(天线和协议的二维组)的当前运行索引都定义在Select结构体内部。不使用阅读器层次上的全局变量进行控制。这样保证Select与Select之间运行时的隔离。

流程方面:在ADD_Select下发时,根据Select的StartTrigger,Select的StopTrigger,和Select的ReportTrigger确定Select处理各种Trigger确定方式。在执行流程中不再进行实时判断来决定Select是那个Trigger,需要进行那种处理。

优化方法

对流程和每种Trigger进行分析,抽象每种Trigger在流程中的最大处理节点集合,然后在根据不同的Trigger需要定义哪些处理节点。即定义哪些函数。

Trigger的实现方式

方法1

在流程中,只要涉及到Trigger的处理,根据不同的Trggier(例如Time Base Periodic和Immediata),调用相应Trigger处理函数,例如enable时,要同时调用period和immediate处理函数。只不过在AddSelect时,根据Trigger的不同,会设置period和immediate的处理函数中的一个为空。

方法2

把Trigger做最大化处理,例如StartTrigger中的perrid要三个时机,见下面Time Base Periodic的三个时机描述的描述,而immediate只要一个调用时机,见下面的描述。这时,Select只定义startrigger的最大化处理函数例如(fun1,fun2,fun3).但是对于immediate只有(NULL,Fun2.NULL),这样在任何Trigger触发的地点,要调用fun1,或者fun2,Fun3,只不过fun是多态的。这些AddSelect中确定。

以上所述仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明创造的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1