IR-UWB(Ultra Wide Band Impulse Radio)無(wú)線(xiàn)通信是一種不用載波,而采用時(shí)間間隔極短的脈沖進(jìn)行通信的方式,也稱(chēng)作脈沖無(wú)線(xiàn)電(Impulse Radio)、無(wú)載波(Cartier Free)通信。 2001年4月我國(guó)發(fā)布了“十五”863計(jì)劃,其中把UWB無(wú)線(xiàn)通信關(guān)鍵技術(shù)以及共存與兼容技術(shù)列為有關(guān)通信技術(shù)主體研究項(xiàng)目,許多高校也將對(duì)UWB的研究作為重點(diǎn)科研項(xiàng)目,取得了很多進(jìn)展。其中,某高校參與研發(fā)的UWB通信演示系統(tǒng),要求可在室內(nèi)10 m距離內(nèi)傳輸流媒體,文中以該UWB通信演示系統(tǒng)為依托,分析了UWB通信系統(tǒng)與終端設(shè)備的接口需求,選用高速USB接口方案,運(yùn)用FPGA技術(shù)實(shí)現(xiàn)了USB接口硬件控制電路及計(jì)算機(jī)終端與UWB通信系統(tǒng)基帶模塊的數(shù)據(jù)傳輸。 1 高速I(mǎi)R-UWB通信系統(tǒng)方案和實(shí)現(xiàn) 如圖l,圖2所示。IR-UWB通信系統(tǒng)由計(jì)算機(jī)端信源信宿、UWB發(fā)射機(jī)、UWB接收機(jī)、基帶信號(hào)處理、超寬帶收發(fā)天線(xiàn)組成。該系統(tǒng)中,傳輸信號(hào)中心頻率達(dá)到3.5 GHz,UWB脈沖包絡(luò)寬度在4~6 ns之間,頻譜帶寬不小于500 MHz,室內(nèi)傳輸距離在10 m以?xún)?nèi),發(fā)射信號(hào)譜型滿(mǎn)足FCC頻譜模板要求,其信道傳輸速率可以達(dá)到100 MB·S-1。 ![]() 1.1 基帶傳輸方案 基帶部分是UWB通信設(shè)備的關(guān)鍵模塊。它主要完成信道編解碼、終端與通信系統(tǒng)的連接,如圖3所示。 ![]() UWB通信系統(tǒng)已經(jīng)實(shí)現(xiàn),該通信系統(tǒng)發(fā)端采用內(nèi)置信源,收端通過(guò)示波器觀測(cè)數(shù)據(jù)是否達(dá)到指標(biāo)要求。顯然這樣的方式無(wú)法反映UWB通信系統(tǒng)的性能,因此必須為該通信系統(tǒng)擴(kuò)充終端接口。文中對(duì)高速USB接口進(jìn)行了討論。USB是一種應(yīng)用在計(jì)算機(jī)領(lǐng)域的新型接口技術(shù),最早由 Compaq,Intel,Microsoft等多家公司于1994年11月共同提出,其目的是使用USB取代PC機(jī)現(xiàn)有的各種外圍接口,使外設(shè)的連接具有單一化、即插即用、熱插拔等特點(diǎn)。為了支持UWB通信系統(tǒng)100 MB/s的傳輸速率,并保證流媒體實(shí)時(shí)、流暢的傳輸,文中最終選用高速USB設(shè)備作為通信系統(tǒng)的擴(kuò)展接口。USB2.0接口設(shè)備通過(guò)USB數(shù)據(jù)線(xiàn)與計(jì)算機(jī)相連,并且通過(guò)8位數(shù)據(jù)線(xiàn)與通信系統(tǒng)相連。在發(fā)送端,USB2.0接口設(shè)備的作用是采集計(jì)算機(jī)發(fā)送的數(shù)據(jù),并轉(zhuǎn)發(fā)到UWB通信系統(tǒng)的基帶模塊中;在接收端,UWB接收機(jī)將收到的數(shù)據(jù)經(jīng)過(guò)基帶處理,再通過(guò)USB2.0接口設(shè)備轉(zhuǎn)發(fā)給計(jì)算機(jī)。 1.2 USB接口芯片分析與選用 文中選用EZ-USB FX2系列芯片作為USB接口芯片,并設(shè)計(jì)了USB接口電路。該電路控制USB芯片與UWB通信系統(tǒng)基帶模塊的數(shù)據(jù)傳輸,實(shí)現(xiàn)了計(jì)算機(jī)與UWB通信系統(tǒng)的互連。 USB2.0協(xié)議中規(guī)定,USB芯片支持3種傳輸速率,分別為1.5 MB·s-1低速傳輸、12 MB·s-1全速傳輸、480 MB·s-1高速傳輸。一般有3種常用的USB功能設(shè)備接口芯片:低速傳輸芯片CY7C630/1xxA、全速傳輸芯片EZ-USB系列和高速傳輸芯片 EZ-USB FX2系列。為了支持UWB通信系統(tǒng)高達(dá)100 MB·s-1的傳輸速率,并且保證流媒體傳輸?shù)膶?shí)時(shí)性、流暢性,系統(tǒng)選用高速傳輸系列芯片CY7C68013作為USB接口芯片。 2 發(fā)端計(jì)算機(jī)與UWB通信系統(tǒng)接口的實(shí)現(xiàn) 2.1 發(fā)送端USB接口方案 如圖4所示,控制電路收發(fā)端計(jì)算機(jī)傳送的數(shù)據(jù),將其存入U(xiǎn)SB芯片內(nèi)部512 bit的FIFO中,同時(shí)產(chǎn)生表示FIFO空或非空的狀態(tài)信號(hào)u_flagc,當(dāng)u_flagc為高電平表示FIFO非空,反之即空。1 kBFIFO模塊是用來(lái)進(jìn)行數(shù)據(jù)緩沖,同時(shí)產(chǎn)生寫(xiě)滿(mǎn)wrfull的標(biāo)志信號(hào)與表示FIFO中還有多少bit數(shù)據(jù)未讀出的信號(hào)usedw。USB發(fā)送端狀態(tài)檢測(cè)與控制模塊用于檢測(cè)相應(yīng)狀態(tài)的標(biāo)志信號(hào),以產(chǎn)生異步讀取USB接口FIFO中數(shù)據(jù)的信號(hào)u_slrd,在u_slrd的上升沿將USB接口FIFO中的l bit讀出,同時(shí)將數(shù)據(jù)寫(xiě)入到l kBFIFO中。數(shù)據(jù)打包模塊是將數(shù)據(jù)按照幀格式打包處理。 ![]() 若u_flagc=1表示USB設(shè)備中有數(shù)據(jù)。FPGA控制電路從USB芯片中讀取數(shù)據(jù),接下來(lái)判斷FPGA控制電路的緩存是否還有空間,如果緩存未滿(mǎn),則將從USB芯片中讀得的數(shù)據(jù)寫(xiě)入FPGA緩存中。在實(shí)際調(diào)試中發(fā)現(xiàn),wrfull為高電平不會(huì)出現(xiàn),因?yàn)樵谟行r(shí)間段內(nèi),讀取數(shù)據(jù)的速率要比寫(xiě)入快。 2.3數(shù)據(jù)組幀模塊 完成將數(shù)據(jù)組幀和短包發(fā)送功能。當(dāng)1 kB FIFO中數(shù)據(jù)有512 bit時(shí),進(jìn)行數(shù)據(jù)打包發(fā)送,即首先發(fā)送幀頭數(shù)據(jù)E25F35,接著發(fā)送表示幀長(zhǎng)度的數(shù)據(jù),最后發(fā)送512 bit的幀數(shù)據(jù)。當(dāng)傳輸文件的最后一幀數(shù)據(jù)不足512 bit時(shí),才用短包發(fā)送功能。首先將剩余數(shù)據(jù)打包,先發(fā)送幀頭數(shù)據(jù),再發(fā)送剩余數(shù)據(jù)大小,最后發(fā)送剩余數(shù)據(jù)。 數(shù)據(jù)流在物理層上是以幀為單位進(jìn)行傳送的,因此將數(shù)據(jù)送入物理層之前必須對(duì)數(shù)據(jù)進(jìn)行組幀。數(shù)據(jù)幀結(jié)構(gòu),如圖7所示。 ![]() 24 bit代表這個(gè)包的包頭,其值為E25F35。9 bit代表這個(gè)包中有效數(shù)據(jù)的bit數(shù)。512×8 bit代表512 bit數(shù)據(jù),其中有效數(shù)據(jù)的個(gè)數(shù)由包頭前面的9 bit所標(biāo)識(shí)。接收端只有在檢測(cè)到包頭E25F35后,才會(huì)處理包頭前面的9 bit和包頭后面的512×8 bit。 ![]() 組幀的流程,如圖6所示。usedw表示1 kB FIFO內(nèi)所存儲(chǔ)的未讀數(shù)據(jù)的bit數(shù)。若usedw≥512則表1 kB FIFO內(nèi)有512個(gè)數(shù)據(jù)可以被打成一個(gè)完整的包。若usedw<512表示緩存中的數(shù)據(jù)不足一幀,這時(shí)判斷1 kB FIFO中是否還有數(shù)據(jù)。若usedw>0,則表示FIFO內(nèi)還有數(shù)據(jù)。 Timer_ count是一個(gè)特殊的計(jì)數(shù)器,它表示連續(xù)多少個(gè)時(shí)鐘周期沒(méi)有從USB讀取過(guò)數(shù)據(jù),當(dāng)從USB讀取數(shù)據(jù)時(shí),它會(huì)被清零。若Time_count=1 024l貝0表示l 024個(gè)時(shí)鐘周期都沒(méi)有從USB讀取過(guò)數(shù)據(jù),便把1 kB FIFO中剩余的數(shù)據(jù)補(bǔ)零打包發(fā)送出去。 2.4發(fā)送端OSB接口電路實(shí)現(xiàn) 發(fā)送端USB接口電路,如圖8所示。 ![]() 2.5 發(fā)送端接口電路數(shù)據(jù)波形 圖9是利用FPGA開(kāi)發(fā)工具QuartusⅡ6.O提供的虛擬邏輯分析儀邏輯分析測(cè)試圖。如圖9所示,u_flagc是USB芯片中FIFO的空滿(mǎn)信號(hào),它表示USB的FIFO中是否有數(shù)據(jù),若u_flagc為高電平表示有數(shù)據(jù)。bit_out是數(shù)據(jù)進(jìn)行組幀打包后輸出的比特流,比特流將送入通信系統(tǒng)的基帶部分進(jìn)行信道編碼。 bit_valid為高電平對(duì)應(yīng)bit_out中的有效數(shù)據(jù)。rdusedw表示FPGA控制電路FIFO中的剩余數(shù)據(jù)。當(dāng)FPGA控制電路FIFO中的數(shù)據(jù)滿(mǎn)512 bit時(shí),控制電路從FIF0中讀取一幀數(shù)據(jù)。state表示狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換,0表示等待狀態(tài),狀態(tài)1時(shí)發(fā)送幀頭數(shù)據(jù),狀態(tài)2時(shí)發(fā)送幀長(zhǎng)數(shù)據(jù),狀態(tài)3時(shí)發(fā)送有效數(shù)據(jù)。 ![]() 3 收端計(jì)算機(jī)與UWB通信系統(tǒng)接口的實(shí)現(xiàn) 3.1 接收端USB接口方案 如圖10所示,數(shù)據(jù)解幀模塊通過(guò)串行移位寄存器對(duì)比特流數(shù)據(jù)進(jìn)行初步緩存,同時(shí)進(jìn)行數(shù)據(jù)幀頭檢測(cè),一旦檢測(cè)到幀頭,并且FIFO中有存儲(chǔ)空間,就對(duì)緩存的比特流進(jìn)行解幀處理,將解幀后的數(shù)據(jù)送入128 kB FIFO,否則一直檢測(cè)幀頭。128 kB FIFO模塊用于進(jìn)行數(shù)據(jù)緩沖,匹配前后模塊之間速率。USB接收端狀態(tài)檢測(cè)與控制模塊是用來(lái)檢測(cè)相應(yīng)狀態(tài)的標(biāo)志信號(hào),產(chǎn)生同步寫(xiě)入U(xiǎn)SB接口FIFO中數(shù)據(jù)的信號(hào)u_ifclk和u_slwr,在u_ifclk的上升沿與u_slwr有效電平期間,將基帶模塊輸出到總線(xiàn)上的數(shù)據(jù)寫(xiě)入U(xiǎn)SB接口芯片中。 3.2 接收端USB接口芯片控制電路 流程如圖11所示。 ![]() 若檢測(cè)到USB的讀取請(qǐng)求信號(hào),便檢測(cè)RAM的狀態(tài),若有數(shù)據(jù),便將數(shù)據(jù)發(fā)給USB。u_flagb為高電平表示USB芯片可以接收數(shù)據(jù),否則不可以接收數(shù)據(jù)。Usedw>0表示128 kB FIFO中有數(shù)據(jù)可以取,Usedw=0表示128 kB FIF0無(wú)數(shù)據(jù)可以取,此時(shí)向USB芯片寫(xiě)數(shù)據(jù)的控制信號(hào)處于無(wú)效狀態(tài)。 3.3 檢測(cè)幀頭并存儲(chǔ)數(shù)據(jù)到FIFO流程 流程如圖12所示。首先將接收數(shù)據(jù)通過(guò)35 bit深度的移位寄存器進(jìn)行數(shù)據(jù)緩存,同時(shí)在緩沖的比特流中檢測(cè)幀頭,一旦檢測(cè)到幀頭,便將幀長(zhǎng)度數(shù)據(jù)取出,這時(shí)檢測(cè)128 kB FIFO是否有存儲(chǔ)空間,若有空間則將一幀數(shù)據(jù)進(jìn)行接收存儲(chǔ),否則就丟棄該幀數(shù)據(jù),重新檢測(cè)幀頭。在輸入的比特流中若檢測(cè)到“E25F35”,則認(rèn)為它是幀頭標(biāo)志,并將其后共512 bit的有效數(shù)據(jù)寫(xiě)入RAM。若在有效數(shù)據(jù)中再次出現(xiàn)幀頭標(biāo)志“E25F35”則不進(jìn)行幀頭判斷。 ![]() 將數(shù)據(jù)寫(xiě)入128 kB FIFO的條件是: (1)幀同步,即能夠檢測(cè)到有效的幀頭數(shù)據(jù)E25F35; (2)若frame_length表示幀長(zhǎng)度數(shù)據(jù),fifo_depth表示FIF0可以容納的數(shù)據(jù)深度。128 kB FIFO中有frame_length的剩余空間可以容納數(shù)據(jù),否則丟掉該幀數(shù)據(jù)。 檢測(cè)條件是usedw+frame_length 3.4 接收端USB接口電路實(shí)現(xiàn) 接收端USB接口電路,如圖13所示。 ![]() 3.5 接收端接口電路數(shù)據(jù)波形 圖14是利用FPGA開(kāi)發(fā)工具Quartus II 6.0提供的虛擬邏輯分析儀進(jìn)行邏輯分析測(cè)試時(shí)的截圖。如圖14所示,dataout是基帶模塊輸出到總線(xiàn)上的音視頻數(shù)據(jù),detect_state表示幀檢測(cè)狀態(tài)。0表示處于等待檢測(cè)狀態(tài),從0跳轉(zhuǎn)到1表示進(jìn)入幀檢測(cè)狀態(tài),從1跳轉(zhuǎn)到2表示已經(jīng)進(jìn)入幀同步狀態(tài),從2跳轉(zhuǎn)到3表示檢測(cè)到數(shù)據(jù),同時(shí)將數(shù)據(jù)寫(xiě)入到FIFO中。 ![]() u_flagb表示USB芯片中FIFO空滿(mǎn)的信號(hào),u_flagb為高電平表示可以向USB芯片寫(xiě)數(shù)據(jù)。若u_flagb為低電平,表示USB芯片F(xiàn)IFO已滿(mǎn),不能再寫(xiě)入數(shù)據(jù)。u_ifelk為同步寫(xiě)時(shí)鐘信號(hào),u_slwr是控制寫(xiě)入信號(hào),當(dāng)u_slwr為低電平時(shí),將dataout寫(xiě)入U(xiǎn)SB 芯片。 作者:陳琛 廖丁毅 桂林電子科技大學(xué)信息與通信學(xué)院,廣西桂林541004 來(lái)源:電子技術(shù) 2009(12) |