IR-UWB通信系統(tǒng)高速USB接口的設(shè)計(jì)與實(shí)現(xiàn)
若檢測到USB的讀取請求信號(hào),便檢測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無數(shù)據(jù)可以取,此時(shí)向USB芯片寫數(shù)據(jù)的控制信號(hào)處于無效狀態(tài)。
3.3 檢測幀頭并存儲(chǔ)數(shù)據(jù)到FIFO流程
流程如圖12所示。首先將接收數(shù)據(jù)通過35 bit深度的移位寄存器進(jìn)行數(shù)據(jù)緩存,同時(shí)在緩沖的比特流中檢測幀頭,一旦檢測到幀頭,便將幀長度數(shù)據(jù)取出,這時(shí)檢測128 kB FIFO是否有存儲(chǔ)空間,若有空間則將一幀數(shù)據(jù)進(jìn)行接收存儲(chǔ),否則就丟棄該幀數(shù)據(jù),重新檢測幀頭。在輸入的比特流中若檢測到“E25F35”,則認(rèn)為它是幀頭標(biāo)志,并將其后共512 bit的有效數(shù)據(jù)寫入RAM。若在有效數(shù)據(jù)中再次出現(xiàn)幀頭標(biāo)志“E25F35”則不進(jìn)行幀頭判斷。 本文引用地址:http://m.butianyuan.cn/article/157580.htm
將數(shù)據(jù)寫入128 kB FIFO的條件是:
(1)幀同步,即能夠檢測到有效的幀頭數(shù)據(jù)E25F35;
(2)若frame_length表示幀長度數(shù)據(jù),fifo_depth表示FIF0可以容納的數(shù)據(jù)深度。128 kB FIFO中有frame_length的剩余空間可以容納數(shù)據(jù),否則丟掉該幀數(shù)據(jù)。
檢測條件是usedw+frame_lengthfifo_depth,其中usedw表示FIFO中未讀數(shù)據(jù)的個(gè)數(shù)。
3.4 接收端USB接口電路實(shí)現(xiàn)
接收端USB接口電路,如圖13所示。
3.5 接收端接口電路數(shù)據(jù)波形
圖14是利用FPGA開發(fā)工具Quartus II 6.0提供的虛擬邏輯分析儀進(jìn)行邏輯分析測試時(shí)的截圖。如圖14所示,dataout是基帶模塊輸出到總線上的音視頻數(shù)據(jù),detect_state表示幀檢測狀態(tài)。0表示處于等待檢測狀態(tài),從0跳轉(zhuǎn)到1表示進(jìn)入幀檢測狀態(tài),從1跳轉(zhuǎn)到2表示已經(jīng)進(jìn)入幀同步狀態(tài),從2跳轉(zhuǎn)到3表示檢測到數(shù)據(jù),同時(shí)將數(shù)據(jù)寫入到FIFO中。u_flagb表示USB芯片中FIFO空滿的信號(hào),u_flagb為高電平表示可以向USB芯片寫數(shù)據(jù)。若u_flagb為低電平,表示USB芯片F(xiàn)IFO已滿,不能再寫入數(shù)據(jù)。u_ifelk為同步寫時(shí)鐘信號(hào),u_slwr是控制寫入信號(hào),當(dāng)u_slwr為低電平時(shí),將dataout寫入U(xiǎn)SB芯片。
評論