《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于C#的射頻卡讀寫原理及實現
基于C#的射頻卡讀寫原理及實現
來源:微型機與應用2010年第14期
張可可1, 熊慶宇2
(重慶大學自動化學院, 重慶400044)
摘要: 介紹了射頻卡的硬件結構和工作原理,給出了一套對射頻卡進行數據采集和實時處理的軟件設計方案,并采用C#語言編寫了關鍵的程序代碼。
Abstract:
Key words :

摘  要: 介紹了射頻卡的硬件結構和工作原理,給出了一套對射頻卡進行數據采集和實時處理的軟件設計方案,并采用C#語言編寫了關鍵的程序代碼。
關鍵詞: 射頻卡; 讀卡器; 定時器; 動態鏈接庫

    射頻卡又稱非接觸式IC卡,它將RFID和IC技術完美結合,使卡片能夠在不需要電源及與讀卡器不接觸的情況下正常工作。目前射頻卡已經廣泛使用在社會生活的各個領域,如銀行卡、企業一卡通系統等。由于射頻卡具有使用人群的密集性以及使用時間不確定性的特點,就要求讀卡器能夠對射頻卡進行實時準確的數據采集并通過數據線把采集到的數據傳送給計算機,通過特定的處理軟件進行快速處理,并將處理結果反饋回射頻卡,從而實現計算機與射頻卡信息的雙向交互,滿足人們特定的要求。本文通過定時器技術實現對射頻卡信息的實時采集和交互處理,利用定時器的定時觸發功能實現對射頻卡讀寫函數的全天候循環調用,減輕系統的負載、優化系統的進程、提高系統的穩定性,從而保持計算機和射頻卡協同高效地工作。
1 射頻卡硬件結構與工作原理
 本課題中射頻卡采用業界廣泛使用的由荷蘭飛利浦公司生產的M1卡,M1卡主要有射頻天線和ASIC兩部分組成,如圖1[1]。射頻天線是由特制的磁感線圈繞制而成,用來接收讀卡器發出的固定頻率的電磁波。ASIC主要由高速射頻RF接口、數據讀寫控制單元、存儲工具EEPROM構成。當讀卡器對射頻卡進行讀寫操作時,讀卡器會持續發出一組頻率固定的電磁波,電磁波的頻率與M1卡內置的LC諧振模塊的諧振頻率相同,從而造成LC諧振模塊發生共振,使諧振電路的電容內產生電荷,這個電容通過特殊的傳輸裝置單向傳輸到另外一個電容聚集起來。當積累的電荷電壓達到2 V時,此電荷實際上可以作為一個電源向卡內的各種電路裝置供電,從而實現讀卡器對射頻卡的讀寫操作。

 高速射頻RF接口的主要功能是用來接收通過LC諧振電路產生的電源電壓以及諧振電路本身的復位信號和時鐘信號。數據讀寫控制單元的主要功能是對射頻接口傳遞的數據進行調制和解密并對數據按照特定的步驟與讀卡器進行數據的交互處理。讀卡器與計算機連接的串口初始化成功后,就開始在讀卡器射頻感應的工作范圍內尋找射頻卡[2]。如果同時感應到多張射頻卡,讀卡器會啟動反沖突機制控制模塊選定其中的一張。選定要處理的卡之后,讀寫器就確定要訪問的扇區號,并對該扇區密碼進行密碼校驗,在3次相互認證之后就可以通過加密流進行通訊,對讀卡器進行讀寫操作,操作成功后啟動報警控制模塊,提示操作成功,同時掛起該張卡。EEPROM是射頻卡的存儲單元,用來保存讀卡器寫入的信息。M1射頻卡存儲空間是8 KB。存儲空間分為16個扇區,每個扇區又分為4個塊,每個塊內存大小為16 B。64個塊按物理排序命名,序號從0塊一直到63塊。其中0塊保存的是射頻卡的序列號,出廠時由廠家直接寫入,不能更改。另外,每個扇區的第4塊是該扇區的密碼存儲塊,其中包括兩套密碼以及密碼讀取控制字節。其余3塊是數據塊,可以存儲數據并進行相應數據操作[3],如圖2所示。

2 軟件設計流程與程序實現
 基于射頻卡使用環境及對數據處理實時性的特殊要求,必然要求讀卡器處于一種不間斷的監測狀態,能夠對進入讀卡器感應區域的射頻卡進行快速穩定的數據采集,并把這種處理結果實時傳輸給相連的計算機,通過專門的軟件進行信息的交互處理[4]??紤]到這些要求,在軟件的設計過程中使用C#中的timer控件來滿足這種要求,利用Timer控件的定時激發功能,使讀卡器能夠不間斷地檢測是否有卡進入感應區域。首先初始化串口,保證讀卡器和計算機的正常連接,如果讀卡器沒有檢測到有射頻卡處于工作區,就一直保持檢測狀態。如果讀卡器檢測到工作范圍內有卡,就按照正常讀寫操作流程(如圖3)對射頻卡進行操作,一張卡操作完成后,讀卡器會自動報警提示操作成功并掛起這張卡。在這種情況下,除非把這張卡移除工作區,否則讀卡器將無法繼續正常工作。

 在分析了射頻卡的工作原理和軟件流程后,本文用C#語言來編寫具體的程序代碼,C#是微軟公司發布的一種面向對象的、運行于.NET Framework之上的高級程序設計語言[5]。為了便于產品的開發,廠家已經附帶給出了開發射頻卡程序所需要的動態連接庫。C#語言可以直接調用給動態連接庫,只需要在程序中加以引用說明即可。本課題采用的讀卡器為雙面D8讀卡器,附帶的動態鏈接庫文件為dcrf32.dll。此文件中包含了常用的射頻卡讀寫操作等系列函數。實現對射頻卡寫數據操作的部分關鍵代碼如下:
   …
   [DllImport("dcrf32.dll")]
   public static extern int dc_init(short port, int baud);  
   [DllImport("dcrf32.dll")]
   public static extern short dc_request(int icdev, char _Mode, ref uint TagType);
   [DllImport("dcrf32.dll")]
   public static extern short dc_select(int icdev, uint _SecNr, byte[] _Size);
   [DllImport("dcrf32.dll")]
   public static extern short dc_authentication(int icdev, int _Mode, int _SecNr); 
   [DllImport("dcrf32.dll")]
   public static extern int dc_beep(int icdev, short _Msec); 

   [DllImport("dcrf32.dll")]
   public static extern int dc_pro_halt(int icdev);
   [DllImport("dcrf32.dll")]
   public static extern short dc_exit(int icdev);
   private void  Card_Read();
   {
         _icdev=dc_init(Form3.Com, Form3.botelv);
                                        //串口初始化
        if (_icdev <= 0)
        {MessageBox.Show(“串口初始化失敗!");
                 return;
        }
                 byte[] name = System.Text.Encoding.Default.GetBytes
                 (txtN.Text);
                 byte[] sex = System.Text.Encoding.Default.GetBytes
                 (txtS.Text);
        if (name.Length > 16)
        {
                   MessageBox.Show("超過規定的數據長度,寫入失敗");
                   txtN.Text = null;
                   return;
        }
        if (sex.Length > 16)  //數據長度檢測
        {
                   MessageBox.Show("超過規定的數據長度,寫入失敗");
                   txtS.Text = null;
                   return;
            }
            int st;
            ulong icCardNo = 0;
            char tt = (char)0;
            st = dc_card(IcDev, tt, ref icCardNo); //尋卡操作
            if (st != 0)
            {   txtCardId.Text = "";
                    txtN.Text = "";
                    txtS.Text = "";
                    MessageBox.Show("尋卡失??!");
                    return;
             }
           int sector = 0;
             st = dc_authentication(IcDev, 0, sector); //密碼驗證
                if (st != 0)
                {
                    MessageBox.Show("驗證密碼失敗!");
                    return;
                }
            try
            {
                    string dt = txtS.Text;
                    st = dc_write(IcDev, 2, dt);    //射頻卡寫操作
                    dc_beep(IcDev, 10);                     //蜂鳴操作
                    st=dc_halt(IcDev) ;                       //掛起操作
                    MessageBox.Show("修改成功");
    }
            catch
             {
        MessageBox.Show("更改卡中信息失敗");
             }
             dc_exit(IcDev); //關閉串口
    }
    private void timer1_Tick(object sender, EventArgs e)
                                        //定時器操作
          {
           timer1.Interval = 1000;     
           timer1.Start();
           Card_Read();
    }
    實際應用結果表明,采用C#語言結合定時器的特有功能編寫的射頻卡讀寫控制程序運行穩定,能夠很好地滿足工作現場的需要。在讀卡器對射頻卡進行讀寫操作的同時,并不影響軟件系統其他模塊的操作,具有較強的實用意義。
參考文獻
[1]  楊瑞,彩虹.射頻卡多線程讀寫原理及其實現[J].計算機與信息技術,2006(2):1-3.
[2]  蘇明強,劉偉.高性價比的MIFARE卡讀寫模塊的設計. [J].微計算機信息,2006,22(5-2):1-2.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美日韩一区精品| 在线观看欧美日韩国产| 欧美电影免费观看网站| 亚洲欧洲精品一区二区三区波多野1战4| 国产欧美日韩亚州综合| 国产嫩草影院久久久久| 欧美久久久久久久久| 国产精品视频久久一区| 亚洲国产精品免费| 国产欧美一区二区三区在线看蜜臀| 午夜精品福利一区二区蜜股av| 91久久国产综合久久蜜月精品| 亚洲欧美春色| 99精品国产99久久久久久福利| 一区二区在线观看视频在线观看| 欧美人与禽猛交乱配视频| 欧美电影在线观看| 亚洲精品美女91| 亚洲九九精品| 亚洲欧美国产不卡| 欧美激情一区二区三级高清视频| 欧美国产日韩一二三区| 中日韩男男gay无套| 亚洲视频一区在线| 国产曰批免费观看久久久| 一区二区欧美视频| 久久久久88色偷偷免费| 欧美午夜一区二区三区免费大片| 国产区欧美区日韩区| 亚洲人午夜精品免费| 1024成人网色www| 国产精品国产三级国产a| 一区二区在线观看视频在线观看| 欧美一区影院| 欧美中文字幕在线视频| 亚洲福利国产精品| 久久精品青青大伊人av| 香蕉av福利精品导航| 欧美三级电影一区| 一本色道综合亚洲| 国内久久精品| 牛夜精品久久久久久久99黑人| 欧美精品v日韩精品v韩国精品v| 性做久久久久久久免费看| 欧美黄色日本| 欧美成人在线网站| 亚洲影院污污.| 欧美在线视频全部完| 亚洲国产精品电影| 亚洲国产va精品久久久不卡综合| 一本久久综合| 久久9热精品视频| 免费在线看成人av| 欧美精品少妇一区二区三区| 国产视频精品xxxx| 一色屋精品视频在线观看网站| 国产精品社区| 一区二区在线看| 性欧美xxxx视频在线观看| 久久午夜激情| 午夜精品久久久99热福利| 欧美在线高清| 欧美视频精品一区| 国产在线拍揄自揄视频不卡99| 国产亚洲精品久| 久久免费精品日本久久中文字幕| 国产精品v片在线观看不卡| 亚洲精品一区二区三区樱花| 欧美视频不卡中文| 国产精品网曝门| 亚洲一区二区久久| 久久国产一区| 含羞草久久爱69一区| 亚洲国产1区| 欧美视频中文字幕| 欧美国产综合视频| 久久视频在线看| 欧美—级高清免费播放| 欧美日韩日日夜夜| 新狼窝色av性久久久久久| 欧美国产亚洲视频| 欧美日韩免费观看一区=区三区| 亚洲国产精品成人一区二区| 亚洲美女在线观看| 99精品久久免费看蜜臀剧情介绍| 国产精品v亚洲精品v日韩精品| 西西裸体人体做爰大胆久久久| 亚洲欧美日韩在线不卡| 在线不卡a资源高清| 夜夜嗨av一区二区三区中文字幕| 亚洲成人资源网| 久久综合给合久久狠狠狠97色69| 欧美视频一区二区三区在线观看| 亚洲一区精彩视频| 亚洲在线观看视频| 午夜久久电影网| 午夜视频一区| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久久www免费人成黑人精品| 国产欧美日韩三级| 亚洲欧美视频一区二区三区| 欧美在线观看日本一区| 一区二区日韩伦理片| 久久精品一区二区三区四区| 亚洲人午夜精品| 欧美激情区在线播放| 免费不卡视频| 国产一区二区三区四区hd| 久久av红桃一区二区小说| 免费黄网站欧美| 永久域名在线精品| 欧美中文字幕久久| 美女啪啪无遮挡免费久久网站| 最近中文字幕日韩精品| 日韩网站在线看片你懂的| 男人的天堂成人在线| 国产日韩在线看片| 免费欧美日韩| 亚洲欧美激情诱惑| 国产精品不卡在线| 一本色道久久88综合日韩精品| 久久精品av麻豆的观看方式| 一本一道久久综合狠狠老精东影业| 久久综合色播五月| 伊人春色精品| 欧美视频在线免费| 国产精品久久久久秋霞鲁丝| 欧美3dxxxxhd| 在线观看不卡av| 老鸭窝亚洲一区二区三区| 看欧美日韩国产| 一区二区三区免费在线观看| 国产日韩在线一区二区三区| 欧美丝袜一区二区三区| 黄色成人av网| 亚洲在线播放电影| 久久精品在线| 亚洲一区二区3| 欧美三级电影精品| 日韩视频中文字幕| 国产精品尤物福利片在线观看| 日韩天堂av| 欧美一区二区免费视频| 欧美日韩国产经典色站一区二区三区| 狠狠入ady亚洲精品| 国产亚洲毛片在线| 久久噜噜噜精品国产亚洲综合| 国产精品一区二区久久国产| 国产日韩一级二级三级| 亚洲成人直播| 亚洲欧美日韩一区| 欧美一区在线视频| 国产精品夜夜嗨| 国产亚洲欧美日韩美女| 亚洲第一天堂无码专区| 国产精品一区在线播放| 伊人蜜桃色噜噜激情综合| 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩国产综合视频在线| 夜夜夜精品看看| 午夜精品www| 亚洲自拍偷拍福利| 亚洲国产天堂久久国产91| 亚洲大片精品永久免费| 亚洲高清在线观看一区| 欧美日韩一二三四五区| 亚洲激情婷婷| 欧美一区国产二区| 亚洲人成啪啪网站| av成人免费在线观看| 亚洲欧美中文日韩v在线观看| 国产精品成人va在线观看| 欧美在线视频全部完| 亚洲精品网站在线播放gif| 亚洲国产精品精华液2区45| 亚洲国产日韩精品| 国产精品国产三级国产| 国产一区二区黄色| 亚洲高清网站| 亚洲激情一区二区三区| 久久视频免费观看| 欧美大胆成人| 国产一区二区三区在线观看免费| 欧美日韩激情小视频| 久久久美女艺术照精彩视频福利播放| 久久精品动漫| 亚洲人成亚洲人成在线观看图片| 国产精品国产三级国产a| 亚洲自拍三区| 亚洲一区国产视频| 国产精品久久久久久亚洲毛片| 欧美韩日精品| 亚洲一区国产| 亚洲激情在线观看视频免费| 亚洲一区二区av电影| 欧美日韩在线电影| 久久久久久精| 1000部国产精品成人观看| 亚洲一区国产视频| 在线免费观看成人网| 亚洲一区不卡| 麻豆av一区二区三区| 99在线精品免费视频九九视| 国产精品av免费在线观看| 久久精品99国产精品| 国产精品久久久久久久久免费桃花| 久久久久久噜噜噜久久久精品| 日韩视频一区二区在线观看| 免费永久网站黄欧美| 在线观看亚洲精品| 亚洲夫妻自拍| 亚洲人成亚洲人成在线观看| 99综合电影在线视频| 久久亚洲精品伦理| 国产精品一区二区久久| 亚洲精品视频一区二区三区| 亚洲欧美日韩综合aⅴ视频| 欧美精品日韩一区| 最新69国产成人精品视频免费| 午夜在线电影亚洲一区| 国产精品v一区二区三区| 国产欧美日韩激情| 国产一区二区三区日韩| 一区二区三区免费网站| 久久综合中文字幕| 欧美影院成年免费版| 亚洲一区二区三区中文字幕在线| 国产精品老女人精品视频| 亚洲福利电影| 日韩午夜激情电影| 国产日韩欧美黄色| 欧美精品播放| 欧美一区二区视频网站| 国产在线成人| 亚洲精品欧美激情| 女同性一区二区三区人了人一| 欧美视频在线观看免费| 香蕉成人啪国产精品视频综合网| 性欧美1819sex性高清| 日韩视频免费看| 激情成人av| 亚洲欧美在线视频观看| 国产一区二区三区日韩欧美| 亚洲你懂的在线视频| 久久久av水蜜桃| 亚洲精品欧美| 欧美视频专区一二在线观看| 欧美日韩一区二区欧美激情| 国产一区二区三区免费不卡| 久久国产精品毛片| 国产精品你懂的在线| 久久久精品欧美丰满| 亚洲午夜精品网| 欧美系列亚洲系列| 亚洲欧美视频一区| 韩国一区二区三区美女美女秀| 国产精品丝袜91| 在线欧美三区| 红桃视频亚洲| 亚洲视频精品在线| 亚洲人成在线免费观看| 久久午夜激情| 亚洲一区二区精品在线观看| 欧美日韩国产色综合一二三四| 国产一区二区欧美| 在线欧美三区| 亚洲电影免费观看高清完整版在线| 欧美日韩三级| 免费永久网站黄欧美| 久久久999精品免费| 欧美亚洲一级片| 9国产精品视频| 国产啪精品视频| 欧美国产一区二区三区激情无套| 新片速递亚洲合集欧美合集| 激情欧美国产欧美| 欧美精品久久久久久久久久| 先锋影院在线亚洲| 玉米视频成人免费看| 亚洲欧美国产毛片在线| 在线亚洲激情| 国产精品毛片a∨一区二区三区|国| 亚洲国产精品久久久久久女王| 另类国产ts人妖高潮视频| 在线视频观看日韩| 欧美国产日韩a欧美在线观看| 夜夜嗨av一区二区三区网站四季av| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲欧洲av一区二区| 嫩模写真一区二区三区三州| 国产一区视频网站| 国产精品美女久久久久久久| 国产午夜精品在线观看| 午夜久久福利| 欧美日韩国产一区二区三区地区| 国产精品麻豆成人av电影艾秋| 欧美99在线视频观看| 亚洲一区视频在线| 欧美日韩美女| 久久综合九色九九| 欧美与黑人午夜性猛交久久久| 亚洲国产欧美国产综合一区| 国产精品人人爽人人做我的可爱| 国产综合18久久久久久| 国产主播精品在线| 国产精品欧美日韩一区二区| 欧美性生交xxxxx久久久| 欧美特黄a级高清免费大片a级| 欧美日韩一区二区高清| 国产综合在线看| 狠狠色综合一区二区| 亚洲人成在线观看网站高清| 免费看成人av| 亚洲欧美日韩在线播放| 亚洲第一精品夜夜躁人人躁| 精品va天堂亚洲国产| 欧美二区在线观看| 美女性感视频久久久| 亚洲女同精品视频| 欧美日本网站| 欧美黄色一区二区| 一区免费观看视频| 久久成人这里只有精品| 欧美精品123区| 欧美在线免费视频| 亚洲福利一区| 国内精品**久久毛片app| 麻豆成人在线播放|