基于收發(fā)一體芯片的NFC模塊設(shè)計(jì)
隨著無線網(wǎng)絡(luò)支持的上下行數(shù)據(jù)速率不斷提高。手機(jī)在數(shù)據(jù)業(yè)務(wù)方面的應(yīng)用不斷涌現(xiàn)。越來越多的人正在使用手機(jī)代替手表、記事本、MP3,手機(jī)已成為人們不可缺少的信息終端。
本文引用地址:http://butianyuan.cn/article/201612/326808.htm近距離通信NFC(Near Field Communication)技術(shù)將讓這一切變?yōu)楝F(xiàn)實(shí)。2006年6月,諾基亞和中國移動、飛利浦、易通卡公司在廈門啟動了中國首個(gè)NFC手機(jī)支付試驗(yàn)。用戶使用內(nèi)嵌NFC模塊的諾基亞3220手機(jī),可在廈門市內(nèi)任何一個(gè)易通卡覆蓋的營業(yè)網(wǎng)點(diǎn)(公交汽車、輪渡、電影院、快餐店)進(jìn)行手機(jī)支付。
不僅如此,在不久的將來,通過手機(jī)和NFC技術(shù)的結(jié)合,用戶通過手機(jī)就可以實(shí)現(xiàn)以下應(yīng)用:在街邊海報(bào)上和雜志上下載演唱會時(shí)間、地點(diǎn)和節(jié)目表;在公園里玩互動的定向越野游戲;在車站實(shí)時(shí)刷新公交車的到站時(shí)間;在辦公室發(fā)送短信控制家政服務(wù)員進(jìn)出住宅的時(shí)間;在學(xué)校全面代替現(xiàn)有學(xué)生證和學(xué)生卡:在遍布市區(qū)的智能公用電話亭查詢地圖、公交線 路、餐飲購物等信息;在加油站、超市、銀行等任何有POS機(jī)的地方支付款項(xiàng)并用手機(jī)收取電子發(fā)票。
本文在介紹TI公司最新推出的多協(xié)議完全集成13.56 MHz收發(fā)一體芯片TRF7970A的基礎(chǔ)上,設(shè)計(jì)了具有主動模式和被動模式的NFC模塊。
1 硬件設(shè)計(jì)
1.1 TRF7970A簡介
TRF7970A是一款用于13.56 MHz RFID/近場通信系統(tǒng)的集成模擬前端和數(shù)據(jù)組幀器件。通過內(nèi)置編程選項(xiàng)可使此器件適合于范圍寬廣的應(yīng)用。它能夠執(zhí)行以下3種模式中的任一模式:RFID/NFC讀取器、NFC對等點(diǎn)、卡仿真模式。引腳分布如圖1所示。
此芯片具有幾個(gè)工作模式,可以通過配置兩個(gè)輸入引腳(EN和EN2)以及芯片狀態(tài)控制寄存器(0X00)內(nèi)的幾個(gè)位來進(jìn)行控制,如表1所示。
圖1 引腳分布
當(dāng)EN被設(shè)定為高電平時(shí)(或者在EN2的上升沿,然后被EN=1確認(rèn)),電壓穩(wěn)壓器被激活并且13.56 MHz振蕩器啟動。當(dāng)電源和振蕩器頻率已穩(wěn)定時(shí),SYS_CLK輸出從60 kHz的輔助頻率切換至來自晶體振蕩器的13.56 MHz頻率。此時(shí),讀取器已為通信和執(zhí)行所需任務(wù)做好準(zhǔn)備。然后此MCU可對芯片狀態(tài)控制寄存器0x00進(jìn)行編程并通過編輯附加寄存器來選擇運(yùn)行模式。
(1)待機(jī)模式(寄存器0x00的位7=1),此讀取器能夠在100s恢復(fù)到完全運(yùn)行。
(2)模式1(RF輸出禁用,寄存器Ox00的位5=0并且位1=0的激活模式)是一個(gè)低功率模式,此模式使得讀取器能夠在25斗s內(nèi)恢復(fù)到完全運(yùn)行。
(3)如果讀取器到讀取器的防沖突被執(zhí)行,模式2(只有RF接收器有效,寄存器ox00的位1=l的激活模式)可用于測量外部RF場(正如RSSI測量段落中描述的那樣)。
(4)模式3和4(整個(gè)RF部分有效。寄存器0x00的位5=l的激活模式)是用于正常發(fā)射和接收操作的正常模式。
1.2 NFC模塊工作原理
圖2給出了由NFC天線、TRF7970A、微控制器(MCU)3部分組成的NFC電路。
系統(tǒng)上電以后,MCU首先配置TRF7970A芯片,可以通過配置引腳EN和EN2以及芯片狀態(tài)控制寄存器的幾個(gè)位來選擇工作模式(具體配置參數(shù)如表l所示),MCU通過并13將配置數(shù)據(jù)傳人TRF7970A芯片。NFC模塊主要有主動模式和被動模式兩種模式。
圖2 NFC模塊電路圖
NFC模塊可以在主動或被動模式下交換數(shù)據(jù)。在被動模式下,啟動NFC通信的設(shè)備(也稱為NFC發(fā)起設(shè)備,主模塊),在整個(gè)通信過程中提供射頻場(RF-field),其中傳輸速度是可選的,將數(shù)據(jù)發(fā)送到另一臺模塊。另一臺模塊稱為NFC目標(biāo)模塊(從模塊),不必產(chǎn)生射頻場,而使用負(fù)載調(diào)制(Load Modulation)技術(shù),即可以相同的速度將數(shù)據(jù)傳回發(fā)起設(shè)備。此通信機(jī)制與基于IS014443A、MIFARE和FeliCa的非接觸式智能卡兼容,因此,NFC發(fā)起模塊在主動模式下,可以用相同的連接和初始化過程檢測非接觸式智能卡或NFC目標(biāo)模塊,并與之建立聯(lián)系。
當(dāng)NFC模塊工作在主動模式下。和RFID讀取器操作中一樣,此芯片完全由MCU控制。MCU激活此芯片并將模式選擇寫入ISO控制寄存器。MCU使用RF沖突避免命令。所以它不用承擔(dān)任何實(shí)時(shí)任務(wù)。每臺NFC模塊要向另一臺NFC模塊發(fā)送數(shù)據(jù)時(shí),都必須產(chǎn)生自己的射頻場。如圖3所示,發(fā)起模塊和目標(biāo)模塊都要產(chǎn)生自己的射頻場,以便進(jìn)行通信。這是對等網(wǎng)絡(luò)通信的標(biāo)準(zhǔn)模式,可以獲得非??焖俚倪B接設(shè)置。
圖3 NFC主動通信模式
圖4 NFC被動通信模式
如圖4所示,當(dāng)NFC模塊工作在被動模式下,此模塊通常處于斷電或者待機(jī)模式。如果EN2=H,此模塊將電源系統(tǒng)保持在開狀態(tài)。如果EN2=L并且EN=L,則此模塊處于完全斷電狀態(tài)。為了運(yùn)行在被動模式或者標(biāo)簽仿真器狀態(tài)下,MCU必須向模塊檢測電平寄存器(bo-b2)中載入一個(gè)非0值,此操作將開啟RF計(jì)量系統(tǒng)(由VEXT供電,所以此系統(tǒng)在完全斷電期間仍可運(yùn)行并且其流耗只有3.5μA)。RF計(jì)量一直監(jiān)控天線輸入上的RF信號。當(dāng)天線輸入上的RF水平超過目標(biāo)方檢測電平寄存器中定義的值時(shí),NFC模塊被自動激活(EN是內(nèi)部強(qiáng)制高電平)。
移動模塊主要以被動模式操作??梢源蠓档凸?,并延長電池壽命。在一個(gè)應(yīng)用會話過程中,NFC模塊可以在發(fā)起模塊和目標(biāo)模塊之間切換自己的角色。利用這項(xiàng)功能。電池電量較低的設(shè)備可以要求 以被動模式充當(dāng)目標(biāo)設(shè)備,而不是發(fā)起設(shè)備。
1.3 TRF7970A通信接口設(shè)計(jì)
芯片TRF7970A到讀取器的通信接口可被配置為兩種方式:具有8線并行接口(DO:D7)加上DATA_CLK,或者具有3線制或者4線制串行外設(shè)接口(SPI)。SPI接口使用傳統(tǒng)的主器件輸出/從器件輸入(MOSI)、主器件輸入/從器件輸出(MISO)、IRQ和DATA_CLK線路。SPI可在使用或者不使用從器件選擇線路的情況下運(yùn)行。本文以并行接口的方式闡述。
通信由一個(gè)啟動條件初始化,此啟動條件之后通常跟隨一個(gè)地址/命令字(Adr/Cmd)。Adr/Cmd為8位長,并且它的格式顯示如表2所示。
表2 地址/命令字位分配
MSB(位7)確定這個(gè)字用作命令還 是地址。表2中的最后兩列顯示了獨(dú)立位的功能,即寫入的是地址還是命令。一旦地址字被發(fā)出,就進(jìn)入數(shù)據(jù)接收等待狀態(tài)。在連續(xù)地址模式(連續(xù)模式=1),地址之后的第一組數(shù)據(jù)被寫入(或者讀取)到(自)指定的地址。對于每個(gè)附加數(shù)據(jù),地址增量為1。持續(xù)模式可用于在不改變地址的前提下寫入一個(gè)位于單一數(shù)據(jù)流中的控制寄存器的塊;在非連續(xù)地址模式下(簡單尋址模式),在地址以后只等待一個(gè)數(shù)據(jù)字。
地址模式用于寫入或者讀取配置寄存器 或者FIFO。當(dāng)把多于12 B的數(shù)據(jù)寫人FIFO時(shí),連續(xù)地址模式應(yīng)設(shè)定為1。命令模式用于輸入一個(gè)導(dǎo)致讀取器動作的命令。 1.3.1 無線接口數(shù)據(jù)的接收
在接收操作啟動時(shí)(成功偵測到SOF),IRQ狀態(tài)寄存器的B6被設(shè)定。如果接收數(shù)攢if{少于或者等于8 B,在接收操作的末尾,一個(gè)中斷請求會被發(fā)送到MCU。MCU接收到這個(gè)中斷請求,然后它會通過讀取IRQ。狀態(tài)寄存器(OxOC)來檢查以確定中斷的原因,之后MCU從FIFO讀取數(shù)據(jù)。
如果接收到的數(shù)據(jù)包大于96 B,當(dāng)?shù)?6個(gè)字節(jié)被載人到FIFO中(滿容量的75%)時(shí),在接收操作終止前,中斷被發(fā)出。MCU應(yīng)該重新讀取IRQ狀態(tài)寄存器的內(nèi)容以確定中斷請求的原因。如果FIFO已經(jīng)達(dá)到滿容量的75%(由IRQ狀態(tài)寄存器的標(biāo)志B5標(biāo)出并讀取FIFO狀態(tài)寄存器),MCU通過從FIFO中讀取數(shù)據(jù)作出的響應(yīng)為新接收來的數(shù)據(jù)騰出空間。當(dāng)接收操作完成時(shí),中斷被發(fā)出并且在完成讀取操作前,MCU必須檢查還有多少字仍然在FIF0中。
如果讀取器偵測到一個(gè)接收錯(cuò)誤,在IRQ狀態(tài)寄存器中相應(yīng)的錯(cuò)誤標(biāo)志(組幀錯(cuò)誤,CRC錯(cuò)誤)被設(shè)定,指示MCU接收沒有正確完成。
1.3.2 到MCU的數(shù)據(jù)傳送
在開始數(shù)據(jù)傳送前,F(xiàn)IFO應(yīng)該一直被一個(gè)復(fù)位命令(0x0F)清除。數(shù)據(jù)傳送由一個(gè)選定的命令初始化。然后,MCU命令此讀取器從寄存器0xlD開始執(zhí)行一個(gè)持續(xù)寫命令(Ox3D)。寫入到寄存器OxlD的數(shù)據(jù)為TX。長度字節(jié)l(上部和中部半字節(jié)),而隨后寄存器0xlE中的字節(jié)為TX,長度字節(jié)2(較低半字節(jié)和不完整字節(jié)長度)。TX字節(jié)長度確定讀取器何時(shí)發(fā)送幀結(jié)束(EOF)字節(jié)。在TX長度字節(jié)被寫入后,F(xiàn)IFO數(shù)據(jù)被載入到寄存器0xlF中。其字節(jié)存儲單元位于0至127。在第一個(gè)字節(jié)被寫入到FIFO后,數(shù)據(jù)傳送自動開始。由于地址是按順序排列的,TX長度字節(jié)和FIFO的載人可由一個(gè)持續(xù)寫命令完成。
傳送開始時(shí),IRQ狀態(tài)寄存器的標(biāo)志B7(IRQ TX)被設(shè)定,并且在傳送操作結(jié)束時(shí)發(fā)送一個(gè)中斷以通知MCU此任務(wù)已完成。
2 軟件設(shè)計(jì)
系統(tǒng)上電以后MCU首先配置TRF7970A芯片,先將由2個(gè)輸入引腳(EN和EN2)以及芯片狀態(tài)控制寄存器(0x00)內(nèi)的幾個(gè)位配置芯片的工作模式,MCU通過并IZl將配置數(shù)據(jù)傳入TRF7970A芯片。在RX模式,接收操作結(jié)束,通過設(shè)定引腳13(IRQ)為高電平來通知外部MCU接收結(jié)束;在TX模式,一個(gè)標(biāo)示TX已經(jīng)完成的中斷申請(IRQ)通知外部MCU。
在TRF7970A芯片中有一個(gè)組幀邏輯部分,串行比特流數(shù)據(jù)在此部分被格式化成字節(jié)格式。特別信號, 諸如幀開始(SOF)、幀結(jié)束(EOF)、通信開始 、通信結(jié)束,被自動去除;奇偶校驗(yàn)位和CRC字節(jié)也被檢查并去除了。然后,這個(gè)“干凈”數(shù)據(jù)被發(fā)送到128 B的FIFO寄存器,此寄存器可由外部微控制器讀取。這意味著降低MCU的存儲器需求也就是降低MCU成本。同時(shí)縮短軟件開發(fā)時(shí)間。TRF7970A發(fā)
評論