新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > AT88RF020在學校就餐管理系統中的應用

        AT88RF020在學校就餐管理系統中的應用

        ——
        作者:作者:湖北師范學院 洪家平 時間:2007-01-26 來源:《單片機及嵌入式系統應用》 收藏

        1 概述

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

        現在,在一些就餐比較集中的大、中專及中學里,學生的就餐基本上采用微機管理,學生憑一張非接觸式的rfid卡就可以很方便地在學校食堂消費。有些學校還采用了校園一卡通,只要持有一張合法的rfid卡,就可在全校范圍內的公共消費場所進行消費。

        rfid(radio frequency identification)即射頻識別卡或是感應式電子芯片。rfid射頻識別是一種非接觸式的自動識別技術,它通過射頻信號自動識別目標對象并獲取相關數據,識別工作無須人工干預,可工作于各種惡劣環境。rfid技術可識別高速運動的物體,并可同時識別多個標簽,操作快捷方便。at88rf020就是atmel公司生產的非接觸式rfid卡。

        2 rfld卡at88rf020的特點

        ◇at88rf020是13.56 mhz射頻卡,遵循iso/iec 14443 type b協議;
        ◇容量為2048位;
        ◇每張卡有唯一序列號;
        ◇帶有加密和鎖定功能;
        ◇一個一次性計數器;
        ◇所有傳輸信息中包括一個字節的循環校驗碼;
        ◇寫時間為3 ms;
        ◇寫次數為100 000次;
        ◇工作環境是o~70℃。

        3 rfid射頻識別技術的組成及工作原理

        3.1 rfid系統的基本組成

        ①標簽(tag,即射頻卡)。由耦合元件及芯片組成,標簽含有內置天線,用于和射頻天線間進行通信,每個標簽具有唯一的電子編碼,附著在物體上標識目標對象。圖1是rfid芯片at88rf020的內部結構原理圖。

        ②閱讀器(reader或叫讀卡器)。讀取(除讀卡外還可以寫入)標簽信息的設備,可設計為手持式或固定式。

        ③天線(antenna)。在標簽(射頻卡)和讀卡器之間傳遞射頻信號。

        有些系統還通過讀卡器的rs232或rs485接口與外部計算機(上位機主系統)連接,進行數據交換。

        3.2 rfid系統的基本工作原理

        讀卡器通過發射天線發送一定頻率(如13.56 mhz)的射頻信號,當射頻卡進入發射天線工作區域時產生感應電流,射頻卡獲得能量被激活。射頻卡將自身編碼等信息通過射頻卡的內置發射天線發送出去。系統接收天線接收到從射頻卡發送來的載波信號,經天線調節器傳送到讀卡器,讀卡器對接收的信號進行解調和解碼,然后送到后臺主系統進行相關處理。主系統根據邏輯運算判斷該卡的合法性,針對不同的設定做出相應的處理和控制,發出指令信號控制執行機構動作。

        3.3 rfid系統讀卡器的結構及工作原理

        對讀卡器而言,在耦合方式(如電感-電磁)、通信流程(如fdx、hdx、seq)、從射頻卡到讀卡器的數據傳輸方法(如負載調制、反向散射、高次諧波)以及頻率范圍等方面,不同的非接觸傳輸方法有根本的區別。但所有的讀卡器在功能原理上,以及由此決定的設計構造上都很相似,所有閱讀器均可簡化為高頻接口和控制單元兩個基本模塊。高頻接口包含發送器和接收器,其功能包括:產生高頻發射功率以啟動射頻卡并提供能量;對發射信號進行調制,用于將數據傳送給射頻卡;接收并解調來自射頻卡的高頻信號。不同射頻識別系統的高頻接口設計具有一些差異,電感耦合系統的高頻接口原理如圖2所示。

        讀卡器控制單元的功能包括:與應用系統軟件進行通信,并執行應用系統軟件發來的命令;控制與射頻卡的通信過程(主-從原則);信號的編解碼。對一些特殊的系統還有執行反碰撞算法,對射頻卡與閱讀器問要傳送的數據進行加密和解密,以及進行射頻卡和讀卡器間的身份驗證等附加功能。

        4 rfid卡at88rf020的存儲結構

        atmel的at88rt020射頻卡芯片有2048位的存儲容量,分成32頁,每頁8個字節,存儲組織結構如表1所列。

        表1中標有“—”的字節由用戶定義,出廠時初始值為0。

        ①pseudo unique picc identifier。卡唯一序列號,卡序列號由卡廠家寫入,不能被修改。

        ②applicatlon data。應用數據,這個數據被作為atqb回復信息的一部分由卡傳輸到讀寫器中。

        ③counter。計數器,每執行一次count指令,計數器的值就加1,初始值由廠家設為0。

        ④signature。簽名(用于加密),這個數據位于第2頁的前6個字節,可以通過count指令修改,counter和signature 可以提供更進一步的安全保護。

        ⑤password。密碼,密碼放在第3頁中,不能讀出。

        ⑥lock bits。鎖定位,位于第0頁,驗證密碼后,能用lock命令修改。鎖定位中的每一位與內存各頁對應,如果某位被設為“1”,則對應的頁就被鎖死,不能再進行寫操作,也沒有機制解鎖,所以某頁一旦被鎖,其內容再也不能修改,出廠初始值為0。

        at88rf020通電或重啟的工作流程如圖3所示。

        5 rfld卡at88rf020的常用命令與函數

        5.1 at88rf020的常用命令

        ①reqb/wupb:用于尋卡或者喚醒處于halt狀態的卡,這種卡只響應應用代碼(api)為00或01的情況,如果接收到一個帶有無效api代碼的wupb命令,那么卡仍然處于halt狀態。

        ②attrib:用于從所有響應reqb/wupb的卡中選擇一張卡,此后,卡進入ac-tive狀態。

        ③slot marker:為讀寫器提供了一種用于查詢隨機數大于1的卡。

        ④haltb:設置卡處于halt狀態,此后只能執行wupb命令。

        ⑤read:用于讀取卡中的數據,讀取頁0~2可以不必驗證密碼,而第3頁的數據不能讀出,只能通過pass—word命令修改,其他的頁驗證密碼后可以讀出。

        ⑥write:用于對卡寫入數據。

        ⑦lock:只有在驗證密碼之后才能執行,用于鎖定某一地址區域,被鎖定的地址區域在驗證密碼之后只可以進行讀操作。

        ⑧check password:密碼校驗命令,在設備進入就緒狀態之后執行。

        ⑨deselect:如果對處于active狀態的卡執行該命令,且通過,則卡發送一個正確的回答信息,并進入halt狀態。

        ⑩count:用于寫第2頁。count命令中所帶的數據寫入到第2頁的前6個字節中,后2個字節被用做計數器使用,每執行一次count命令,計數器的值就增1,如果計數器的值達到2的15次方,就不能再執行count操作,且第2頁被鎖定,不能再修改。執行該命令之前要驗證密碼。

        5.2 at88rf020的函數

        下面以rf_attrib()函數為例來說明at88rf020的函數用法。

        ①函數rlattrib()的格式:
        int ri_attrib(handle icdev,unsigned long pupi,unsigned char param,unsigned char cid,unsigned charbrtx,unsigned char brrx);

        ②函數的功能。從已響應reqb/wupb命令的卡中選取一張卡,同時給每一張卡分配一個id號。

        ③函數的參數描述。

        icdev:rf_init()返回的設備描述符。pupi:pseudo—unique picc identifier。param:設為0。cid:卡片id號(0~15),這個值存儲在卡片中供后面操作使用。
        brtx:由cd(近耦合設備)到picc(近耦合集成電路卡)的波特率,對于at88rf020,0x00代表106 kb/s。
        brrx:由picc到pcd的波特率,對于at88rf020,0x00代表106 kb/s。

        ④返回值。等于0表示成功;不等于0表示失敗。

        ⑤例程。

        int st;
        unsigned char mode=0;
        unsigned char_data[15];
        unsigned long pupi=0;
        st=rf_requestb(iedev,mode,0~0 data);
        if(st==0){
        memcpy(&pupi,&data[1],4);
        st=rf_attrih(icdev,pupi,0,0,0.0);
        }

        經過選卡后,如果有多張卡進入激活狀態,則可以根據cid(射頻卡id號)在同一時間內對多張卡操作。以兩張卡為例:

        int st;
        unsigned long pupi[2];
        unsigned char receive[256],data[10];
        pupi[o]=0x25510200;//卡1的pupi
        pupill]=ox344e0200;//卡2的pupi
        unsigned char cid=0;
        st=rf_requestb(icdev,0,0,0,receive);//選擇一張卡
        //in the case of the response card is card 1
        cid一0;//slot 0
        st=rf_attrib(icdev,pupieo],o,cid,0,o);
        //select card 2
        st=rf_request(iedev,0,0,0,receive);
        //in the case of the response card is card 2
        cid=1;
        st=rf_attrib(icdev.pupi[l].0,cid,0,0);
        //operate the two cards in the same time
        for(int i一0;i-(2;i++){
        st=rt_read(icdev,i,0,data);
        //deseleet card 1
        st=at88rf020 deseleet(iedev,0);
        //deseleet card 2
        st=at88rf020 deseleet(icdev.1);

        6 rfld卡在學校就餐管理中的應用

        6.1系統總體方案

        采用美國atmel公司生產的at88rf020射頻識別卡、idic(identification integrateci circuit)、讀寫基站集成電路u2270b和atmel公司的8位單片機研制開發學校食堂就餐管理系統,系統具有預付收費、目標識別、身份驗證、數據采集、數據加密和數據庫管理的功能。系統由at88rf020卡、就餐管理終端、數據庫管理系統、就餐管理終端與數據庫管理微機的通信系統四部分組成。主機與就餐管理終端之間的通信采用rs一485通信標準,工作方式為半雙工,每次通信都是主機首先呼叫從機。系統結構如圖4所示。

        6.2通信硬件接口設計

        本系統中,就餐管理終端與上位機的通信選用了rs485總線標準,并采用了max465芯片來實現,它具有rs485通信接口需要的全部功能。數據通信的方向由re和de腳來控制,設計中二者連在一起,由單片機的pl,5來控制。當它為高電平時,數據由就餐管理終端經max485到外部串行總線,即處于發送狀態;為低電平時,數據由外部串行總線到就餐管理終端。一般微機的串行口采用rs232接口,故在上位機一端需要一個rs232/rs485轉換器。本設計中采用臺灣aten公司生產的ic-485sn轉換器,它是一種雙向rs232/r$485或rs422轉換器,可提供點對點、點對多點(最多可達254個點)的全雙工和半雙工以及多點的單工串行通信。

        6.3通信軟件接口設計

        位機數據庫管理系統采用visual foxpro(即vf)編寫,這里介紹的串行通信程序主要是在vf中實現與就餐管理終端的通信程序設計。本系統采用標準的通信控
        件commlmications進行通信程序的設計,實現掛失數據的發送、用戶卡號的發送、發卡和就餐數據的接收。每次通信時,首先在上位機的lnlt事件中初始化通信控件olecon—troll,初始化設置為:

        thisform,olecontroll,commport=1 //選擇串行口com1
        thisform,olecontroll,portopen=1 //打開串行口com1
        thisform,olecontroll,lnplltmode=o //接收的數據按文本方式
        thisform olecontroll,rtsenable=1 //允許使用rts線.用于
        //rs232/485轉換器的發送控制和供電
        thisform,oleconatroll,inputlen=1 //每次讀取接收緩沖
        //區的一個字符
        thisform,olecontroll,outbiffercount=o//清除發送緩沖區
        thisform,olecontroll,inbuffercotint=o//清除接收緩沖區

        結 語

        本文介紹了rfid卡atrf88020的特點、工作原理及在學校就餐管理中的應用。rfid技術的典型應用還有;物流和供應管理、生產制造和裝配、航空行李處理、郵件/快運包裹處理、文檔追蹤/圖書館管理、動物身份標識、運動計時、門禁控制/電子門票、道路自動收費等。




        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 雅江县| 阳朔县| 依安县| 裕民县| 邮箱| 绥江县| 桂东县| 马公市| 鹿邑县| 天门市| 郴州市| 桂阳县| 雷波县| 慈利县| 乐山市| 阳信县| 盘锦市| 渭源县| 潮州市| 土默特左旗| 开平市| 米泉市| 石景山区| 闸北区| 清水县| 即墨市| 和政县| 平阳县| 桓仁| 扎鲁特旗| 涪陵区| 大化| 迁西县| 罗田县| 遵义市| 萨嘎县| 香格里拉县| 巴马| 乌鲁木齐县| 鄂伦春自治旗| 北碚区|