陳國(guó)發(fā) 陳致遠(yuǎn)
摘 要:文章根據(jù)實(shí)際需求,對(duì)電子關(guān)鎖目前的工作狀態(tài)和可能的合作方式從施封到解封全過(guò)程進(jìn)行安全性技術(shù)分析,給出其相應(yīng)的優(yōu)缺點(diǎn)和存在的風(fēng)險(xiǎn),從而找出一種行之有效的模式識(shí)別、通信協(xié)議、編碼格式、數(shù)據(jù)加密、解碼原理等技術(shù)方法和實(shí)現(xiàn)過(guò)程。
關(guān)鍵詞:電子標(biāo)簽;射頻識(shí)別技術(shù);編碼與解碼;電子關(guān)鎖
在海關(guān)物流監(jiān)控系統(tǒng)中,由閘口監(jiān)控、運(yùn)輸車輛的GPS監(jiān)控、EDI數(shù)據(jù)平臺(tái),集裝箱電子鉛封,組成一個(gè)完整的封閉系統(tǒng)。在信息識(shí)別和通信方面,對(duì)電子鉛封系統(tǒng)的基本技術(shù)要求是:(1)在用開封器開電子鉛封時(shí)要能判斷該鉛封是否被非法打開過(guò)。(2)電子鉛封能防偽及數(shù)據(jù)加密。(3)開封器要受控制中心的控制。(4)開封器與控制中心能無(wú)線通信。
1 無(wú)源無(wú)線防偽電子鉛封
1.1 無(wú)源無(wú)線防偽電子鉛封系統(tǒng)組成
海關(guān)集裝箱無(wú)源無(wú)線電子鉛封系統(tǒng)如圖1所示,由以下5部分組成。
(1)電子鉛封:電子鉛封沿襲傳統(tǒng)鉛封模式,可封裝在傳統(tǒng)鉛封中,插在集裝箱門上,封住集裝箱門。鉛封內(nèi)嵌集成電路模塊,無(wú)須電源。電子鉛封不與GPS車載臺(tái)或其他設(shè)備連接。電子鉛封內(nèi)保存有全球唯一且不可更改的ID號(hào)。鉛封中還有一定數(shù)量的內(nèi)存,可以保存集裝箱號(hào)碼、運(yùn)載車輛車牌號(hào)、運(yùn)輸起始海關(guān)和終點(diǎn)海關(guān)。鉛封的使用具備一次性,即鉛封打開后集成電路模塊就被破壞,加上全球唯一的ID號(hào),無(wú)法再?gòu)?fù)原鉛封。
(2)加封器、開封器:實(shí)際上是一個(gè)電子鉛封的讀寫器。該設(shè)備通過(guò)無(wú)線射頻,讀取或?qū)懭脬U封中保存的數(shù)據(jù)。該設(shè)備無(wú)須和電子鉛封連線,通過(guò)無(wú)線方式可讀取、寫入鉛封中保存的信息。
(3)無(wú)線收發(fā)機(jī):無(wú)線收發(fā)機(jī)通過(guò)RS232接口協(xié)議分別與開封器和場(chǎng)站計(jì)算機(jī)相連。兩臺(tái)無(wú)線收發(fā)機(jī)可在1 000 m的范圍內(nèi)通過(guò)無(wú)線方式使開封器與場(chǎng)站計(jì)算機(jī)通信,傳送鉛封號(hào)、集裝箱號(hào)碼等。
(4)場(chǎng)站計(jì)算機(jī):負(fù)責(zé)場(chǎng)站現(xiàn)場(chǎng)數(shù)據(jù)與海關(guān)監(jiān)控中心之間的數(shù)據(jù)傳輸。
(5)海關(guān)物流監(jiān)控中心:負(fù)責(zé)鉛封的發(fā)放、注銷、核對(duì)等管理工作,通過(guò)網(wǎng)絡(luò)與場(chǎng)站計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信[1]。
1.2 電子關(guān)鎖要實(shí)現(xiàn)的功能
(1)檢測(cè)鎖銷的狀態(tài)。(2)進(jìn)行無(wú)線讀寫數(shù)據(jù)。(3)規(guī)定的數(shù)據(jù)傳輸格式(這個(gè)在實(shí)際使用中可能會(huì)做調(diào)整)。(4)有自己的數(shù)據(jù)加密算法,采用CRC校驗(yàn)。(5)存儲(chǔ)信息和記錄鎖開關(guān)次數(shù)。(6)讀寫速度快(在整個(gè)通道行進(jìn)的過(guò)程中要至少完成一次讀?。ㄅc電子車牌讀寫速度同));讀寫距離遠(yuǎn)(覆蓋整個(gè)通道15 m以上)。
圖1 無(wú)源無(wú)線電子鉛封方案
1.3 無(wú)源無(wú)線電子鉛封系統(tǒng)工作過(guò)程
海關(guān)集裝箱無(wú)源無(wú)線電子鉛封系統(tǒng)的工作過(guò)程分加封、開封、問題處理3部分。
(1)加封:集裝箱出場(chǎng)站之前,在集裝箱門上加一把電子鉛封,封住集裝箱門。具體過(guò)程如下:挑選一把電子鉛封;將集裝箱號(hào)、運(yùn)載車輛號(hào)碼、起點(diǎn)海關(guān)、終點(diǎn)海關(guān)輸入場(chǎng)站計(jì)算機(jī);將電子鉛封放在加封器上;場(chǎng)站計(jì)算機(jī)通過(guò)加封器讀出電子鉛封ID號(hào);場(chǎng)站計(jì)算機(jī)將集裝箱號(hào)和電子鉛封號(hào)傳到監(jiān)控中心;監(jiān)控中心按加密程序返回密碼;場(chǎng)站計(jì)算機(jī)通過(guò)加封器將密碼、集裝箱號(hào)碼、起點(diǎn)、終點(diǎn)海關(guān)等信息寫入電子鉛封;用電子鉛封封住集裝箱門。
(2)開封:集裝箱進(jìn)場(chǎng)站后,對(duì)集裝箱門上完好無(wú)損的電子鉛封開封的具體過(guò)程如下:將手持式開封器接近電子鉛封;開封器讀取鉛封中的ID號(hào)、集裝箱號(hào)、車牌號(hào)、起始海關(guān)、終點(diǎn)海關(guān);開封器向場(chǎng)站計(jì)算機(jī)發(fā)送鉛封信息。場(chǎng)站計(jì)算機(jī)將集裝箱號(hào)、鉛封ID號(hào)、密碼和開封請(qǐng)求傳到監(jiān)控中心;監(jiān)控中心按解密程序檢查電子鉛封的真?zhèn)?,并相?yīng)地返回真?zhèn)谓Y(jié)果;并在數(shù)據(jù)庫(kù)中記錄信息;場(chǎng)站計(jì)算機(jī)通過(guò)無(wú)線頻道向開封器發(fā)送驗(yàn)證信息;若驗(yàn)證通過(guò),則從集裝箱門上取下電子鉛封,本鉛封打開后即被當(dāng)場(chǎng)銷毀;如果為拒絕命令,屬問題處理。
(3)問題處理:集裝箱上的鉛封被毀、控制中心發(fā)現(xiàn)無(wú)效鉛封拒絕開封、電子鉛封內(nèi)嵌芯片失靈等情況都屬于本系統(tǒng)的問題,需要提出處理問題辦法[2]。
1.4 電子鎖目前的狀態(tài)
(1)采用輪巡的方式傳輸采集數(shù)據(jù)。
(2)傳輸速率為19.2 K(433 M),1 M(2.4 G)。
(3)433 M采用MCU和傳輸芯片相結(jié)合的方式,2.4 G采用單一芯片,此芯片包含一個(gè)51單片和一個(gè)快速傳輸芯片。
1.5 可能的合作方式
(1)直接采用amtech的合適芯片實(shí)現(xiàn)現(xiàn)在所有的功能。
(2)采用amtech的芯片和mcu相結(jié)合,由amtech芯片一直處于接收狀態(tài),在接收到正確數(shù)據(jù)后喚醒mcu,由mcu進(jìn)行控制進(jìn)行數(shù)據(jù)的交互。
(3)采用amtech的芯片作為喚醒芯片,在mcu喚醒以后就讓amtech芯片關(guān)閉,用其他的傳輸芯片進(jìn)行數(shù)據(jù)的無(wú)線傳輸(此種狀態(tài)是針對(duì)amtech芯片無(wú)法完成數(shù)據(jù)傳輸?shù)那闆r下)[3]。
以上3種合作方式的優(yōu)勢(shì)和風(fēng)險(xiǎn)闡述如下。
針對(duì)(1):優(yōu)勢(shì)為無(wú)需進(jìn)行別的配合,開發(fā)周期短。
風(fēng)險(xiǎn)為沒有合適的芯片實(shí)現(xiàn)以上的5個(gè)基本功能,尤其是算法的實(shí)現(xiàn)和檢測(cè)電路的實(shí)現(xiàn)。
針對(duì)(2):這種是最好的方式。
工作讀出模式:amtech芯片一直處于低功耗的接收狀態(tài)(功耗應(yīng)在10 μA以內(nèi)),在進(jìn)入RF輻射區(qū)后,接收到正確數(shù)據(jù)包頭后用中斷等方式將MCU喚醒,與MCU進(jìn)行數(shù)據(jù)交換,調(diào)用已加完密的數(shù)據(jù)向外發(fā)射后等待,直到amtech芯片離開RF輻射區(qū),芯片重新進(jìn)入低功耗接收狀態(tài),同時(shí)給MCU一個(gè)可休眠信號(hào)。MCU進(jìn)入休眠狀態(tài)。
寫入模式:amtech芯片一直處于低功耗的接收狀態(tài)(功耗應(yīng)在10 μA以內(nèi)),在進(jìn)入RF輻射區(qū)后,接收到正確數(shù)據(jù)包頭后用中斷等方式將MCU喚醒,與MCU進(jìn)行數(shù)據(jù)交換,繼續(xù)向讀寫器要數(shù)據(jù)包,得到正確的數(shù)據(jù)包后,MCU對(duì)此數(shù)據(jù)進(jìn)行加密算法,直到amtech芯片離開RF輻射區(qū),芯片重新進(jìn)入低功耗接收狀態(tài),同時(shí)給MCU一個(gè)可休眠信號(hào)。MCU進(jìn)入休眠狀態(tài)。
鎖銷檢測(cè):MCU進(jìn)行相應(yīng)檢測(cè)。優(yōu)勢(shì):功耗低,通信方便快捷。劣勢(shì):是否這樣就無(wú)法實(shí)現(xiàn)用手持機(jī)對(duì)其進(jìn)行讀寫了?
需要弄明白的問題:
①讀寫器的數(shù)據(jù)交換協(xié)議如何制定?是我們制定完成后,RF將其進(jìn)行調(diào)制,采用的CRC校驗(yàn)可以杜絕黑匣子部分不能解決可能性。
②是否工作模式中提到的中斷和數(shù)據(jù)交換解決方案,采用和普通串口形式一致嗎?
針對(duì)(3):這個(gè)方案應(yīng)該說(shuō)最不好實(shí)現(xiàn),因?yàn)閯?shì)必有兩種RF相互干擾的情況。
風(fēng)險(xiǎn):無(wú)法采用單一POS機(jī)進(jìn)行數(shù)據(jù)的讀寫,因?yàn)楸仨毺峁﹥煞NRF方式才能激活并讀寫。
2 識(shí)別原理
2.1 通信串口設(shè)置
電子關(guān)封讀寫器通過(guò)RS232串口與PC機(jī)通信,串口參數(shù)為:波特率9 600,校驗(yàn)位NONE,數(shù)據(jù)位8,停止位1。命令格式:0xaa+控制命令字+0x00+0x00[+數(shù)據(jù)內(nèi)容]+0xab。
2.2 標(biāo)簽信息編碼格式
電子標(biāo)簽數(shù)據(jù)由128個(gè)比特組成。標(biāo)簽被激活后,對(duì)數(shù)據(jù)進(jìn)行編碼,加同步幀頭,形成數(shù)據(jù)幀信號(hào),采用反向散射原理(ASK調(diào)制信號(hào))將數(shù)據(jù)發(fā)送給讀寫器。標(biāo)簽的數(shù)據(jù)編碼形式如圖2a和b所示。同步幀頭形式如圖2c所示。標(biāo)簽返回?cái)?shù)據(jù)速率為10 kbps;返回整個(gè)數(shù)據(jù)幀,包括幀頭,需13 ms。
引導(dǎo)字節(jié)共5個(gè)字節(jié),數(shù)據(jù)包包頭共16個(gè)字節(jié),數(shù)據(jù)包共54個(gè)字節(jié),合計(jì)75個(gè)字節(jié)。
2.3 數(shù)據(jù)加密
包含ENCRYPT.H,將ENCRYPT.LIB加入PROJECT。ENCRYPT.DLL接口說(shuō)明如下。
2.3.1 加密函數(shù)
unsigned int EnCode(unsigned char * SourceBuf,
unsigned int CodeLength,
unsigned char * DestBuf)
SourceBuf:存放未加密數(shù)據(jù)的緩沖區(qū)首地址;CodeLength:數(shù)據(jù)字節(jié)數(shù);DestBuf:存放加密后數(shù)據(jù)的緩沖區(qū)首地址;
加密成功,返回1;失敗返回0。
2.3.2 解密函數(shù)
unsigned int UnCode(unsigned char * SourceBuf,
unsigned int CodeLength,
unsigned char * DestBuf)
SourceBuf:存放加密數(shù)據(jù)的緩沖區(qū)首地址;CodeLength:數(shù)據(jù)字節(jié)數(shù);DestBuf:存放解密后數(shù)據(jù)的緩沖區(qū)首地址;
解密成功,返回1;失敗返回0。
讀關(guān)封返回各數(shù)據(jù)包的第(9—232)和(233—256)兩個(gè)數(shù)據(jù)塊需分別進(jìn)行解密;
快速讀關(guān)封返回?cái)?shù)據(jù)包的第9—32共24個(gè)字節(jié)需進(jìn)行解密;
注意:第1—8字節(jié)不能進(jìn)行解密,寫關(guān)封前需對(duì)各數(shù)據(jù)包的第1—224共224個(gè)字節(jié)進(jìn)行加密。
2.4 數(shù)據(jù)校驗(yàn)
包含AVRCRC.H,加入AVRCRC.LIB;AVRCRC.DLL接口:
BOOL CreateCRC(const char * pDataBuf, //數(shù)據(jù)區(qū)首址
int iDataLength, //數(shù)據(jù)字節(jié)長(zhǎng)度,必須為偶數(shù)
WORD &crccode;) //生成的兩字節(jié)校驗(yàn)碼
對(duì)要寫的(前數(shù)據(jù)包,后數(shù)據(jù)包)或(數(shù)據(jù)包)作整體運(yùn)算,將生成的兩字節(jié)校驗(yàn)碼放入(校驗(yàn)碼低字節(jié)),(校驗(yàn)碼高字節(jié))。成功返回TRUE;失敗返回FALSE。
2.5 自動(dòng)模式工作時(shí)序
如圖3所示,探頭被擋住為觸發(fā),未被擋住為釋放。
探頭的共同狀態(tài)指探頭1和探頭2的狀態(tài)相同時(shí)探頭的狀態(tài)。
集裝箱卡車沿箭頭方向前進(jìn)。
箱型可能為單長(zhǎng)箱、單短箱、雙短箱。
探頭狀態(tài)變化如表1所示。
由表1可得出:(1)當(dāng)探頭的共同狀態(tài)由釋放變?yōu)橛|發(fā)時(shí),標(biāo)志前箱到來(lái):讀寫器自動(dòng)開始讀關(guān)封,完成后,若讀取成功則將數(shù)據(jù)保存,若不成功則保存失敗信息;PC記錄探頭狀態(tài)的變化。
(2)當(dāng)探頭的共同狀態(tài)由觸發(fā)變?yōu)獒尫艜r(shí),標(biāo)志后箱正在離去:讀寫器自動(dòng)開始讀關(guān)封,完成后,如果已收到PC發(fā)來(lái)的索取數(shù)據(jù)命令,則將兩個(gè)關(guān)封的數(shù)據(jù)返回;如果尚未收到PC發(fā)來(lái)的索取數(shù)據(jù)命令,若讀取成功則將數(shù)據(jù)保存,若不成功則保存失敗信息,等到收到PC發(fā)來(lái)的索取數(shù)據(jù)命令后,再將兩個(gè)關(guān)封的數(shù)據(jù)返回;PC延時(shí)100 ms后,向讀寫器發(fā)索取數(shù)據(jù)命令。
(3)在讀取數(shù)據(jù)的過(guò)程中,檢測(cè)到探頭的共同狀態(tài)的變化:如讀寫器已讀到數(shù)據(jù),則將數(shù)據(jù)保存,如未讀到數(shù)據(jù),則中止本次讀取,保存失敗信息,如已收到索取數(shù)據(jù)命令,將兩個(gè)關(guān)封的數(shù)據(jù)返回,然后進(jìn)入下一次讀取流程;PC如果在后箱離去后在等待返回?cái)?shù)據(jù)過(guò)程中檢測(cè)到,則再等待200 ms,等待讀寫器返回?cái)?shù)據(jù),作相應(yīng)處理,然后進(jìn)入下一流程。
(4)在上述自動(dòng)模式下,若時(shí)限已到而未讀取成功,讀寫器會(huì)自動(dòng)停止,PC不要向讀寫器發(fā)送取消命令[4]。
以上流程時(shí)序圖如圖4所示。
3 結(jié)語(yǔ)
(1)整個(gè)電子鉛封系統(tǒng)從加封到開封形成一個(gè)大閉環(huán),處在監(jiān)控中心的監(jiān)控之下。安全、可靠,一旦加封,任何換鉛封的可能性都不存在。
(2)由于電子鉛封內(nèi)沒有電源,價(jià)格便宜,一次性使用,電子鉛封幾乎不需要維護(hù)工作。
(3)開封器、加封器接口軟件的開發(fā):該軟件至少包含從電子鉛封內(nèi)讀數(shù)據(jù)、向電子鉛封內(nèi)寫數(shù)據(jù)、向計(jì)算機(jī)發(fā)數(shù)據(jù)、接受計(jì)算機(jī)數(shù)據(jù)等功能。
(4)電子鉛封系統(tǒng)管理軟件的開發(fā):該軟件控制整個(gè)電子鉛封系統(tǒng)的流程,與業(yè)務(wù)系統(tǒng)緊密結(jié)合。應(yīng)用與開封器、加封器數(shù)據(jù)交換、網(wǎng)絡(luò)數(shù)據(jù)傳送、數(shù)據(jù)加密與解密、電子鉛封發(fā)放報(bào)廢管理、問題處理記錄與統(tǒng)計(jì)等功能。
(5)開封器與場(chǎng)站計(jì)算機(jī)無(wú)線連接,便于使用。
[參考文獻(xiàn)]
[1]杜思深.無(wú)線數(shù)據(jù)通信技術(shù)[M].北京:電子工業(yè)出版社,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]錢游,陳國(guó)發(fā).單片機(jī)實(shí)用技術(shù)[M].西安:西安電子科技大學(xué)出版社,2017.
[4]陳國(guó)發(fā).基于單片機(jī)和RFID的智能電子關(guān)封設(shè)計(jì)[J].電子測(cè)試,2018(3):38-47.