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