李 鴻
(湘潭職業(yè)技術(shù)學(xué)院,湖南湘潭411102)
一般來說,UHF RFID讀寫器包括控制模塊、基帶處理模塊、射頻前端、電源、天線及外圍接口電路等[1],如圖1所示。控制模塊是讀寫器系統(tǒng)正常工作的控制、協(xié)調(diào)中心,包括微處理器、存儲(chǔ)系統(tǒng)、對外通信接口以及用于顯示/操作的屏幕/鍵盤等,通過與后端應(yīng)用系統(tǒng)之間的通信,執(zhí)行應(yīng)用系統(tǒng)發(fā)來的或鍵盤輸入的動(dòng)作指令,對基帶處理模塊、射頻前端的工作狀態(tài)、數(shù)據(jù)處理及外部設(shè)備(如鍵盤、顯示器等)加以協(xié)調(diào)控制,執(zhí)行防碰撞算法,實(shí)現(xiàn)多標(biāo)簽無漏識(shí)別??刂颇K通常采用單片機(jī)、DSP、ARM等微處理器結(jié)合相應(yīng)的軟件來實(shí)現(xiàn),要求微處理器具有強(qiáng)大的數(shù)據(jù)實(shí)時(shí)處理能力,比較高的穩(wěn)定性和相對低的功耗,豐富的片內(nèi)外設(shè)和I/O設(shè)備端口,方便高效的開發(fā)環(huán)境等[2]。本控制模塊采用NiosⅡ嵌入式軟核處理器來實(shí)現(xiàn),不僅能滿足上述對微處理器的要求,同時(shí)成本低,靈活性高,升級容易,外圍電路簡單,系統(tǒng)更小型化。
圖1 讀寫器基本結(jié)構(gòu)
SOPC是基于FPGA可編程SOC,它將處理器、存儲(chǔ)器、I/O接口等系統(tǒng)設(shè)計(jì)所需要的功能模塊集成到一片F(xiàn)PGA上,完成整個(gè)系統(tǒng)的主要邏輯功能,具有設(shè)計(jì)靈活,可裁減、可擴(kuò)充、可升級及軟、硬件在系統(tǒng)可編程的特性[3]。NiosⅡ處理器是用戶可配置的通用32位RISC軟核微處理器,是基于通用FPGA架構(gòu)的軟CPU內(nèi)核,與外部大容量存儲(chǔ)器結(jié)合,可構(gòu)成功能強(qiáng)大的32位嵌入式處理器系統(tǒng),與用戶自定義邏輯結(jié)合可構(gòu)成基于FPGA的片上系統(tǒng)[4]?;贜iosⅡ的SOPC系統(tǒng)設(shè)計(jì)首先要根據(jù)系統(tǒng)要求確定功能模塊,然后分別進(jìn)行硬件設(shè)計(jì)和軟件設(shè)計(jì)[5],本文主要對控制模塊NiosⅡ嵌入式軟核處理器系統(tǒng)、通信接口進(jìn)行設(shè)計(jì)。
1.1.1 控制模塊硬件結(jié)構(gòu)
控制模塊由NiosⅡ處理器系統(tǒng)來實(shí)現(xiàn),包括與CPU相連接的片內(nèi)外設(shè)和存儲(chǔ)器以及與片外存儲(chǔ)器和外設(shè)相連的接口,采用SOPC設(shè)計(jì)理念,將NiosⅡ處理器嵌入到FPGA芯片EP2C8Q208C8中,實(shí)現(xiàn)所需控制信號(hào)的產(chǎn)生和傳輸,完成協(xié)議解析、時(shí)序控制、狀態(tài)轉(zhuǎn)換及防碰撞,包括完成與上位機(jī)的通信,根據(jù)通信協(xié)議要求接收、發(fā)送指令,將讀寫狀態(tài)通過LCD顯示等。如圖2所示。
圖2 UHF RFID讀寫器嵌入式控制模塊結(jié)構(gòu)圖
1.1.2 控制模塊的硬件設(shè)計(jì)
NiosⅡ嵌入式處理器系統(tǒng)包括NiosⅡ處理器(含JTAG調(diào)試模塊)、Avalon交換結(jié)構(gòu)總線和外圍設(shè)備(存儲(chǔ)、接口及功能模塊)等,均由FPGA內(nèi)部的邏輯單元和RAM資源來實(shí)現(xiàn)。
根據(jù)系統(tǒng)功能確定系統(tǒng)組件。打開QuartusⅡ9.0軟件,建立新工程,選擇目標(biāo)板CycloneⅡEP2C8Q208C8,建立頂層設(shè)計(jì)文件。啟動(dòng)SOPC builder工具軟件,輸入新系統(tǒng)名稱,添加NiosⅡCPU核,選擇 NiosⅡ/s型,主頻50MHz,為整個(gè)硬件平臺(tái)的控制核心。添加片內(nèi)RAM、JTAG UART IP、PIO(實(shí)現(xiàn)對外圍通用 I/O口的控制)、UART(通用串行收發(fā)器)、LCD和DIP IP(DIP用于模擬鍵盤輸入)、控制與Ethernet PHY&MAC芯片通信的 Ethernet Interface等;添加SDRAM控制器IP、CFI接口IP(FLASH接口組件)及Avalon Tristate Bridge,根據(jù)訪問要求分配組件地址空間、數(shù)據(jù)寬度與中斷優(yōu)先級;添加鎖相環(huán)組件PLL,設(shè)定固定偏移相位。最后,通過Avalon總線通過端口完成各IP組件之間的互連,通過指定時(shí)序,部件之間就可以進(jìn)行通訊了。控制模塊設(shè)計(jì)硬件系統(tǒng)整體連接如圖3所示。
圖3 控制模塊頂層硬件設(shè)計(jì)圖
利用QuartusⅡ9.0對以上硬件系統(tǒng)進(jìn)行編譯,將.sof文件下載到FPGA芯片中,系統(tǒng)每次上電,便可對FPGA進(jìn)行配置。
接口設(shè)計(jì)主要涉及控制模塊與基帶處理模塊、上位機(jī)間的接口設(shè)計(jì)。為提高系統(tǒng)可靠性和適應(yīng)性,控制模塊與上位機(jī)系統(tǒng)之間采用USB接口、RS232接口以及RJ45三種通信接口,實(shí)現(xiàn)嵌入式控制模塊與PC的通信,采用USB HOST接口來實(shí)現(xiàn)控制模塊對基帶處理模塊的控制。
1.2.1 控制模塊與上位機(jī)系統(tǒng)接口設(shè)計(jì)
1)RS232串口電路
RS232是應(yīng)用最為廣泛的UART接口,可以方便地實(shí)現(xiàn)與計(jì)算機(jī)的數(shù)據(jù)通信。選取EP1C12Q240C8的任意四個(gè)引腳與電平轉(zhuǎn)換器MAX3232CSE相連。通過MAX3232CSE接標(biāo)準(zhǔn)串行接口DB9,即可與PC機(jī)進(jìn)行串口通信。
2)USB接口電路
考慮到操作的簡潔性,選擇國產(chǎn)USB接口芯片CH375。CH375內(nèi)置有標(biāo)準(zhǔn)的USB通訊協(xié)議,用戶無需編寫驅(qū)動(dòng)程序,具有8位數(shù)據(jù)總線和地址讀、寫、片選控制線及中斷輸出,可方便地掛接到 NiosⅡ嵌入式處理器系統(tǒng)總線上[6]。CH375所需外圍電路十分簡單,只需要一個(gè)晶振和兩個(gè)電容,芯片的D+、D-引腳可直接與計(jì)算機(jī)USB接口的D+、D-信號(hào)線相連。USB接口電路框圖如圖4所示。
3)以太網(wǎng)接口電路
NiosⅡ開發(fā)系統(tǒng)中提供了LAN91C111網(wǎng)絡(luò)芯片的控制邏輯,因此PHY/MAC芯片選LAN91C111,接口采用RJ45標(biāo)準(zhǔn)以太網(wǎng)接口,接口變壓器選用 H1102芯片,NiosⅡ通過Avalon總線以及三態(tài)橋上的以太網(wǎng)控制邏輯控制以太網(wǎng)口的數(shù)據(jù)收發(fā)。原理框圖如圖5所示。
圖4 USB接口電路框圖
圖5 以太網(wǎng)接口硬件原理框圖
1.2.2 控制模塊與基帶處理模塊的通信接口
控制模塊與基帶處理模塊的通信接口采用UART(通用異步收發(fā)器)接口,是一種短距離串行傳輸接口,通信成本低,抗干擾性強(qiáng),使用廣泛。接口框圖如圖6所示。
在FPGA中用Verilog實(shí)現(xiàn)了 UART模塊[7],主要完成RS232電平到TTL/CMOS電平的轉(zhuǎn)換,對接收數(shù)據(jù)的串并轉(zhuǎn)換,實(shí)現(xiàn)串口通信。在QuartusⅡ中,生成的UART通信接口模塊如圖7所示。
圖6 UART接口組成框圖
圖7 UART通信接口模塊圖
軟件設(shè)計(jì)采用NiosⅡIDE基于μC/OS-Ⅱ多任務(wù)實(shí)時(shí)操作系統(tǒng)實(shí)現(xiàn)。NiosⅡIDE是NiosⅡ系列嵌入式處理器的基本開發(fā)工具,可完成整個(gè)軟件工程的編輯、編譯、運(yùn)行管理、調(diào)試和下載等過程[8]。NiosⅡIDE包含uC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng),通過μC/OS-Ⅱ可實(shí)現(xiàn)控制模塊的收發(fā)控制、防碰撞算法和防沖突協(xié)議,驅(qū)動(dòng)并管理外圍接口,對應(yīng)用軟件進(jìn)行任務(wù)調(diào)度。
1.3.1 控制模塊主控程序設(shè)計(jì)
控制模塊主控程序就是NiosⅡ處理器內(nèi)存放的一段C語言控制程序,它通過數(shù)據(jù)總線控制基帶處理模塊、射頻收發(fā)模塊的工作狀態(tài)以及與上位機(jī)應(yīng)用程序通信,包括完成NiosⅡ處理器及其相應(yīng)外圍模塊接口所需的初始化,配置控制模塊和FPGA、開中斷、啟動(dòng)PLL、設(shè)定發(fā)射功率和接收比較電平、發(fā)送尋標(biāo)簽命令、防沖突處理、讀標(biāo)簽命令、處理接收信息、控制發(fā)射功率的大小,與計(jì)算機(jī)進(jìn)行通信等[9]。主控軟件設(shè)計(jì)流程如圖8所示。
圖8 讀寫器主控軟件設(shè)計(jì)流程圖
1.3.2 基于NiosⅡIDE的軟件設(shè)計(jì)
打開NiosⅡIDE工具軟件,創(chuàng)建并運(yùn)行一個(gè)新的NiosⅡIDE工程,根據(jù)程序流程圖編寫C語言用戶應(yīng)用程序,并添加到新工程中。uC/OS-Ⅱ多任務(wù)實(shí)時(shí)操作系統(tǒng)提供了任務(wù)創(chuàng)建和消息隊(duì)列創(chuàng)建、處理函數(shù),通過這些函數(shù)可以很方便地創(chuàng)建多個(gè)任務(wù),并通過消息隊(duì)列完成任務(wù)間通信[5]。用戶應(yīng)用程序添加完畢后編譯整個(gè)工程,將編譯生成的文件下載到FPGA進(jìn)行軟件程序調(diào)試。
本文完成了基于NiosⅡ處理器的UHF RFID讀寫器控制模塊的SOPC設(shè)計(jì)及與控制模塊相關(guān)的通信接口設(shè)計(jì),實(shí)現(xiàn)了所需控制信號(hào)的產(chǎn)生和傳輸、協(xié)議解析、時(shí)序控制、狀態(tài)轉(zhuǎn)換及防碰撞等功能。與傳統(tǒng)方法相比,該方法在降低控制模塊設(shè)計(jì)復(fù)雜性、縮短開發(fā)周期、降低開發(fā)成本、保證系統(tǒng)可靠性等方面具有明顯優(yōu)勢,基于NiosⅡ處理器結(jié)合相應(yīng)軟件實(shí)現(xiàn)的控制模塊具有強(qiáng)大的實(shí)時(shí)控制能力、較高的穩(wěn)定性,功耗更低,外圍電路更簡單,系統(tǒng)更小型化。
[1]張江波.基于NIOSⅡ的RFID讀寫器設(shè)計(jì)[D].鄭州:鄭州大學(xué),2011.4.
[2]趙明全,杜軍梅,梁飛宇,等.UHF RFID系統(tǒng)的讀寫器設(shè)計(jì)[J].現(xiàn)代儀器,2012,18(6):48 -50,58.
[3]康文軒,李斌,屈巍,等.基于NIOSⅡ的嵌入式網(wǎng)絡(luò)接口設(shè)計(jì)[J].電腦開發(fā)與應(yīng)用,2007,20(2):27 -28.
[4]馬賽.基于SOPC的無刷直流電機(jī)控制器應(yīng)用研究[D].重慶:重慶大學(xué),2012.4.
[5]孟芳,于立佳,張文志.基于NiosⅡ的SOPC系統(tǒng)設(shè)計(jì)分析[J].無線電通信技術(shù),2012,38(1):73 -76.
[6]楊全玖,張大偉,呂宗芳,等.基于CH375多通道USB接口與PC機(jī)通信的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006(32):80-82,105.
[7]王衍良.基于FPGA的超高頻RFID讀寫器設(shè)計(jì)與實(shí)現(xiàn)[D].廣州:廣東工業(yè)大學(xué),2011.5.
[8]王康佳.基于NiosⅡ嵌入式的溫度傳感器的設(shè)計(jì)與實(shí)現(xiàn)[J].河北北方學(xué)院學(xué)報(bào)(自然科學(xué)版),2011,27(2):44-47.
[9]王曉華,周曉光,孫百生.超高頻射頻識(shí)別讀寫器設(shè)計(jì)[J].電子測量技術(shù),2007,30(2):158 -161.