IC卡設(shè)備驅(qū)動(dòng)模塊的代碼
掃描二維碼
隨時(shí)隨地手機(jī)看文章
面以我們采用的公用電話機(jī)通用的IC卡為例,通過已實(shí)現(xiàn)代碼來說明整個(gè)IC卡設(shè)備驅(qū)動(dòng)模塊。
(1)數(shù)據(jù)結(jié)構(gòu)的確定
編輯頭文件ICDATA.H,確定在驅(qū)動(dòng)模塊程序中應(yīng)用的公用數(shù)據(jù)結(jié)構(gòu)。驅(qū)動(dòng)模塊的最終目的是讀取和寫入卡數(shù)據(jù)處理,所以規(guī)范整齊的數(shù)據(jù)結(jié)構(gòu)是必須的??梢远x一個(gè)數(shù)據(jù)結(jié)構(gòu)體來實(shí)現(xiàn)卡數(shù)據(jù)的存儲(chǔ)區(qū)域、數(shù)據(jù)地址索引、控制標(biāo)志位等,如:
這樣在驅(qū)動(dòng)模塊中,只需要struct ICDATA iccdata;一條語句便可定義全部的卡處理數(shù)據(jù)結(jié)構(gòu)定義;而ic_fops則定義了設(shè)備操作映射函數(shù)結(jié)構(gòu)。從這個(gè)數(shù)據(jù)結(jié)構(gòu)看,我們實(shí)現(xiàn)了IC卡設(shè)備的打開、讀、寫和監(jiān)控函數(shù)。
(2)硬件接口控制線控制子函數(shù)
這些函數(shù)用作進(jìn)行卡復(fù)位、時(shí)鐘等信號(hào)的控制。
以上是以我們開發(fā)的硬件系統(tǒng)平臺(tái)為例的硬件控制接口操作函數(shù)之一,用于控制IC卡的復(fù)位信號(hào)置1。針對(duì)不同硬件平臺(tái),函數(shù)內(nèi)部操作方法不盡相同。類似的其它操作函數(shù)還有:
(3)模塊初始化函數(shù)的實(shí)現(xiàn)
模塊初始化函數(shù)是模塊開發(fā)過程中必不可少的處理函數(shù),用于實(shí)現(xiàn)設(shè)備的初始化、中斷初始化及處理、設(shè)備注冊(cè)等。在上面函數(shù)中,首先應(yīng)用initicdata(&icdata)實(shí)現(xiàn)了卡數(shù)據(jù)的初始化,然后定義了隊(duì)列數(shù)據(jù)。再進(jìn)行了中斷處理函數(shù)的綁定、中斷申請(qǐng)以及中斷初始化。最后實(shí)現(xiàn)了IC卡字符設(shè)備的申請(qǐng)。設(shè)備名為IC。