新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于AVR單片機的125 kHz簡易RFID閱讀器設計

        基于AVR單片機的125 kHz簡易RFID閱讀器設計

        作者: 時間:2010-04-28 來源:網絡 收藏
        每當EM4100將64個信息位傳輸完畢后,只要ID卡仍處于讀卡器的工作區域內,它將再次按照圖3順序發送64位信息,如此重復,直至ID卡退出讀卡器的有效工作區域。
        4.2 EM4100數據編碼方式
        EM4100采用曼徹斯特編碼,如圖4所示:位數據“1”對應著電平下跳,位數據“0”對應著電平上跳。在一串數據傳送的數據序列中,兩個相鄰的位數據傳送跳變時間間隔應為1P。若相鄰的位數據極性相同(相鄰兩位均為“O”或“1”),則在兩次位數據傳送的電平跳變之間,有一次非數據傳送的、預備性的(電平)“空跳”。電平的上跳、下跳和空跳是確定位數據傳送特征的判據。在曼徹斯特碼調制方式下,M4100每傳送一位數據的時間是64個振蕩周期,其值由RF/n決定。若載波頻率為125 ,則每傳送一位的時間為振蕩周期的64分頻,即位傳送時間為:1P=64/125 =512μs,則半個周期的時間為256μs。
        4.3 解碼軟件
        ATmega8T/C1的輸入捕捉功能是定時/計數器的一個非常有特點的功能,T/C1的輸入捕捉單元可用于精確捕捉一個外部事件的發生,記錄事件發生的時間印記。當一個輸入捕捉事件發生時,T/C1的計數器TCNTl中的計數值被寫入輸入捕捉寄存器ICRl中,并置位輸入捕獲標志位ICFl,產生中斷申請。可通過設置寄存器TCCRlB的第6位ICESl來設定輸入捕捉信號觸發方式。本系統利用的輸入捕捉功能進行解碼。
        由曼徹斯特編碼特點可知,每位數據都由半個周期的高電平和半個周期的低電平組成,因此可將一個位數據拆分為兩位,即位數據“1”可視為“10”,位數據“O”可視為“01”,則64位數據可視為由128位組成。為了獲得完整且連續存放的64位ID信息,在此接收兩輪完整的64位數據,即接收256位。則上一輪接收到的停止位后緊跟著的必然是本輪接收到的起始位,據此找出起始同步頭。再根據曼碼特點獲得ID卡的有效數據(“10”解碼為“1”;“01”解碼為“O”)并進行LCR校驗,若校驗無誤,則將ID卡號輸出至PC機,并準備下一次的解碼;否則,直接準備下一次解碼。另外,在程序中首先定義一個數組bit[256]用來存放接收到的數據;定義一個變量flag用來標記256位數據接收完成;定義一個變量error用來標記校驗有錯誤產生。由于無ID卡靠近讀卡器的有效工作區時,輸入捕捉引腳輸入的是高電平,因此在主程序中先設定為下降沿觸發,清零計數器TCNTl,打開T/C1的輸入捕捉功能。主程序流程圖如圖5所示。

        本文引用地址:http://www.104case.com/article/173352.htm


        在輸入捕捉中斷程序中定義一個觸發沿標志tr=1(用于表示由下降沿引起的觸發),同時定義一個無符號字符型變量i用來對接收到的數據個數進行計數,由于無符號字符型數據的取值范圍為O~255,所以當接收完256位時,i的值再次變為0。接著判斷是否為合法跳變,由以上分析可知,電平跳變的時間為256μs或512μs為合法跳變。本系統使用8 MHz時鐘,T/C1設置為無預分頻,則系統周期為O.125μs,則256μs對應計數值應為2 048,512μs對應計數值應為4 096。取計數值TCNTl小于5 000為合法跳變依據,若TC-NTl大于5 000,則認為是由干擾信號產生的非法跳變,并將其忽略,取TCNTl介于3 000~5 000之間為512μs跳變依據。若為合法跳變,由于是下降沿觸發的中斷,則認為接收到一位數據“1”;若為合法跳變且3 000TCNTl5 000,則認為接收到兩位數據“1”。
        再將輸入捕捉觸發方式改為上升沿觸發,設定觸發沿標志tr=0(用于表示由上升沿引起的觸發)。當中斷是由上升沿觸發時,執行類似操作。圖6為中斷處理程序流程圖。



        5 結語
        硬件電路中功放和檢波部分采用分立元件構成,無需讀卡基站芯片,電路結構簡單,成本極低;軟件部分采用C語言進行編寫,提出了一種曼徹斯特編碼的解碼方法。由于RS 232的傳輸距離最大只有15 m,因此對于需要遠距離數據傳送的場合,可以通過加入RS 485電路以提高傳輸距離,從而實現遠距離數據采集以及實行有關控制。在一些需要較遠讀卡距離的應用中,可通過改進功率放大電路(例如采用D類功率放大電路)來提高功放的效率,從而增大發射功率,增大讀卡距離。通測試,系統可成功實現對EM4100 ID卡的讀取,經過微調天線,最大讀取距離可達15 cm,且讀卡穩定、成功率高,可將其應用于門禁、公交等系統。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 克什克腾旗| 横山县| 临泽县| 津南区| 政和县| 阜阳市| 中宁县| 电白县| 易门县| 阜平县| 北安市| 高唐县| 儋州市| 黑龙江省| 宿松县| 奉新县| 准格尔旗| 东丰县| 皮山县| 金塔县| 渭南市| 阜南县| 搜索| 扶沟县| 汤原县| 兰州市| 文成县| 德江县| 昭通市| 昌图县| 潼南县| 清河县| 海南省| 全州县| 墨竹工卡县| 台南市| 五常市| 巴林左旗| 郑州市| 雅江县| 靖远县|