基于收發(fā)一體芯片的NFC模塊設計
隨著(zhù)無(wú)線(xiàn)網(wǎng)絡(luò )支持的上下行數據速率不斷提高。手機在數據業(yè)務(wù)方面的應用不斷涌現。越來(lái)越多的人正在使用手機代替手表、記事本、MP3,手機已成為人們不可缺少的信息終端。
本文引用地址:http://dyxdggzs.com/article/201612/326808.htm近距離通信NFC(Near Field Communication)技術(shù)將讓這一切變?yōu)楝F實(shí)。2006年6月,諾基亞和中國移動(dòng)、飛利浦、易通卡公司在廈門(mén)啟動(dòng)了中國首個(gè)NFC手機支付試驗。用戶(hù)使用內嵌NFC模塊的諾基亞3220手機,可在廈門(mén)市內任何一個(gè)易通卡覆蓋的營(yíng)業(yè)網(wǎng)點(diǎn)(公交汽車(chē)、輪渡、電影院、快餐店)進(jìn)行手機支付。
不僅如此,在不久的將來(lái),通過(guò)手機和NFC技術(shù)的結合,用戶(hù)通過(guò)手機就可以實(shí)現以下應用:在街邊海報上和雜志上下載演唱會(huì )時(shí)間、地點(diǎn)和節目表;在公園里玩互動(dòng)的定向越野游戲;在車(chē)站實(shí)時(shí)刷新公交車(chē)的到站時(shí)間;在辦公室發(fā)送短信控制家政服務(wù)員進(jìn)出住宅的時(shí)間;在學(xué)校全面代替現有學(xué)生證和學(xué)生卡:在遍布市區的智能公用電話(huà)亭查詢(xún)地圖、公交線(xiàn) 路、餐飲購物等信息;在加油站、超市、銀行等任何有POS機的地方支付款項并用手機收取電子發(fā)票。
本文在介紹TI公司最新推出的多協(xié)議完全集成13.56 MHz收發(fā)一體芯片TRF7970A的基礎上,設計了具有主動(dòng)模式和被動(dòng)模式的NFC模塊。
1 硬件設計
1.1 TRF7970A簡(jiǎn)介
TRF7970A是一款用于13.56 MHz RFID/近場(chǎng)通信系統的集成模擬前端和數據組幀器件。通過(guò)內置編程選項可使此器件適合于范圍寬廣的應用。它能夠執行以下3種模式中的任一模式:RFID/NFC讀取器、NFC對等點(diǎn)、卡仿真模式。引腳分布如圖1所示。
此芯片具有幾個(gè)工作模式,可以通過(guò)配置兩個(gè)輸入引腳(EN和EN2)以及芯片狀態(tài)控制寄存器(0X00)內的幾個(gè)位來(lái)進(jìn)行控制,如表1所示。


圖1 引腳分布
當EN被設定為高電平時(shí)(或者在EN2的上升沿,然后被EN=1確認),電壓穩壓器被激活并且13.56 MHz振蕩器啟動(dòng)。當電源和振蕩器頻率已穩定時(shí),SYS_CLK輸出從60 kHz的輔助頻率切換至來(lái)自晶體振蕩器的13.56 MHz頻率。此時(shí),讀取器已為通信和執行所需任務(wù)做好準備。然后此MCU可對芯片狀態(tài)控制寄存器0x00進(jìn)行編程并通過(guò)編輯附加寄存器來(lái)選擇運行模式。
(1)待機模式(寄存器0x00的位7=1),此讀取器能夠在100s恢復到完全運行。
(2)模式1(RF輸出禁用,寄存器Ox00的位5=0并且位1=0的激活模式)是一個(gè)低功率模式,此模式使得讀取器能夠在25斗s內恢復到完全運行。
(3)如果讀取器到讀取器的防沖突被執行,模式2(只有RF接收器有效,寄存器ox00的位1=l的激活模式)可用于測量外部RF場(chǎng)(正如RSSI測量段落中描述的那樣)。
(4)模式3和4(整個(gè)RF部分有效。寄存器0x00的位5=l的激活模式)是用于正常發(fā)射和接收操作的正常模式。
1.2 NFC模塊工作原理
圖2給出了由NFC天線(xiàn)、TRF7970A、微控制器(MCU)3部分組成的NFC電路。
系統上電以后,MCU首先配置TRF7970A芯片,可以通過(guò)配置引腳EN和EN2以及芯片狀態(tài)控制寄存器的幾個(gè)位來(lái)選擇工作模式(具體配置參數如表l所示),MCU通過(guò)并13將配置數據傳人TRF7970A芯片。NFC模塊主要有主動(dòng)模式和被動(dòng)模式兩種模式。

圖2 NFC模塊電路圖
NFC模塊可以在主動(dòng)或被動(dòng)模式下交換數據。在被動(dòng)模式下,啟動(dòng)NFC通信的設備(也稱(chēng)為NFC發(fā)起設備,主模塊),在整個(gè)通信過(guò)程中提供射頻場(chǎng)(RF-field),其中傳輸速度是可選的,將數據發(fā)送到另一臺模塊。另一臺模塊稱(chēng)為NFC目標模塊(從模塊),不必產(chǎn)生射頻場(chǎng),而使用負載調制(Load Modulation)技術(shù),即可以相同的速度將數據傳回發(fā)起設備。此通信機制與基于IS014443A、MIFARE和FeliCa的非接觸式智能卡兼容,因此,NFC發(fā)起模塊在主動(dòng)模式下,可以用相同的連接和初始化過(guò)程檢測非接觸式智能卡或NFC目標模塊,并與之建立聯(lián)系。
當NFC模塊工作在主動(dòng)模式下。和RFID讀取器操作中一樣,此芯片完全由MCU控制。MCU激活此芯片并將模式選擇寫(xiě)入ISO控制寄存器。MCU使用RF沖突避免命令。所以它不用承擔任何實(shí)時(shí)任務(wù)。每臺NFC模塊要向另一臺NFC模塊發(fā)送數據時(shí),都必須產(chǎn)生自己的射頻場(chǎng)。如圖3所示,發(fā)起模塊和目標模塊都要產(chǎn)生自己的射頻場(chǎng),以便進(jìn)行通信。這是對等網(wǎng)絡(luò )通信的標準模式,可以獲得非??焖俚倪B接設置。

圖3 NFC主動(dòng)通信模式

圖4 NFC被動(dòng)通信模式
如圖4所示,當NFC模塊工作在被動(dòng)模式下,此模塊通常處于斷電或者待機模式。如果EN2=H,此模塊將電源系統保持在開(kāi)狀態(tài)。如果EN2=L并且EN=L,則此模塊處于完全斷電狀態(tài)。為了運行在被動(dòng)模式或者標簽仿真器狀態(tài)下,MCU必須向模塊檢測電平寄存器(bo-b2)中載入一個(gè)非0值,此操作將開(kāi)啟RF計量系統(由VEXT供電,所以此系統在完全斷電期間仍可運行并且其流耗只有3.5μA)。RF計量一直監控天線(xiàn)輸入上的RF信號。當天線(xiàn)輸入上的RF水平超過(guò)目標方檢測電平寄存器中定義的值時(shí),NFC模塊被自動(dòng)激活(EN是內部強制高電平)。
移動(dòng)模塊主要以被動(dòng)模式操作??梢源蠓档凸?,并延長(cháng)電池壽命。在一個(gè)應用會(huì )話(huà)過(guò)程中,NFC模塊可以在發(fā)起模塊和目標模塊之間切換自己的角色。利用這項功能。電池電量較低的設備可以要求 以被動(dòng)模式充當目標設備,而不是發(fā)起設備。
1.3 TRF7970A通信接口設計
芯片TRF7970A到讀取器的通信接口可被配置為兩種方式:具有8線(xiàn)并行接口(DO:D7)加上DATA_CLK,或者具有3線(xiàn)制或者4線(xiàn)制串行外設接口(SPI)。SPI接口使用傳統的主器件輸出/從器件輸入(MOSI)、主器件輸入/從器件輸出(MISO)、IRQ和DATA_CLK線(xiàn)路。SPI可在使用或者不使用從器件選擇線(xiàn)路的情況下運行。本文以并行接口的方式闡述。
通信由一個(gè)啟動(dòng)條件初始化,此啟動(dòng)條件之后通常跟隨一個(gè)地址/命令字(Adr/Cmd)。Adr/Cmd為8位長(cháng),并且它的格式顯示如表2所示。
表2 地址/命令字位分配

MSB(位7)確定這個(gè)字用作命令還 是地址。表2中的最后兩列顯示了獨立位的功能,即寫(xiě)入的是地址還是命令。一旦地址字被發(fā)出,就進(jìn)入數據接收等待狀態(tài)。在連續地址模式(連續模式=1),地址之后的第一組數據被寫(xiě)入(或者讀取)到(自)指定的地址。對于每個(gè)附加數據,地址增量為1。持續模式可用于在不改變地址的前提下寫(xiě)入一個(gè)位于單一數據流中的控制寄存器的塊;在非連續地址模式下(簡(jiǎn)單尋址模式),在地址以后只等待一個(gè)數據字。
地址模式用于寫(xiě)入或者讀取配置寄存器 或者FIFO。當把多于12 B的數據寫(xiě)人FIFO時(shí),連續地址模式應設定為1。命令模式用于輸入一個(gè)導致讀取器動(dòng)作的命令。 1.3.1 無(wú)線(xiàn)接口數據的接收
在接收操作啟動(dòng)時(shí)(成功偵測到SOF),IRQ狀態(tài)寄存器的B6被設定。如果接收數攢if{少于或者等于8 B,在接收操作的末尾,一個(gè)中斷請求會(huì )被發(fā)送到MCU。MCU接收到這個(gè)中斷請求,然后它會(huì )通過(guò)讀取IRQ。狀態(tài)寄存器(OxOC)來(lái)檢查以確定中斷的原因,之后MCU從FIFO讀取數據。
如果接收到的數據包大于96 B,當第96個(gè)字節被載人到FIFO中(滿(mǎn)容量的75%)時(shí),在接收操作終止前,中斷被發(fā)出。MCU應該重新讀取IRQ狀態(tài)寄存器的內容以確定中斷請求的原因。如果FIFO已經(jīng)達到滿(mǎn)容量的75%(由IRQ狀態(tài)寄存器的標志B5標出并讀取FIFO狀態(tài)寄存器),MCU通過(guò)從FIFO中讀取數據作出的響應為新接收來(lái)的數據騰出空間。當接收操作完成時(shí),中斷被發(fā)出并且在完成讀取操作前,MCU必須檢查還有多少字仍然在FIF0中。
如果讀取器偵測到一個(gè)接收錯誤,在IRQ狀態(tài)寄存器中相應的錯誤標志(組幀錯誤,CRC錯誤)被設定,指示MCU接收沒(méi)有正確完成。
1.3.2 到MCU的數據傳送
在開(kāi)始數據傳送前,FIFO應該一直被一個(gè)復位命令(0x0F)清除。數據傳送由一個(gè)選定的命令初始化。然后,MCU命令此讀取器從寄存器0xlD開(kāi)始執行一個(gè)持續寫(xiě)命令(Ox3D)。寫(xiě)入到寄存器OxlD的數據為T(mén)X。長(cháng)度字節l(上部和中部半字節),而隨后寄存器0xlE中的字節為T(mén)X,長(cháng)度字節2(較低半字節和不完整字節長(cháng)度)。TX字節長(cháng)度確定讀取器何時(shí)發(fā)送幀結束(EOF)字節。在TX長(cháng)度字節被寫(xiě)入后,FIFO數據被載入到寄存器0xlF中。其字節存儲單元位于0至127。在第一個(gè)字節被寫(xiě)入到FIFO后,數據傳送自動(dòng)開(kāi)始。由于地址是按順序排列的,TX長(cháng)度字節和FIFO的載人可由一個(gè)持續寫(xiě)命令完成。
傳送開(kāi)始時(shí),IRQ狀態(tài)寄存器的標志B7(IRQ TX)被設定,并且在傳送操作結束時(shí)發(fā)送一個(gè)中斷以通知MCU此任務(wù)已完成。
2 軟件設計
系統上電以后MCU首先配置TRF7970A芯片,先將由2個(gè)輸入引腳(EN和EN2)以及芯片狀態(tài)控制寄存器(0x00)內的幾個(gè)位配置芯片的工作模式,MCU通過(guò)并IZl將配置數據傳入TRF7970A芯片。在RX模式,接收操作結束,通過(guò)設定引腳13(IRQ)為高電平來(lái)通知外部MCU接收結束;在TX模式,一個(gè)標示TX已經(jīng)完成的中斷申請(IRQ)通知外部MCU。
在TRF7970A芯片中有一個(gè)組幀邏輯部分,串行比特流數據在此部分被格式化成字節格式。特別信號, 諸如幀開(kāi)始(SOF)、幀結束(EOF)、通信開(kāi)始 、通信結束,被自動(dòng)去除;奇偶校驗位和CRC字節也被檢查并去除了。然后,這個(gè)“干凈”數據被發(fā)送到128 B的FIFO寄存器,此寄存器可由外部微控制器讀取。這意味著(zhù)降低MCU的存儲器需求也就是降低MCU成本。同時(shí)縮短軟件開(kāi)發(fā)時(shí)間。TRF7970A發(fā)
評論