USB IP核的設計及FPGA驗證
本USB IP核已經應用于一款數據采集單芯片系統中。因此在進行FPGA驗證時,是將此IP核嵌入于此單芯片系統中進行的。此單芯片系統中嵌入UART模塊可與PC機的串口進行通信,此系統中的增強型8051MCU核對整個USB IP核進行相應的控制。FPGA驗證采用了Xilinx公司的ISE集成開發環境,在調試的過程中用了ChipSeope Pro軟邏輯分析儀。硬件平臺用Xilinx公司的Virtex4系列中XC4VLX60器件。
整個過程如下:
(1)USB從設備與PC機的USB接口連接,此時USB從設備要完成設備枚舉的過程。
(2)設備枚舉完成PC機會提示驅動程序還沒有裝,要求加載驅動程序在PC機上加驅動程序,USB的驅動程序直接與PC機的操作系統聯系,項目中的USB接口是在Windows XP操作系統中調試的。
(3)在驅動程序加載完成后,PC機會提示“現在可以正常通訊”,表明現在可以利用USB的應用層軟件進行通信了。
(4)將數據從PC機的應用層輸入,通過USB接口發給嵌入USB IP核的數據采集SoC芯片,然后通過其中的SoC中UART將數據返回給PC機,經過比較兩者數據完全相同,驗證表明了此IP核的正確。
圖5是在進行IP核FPGA驗證時,設備枚舉階段PC的USB主機發送給USB IP核的幀開始(SOF)包。
fs_clk為從PC機發過來的比特流恢復過來的12 MHz的時鐘信號。rx_data表示收到的數據,如圖5所示在rx_valid高電平時,表明收到的rx_data是有效的,從圖中可以看出收到了十六進制數“A5—43—85”,此包正是PC機發給USB IP核的SOF包。rxdp和rx_dn是串口接口引擎模塊中的信號,他經過一個三態門與圖1所示的D+和D一相連接。由圖中可以看出,在“85”收到時,rxdp和rx_dn的波形表明收到了PC機發過來的兩個fS_clk時鐘周期的SE0”表示包結束的信號。
5 結 語
本USB IP核在設計時,充分考慮到可重用性,其USB端點可進行相應的配置和擴展。同時針對目前SoC中常用的WishBone總線和AMBA ASB總線結構設計了總線適配器,在綜合前進行相關的宏定義就可以無縫接入SoC中。本USB IP核在實際項目中,與MCU核以及其他的IP核集成于一款數據采集SoC芯片中,該數據采集SoC已經處于版圖后仿真階段,即將流片。
評論