<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ENC28J60+AS3990的網(wǎng)絡UHF讀寫器設計

          基于ENC28J60+AS3990的網(wǎng)絡UHF讀寫器設計

          作者: 時間:2011-12-16 來源:網(wǎng)絡 收藏

          摘要: 為了實現(xiàn)超高頻()讀寫設備的遠程實時交互功能,本文以太網(wǎng)網(wǎng)卡芯片和超高頻射頻識別芯片,利用LPC2138作為主控制器,實現(xiàn)了超高頻的軟硬件方案。在上移植實時操作系統(tǒng)μC/OSII和輕量級IP協(xié)議LwIP,使可以連入互聯(lián)網(wǎng),實現(xiàn)了讀寫參數(shù)遠程配置和數(shù)據(jù)實時交互,滿足了快速發(fā)展的RFID產(chǎn)業(yè)對讀寫器多樣性需求。

          本文引用地址:http://www.ex-cimer.com/article/149984.htm

          引言

          物聯(lián)網(wǎng)產(chǎn)業(yè)的興起為RFID技術的發(fā)展和廣泛應用帶來了契機。超高頻()讀寫系統(tǒng)憑借其讀取距離遠、讀寫速度快、并發(fā)讀取標簽數(shù)多、標簽價格低廉等優(yōu)點,將成為RFID領域未來研究和發(fā)展的熱點。但目前國內(nèi)市場上UHF讀寫器種類較少,接口單一,使用時難以摒棄傳統(tǒng)的讀寫器加PC機操作模式。這些缺點限制了UHF讀寫器的大量使用,尤其是在物流這類需要遠程物品識別和信息獲取的場合。本文以射頻識別芯片為基礎,描述了網(wǎng)卡芯片讀寫器的硬件和軟件方案,使得讀寫器可以直接連入因特網(wǎng),進行遠程數(shù)據(jù)獲取和參數(shù)配置,增強了UHF讀寫器的實用性。

          1 硬件

          讀寫器總體設計框架如圖1所示。主控制器采用ARM7TDMIS內(nèi)核的控制器LPC2138,該芯片具有32 KB的片內(nèi)SRAM和512 KB的片內(nèi)Flash存儲器。外部接口豐富,能夠很好地滿足讀寫器設計的要求。采用射頻芯片實現(xiàn)了ISO180006C(即EPC GEN2)協(xié)議中要求的標簽交互,并為外部控制器提供兩種接口訪問方式??刂破髦恍璋l(fā)送簡單的控制和配置命令,AS3990即可完成與電子標簽的交互過程。是兼容IEEE802.3的10M以太網(wǎng)網(wǎng)卡芯片,它通過SPI口與控制芯片實現(xiàn)數(shù)據(jù)交換。電源模塊采用電源芯片EZ10853.3為各個模塊提供穩(wěn)定的3.3 V直流供電。

          圖1  讀寫器總體設計框架

          圖1 讀寫器總體設計框架

          1.1 射頻芯片接口電路

          AS3990是Microsystems公司研制的一款用于超高頻RFID讀寫器的符合ISO180006C標準的專用射頻芯片。其內(nèi)部集成了接收電路、發(fā)送電路、協(xié)議轉換單元、控制接口等部分,用戶只需外接少量的射頻電路即可完成讀寫模塊的功能設計。

          AS3990可以通過并行接口或串行SPI接口與主控制器LPC2138進行交互。射頻芯片接口電路如圖2所示。IO0~IO7用于并行接口,其中IO6和IO7也可用于SPI口的數(shù)據(jù)發(fā)送;引腳CLK作為SPI接口的時鐘線使用;EN引腳為AS3990的使能引腳;IRQ為AS3990中斷引腳。

          圖2  射頻芯片接口電路

          圖2 射頻芯片接口電路

          為了降低相位噪聲對讀寫性能的影響,電路中使用了外部壓控振蕩器(VCO)。VCO的輸出連接在EXT_IN引腳上。另一方面,AS3990通過CP腳控制壓控振蕩器。20 MHz的溫度補償型石英晶體諧振器TCXO連接在OSCO引腳上,作為基準振蕩器,這樣可以進一步提高芯片的穩(wěn)定性。

          由于AS3990內(nèi)部未集成功率放大器,所以需要外接功率放大器PA.當使用外接PA模式時,經(jīng)AS3990調(diào)制后的射頻信號在RFONX和RFOPX輸出,兩路射頻信號經(jīng)過平衡/不平衡變換器轉換為單路射頻信號后進入PA進行功率放大。AS3990的模擬輸出引腳DAC用于控制PA的增益。環(huán)形器用于將發(fā)送通路和接收通路隔離。同樣,接收到的射頻信號經(jīng)過平衡/不平衡變換器轉換為兩路差分信號,AS3990內(nèi)部解調(diào)電路對兩路信號解調(diào)得到數(shù)據(jù)。

          1.2 網(wǎng)卡芯片接口電路

          ENC28J60是Microchip公司生產(chǎn)的28引腳獨立以太網(wǎng)控制器,它內(nèi)置了10 Mbps以太網(wǎng)物理層器件和介質(zhì)訪問控制器,符合IEEE 802.3標準,特別適合于嵌入式設備的入網(wǎng)解決方案。ENC28J60通過SPI接口與控制器LPC2138交互,網(wǎng)卡芯片接口電路如圖3所示。SO、SI、SCK為SPI接口的3條總線,CS為ENC28J60的片選信號,中斷信號INT和WOL分別連接到主控制器的EINT3和EINT1上。芯片ENC28J60的2條差分接收引腳TPIN和2條差分發(fā)送引腳TPOUT外接在一個1:1脈沖變壓器上,脈沖變壓器輸出接至網(wǎng)口座上。

          圖3  網(wǎng)卡芯片接口電路

          圖3 網(wǎng)卡芯片接口電路

          2 軟件設計

          讀寫器軟件設計包括μC/OSII移植、LwIP協(xié)議棧移植、網(wǎng)卡驅動程序和上層應用程序的編寫4個部分。軟件設計整體框架如圖4所示。

          圖4  軟件設計整體框架

          圖4 軟件設計整體框架

          2.1 μC/OSII移植

          操作系統(tǒng)移植是LwIP協(xié)議棧移植和應用程序編寫的基礎[3],其在LPC2138上的移植內(nèi)容包括:

          ① 完成操作系統(tǒng)所需的基本配置和數(shù)據(jù)類型定義、開關中斷函數(shù)文件OS_CPU.H的編寫。

          ② 在文件OS_CPU.C完成堆棧初始化函數(shù)OSTaskStkInit()函數(shù),并根據(jù)自身需求編寫相關Hook函數(shù)。

          ③ 利用文件OS_CPU_A.S完成啟動最高優(yōu)先級任務的函數(shù)OSStartHighRdy、任務切換函數(shù)OSCtxSw、中斷級任務切換函數(shù)OSIntCtxSw、系統(tǒng)時鐘中斷服務函數(shù)OSTickISR的編寫。

          ④ 初始化定時器0,為系統(tǒng)提供時鐘。

          2.2 LwIP協(xié)議棧移植

          ① 完成LwIP協(xié)議內(nèi)部使用的數(shù)據(jù)類型的定義,如u8_t、s8_t、u16_t、u32_t等。這樣使得協(xié)議棧內(nèi)部使用的數(shù)據(jù)類型不再受移植平臺處理器和編譯器的影響,增強了協(xié)議棧的可移植性。移植時,根據(jù)編譯器和移植平臺事先定義好這些數(shù)據(jù)類型,定義如下:

          typedef unsignedcharu8_t;//定義8位無符號整數(shù)

          typedef signedchars8_t;//定義8位帶符號整數(shù)

          typedef unsignedshortu16_t;//定義16位無符號整數(shù)

          typedef signedshorts16_t;//定義16位帶符號整數(shù)

          typedef unsignedintu32_t;//定義32位無符號整數(shù)

          typedef signedints32_t;//定義32位帶符號整數(shù)

          ② 定義臨界區(qū)保護函數(shù)用于開關中斷,定義結構體封裝宏以避免編譯器地址自動對齊。LwIP的實現(xiàn)基于這樣一種機制,即上層協(xié)議已經(jīng)明確知道了下層所傳上來的數(shù)據(jù)的結構特點,上層直接使用地址計算得到想要的數(shù)據(jù),而避免了數(shù)據(jù)遞交時的復制與緩沖。所以需定義結構體封裝宏,禁止編譯器的地址自動對齊以防止數(shù)據(jù)結構被打亂。

          ③ 實現(xiàn)與信號量和郵箱操作相關的函數(shù)[5],比如建立、刪除、等待、釋放等。LwIP使用郵箱和信號量來實現(xiàn)上層應用程序與協(xié)議棧間、下層硬件驅動與協(xié)議棧間的信息交互。這些函數(shù)可以通過調(diào)用μC/OSII提供的信號量、郵箱函數(shù)來實現(xiàn)。

          ④ 實現(xiàn)一個與等待超時相關的函數(shù)sys_arch_timeouts.該函數(shù)能夠返回當前協(xié)議棧超時事件鏈表的首地址。在初始化LwIP進程時,會同時初始化一些超時事件,如ARP超時、TCP超時等,當某些事件等待超時后,協(xié)議棧會自動調(diào)用一些超時處理函數(shù)作相關處理,以滿足TCP/IP協(xié)議棧的需求。

          ⑤ 實現(xiàn)創(chuàng)建一個進程的函數(shù),可以通過操作系統(tǒng)提供的OSTaskCreate函數(shù)完成。

          2.3 網(wǎng)卡驅動程序編寫

          網(wǎng)卡芯片生產(chǎn)廠商一般都提供了豐富的驅動函數(shù),對這些接口函數(shù)進行相應的封裝,將接收到的數(shù)據(jù)包封裝為LwIP協(xié)議棧熟悉的數(shù)據(jù)結構,將發(fā)送的數(shù)據(jù)包封裝為芯片熟悉的數(shù)據(jù)結構。發(fā)送數(shù)據(jù)包和接收數(shù)據(jù)包的函數(shù)需要被實現(xiàn)。芯片與控制器LPC2138接口定義如下:

          #defineSPI_SCK(0x014) //P0.4

          #defineSPI_MISO(0x015) //P0.5

          #defineSPI_MOSI(0x016) //P0.6

          #defineENC28J60_CS(0x018) //P0.8

          #defineENC28J60_INT(0x019) //P0.9

          2.4 應用程序編寫

          基于多任務環(huán)境,在讀寫器上創(chuàng)建兩個任務:一個為HTTP服務器任務,此時讀寫器可看作是一個網(wǎng)絡服務器,它可以響應遠程的瀏覽器連接請求,并返回Html數(shù)據(jù)至瀏覽器上,這樣就可以遠程獲取讀寫器狀態(tài);另一個為讀寫器的讀寫任務,此時讀寫器作為一個客戶端使用,它需要連接到遠程的控制服務器,接收服務器的配置或控制命令,以響應并進行相關操作,最后返回操作結果或數(shù)據(jù)給服務器端。應用程序流程如圖5所示。

          圖5  應用程序流程

          圖5 應用程序流程

          結語

          諸如電子商務、智能物流等需要大量使用電子標簽的領域的興起,使得超高頻讀寫器在物聯(lián)網(wǎng)及RFID領域發(fā)揮出日趨重要的作用。目前國內(nèi)市場上出現(xiàn)了部分UHF讀寫器,這些讀寫器大都采用USB接口或串口實現(xiàn)與上位機的通信。由于上位機與讀寫器的距離有限,這就限制了UHF讀寫器的自由安裝,在某些遠程控制讀寫場合不再適用。另外,由于上位機硬件資源的限制,不可能實現(xiàn)對大量讀寫器的同時實時控制。本文基于射頻芯片AS3990和網(wǎng)卡芯片ENJ28C60提出的網(wǎng)絡UHF讀寫器能夠很好地解決上述問題,滿足目前RFID市場的需求。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();