本文介紹一款便攜式巡更機(射頻讀寫器)的設計。該讀寫器主要由MCU、射頻IC卡讀寫模塊、天線及USB通信接口等部分組成。為了方便對巡更情況的實時記錄,系統采用了具有時間基準功能的時鐘芯片。
隨著近年來智能小區、智能大廈的迅猛發展,巡更系統將有著廣泛的應用前景。手持式讀寫器的主要開發指標包括微型化、低功耗、便攜式及方便的數據傳輸接口。
讀寫器總體設計方案
便攜式IC卡讀寫器主要由電池供電。由于讀寫器不斷發射無線電波,功耗較大,所以必須從每一個細節來考慮如何降低功耗,從而盡可能地延長電池的使用時間。硬件上采用低功耗設計,如低功耗器件、低壓、模塊化供電等;軟件上采用規模化設計,盡量減少處理器的工作時間,使其處于低功耗運行模式。
讀寫器的設計要達到以下要求:具有自檢功能,開機時能首先自檢設備有無故障;能夠準確、快捷地讀取非接觸式IC卡內的信息;具有聲光報警電路;電池直接供電,可由3節AA鎳氫電池供電,開機靜態電流不大于10mA,工作電流不大于40mA;具有USB通信接口;體積小,成本低,性能穩定可靠。
系統功能概述
根據不同場合對巡更系統的要求,需要及時了解巡更人員巡邏的情況,以確保小區、商場、鐵路沿線等場合的安全。
因此,本系統應具有以下功能:在確定的巡更線路上安裝一系列代表不同點的射頻卡,到達各點時巡更人員用手持式巡更機靠近巡道檢測點,把代表該點的卡號和時間同時記錄下來;巡更完成后巡更機把采集到的信息通過USB接口芯片存儲到U盤中或直接傳給計算機軟件處理。
系統硬件設計
圖1 便攜式射頻讀寫器的原理框圖
圖2 主控模塊電路原理圖
2 射頻模塊設計
讀寫模塊是射頻IC卡與外界通信的媒介,讀寫模塊連接著的天線與IC卡線圈產生共振,進行數據傳遞,完成讀寫模塊與卡之間的通信。本設計使用的 FM1702N支持13.56MHz頻率下TYPE A 非接觸通信協議,它是與非接觸式IC卡實現無線通信的核心模塊,也是關鍵接口芯片。它根據寄存器的設計對發送緩沖區中的數據進行調制得到發送的信號,通過由TX1、TX2引腳驅動的天線以電磁波的形式發出去,IC卡采用RF場的負載調制進行響應。天線拾取IC卡的響應信號經過天線匹配電路送到RX引腳,FM1702N內部接收緩沖器對信號進行檢測和解調并根據寄存器的設定進行處理。處理后的數據發送到并行接口由MCU讀取。
3 天線設計
為了與非接觸式IC卡進行通信,讀寫器必須有能發射和接受射頻信號的天線??梢葬槍Σ煌膽迷O計不同大小和形狀的天線。天線設計具體步驟為:設定讀寫器工作環境,優化讀寫器與應答器之間的耦合系數,確定天線線圈和電容。
非接觸式IC卡天線利用電感耦合產生磁通,磁通用來向應答器提供電源,并且在兩者間傳輸數據。因此對讀寫器天線的構造有以下幾個基本要求:使天線線圈的電流最大,用于產生最大的磁通量Φ;功率匹配,以最大程度地利用產生磁通量的可用能量;足夠的帶寬以無失真地傳送數據調制的載波信號。
4 蜂鳴器驅動電路設計
蜂鳴器是在每次讀卡操作不成功的時候發出報警指示音。由于MCU的I/O口驅動能力有限,一般不能直接驅動壓電式蜂鳴器,因此選用一 PNP 型晶體管組成晶體管驅動電路,MCU I/O口(P3.4)輸出經驅動電路放大后即可驅動蜂鳴器。本設計選用蜂鳴器的工作電流為10mA,其驅動電路如圖3所示。
圖3 蜂鳴器驅動電路
5 時鐘電路設計
實時時鐘采用低功耗的CMOS實時時鐘/日歷芯片PCF8563實現,PCF8563提供一個可編程時鐘輸出,一個中斷輸出和掉電檢測器,其所有地址和數據通過I2C 總線接口串行傳遞(由STC89LE58R的P1.6和P1.7構成模擬I2C串行口)。時鐘電路主要是采集實時時間,以便進行實時跟蹤記錄。同時考慮到PCF8563為實時時鐘芯片,在沒有外接電源時仍然要求連續供電,以保持時間的準確無誤。所以,該部分電路還加了掉電保護功能。
6 通信接口設計
本系統采用USB進行通信,USB接口芯片采用的是CH375,支持HOST主機方式和SLAVE設備方式。在USB主機方式下,CH375提供了并行和串行兩種通信方式,本次設計中采用并口通信方式,通過8位被動并行接口的D7~D0、RD、WR、A0、CS直接掛接到MCU的系統總線上,電路連接簡單。CH375內置了處理海量存儲設備的專用通信協議的固件,所以讀寫器系統的MCU可通過CH375按照相應的USB協議與USB設備通信,可將U盤作為可移動的大容量存儲器,無須詳細了解USB通信協議,便可能數據進行讀寫操作。
系統軟件設計
系統軟件設計主要分為三部分,即對FM1702N的應用程序設計、USB接口程序設計和主程序設計。
讀寫器從休眠中被喚醒后進行卡探測,如果有卡或有通信請求,就進行讀卡、寫記錄、通信等正常的工作過程,工作結束就進入休眠。如果無卡,就直接進入休眠狀態。喚醒脈沖固定500ms一次,正常工作狀態時,屏蔽喚醒中斷。所以終端在無卡狀態下,每間隔500ms被喚醒一次,進行卡探測??ㄌ綔y的時間就是電流的主要消耗時間,因此縮短卡探測的時間是很關鍵的。本設計的系統卡探測時間為2ms,這樣,終端在無外界干預的情況下實現卡探測,功耗很低。在無卡狀態下,每個500ms循環中,有2~3ms處于工作狀態,瞬態最大電流為40mA,有497~498ms處于休眠狀態,電流只有幾個微安,總體平均電流為 50μA,從而達到手持式終端的低功耗的要求。
MCU采用C51語言編程,系統軟件流程圖如圖4所示。
圖4 系統軟件流程圖
讀寫器的功耗測試結果
當對設計好的系統進行實際測試時,經常發現功耗并不像理論上計算的那樣小。此時,首先要分清電能主要是MCU本身消耗了還是I/O引腳驅動外圍電路消耗了。最簡單的判斷方法是分別測出MCU電源輸入引腳的電流和MCU接地引腳的電流,只有當兩者的數值基本相等時,整個系統的功耗最低。可從以下幾個方面進行分析:所有輸入引腳不能懸空。如果懸空的將使得數字輸入緩沖區產生切換電流,從而增大功耗。所有未用的引腳設置為輸出,并設置為固定的高電平或低電平。如果MCU電源輸入引腳電流和接地引腳流出電流不相等,則I/O引腳一定輸出或吸收了電流,應該仔細查找輸出或吸收電流的I/O引腳并采取的措施以降低功耗。檢查是否所有片上的外圍電路都給關閉了,否則外圍電路會消耗額外的電流。
本設計的測試結果如下:待機電流為7mA,在讀寫 IC卡時電流為38mA。讀寫器的功耗和輸入電壓密切相關,輸入電壓升高,讀寫器的功耗也相應加大,所以合理選項用輸入電壓很重要。若以3節5號鎳氫電池供電,讀寫器可連續工作半年以上。對設計實現的讀寫器進行測試,結果表明:一般環境中可在0~8cm范圍內尋到IC卡;讀寫距離為0~4cm,正常完成各項工作設計功能,運行穩定,基本達到了技術指標要求。
然而,本次設計在很多方面需要改進,例如,可為讀寫器加上LCD顯示,加裝鍵盤;本設計沒有考慮到上位機的軟件設計問題;應用程序可以進一步的優化,以提高程序的執行效率。
評論
查看更多