IR-UWB通信系統高速USB接口的設計與實現
若檢測到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”則不進行幀頭判斷。 本文引用地址:http://www.104case.com/article/157580.htm
將數據寫入128 kB FIFO的條件是:
(1)幀同步,即能夠檢測到有效的幀頭數據E25F35;
(2)若frame_length表示幀長度數據,fifo_depth表示FIF0可以容納的數據深度。128 kB FIFO中有frame_length的剩余空間可以容納數據,否則丟掉該幀數據。
檢測條件是usedw+frame_lengthfifo_depth,其中usedw表示FIFO中未讀數據的個數。
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芯片。
評論