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