Contact-less Smart Card Reader/Writer & Mifare One Card (5)

类别:编程语言 点击:0 评论:0 推荐:

Contact-less Smart Card Reader & Mifare one Card 二次開發文檔

Author: Dennis Lan

Date: 2003/12/17

Copyright© Universal Master Information Co(sz)., Ltd  轉載請說明出處

續 http://www.csdn.net/Develop/read_article.asp?id=22903

防冲突机制 (Anti-collision Loop)

当有多张卡进入读写器操作范围时,防冲突机制会从其中选择一张进行操作,未选中的则处于空闲模式等待下一次选卡,该过程会返回被选卡的序列号。

 

选择卡片(Select Tag)

选择被选中的卡的序列号,并同时返回卡的容量代码。

 

三次互相确认(3 Pass Authentication)

选定要处理的卡片之后,读写器就确定要访问的扇区号,并对该扇区密码进行密码校验,在三次相互认证之后就可以通过加密流进行通讯。(在选择另一扇区时,则必须进行另一扇区密码校验。)

 

对数据块的操作

(Read):读一个块;

(Write):写一个块;

(Increment):对数值块进行加值;

(Decrement):对数值块进行减值;

存储(Restore):将块中的内容存到数据寄存器中;

传输(Transfer):将数据寄存器中的内容写入块中;

    中止(Halt):将卡置于暂停工作状态;

 

四. Create An Interface for Communicate between WIN32 DLL and PL/SQL

        因為 PL/SQL 並不能直接引用 RD800M 所提供的 dcrf32.dll , 必須重新用C來寫一個中介程式做界面讓 PL/SQL 和 dcrf32.dll 能夠溝通.

源程式碼請見 Card.c 用 Microsoft 的 Visual C++ 的Compiler CL把程式 Compile 成 DLL File(指令: CL /LD card.c /link dcrf32.lib).

 

五. Load Library Into PL/SQL

        在 PL/SQL 中利用 ORA_FFI 的 Package 把和dcrf32.dll進行溝通介面程式 Card.dll到 PL/SQL中, PL/SQL透過Card.dll和dcrf32.dll進行溝通,調用其中的函數.

 

 

六. 寫卡

       以上準備工作完成後就正式開始開發工作的第一項,把資料寫進 IC 卡中,也就是上面所介紹的數據塊的操作中的 Write.從上面的簡介中我們知道,一張 Mifare One IC 卡, 我們總共可以寫入的字節數: 3*16*16 = 768 個 bytes.每個扇區只有三個塊可供我們進行對其操作, 第四塊是控制塊, 用來存放密碼和控制Code, 前面對 M1 Card 的簡介中已有詳細的說明.

 

待續 ...

附錄:

 參考資料:

<<D&C® RD 系列IC卡讀寫器使用說明書>> Oracle Forms6i Reference Manuals <<關於非接觸式 IC 智能(射頻)卡及其讀寫設備內核技術的研究與應用開發>> 張敏 上海華東磁記錄電子公司 

本文地址:http://com.8s8s.com/it/it29020.htm