<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 基于RFID的電子關鎖系統(tǒng)設計與實現

          基于RFID的電子關鎖系統(tǒng)設計與實現

          作者: 時間:2006-07-13 來源:網絡 收藏

          引言

          現行海關轉關貨物監(jiān)管主要采用傳統(tǒng)的一次性鉛封方式,以人工操作、肉眼識別等方式對集裝箱進行機械施封、驗封、解封,運行成本高、安全性低,更關鍵的是這種監(jiān)管方式運行效率低,遠遠不能滿足海關大密度、高強度業(yè)務流量的監(jiān)管要求。(Radio Frequency Identification,射頻識別)技術是利用感應、無線電波或微波能量進行非接觸雙向通信,以識別和交換數據為目的的自動識別技術。它通過射頻信號自動識別目標對象并獲取相關數據,識別工作無需人工干預。本文主動式 技術,采用代替?zhèn)鹘y(tǒng)的鉛制封條對轉關集裝箱進行監(jiān)控管理。

          架構及運行方式

          由監(jiān)控中心服務器、道口監(jiān)控機、射頻讀寫器(道口讀寫器、手持讀寫器)、電子四部分組成,其系統(tǒng)架構如圖1所示。監(jiān)控中心服務器負責后臺數據存儲和管理;道口監(jiān)控機通過串口控制道口讀寫器同關鎖進行射頻通信;電子關鎖作為無線終端,主要信息存儲、無線通訊、機構控制、狀態(tài)監(jiān)測等功能。


          圖1  電子關鎖系統(tǒng)網絡拓撲圖

          系統(tǒng)底層硬件結構與

          電子關鎖系統(tǒng)底層部分由讀寫器和電子關鎖組成,基本組成單元為MCU和射頻收發(fā)電路。區(qū)別在于:道口讀寫器增加了RS-485通信接口,手持讀寫器增加了人機交互接口,包括44薄膜鍵盤和12864點陣式液晶顯示模塊,電子關鎖則擴展了異常狀態(tài)監(jiān)測電路和電機驅動電路。電機驅動電路用來驅動電機,對關鎖的電子施封和解封。

          電子關鎖要求實現10~20米的無線數據通信,本文選用了Nordic公司生產的nRF2401(以下簡稱2401)作為射頻收發(fā)芯片。2401工作在全球開放的2.4GHz頻段,125個頻道,采用GFKS調制,最高無線數據傳輸速率可達1Mbit/s,內置硬件地址解碼和CRC編解碼電路。實際中采用單通道模式,MCU需要同2401的6個引腳相連,分別為DATA、CLK1、DR1、PWR、CE、CS。其中PWR、CE、CS用來配置工作模式。DATA、CLK1組成SPI總線。DR1為數據準備引腳,與MCU的中斷I/O引腳相連。圖2為射頻收發(fā)電路原理圖。

          軟件設計

          本系統(tǒng)的軟件設計分為三個層次:監(jiān)控中心服務器為頂層;道口監(jiān)控機為中間層;讀寫器及電子關鎖為底層。限于篇幅,這里主要說明底層系統(tǒng)的軟件設計。

          2401通信方式分析

          2401存在兩種通信方式,分別為直接傳輸模式(Dire Mode)和突發(fā)傳輸模式(Shock Burst),本設計采用后者。

          本設計中設置地址段為2個字節(jié),數據段為28個字節(jié),校驗碼為2個字節(jié)。地址段為2401芯片配置的接收地址,在系統(tǒng)中設定電子關鎖為被呼叫方,它們的接收地址相同;相應地,主叫方即所有的讀寫器設置的接收地址也相同。2401為半雙工方式,要通過配置狀態(tài)字來進行數據收發(fā)方式的切換。

          通信協議研究

          設計定義的RF數據包裝載于數據段(PAYLOAD)中,該數據包為定長28個字節(jié)。

          分析系統(tǒng)的應用需求,由于現場存在多個讀寫器和多個關鎖分別通信的情況,所以制訂的無線通信協議必須是針對多點對多點的。在每次通信開始時,主叫方需要同應答方建立連接,下面是連接的建立過程:

          1、讀寫器發(fā)出廣播呼叫(簡稱全呼)指令,這是一個單包指令,需在應答方標識填0xFFFFFF,命令碼為‘S’。此時,有效通信距離內的電子鎖都會被喚醒,它們會在應答方標識中填入自己的ID并返回給讀寫器。

          2、讀寫器會從返回的關鎖標識中選擇一個目標鎖對其發(fā)出單點呼叫指令(簡稱點呼)。對于道口讀寫器,采用定向天線保證每次全呼僅呼叫到一把鎖,則直接點呼該鎖;對于手持讀寫器,有可能得到多把鎖應答,可通過鍵盤進行選擇后點呼。點呼時需在應答方標識中填入目標鎖的ID。

          3、電子鎖在收到該指令后會解析數據包,在認證主機身份并確認應答方標識為己方ID后,向主機返回應答確認指令。主機收到確認指令后認為該連接已確立。


          圖2 射頻收發(fā)電路

          電子關鎖主程序設計

          一般情況下,電子關鎖處于休眠監(jiān)聽狀態(tài),2401收到RF數據幀后,產生DR1中斷喚醒MCU,MCU根據RF協議數據包格式進行數據解析和身份認證后,根據命令碼進行處理,最后對應答數據進行打包發(fā)送。電子施封后的異常狀態(tài)檢測采用定時中斷處理。電子關鎖主程序流程如圖3所示。
            
          關鍵問題分析

          低功耗設計

          電子關鎖采用電池供電,因此低功耗是設計重點,軟件設計中合理設置工作方式可以大大降低功耗。電子關鎖在大部分時間里是無需進行通信的,但是它必須保持無線監(jiān)聽狀態(tài),以保證隨時應答主機的呼叫。2401處于接收模式時的消耗電流為18mA,這種消耗相對較大,不滿足系統(tǒng)需求。設計中采用時間窗監(jiān)聽方式,電子關鎖每秒鐘僅開啟2401無線監(jiān)聽1ms,在接收到喚醒指令后,才進入長時間監(jiān)聽模式。實際測試時間窗監(jiān)聽狀態(tài)時的功耗僅為0.68mA,功耗顯著降低。對于主機即讀寫器,每次連接關鎖前需要增加一個喚醒過程,在1秒鐘內持續(xù)發(fā)送喚醒指令,保證其時長覆蓋關鎖監(jiān)聽時間窗。

          避免鄰道干擾

          在海關卡口一般存在多條車道,相鄰幾條車道可能存在同頻干擾,在系統(tǒng)設計中結合兩種方式避免此干擾:一種是道口讀寫器采用定向天線,這樣讀寫器發(fā)射的射頻信號定向于單一車道,可避免讀寫器射頻信號對相鄰車道的影響。但是電子關鎖不可能采用定向天線,所以再附加一種跳頻通信工作方式,各車道工作基頻設置相同,但是,一旦讀寫器與電子關鎖建立通信連接后,雙方便跳到由主機即讀寫器指定的固定頻率上工作,這樣,不同車道由于跳頻設置不同,可有效避免鄰道干擾。對2401進行跳頻設置十分方便,只需在配置模式下對頻道狀態(tài)字進行設定即可。


          圖3 電子關鎖主程序流程圖

          分時應答

          手持讀寫器的應用環(huán)境同道口讀寫器不同,它采用廣向天線,有效通信范圍內可能存在多把關鎖。由于頻率相同,廣播呼叫時電子關鎖同步應答會造成信號沖突。為避免沖突,在軟件設計中采用分時應答,關鎖在收到廣播呼叫指令后,先隨機延時一段時間再返回應答指令。需要注意的是隨機延時不是任意的,而是分段的,以保證主機在時間間隙內處理不同的應答信號。

          這里對分時應答設計進行分析,設讀寫器發(fā)送廣播指令后的通信時間為Tc,將Tc分為n個時間間隙,每個間隙足夠完成對某一把關鎖的標識讀取和存儲。關鎖收到廣播呼叫后隨機分配應答時間點至某個時間間隙內,并返回應答指令。設有x個關鎖在通信范圍內,則當n>>x時,返回信號的沖突概率會非常低。實際應用中,現場關鎖數量一般不會超過10個,通常情況為3~4個,所以,n設置為100時就可保證較低的沖突概率。同時,由于應答時間非常短(大批量數據交互在連接確認以后發(fā)生),n設置的較大也不會明顯降低響應時間。

          結語

          實際測試表明,該電子關鎖系統(tǒng)可靠性高,抗干擾能力強,可擴展性好。本系統(tǒng)是主動式技術在物流監(jiān)控領域的一個新應用,它顯著提高了海關轉關業(yè)務的運行效率。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();