久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久


曙海教育集團論壇Linux專區Linux應用開發 → 基于Linux串口的非接觸式IC卡開發應用


  共有7315人關注過本帖樹形打印

主題:基于Linux串口的非接觸式IC卡開發應用

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
基于Linux串口的非接觸式IC卡開發應用  發帖心情 Post By:2010-11-23 10:27:45

0 引 言 

    隨著信息技術的快速發展,個人數據將成為未來信息的主要角色。IC卡作為卡基應用系統中的一種卡型,利用安裝在卡中的集成電路(IC)來記錄和傳遞信息,是一種將個人信息有效地送人信息網絡并獲得所需結果的有效辦法。IC卡芯片具有寫入數據和存儲數據的能力,IC卡存儲器中的內容根據需要可以有條件地供外部讀取,或供內部信息處理和判定之用。作為IC卡與讀寫設備數據交換的一種方式,非接觸式IC卡是通過無線電波或電磁場感應的方式,將卡中集成電路內的數據與外部設備接口設備通信,卡片不用直接接觸接口設備的電極就可以進行數據讀寫。通信距離可以從幾厘米至幾十米遠。其主要優點是環境適應性強、可全天候、無接觸地完成自動識別、跟蹤與管理。

1 Linux中的串口通信設備模塊 

1.1 Linux設備文件 

    在Linux中硬件設備只是一個設備文件,應用程序可以像操作普通文件一樣對硬件設備進行操作。這些設備文件提供了到大多數物理設備的接口,它們分為字符設備、塊設備和網絡設備。 

    (1)字符設備:在存取時沒有緩存的設備,不使用系統緩沖,對設備文件的操作直接反映到硬件上,串口就屬于字符設備。
    (2)塊設備:讀寫都有緩存的支持,并且能夠隨機存取。主要包括軟盤設備、CD—ROM等。
    (3)網絡設備:任何網絡設備都要經過一個網絡接151即一個能夠和其它主機交換數據的設備,通常接口是個硬件設備但也可能是個純軟件設備。 

1.2 串口通信的設置 

    對串口硬件設備進行操作,有兩種方法:一是利用Linux內核自帶的串口驅動程序;另外一種方法就是直接瀆寫串口硬件端口,在這里只使用第一種方法。要設置串口屬性,首先應在程序中包含termios.h的頭文件,這個頭文件包含終端控制結構和控制函數。

    其中有一個非常重要的數據結構struct temfios,這個數據結構包含了所有的串口參數,如波特率、數據位、輸入輸出方式等。設置串口屬性就是對這個數據結構賦值。可以通過termios.h中的函數tssetattr()設置串口的termios參數;通過函數tsgetattr()獲取串口的termios參數。該數據結構的各成員的屬性值以及參數含義可以參考文獻[1]。 

    設置完通信參數后就可用read從串口讀取數據和write向串口寫數據了,其實質就是對串口文件進行讀寫。運行程序時要注意用戶是否有對要操作的串口文件進行讀寫的權力,可以用chmod命令進行文件權限修改。

2 非接觸式IC卡簡介 

    Mifare 1 IC智能(射頻)卡的核心是Philips公司的Mifare 1 IC $50。內建有高速的CMOS EEPROMMCU等。卡片上除了IC微晶片及一副高效率天線外無任何其他元件,無源(無任何電池),工作時的電源能量由卡片讀寫器天線發送無線電載波信號耦合到卡片上天線而產生電能,一般可達2V以上供卡片上IC工作工作頻率13.56Mttz。 

    Mifare 1 IC卡上具有先進的數據通信加密并雙向驗證密碼系統;且具有防重疊功能,能在同一時間處理重疊在卡片讀寫器天線的有效工作距離內的多張重疊的卡片。其通訊原理如圖1所示。

Mifare 1=

圖1 Mifare 1 IC卡讀寫流程圖 

3 IC卡設備在Linux下的開發實現 

    采取通用的Mifare S50卡為例,詳細描述其在校園機房的使用。 

3.1 建立相應的數據結構 

    在頭文件AcctData.h中,定義結構體AcctItem,用于反映機器的使用狀態,頭文件ICCard.h中,定義類ICCard用于反映IC卡的使用狀態。確定在驅動模塊程序中應用的數據結構的最終目的是讀取和寫入卡數據處理,所以規范整齊的數據結構是必須的。


通訊模式及率
}; 

    這樣,就定義了全部的卡處理數據結構定義以及設備操作映射函數結構,綜上所述,就實現了IC卡設備的打開、讀寫和監控函數 。 
3.2 模塊初始化函數的實現 

    模塊初始化函數是模塊開發過程中必不可少的處理函數,用于實現設備的初始化,中斷初始化及處理設備等。

    在上面類中首先應用GetCardData(char*,CardData&)實現了卡數據的初始化;然后定義了隊列數據,再進行了上機處理以及下機處理,故障恢復處理;最后實現了恢復故障處理。
 
3.3 中斷處理 

    模塊采用了定時器中斷,在每個定時器中斷發生時對刷卡狀況進行檢測,如果在天線范圍內檢測到刷卡,根據使用標記進行判斷,未使用則進行讀卡操作;使用中則進行寫卡操作,同時更新IC卡的狀態數據。
 
    程序中的中斷處理采用了信號量機制來實現中斷的后續處理,其處理流程為:


3.4 注銷模塊處理 

    用于模塊卸載時進行資源的釋放,在關閉串口前,需要通過tcsetattr(fd,TCSANOW,&oldtio);將串口參數恢復為原來的設置,最后通過close系統調用關閉串口,如下所述:

3.5 設備的讀、寫和配置函數 

    主要是通過實現IC卡的各種操作,在先前的類ICCard中已經介紹,根據Mirare 1 IC的通訊原理,實現卡的初始化操作。 

    綜上所述,卡驅動模塊的基本實現原理是:當有刷卡操作發生時,由使用標記引發中斷或進行讀卡操作;或進行寫卡操作,同時進行相應數據處理。從而實現有卡操作發生時馬上進行卡數據的更新[ 。 

4 模塊的編譯調試 

編寫相應的makefile文件:

chown root$(BINDIR)/pubacct
chown u+s$(BINDIR)/pubacct
clean:
rm-f*.o pubaect 

    執行幾個make命令,便可以實現驅動模塊的動態編譯。
 
5 結束語 

    文中筆者創新點:介紹了非接觸式IC卡的概況和發展前景。有助于有一定IC卡經驗、技術及具有一定的計算機軟緞件技術的研發者設計出諸多應用場合的產品。這里只是截取了IC卡應用的一個方向,以及簡單的設計開發。在其它的高級應用中還可以加入密鑰保護等措施。


支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

基于Linux串口的非接觸式IC卡開發應用








簽名
主站蜘蛛池模板: 真人一级毛片全部免 | 二级毛片在线播放 | 精品72久久久久久久中文字幕 | 91热在线观看精品 | 日本免费二区三区久久 | 精品国产高清a毛片无毒不卡 | 欧美成人免费全部观看天天性色 | 三级视频在线 | 亚洲 欧美 精品 中文第三 | 久久久久久一级毛片免费野外 | 国产系列 视频二区 | 国产一区二区免费播放 | 亚洲国产中文字幕 | 波多野结衣3女同在线观看 波多野结衣aⅴ在线 | 免费a级在线观看播放 | 欧美成人毛片一级在线 | 欧美日韩亚洲一区二区三区在线观看 | 精品国产一区二区三区不卡蜜臂 | 欧美极品欧美精品欧美视频 | 日韩精品一区二区三区免费视频 | 精品国产不卡一区二区三区 | 国产午夜精品一区二区 | 亚洲欧美国产精品久久久 | 国产毛片一级国语版 | 久久影院视频 | 久久视频在线免费观看 | 国产三级在线视频观看 | 做爰成人五级在线视频| 欧美成人综合在线 | 日韩a毛片免费全部播放完整 | 国产在线观看高清精品 | 亚洲精品免费观看 | 永久免费不卡在线观看黄网站 | 国产精品特黄毛片 | 精品中文字幕在线观看 | 一本色道久久99一综合 | 亚洲tv成人天堂在线播放 | 成人精品视频一区二区在线 | 99亚洲视频 | 亚洲精品一区二区三区不卡 | 亚洲欧美精品一区 |