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