一種在安卓平臺(tái)下驅(qū)動(dòng)nfc模組的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及近場(chǎng)通信領(lǐng)域,特別是涉及一種在安卓平臺(tái)下利用Ser1總線(Serial I/O,串行輸入輸出總線)驅(qū)動(dòng)NFC (Near Field Communicat1n,近場(chǎng)通信)模組的方法。
【背景技術(shù)】
[0002]目前安卓系統(tǒng)在國內(nèi)外得到了廣泛的應(yīng)用,其自身代碼也在飛速的發(fā)展以滿足各種硬件設(shè)備和業(yè)務(wù)需求,但是目前的安卓設(shè)備的近場(chǎng)無線通訊技術(shù)(NFC)芯片都是和嵌入式 MCU (Micro Controller Unit,微控制單兀)的 I2C (Inter-1ntegrated circuit,兩線式串行總線)端口交互的,這是以芯片廠家提供的驅(qū)動(dòng)為藍(lán)本配合的。但是在眾多的MCU芯片廠商中有許多沒有I2C端口,或是無法在原理圖上設(shè)計(jì)連接實(shí)現(xiàn)等各種因素,只能與用非I2C端口來進(jìn)行與NFC芯片進(jìn)行數(shù)據(jù)交互。
[0003]Linux 系統(tǒng)中包含的總線有 i2c、IDE (Integrated Drive Electronics,電子集成驅(qū)動(dòng)器)、PCI (Peripheral Component Interconnect,外部局部總線)、PCI express (高速外部局部總線)、platform (平臺(tái)總線)、PNP (Plug and Play,即插即用)、SCSI (SmallComputer System Interface,小型計(jì)算機(jī)系統(tǒng)接口)、Ser1 (Serial 1/0,串行輸入輸出總線)、Usb等。Ser1總線是一種虛擬總線,表示串行的輸入輸出設(shè)備.很多輸入輸出設(shè)備都是以此為基礎(chǔ)的。
[0004]有鑒于此,本發(fā)明運(yùn)用Linux系統(tǒng)中的虛擬總線Ser1總線,提供一種方法,解決非I2C端口與NFC芯片進(jìn)行數(shù)據(jù)交互的問題。
【發(fā)明內(nèi)容】
[0005]為了解決上述非I2C端口與NFC芯片進(jìn)行數(shù)據(jù)交互實(shí)現(xiàn)的問題,本發(fā)明提出了一種在安卓平臺(tái)上實(shí)現(xiàn)Ser1總線控制NFC芯片進(jìn)行數(shù)據(jù)交互的方法,適用于帶NFC的高頻射頻識(shí)別讀寫器芯片PN544的安卓平臺(tái)終端設(shè)備,可以隨意增加將沒有I2C端口的MCU芯片,或是無法在原理圖上設(shè)計(jì)連接I2C等條件下對(duì)NFC芯片進(jìn)行通信的功能。
[0006]本發(fā)明提出一種在安卓平臺(tái)下驅(qū)動(dòng)近場(chǎng)通信模組的方法,將UART模塊(Universal Asynchronous Receiver/Transmitter,通用異步串口收發(fā)傳輸器)與帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片的發(fā)送端、接收端管腳分別連接通信,該方法包括以下步驟:
[0007]通過驅(qū)動(dòng)平臺(tái)的應(yīng)用程序接口注冊(cè)一字符設(shè)備;
[0008]按照標(biāo)準(zhǔn)字符設(shè)備的驅(qū)動(dòng)框架通過系統(tǒng)調(diào)用接口驅(qū)動(dòng)所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片,將所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片與所注冊(cè)的字符設(shè)備相關(guān)聯(lián);
[0009]通過標(biāo)準(zhǔn)的串行輸入輸出虛擬總線的驅(qū)動(dòng)應(yīng)用程序接口注冊(cè)通信交互讀寫及其中斷處理函數(shù),通過所述中斷處理函數(shù)與所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片進(jìn)行讀寫操作。
[0010]其中,所述字符設(shè)備的設(shè)備節(jié)點(diǎn)為設(shè)備目錄下面的相應(yīng)設(shè)備名稱。
[0011]其中,通過調(diào)用所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片對(duì)應(yīng)的標(biāo)準(zhǔn)字符設(shè)備,根據(jù)近場(chǎng)通信的相關(guān)人機(jī)交互命令進(jìn)行非接觸式射頻卡的識(shí)別和配置工作。
[0012]其中,在安卓系統(tǒng)層接收到從所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片讀取的識(shí)別信息后進(jìn)行相應(yīng)的系統(tǒng)操作。
[0013]其中,帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片為PN544。
[0014]與現(xiàn)有技術(shù)相比,本發(fā)明的顯著進(jìn)步表現(xiàn)在:
[0015]本發(fā)明提出了一種在安卓平臺(tái)上實(shí)現(xiàn)Ser1總線控制NFC芯片進(jìn)行數(shù)據(jù)交互的方法,適用于帶NFC的高頻射頻識(shí)別讀寫器芯片,特別是PN544的安卓平臺(tái)終端設(shè)備,增加在沒有I2C端口的MCU芯片,或是無法在原理圖上設(shè)計(jì)連接I2C等條件下對(duì)NFC芯片進(jìn)行通信的功能。
【附圖說明】
[0016]圖1為本發(fā)明一個(gè)實(shí)施例的在安卓平臺(tái)下驅(qū)動(dòng)NFC模組的方法整體框架圖;
[0017]圖2為本發(fā)明一個(gè)實(shí)施例的在安卓平臺(tái)下驅(qū)動(dòng)NFC模組讀取數(shù)據(jù)的流程圖;
[0018]圖3為本發(fā)明一個(gè)實(shí)施例的在安卓平臺(tái)下驅(qū)動(dòng)NFC模組發(fā)送數(shù)據(jù)的流程圖。
【具體實(shí)施方式】
[0019]下面將結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0020]請(qǐng)參閱圖1,圖1為本發(fā)明一個(gè)實(shí)施例的在安卓平臺(tái)下驅(qū)動(dòng)NFC模組的方法整體框架圖。從圖1看出本發(fā)明的思路框架:首先利用MISC CHAR DRIVER (字符驅(qū)動(dòng)平臺(tái))的API接口注冊(cè)一個(gè)字符設(shè)備,然后在ANDR1D FRAMEWORKS (安卓系統(tǒng)的架構(gòu)平臺(tái))編寫字符設(shè)備的驅(qū)動(dòng)程序及系統(tǒng)調(diào)用接口程序,將PN544HARDWARE (終端硬件)NFC芯片塑造成一個(gè)字符設(shè)備,安卓系統(tǒng)與NFC芯片交互讀寫操作底層系統(tǒng)調(diào)用SER1 VIRTUAL BUS (Ser1總線)的相關(guān)驅(qū)動(dòng)程序。
[0021]具體實(shí)施時(shí),包括以下步驟:
[0022]通過驅(qū)動(dòng)平臺(tái)的應(yīng)用程序接口注冊(cè)一字符設(shè)備;
[0023]按照標(biāo)準(zhǔn)字符設(shè)備的驅(qū)動(dòng)框架通過系統(tǒng)調(diào)用接口驅(qū)動(dòng)所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片,將所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片與所注冊(cè)的字符設(shè)備相關(guān)聯(lián),具體實(shí)施時(shí),所述字符設(shè)備的設(shè)備節(jié)點(diǎn)為設(shè)備目錄下面相應(yīng)的設(shè)備名稱;
[0024]通過標(biāo)準(zhǔn)的串行輸入輸出虛擬總線的驅(qū)動(dòng)應(yīng)用程序接口注冊(cè)通信交互讀寫及其中斷處理函數(shù),通過所述中斷處理函數(shù)與所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片進(jìn)行讀寫操作。
[0025]其中,通過調(diào)用所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片對(duì)應(yīng)的標(biāo)準(zhǔn)字符設(shè)備,根據(jù)近場(chǎng)通信的相關(guān)人機(jī)交互命令進(jìn)行非接觸式射頻卡的識(shí)別和配置工作。
[0026]其中,在安卓系統(tǒng)層接收到從所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片讀取的識(shí)別信息后進(jìn)行相應(yīng)的系統(tǒng)操作。
[0027]以下是本發(fā)明在實(shí)施時(shí)的一個(gè)具體案例,在安卓平臺(tái)上通過Ser1總線驅(qū)動(dòng)帶NFC的芯片PN544的實(shí)現(xiàn)。該功能的實(shí)現(xiàn)主要針對(duì)某些行業(yè)對(duì)NFC的使用開發(fā)。
[0028]利用驅(qū)動(dòng)平臺(tái)的API 接口(Applicat1n Programming Interface,應(yīng)用程序編程接口)注冊(cè)一個(gè)字符設(shè)備,按照標(biāo)準(zhǔn)字符設(shè)備的驅(qū)動(dòng)框架編寫基于交互PN554的系統(tǒng)調(diào)用接口,將PN544塑造成Ser1虛擬總線下的一個(gè)字符設(shè)備,其設(shè)備節(jié)點(diǎn)即為dev (設(shè)備節(jié)點(diǎn)的文件目錄,把對(duì)設(shè)備的操作映射到具體的驅(qū)動(dòng)程序代碼中)目錄下面的PN544 ;
[0029]利用Linux標(biāo)準(zhǔn)的Ser1虛擬總線的驅(qū)動(dòng)API注冊(cè)通信交互讀寫及其中斷處理函數(shù),在中斷處理函數(shù)中完成從NFC芯片讀取條碼識(shí)別信息及上報(bào)工作,安卓系統(tǒng)層接收到該識(shí)別信息后進(jìn)行相應(yīng)的系統(tǒng)操作。安卓系統(tǒng)調(diào)用Ser1總線的相關(guān)驅(qū)動(dòng)程序進(jìn)行交互讀寫操作,安卓系統(tǒng)層完成讀寫后,根據(jù)NFC的相關(guān)HCI (Human Computer Interface,人機(jī)交互)命令進(jìn)行各種射頻卡(非接觸式IC卡)的識(shí)別和配置工作,這里的HCI操作部分是系統(tǒng)調(diào)用PN544的標(biāo)準(zhǔn)字符設(shè)備。這樣借助Ser1的虛擬總線驅(qū)動(dòng)程序,就巧妙代替了基于I2C接口的數(shù)據(jù)交互模式。
[0030]如圖2所示,是該實(shí)施例中在安卓平臺(tái)下驅(qū)動(dòng)NFC模組讀取數(shù)據(jù)的流程圖,讀取數(shù)據(jù)(RECEIVE DATA)時(shí),通過 SER1 INTERRUPT (Ser1 總線的中斷函數(shù))訪問 PN544_RXBUF(PN544設(shè)備的接收緩沖區(qū)),PN544_READ (PN544的讀函數(shù))從ANDROID_LIBNFC (安卓系統(tǒng)NFC軟件工具開發(fā)包)讀取數(shù)據(jù)。
[0031]如圖3所示,是該實(shí)施例中在安卓平臺(tái)下驅(qū)動(dòng)NFC模組發(fā)送數(shù)據(jù)的流程圖,ANDROID_LIBNFC (安卓系統(tǒng)NFC軟件工具開發(fā)包)通過PN544_WRITE (PN544寫函數(shù))將數(shù)據(jù)寫到PN544_TXBUF (PN544的發(fā)送緩沖區(qū)),利用SER1 WRITE (Ser1虛擬總線寫函數(shù))將數(shù)據(jù)發(fā)送出去。
[0032]以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種在安卓平臺(tái)下驅(qū)動(dòng)近場(chǎng)通信模組的方法,其特征在于,將通用異步收發(fā)傳輸器與帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片的發(fā)送端、接收端管腳分別連接通信,該方法包括以下步驟: 通過驅(qū)動(dòng)平臺(tái)的應(yīng)用程序接口注冊(cè)一字符設(shè)備; 按照標(biāo)準(zhǔn)字符設(shè)備的驅(qū)動(dòng)框架通過系統(tǒng)調(diào)用接口驅(qū)動(dòng)所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片,將所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片與所注冊(cè)的字符設(shè)備相關(guān)聯(lián); 通過標(biāo)準(zhǔn)的串行輸入輸出虛擬總線的驅(qū)動(dòng)應(yīng)用程序接口注冊(cè)通信交互讀寫及其中斷處理函數(shù),通過所述中斷處理函數(shù)與所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片進(jìn)行讀寫操作。
2.根據(jù)權(quán)利要求1所述的在安卓平臺(tái)下驅(qū)動(dòng)近場(chǎng)通信模組的方法,其特征在于,所述字符設(shè)備的設(shè)備節(jié)點(diǎn)為設(shè)備目錄下面的相應(yīng)設(shè)備名稱。
3.根據(jù)權(quán)利要求1所述的在安卓平臺(tái)下驅(qū)動(dòng)近場(chǎng)通信模組的方法,其特征在于,通過調(diào)用所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片對(duì)應(yīng)的標(biāo)準(zhǔn)字符設(shè)備,根據(jù)近場(chǎng)通信的相關(guān)人機(jī)交互命令進(jìn)行非接觸式射頻卡的識(shí)別和配置工作。
4.根據(jù)權(quán)利要求1所述的在安卓平臺(tái)下驅(qū)動(dòng)近場(chǎng)通信模組的方法,其特征在于,在安卓系統(tǒng)層接收到從所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片讀取的識(shí)別信息后進(jìn)行相應(yīng)的系統(tǒng)操作。
5.根據(jù)權(quán)利要求1所述的在安卓平臺(tái)下驅(qū)動(dòng)近場(chǎng)通信模組的方法,其特征在于,帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片為PN544。
【專利摘要】本發(fā)明公開一種在安卓平臺(tái)下驅(qū)動(dòng)近場(chǎng)通信模組的方法,將通用異步收發(fā)傳輸器與帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片的發(fā)送端、接收端管腳分別連接通信,該方法包括以下步驟:通過驅(qū)動(dòng)平臺(tái)的應(yīng)用程序接口注冊(cè)一字符設(shè)備;按照標(biāo)準(zhǔn)字符設(shè)備的驅(qū)動(dòng)框架通過系統(tǒng)調(diào)用接口驅(qū)動(dòng)所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片,將所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片與所注冊(cè)的字符設(shè)備相關(guān)聯(lián);通過標(biāo)準(zhǔn)的串行輸入輸出虛擬總線的驅(qū)動(dòng)應(yīng)用程序接口注冊(cè)通信交互讀寫及其中斷處理函數(shù),通過所述中斷處理函數(shù)與所述帶近場(chǎng)通信的高頻射頻識(shí)別讀寫芯片進(jìn)行讀寫操作。本發(fā)明解決了非I2C端口與NFC芯片進(jìn)行數(shù)據(jù)交互實(shí)現(xiàn)的問題。
【IPC分類】G06F13-38, H04B5-00
【公開號(hào)】CN104699644
【申請(qǐng)?zhí)枴緾N201310670534
【發(fā)明人】高碩 , 陳皓, 楊彥青, 王德滿, 崔霈文, 唐日升, 張曉佳
【申請(qǐng)人】航天信息股份有限公司
【公開日】2015年6月10日
【申請(qǐng)日】2013年12月10日