电子关锁编码与解码识别方法研究
摘 要:文章根据实际需求,对电子关锁目前的工作状态和可能的合作方式从施封到解封全过程进行安全性技术分析,给出其相应的优缺点和存在的风险,从而找出一种行之有效的模式识别、通信协议、编码格式、数据加密、解码原理等技术方法和实现过程。
关键词:电子标签;射频识别技术;编码与解码;电子关锁
在海关物流监控系统中,由闸口监控、运输车辆的GPS监控、EDI数据平台,集装箱电子铅封,组成一个完整的封闭系统。在信息识别和通信方面,对电子铅封系统的基本技术要求是:(1)在用开封器开电子铅封时要能判断该铅封是否被非法打开过。(2)电子铅封能防伪及数据加密。(3)开封器要受控制中心的控制。(4)开封器与控制中心能无线通信。
1 无源无线防伪电子铅封
1.1 无源无线防伪电子铅封系统组成
海关集装箱无源无线电子铅封系统如图1所示,由以下5部分组成。
(1)电子铅封:电子铅封沿袭传统铅封模式,可封装在传统铅封中,插在集装箱门上,封住集装箱门。铅封内嵌集成电路模块,无须电源。电子铅封不与GPS车载台或其他设备连接。电子铅封内保存有全球唯一且不可更改的ID号。铅封中还有一定数量的内存,可以保存集装箱号码、运载车辆车牌号、运输起始海关和终点海关。铅封的使用具备一次性,即铅封打开后集成电路模块就被破坏,加上全球唯一的ID号,无法再复原铅封。
(2)加封器、开封器:实际上是一个电子铅封的读写器。该设备通过无线射频,读取或写入铅封中保存的数据。该设备无须和电子铅封连线,通过无线方式可读取、写入铅封中保存的信息。
(3)无线收发机:无线收发机通过RS232接口协议分别与开封器和场站计算机相连。两台无线收发机可在1 000 m的范圍内通过无线方式使开封器与场站计算机通信,传送铅封号、集装箱号码等。
(4)场站计算机:负责场站现场数据与海关监控中心之间的数据传输。
(5)海关物流监控中心:负责铅封的发放、注销、核对等管理工作,通过网络与场站计算机进行数据通信[1]。
1.2 电子关锁要实现的功能
(1)检测锁销的状态。(2)进行无线读写数据。(3)规定的数据传输格式(这个在实际使用中可能会做调整)。(4)有自己的数据加密算法,采用CRC校验。(5)存储信息和记录锁开关次数。(6)读写速度快(在整个通道行进的过程中要至少完成一次读取(与电子车牌读写速度同));读写距离远(覆盖整个通道15 m以上)。
图1 无源无线电子铅封方案
1.3 无源无线电子铅封系统工作过程
海关集装箱无源无线电子铅封系统的工作过程分加封、开封、问题处理3部分。
(1)加封:集装箱出场站之前,在集装箱门上加一把电子铅封,封住集装箱门。具体过程如下:挑选一把电子铅封;将集装箱号、运载车辆号码、起点海关、终点海关输入场站计算机;将电子铅封放在加封器上;场站计算机通过加封器读出电子铅封ID号;场站计算机将集装箱号和电子铅封号传到监控中心;监控中心按加密程序返回密码;场站计算机通过加封器将密码、集装箱号码、起点、终点海关等信息写入电子铅封;用电子铅封封住集装箱门。
(2)开封:集装箱进场站后,对集装箱门上完好无损的电子铅封开封的具体过程如下:将手持式开封器接近电子铅封;开封器读取铅封中的ID号、集装箱号、车牌号、起始海关、终点海关;开封器向场站计算机发送铅封信息。场站计算机将集装箱号、铅封ID号、密码和开封请求传到监控中心;监控中心按解密程序检查电子铅封的真伪,并相应地返回真伪结果;并在数据库中记录信息;场站计算机通过无线频道向开封器发送验证信息;若验证通过,则从集装箱门上取下电子铅封,本铅封打开后即被当场销毁;如果为拒绝命令,属问题处理。
(3)问题处理:集装箱上的铅封被毁、控制中心发现无效铅封拒绝开封、电子铅封内嵌芯片失灵等情况都属于本系统的问题,需要提出处理问题办法[2]。
1.4 电子锁目前的状态
(1)采用轮巡的方式传输采集数据。
(2)传输速率为19.2 K(433 M),1 M(2.4 G)。
(3)433 M采用MCU和传输芯片相结合的方式,2.4 G采用单一芯片,此芯片包含一个51单片和一个快速传输芯片。
1.5 可能的合作方式
(1)直接采用amtech的合适芯片实现现在所有的功能。
(2)采用amtech的芯片和mcu相结合,由amtech芯片一直处于接收状态,在接收到正确数据后唤醒mcu,由mcu进行控制进行数据的交互。
(3)采用amtech的芯片作为唤醒芯片,在mcu唤醒以后就让amtech芯片关闭,用其他的传输芯片进行数据的无线传输(此种状态是针对amtech芯片无法完成数据传输的情况下)[3]。
以上3种合作方式的优势和风险阐述如下。
针对(1):优势为无需进行别的配合,开发周期短。
风险为没有合适的芯片实现以上的5个基本功能,尤其是算法的实现和检测电路的实现。
针对(2):这种是最好的方式。
工作读出模式:amtech芯片一直处于低功耗的接收状态(功耗应在10 μA以内),在进入RF辐射区后,接收到正确数据包头后用中断等方式将MCU唤醒,与MCU进行数据交换,调用已加完密的数据向外发射后等待,直到amtech芯片离开RF辐射区,芯片重新进入低功耗接收状态,同时给MCU一个可休眠信号。MCU进入休眠状态。
写入模式:amtech芯片一直处于低功耗的接收状态(功耗应在10 μA以内),在进入RF辐射区后,接收到正确数据包头后用中断等方式将MCU唤醒,与MCU进行数据交换,继续向读写器要数据包,得到正确的数据包后,MCU对此数据进行加密算法,直到amtech芯片离开RF辐射区,芯片重新进入低功耗接收状态,同时给MCU一个可休眠信号。MCU进入休眠状态。
锁销检测:MCU进行相应检测。优势:功耗低,通信方便快捷。劣势:是否这样就无法实现用手持机对其进行读写了?
需要弄明白的问题:
①读写器的数据交换协议如何制定?是我们制定完成后,RF将其进行调制,采用的CRC校验可以杜绝黑匣子部分不能解决可能性。
②是否工作模式中提到的中断和数据交换解决方案,采用和普通串口形式一致吗?
针对(3):这个方案应该说最不好实现,因为势必有两种RF相互干扰的情况。
风险:无法采用单一POS机进行数据的读写,因为必须提供两种RF方式才能激活并读写。
2 识别原理
2.1 通信串口设置
电子关封读写器通过RS232串口与PC机通信,串口参数为:波特率9 600,校验位NONE,数据位8,停止位1。命令格式:0xaa+控制命令字+0x00+0x00[+数据内容]+0xab。
2.2 标签信息编码格式
电子标签数据由128个比特组成。标签被激活后,对数据进行编码,加同步帧头,形成数据帧信号,采用反向散射原理(ASK调制信号)将数据发送给读写器。标签的数据编码形式如图2a和b所示。同步帧头形式如图2c所示。标签返回数据速率为10 kbps;返回整个数据帧,包括帧头,需13 ms。
引导字节共5个字节,数据包包头共16个字节,数据包共54个字节,合计75个字节。
2.3 数据加密
包含ENCRYPT.H,将ENCRYPT.LIB加入PROJECT。ENCRYPT.DLL接口说明如下。
2.3.1 加密函数
unsigned int EnCode(unsigned char * SourceBuf,
unsigned int CodeLength,
unsigned char * DestBuf)
SourceBuf:存放未加密数据的緩冲区首地址;CodeLength:数据字节数;DestBuf:存放加密后数据的缓冲区首地址;
加密成功,返回1;失败返回0。
2.3.2 解密函数
unsigned int UnCode(unsigned char * SourceBuf,
unsigned int CodeLength,
unsigned char * DestBuf)
SourceBuf:存放加密数据的缓冲区首地址;CodeLength:数据字节数;DestBuf:存放解密后数据的缓冲区首地址;
解密成功,返回1;失败返回0。
读关封返回各数据包的第(9—232)和(233—256)两个数据块需分别进行解密;
快速读关封返回数据包的第9—32共24个字节需进行解密;
注意:第1—8字节不能进行解密,写关封前需对各数据包的第1—224共224个字节进行加密。
2.4 数据校验
包含AVRCRC.H,加入AVRCRC.LIB;AVRCRC.DLL接口:
BOOL CreateCRC(const char * pDataBuf, //数据区首址
int iDataLength, //数据字节长度,必须为偶数
WORD &crccode) //生成的两字节校验码
对要写的(前数据包,后数据包)或(数据包)作整体运算,将生成的两字节校验码放入(校验码低字节),(校验码高字节)。成功返回TRUE;失败返回FALSE。
2.5 自动模式工作时序
如图3所示,探头被挡住为触发,未被挡住为释放。
探头的共同状态指探头1和探头2的状态相同时探头的状态。
集装箱卡车沿箭头方向前进。
箱型可能为单长箱、单短箱、双短箱。
探头状态变化如表1所示。
由表1可得出:(1)当探头的共同状态由释放变为触发时,标志前箱到来:读写器自动开始读关封,完成后,若读取成功则将数据保存,若不成功则保存失败信息;PC记录探头状态的变化。
(2)当探头的共同状态由触发变为释放时,标志后箱正在离去:读写器自动开始读关封,完成后,如果已收到PC发来的索取数据命令,则将两个关封的数据返回;如果尚未收到PC发来的索取数据命令,若读取成功则将数据保存,若不成功则保存失败信息,等到收到PC发来的索取数据命令后,再将两个关封的数据返回;PC延时100 ms后,向读写器发索取数据命令。
(3)在读取数据的过程中,检测到探头的共同状态的变化:如读写器已读到数据,则将数据保存,如未读到数据,则中止本次读取,保存失败信息,如已收到索取数据命令,将两个关封的数据返回,然后进入下一次读取流程;PC如果在后箱离去后在等待返回数据过程中检测到,则再等待200 ms,等待读写器返回数据,作相应处理,然后进入下一流程。
(4)在上述自动模式下,若时限已到而未读取成功,读写器会自动停止,PC不要向读写器发送取消命令[4]。
以上流程时序图如图4所示。
3 结语
(1)整个电子铅封系统从加封到开封形成一个大闭环,处在监控中心的监控之下。安全、可靠,一旦加封,任何换铅封的可能性都不存在。
(2)由于电子铅封内没有电源,价格便宜,一次性使用,电子铅封几乎不需要维护工作。
(3)开封器、加封器接口软件的开发:该软件至少包含从电子铅封内读数据、向电子铅封内写数据、向计算机发数据、接受计算机数据等功能。
(4)电子铅封系统管理软件的开发:该软件控制整个电子铅封系统的流程,与业务系统紧密结合。应用与开封器、加封器数据交换、网络数据传送、数据加密与解密、电子铅封发放报废管理、问题处理记录与统计等功能。
(5)开封器与场站计算机无线连接,便于使用。
[参考文献]
[1]杜思深.无线数据通信技术[M].北京:电子工业出版社,2011.
[2]EPCglobal.EPCTM radio-frequency identity protocols class-1 generation-2 UHF RFID protocol for communication at 860~960 MHz[M].Heidelberg:Springer Berlin Heidelberg,2005.
[3]钱游,陈国发.单片机实用技术[M].西安:西安电子科技大学出版社,2017.
[4]陈国发.基于单片机和RFID的智能电子关封设计[J].电子测试,2018(3):38-47.
下一篇:姿轨控软件黑盒测试方法研究