亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于BCM20793的NFC模塊設(shè)計

        2015-07-02 00:17:24沈顯慶張煒瑋常佳龍
        關(guān)鍵詞:驅(qū)動程序中斷總線

        沈顯慶,張煒瑋,常佳龍

        (黑龍江科技大學(xué) 電氣與信息工程學(xué)院,哈爾濱 150027)

        ?

        基于BCM20793的NFC模塊設(shè)計

        沈顯慶,張煒瑋,常佳龍

        (黑龍江科技大學(xué) 電氣與信息工程學(xué)院,哈爾濱 150027)

        采用博通BCM20793芯片設(shè)計了NFC模塊,進行硬件設(shè)計,并進行設(shè)備驅(qū)動分析。多方面對該模塊進行驗證,結(jié)果表明該模塊穩(wěn)定、可靠、識別率高,可集成到支付、票務(wù)、門禁、防偽等系統(tǒng)中。

        NFC;BCM20793;驅(qū)動

        引 言

        NFC(Near Field Communication,近場通信)是由Philips和Sony聯(lián)合推出的一種全新的近距離無線通信技術(shù)。NFC是由無線射頻識別(RFID)及移動終端技術(shù)綜合發(fā)展起來的,在單一芯片上結(jié)合感應(yīng)式讀卡器、感應(yīng)式卡片和點對點的功能,能在短距離內(nèi)與兼容設(shè)備進行識別和數(shù)據(jù)交換。NFC工作頻率為13.56 MHz,使用電磁感應(yīng)耦合進行數(shù)據(jù)傳輸,具有雙向連接和識別特點,兼容不同標準的識別技術(shù),通信距離小于4 cm,支持多種通信速率[1]。由于受限于傳輸速率以及通信距離,NFC不適合大數(shù)據(jù)的傳輸,而且通信雙方必須有某種程度的相互信任。

        NFC技術(shù)的出現(xiàn)改變了人們使用某些電子設(shè)備的方式,甚至改變了信用卡、現(xiàn)金和鑰匙的使用方式,它可以應(yīng)用在手機等便攜型設(shè)備上,實現(xiàn)安全的移動支付和交易、簡便的端到端通信、在移動中輕松接入等功能[2]。隨著智能手機的快速興起,NFC與智能手機的結(jié)合將很大程度上促進NFC的發(fā)展,蘋果公司推出的iPhone6也具備NFC功能,相信在不久的將來NFC必定被廣泛應(yīng)用。

        本文采用博通BCM20793 NFC芯片并結(jié)合S3C6410主控制器,設(shè)計了具有主動模式和被動模式的NFC閱讀器,主要針對硬件和驅(qū)動進行了設(shè)計。

        1 NFC技術(shù)原理

        NFC有三種工作狀態(tài):Reader/Writer與NFC Tag/NFC Reader 相關(guān);Peer-to-Peer支持兩個NFC設(shè)備交互;Card Emulation能把攜帶NFC功能的設(shè)備模擬成Smart Card[3]。這三種工作狀態(tài)又可歸結(jié)為被動模式和主動模式,在Reader/Writer和Card Emulation狀態(tài)下處于被動模式,在Peer-to-Peer狀態(tài)下處于主動模式[4]。

        在被動模式下,主設(shè)備負責(zé)啟動通信,同時通過RF線圈產(chǎn)生電磁感應(yīng),為從設(shè)備提供電能。在這種模式下傳輸速率可以選擇106 kbps、212 kbps或424 kbps,使用負載調(diào)制(load modulation)方式,將數(shù)據(jù)發(fā)送給從設(shè)備,從設(shè)備可以不含電源組件,采用相同的速率以負載調(diào)制方式將數(shù)據(jù)返回給主設(shè)備,整個通信過程如圖1所示。

        圖1 被動模式下通信流程

        此通信機制與基于ISO14443A、MIFARE和FeliCa的非接觸式智能卡兼容,其主要區(qū)別在于RF層信號調(diào)制解調(diào)的方法、傳輸速率及編碼方式[5]。因此,NFC發(fā)起設(shè)備在被動模式下,可以用相同的連接和初始化過程檢測非接觸式智能卡或NFC目標設(shè)備,并與之建立聯(lián)系。

        主動模式下,設(shè)備之間進行通信時,發(fā)起設(shè)備和目標設(shè)備都必須產(chǎn)生自己的射頻場來進行通信。此種模式下NFC采用雙向識別和鏈接,通信各方不存在固定的主從關(guān)系,通信可以由任意一個NFC設(shè)備發(fā)起。這是對等網(wǎng)絡(luò)通信的標準模式,可以獲得非??焖俚捻憫?yīng)。其通信流程如圖2所示。

        圖2 主動模式下通信流程

        此外,快捷輕型的NFC協(xié)議還可以引導(dǎo)兩臺設(shè)備之間的藍牙配對過程。與其他無線通信技術(shù)相比,NFC是一種近距離私密通信方式,提供各種設(shè)備間輕松、安全、快速而自動的通信。對RFID來說,其具有距離近、帶寬高、功耗低等特點;比紅外更快、更穩(wěn)定而且簡單;與藍牙相比,NFC通信距離近,適合交換重要數(shù)據(jù)[6]。

        2 硬件設(shè)計

        NFC模塊主要由NFC(控制器,可與Device Host或Secure Element安全單元交互)、Antenna(天線)和Contactless Front-End(非接觸前段,負責(zé)射頻信號的調(diào)制解調(diào)工作)三部分組成。本設(shè)計采用BCM20793芯片,該芯片支持212或424 kbps的數(shù)據(jù)傳輸速率,是專為低功耗、低價格的設(shè)備設(shè)計的。該模塊提供PCI、I2C總線、UART串行接口,安全單元可以連接SD卡、SIM卡、SAM卡或是其他芯片,兼容多種通信標準。該芯片還支持低功耗模式、正常工作模式、輪詢模式等多種工作模式。

        主控制器采用S3C6410芯片,該芯片高性能、低功耗、高性價比,可以運行Android系統(tǒng)。BCM20793與S3C6410采用I2C總線的連接方式[7]。TX1和TX2引腳接RC匹配電路,RC匹配電路的P_JS_IT_18和天線相連接。NFC芯片由1.8 V電壓供電,其與主控制器有6根引腳相連,分別是NFC_I2C_SD數(shù)據(jù)線、NFC_I2C_SCL時鐘線、NFC_I2C_REQ中斷、NFC_REQ_PU使能、HOST_WAKE喚醒,NFC_CLK_REQ時鐘使能,I2C物理通信地址是0x77,時鐘信號由19.2 MHz外接晶振提供、NFC電路原理圖如圖3所示。

        圖3 NFC電路原理圖

        3 NFC驅(qū)動分析

        3.1 設(shè)備樹分析

        本設(shè)計內(nèi)核采用了Linux 3.4版本,與以往內(nèi)核版本不同的是,內(nèi)核3.4版本采用設(shè)備樹來對驅(qū)動設(shè)備進行統(tǒng)一管理,以方便設(shè)備的管理。NFC采用I2C總線的連接方式與CPU相連接,驅(qū)動只負責(zé)數(shù)據(jù)的發(fā)送接收,上層負責(zé)數(shù)據(jù)的解析工作。

        下面是BCM2079x的設(shè)備樹節(jié)點配置信息,包括:I2C總線的通信地址為0x77,中斷為34號,GPIO34為中斷引腳,GPIO65為使能引腳,GPIO20為喚醒引腳。其中最為關(guān)鍵的是compatible = "broadcom,bcm2079x_i2c"鍵值對,在加載驅(qū)動程序時,首先會匹配該字段,如果相等則調(diào)用probe函數(shù)進行相關(guān)的初始化工作。

        i2c@f9928000 {

        bcm2079x@77 {

        status = "okay";

        reg = <0x77>;

        interrupts = <34 0x2>;

        compatible = "broadcom,bcm2079x_i2c";

        bcm2079x,irq_gpio = <&msmgpio 34 0>;

        bcm2079x,en_gpio = <&msmgpio 65 0>;

        bcm2079x,wake_gpio = <&msmgpio 20 0>;

        };

        };

        以下為I2C總線配置信息,GPIO31作為I2C總線的時鐘信號線,GPIO32作為I2C總線的數(shù)據(jù)信號線,I2C總線的時鐘頻率為19.2MHz。

        i2c_6: i2c@f9928000 {

        compatible = "qcom,i2c-qup";

        qcom,i2c-src-freq = <19200000>;

        qcom,scl-gpio = <&msmgpio 31 0>;

        qcom,sda-gpio = <&msmgpio 32 0>;

        };

        驅(qū)動程序中的bcm2079x_match_table結(jié)構(gòu)體負責(zé)和設(shè)備樹進行匹配,在系統(tǒng)初始化階段,就會匹配設(shè)備樹里的.compatible屬性是否在驅(qū)動中有相同的名字,本驅(qū)動中是broadcom,bcm2079x_i2c,若匹配成功就會調(diào)用驅(qū)動程序的probe函數(shù)進行初始化工作。

        static struct of_device_id bcm2079x_match_table[] = {

        { .compatible = "broadcom,bcm2079x_i2c",},

        { },

        };

        i2c_driver bcm2079x_driver結(jié)構(gòu)體定義了驅(qū)動程序中一些重要的函數(shù)以及匹配信息。

        static struct i2c_driver bcm2079x_driver = {

        .id_table = bcm2079x_id,

        .probe = bcm2079x_probe,

        .remove = bcm2079x_remove,

        .driver = {

        .owner = THIS_MODULE,

        .name = "bcm2079x-i2c",

        .of_match_table = bcm2079x_match_table,

        },

        };

        在驅(qū)動程序中,bcm2079x_parse_dt負責(zé)解析設(shè)備樹的代碼,以下為設(shè)備樹解析關(guān)鍵代碼,分別獲取中斷、使能、喚醒引腳。

        static int bcm2079x_parse_dt(struct device *dev, struct bcm2079x_platform_data *pdata){

        ……

        pdata->irq_gpio = of_get_named_gpio_flags(np,"bcm2079x,irq_gpio", 0, &irq_gpio_flags);

        pdata->en_gpio = of_get_named_gpio_flags(np,"bcm2079x,en_gpio", 0, &en_gpio_flags);

        pdata->wake_gpio = of_get_named_gpio_flags(np,"bcm2079x,wake_gpio", 0, &wake_gpio_flags);

        ……

        }

        3.2 驅(qū)動初始化分析

        內(nèi)核加載驅(qū)動模塊的時候,系統(tǒng)會調(diào)用bcm2079x_dev_init()函數(shù),該函數(shù)內(nèi)部嵌套了i2c_add_driver(),用來完成bcm2079x_driver結(jié)構(gòu)體的注冊,系統(tǒng)就會自動探測驅(qū)動設(shè)備,通過比較設(shè)備樹中是否有compatible = "broadcom,bcm2079x_i2c"鍵值對來判斷設(shè)備是否存在。如果存在,則會注冊I2C設(shè)備相關(guān)信息,創(chuàng)建i2c-client,執(zhí)行probe函數(shù),在probe函數(shù)里去解析設(shè)備樹里面配置的引腳,初始化中斷、分配內(nèi)存空間以及初始化互斥鎖、等待隊列等,并向系統(tǒng)將驅(qū)動注冊為misc驅(qū)動,然后向系統(tǒng)注冊中斷。流程圖如圖4所示。

        圖4 驅(qū)動初始化

        3.3 驅(qū)動運行機制

        當用戶空間調(diào)用open打開/dev/bcm2079x設(shè)備節(jié)點時,通過ioctl機制調(diào)用驅(qū)動程序的ioctl,實現(xiàn)設(shè)備的使能與喚醒;然后調(diào)用Poll函數(shù)實現(xiàn)周期性的檢測,以降低設(shè)備的功耗,當有設(shè)備或卡片接近NFC設(shè)備時,NFC就會產(chǎn)生中斷,從而喚醒設(shè)備,用戶空間就可以通過調(diào)用read函數(shù)實現(xiàn)I2C數(shù)據(jù)的讀取。運行機制如圖5所示。

        圖5 驅(qū)動運行機制

        4 測試結(jié)果

        NFC設(shè)備平時處于休眠狀態(tài),設(shè)備也會發(fā)出探測脈沖,此時處于低功耗狀態(tài),當有卡片或NFC設(shè)備接近NFC設(shè)備時,就會產(chǎn)生中斷喚醒設(shè)備,NFC設(shè)備就會連續(xù)地發(fā)出探測脈沖,此時NFC工作在正常工作模式。

        圖6是用頻譜分析儀觀測到的探測脈沖信號,載波頻率為13.559 375 000 MHz,占用帶寬OBW為2.259 615 385 kHz,滿足CE和FCC認證中針對NFC頻段的射頻測試要求的13 553~13 567 MHz的調(diào)制帶寬限值。

        當將Tag1小卡貼近NFC天線時,可以讀出卡內(nèi)的二進制信息,圖7為卡內(nèi)信息。

        圖7 Tag卡內(nèi)二進制信息

        用設(shè)備分別測試Tag1、Tag2、Tag3、Tag4,其可識別距離最遠為49 mm、45 mm、29 mm、21 mm,識別成功率在96%以上,測量結(jié)果如表1所列。

        表1 Tag的最遠識別距離

        [1] 張沛.NFC閱讀器設(shè)計與安全性研究[D].杭州:杭州電子科技大學(xué),2012.

        [2] 晏鵬.NFC接收機的研究與設(shè)計[D].上海:復(fù)旦大學(xué),2009.

        [3] 許江成.具有NFC功能的移動通信終端電路設(shè)計[D].成都:電子科技大學(xué),2013.

        [4] 劉浩.基于NFC技術(shù)的近場通信應(yīng)用探索[J].中國無線電,2010(12):34-35.

        [5] 韋媛娜.基于NFC技術(shù)的天線設(shè)計方法研究[D].南京:南京郵電大學(xué),2012.

        [6] 郎為民.射頻識別(RFID)技術(shù)原理與應(yīng)用[M].北京:機械工業(yè)出版社,2006.

        [7] Samsung Electronics.S3C6410X_UM_Rev[EB/OL].(2010-11).[2014-12].http://www.samsung.com/global/business/semiconductor/support/brohures/downloads/systemlsi/s3c6410_datasheet_200804.pdf.

        沈顯慶(副教授)、常佳龍(碩士研究生),研究方向為檢測與智能控制;張煒瑋(碩士研究生),研究方向為嵌入式系統(tǒng)應(yīng)用。

        Design of NFC Module Based on BCM20793

        Shen Xianqing,Zhang Weiwei,Chang Jialong

        (College of Electric and Information Engineering,Heilongjiang Institute of Science and Technology,Harbin 150027,China)

        This paper uses BCM20793 chip to design NFC module,the hardware cirucuit is designed,and the device driver is analyzed.Through the multi aspects of verification for the module,the results show that the module is stable,reliable and has high recognition rate.The module can be integrated into many systems such as the payment,ticketing,access control and security system.

        NFC;BCM20793;driver

        TP368.1

        A

        迪娜

        2014-12-21)

        猜你喜歡
        驅(qū)動程序中斷總線
        基于PCI Express總線的xHC與FPGA的直接通信
        機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        多通道ARINC429總線檢查儀
        基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計
        河南科技(2014年16期)2014-02-27 14:13:22
        AT89C51與中斷有關(guān)的寄存器功能表解
        FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
        微處理機(2012年4期)2012-06-13 11:32:24
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        女同性恋精品一区二区三区| 亚洲精品久久区二区三区蜜桃臀| 久热这里只有精品视频6| 国产精品三级在线观看| 性感人妻中文字幕在线| 一区二区视频中文字幕| 日本精品无码一区二区三区久久久| 精品乱码一区二区三区四区| 亚洲精品白浆高清久久| 日本女优激情四射中文字幕| 麻豆婷婷狠狠色18禁久久| 在教室伦流澡到高潮hnp视频 | 老师翘臀高潮流白浆| 亚洲午夜精品久久久久久抢 | 国产剧情av麻豆香蕉精品| 国产av无码专区亚洲草草| 亚洲精品国产综合久久| 国产二区交换配乱婬| 亚洲色丰满少妇高潮18p| 狠狠躁天天躁无码中文字幕图| 国产午夜在线观看视频| 老熟妇乱子交视频一区| 边喂奶边中出的人妻| 欧美精品中文| 91国语对白在线观看| 狠狠色噜噜狠狠狠狠97首创麻豆| 国产白丝无码视频在线观看| 亚洲欧洲日韩另类自拍| 久久久亚洲av午夜精品| 无码区a∨视频体验区30秒| 亚洲欧美日本| 亚洲欧美国产成人综合不卡| 亚洲成人精品久久久国产精品| 亚洲av乱码一区二区三区林ゆな| 亚洲av无码片在线观看| 色窝综合网| 天堂蜜桃视频在线观看| 区二区三区玖玖玖| 亚洲另类激情综合偷自拍图| 丝袜美腿在线播放一区二区| 亚洲精品成人网站在线播放|