本發(fā)明涉及集成電路應(yīng)用領(lǐng)域,尤其涉及一種USB數(shù)據(jù)監(jiān)測裝置、方法及系統(tǒng)。
背景技術(shù):
自1998年由Compaq、Intel、Microsoft、NEC等公司制定USB總線以來,已經(jīng)經(jīng)歷了USB1.1、USB2.0、USB OTG等幾代,發(fā)展到現(xiàn)在最新的USB3.0,USB總線以其方便、快速、穩(wěn)定、即插即用等優(yōu)點(diǎn),迅速受到人們的歡迎和喜愛。
在現(xiàn)有技術(shù)中,監(jiān)測USB數(shù)據(jù)都需要專用的邏輯分析儀,專用的邏輯分析儀成本較高、結(jié)構(gòu)復(fù)雜、用戶接口少、無法定制化。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種USB數(shù)據(jù)監(jiān)測裝置、方法及系統(tǒng),以提供一種新的USB數(shù)據(jù)監(jiān)測技術(shù)。
本發(fā)明提供了一種USB數(shù)據(jù)監(jiān)測裝置,包括:USB座子、監(jiān)測模塊及數(shù)據(jù)接口,其中,
USB座子包括用于連接第一設(shè)備的第一USB座子、用于連接第二設(shè)備的第二USB座子,第一USB座子與第二USB座子電連接,第一設(shè)備與第二設(shè)備通過USB座子交互通信數(shù)據(jù);
數(shù)據(jù)接口連接監(jiān)測模塊及上位機(jī);
監(jiān)測模塊基于FPGA(Field-Programmable GateArray,現(xiàn)場可編程門陣列)器件實(shí)現(xiàn),連接USB座子及數(shù)據(jù)接口,用于監(jiān)測并存儲通信數(shù)據(jù),通過數(shù)據(jù)接口發(fā)送通信數(shù)據(jù)至上位機(jī)。
進(jìn)一步的,還包括存儲模塊,存儲模塊用于存儲通信數(shù)據(jù);監(jiān)測模塊與存儲模塊連接,還用于在內(nèi)部存儲空間不足時,將通信數(shù)據(jù)存儲在存儲模塊內(nèi),在需要發(fā)送通信數(shù)據(jù)時,從存儲模塊內(nèi)讀取通信數(shù)據(jù)并發(fā)送。
進(jìn)一步的,存儲模塊包括SDRAM(synchronous dynamic random-access memory,同步動態(tài)隨機(jī)存取存儲器)、RAM(random-access memory,隨機(jī)存取存儲器)、FlashMemory(閃存)中的至少一種。
進(jìn)一步的,數(shù)據(jù)接口用于將來自上位機(jī)的數(shù)據(jù)讀取請求轉(zhuǎn)發(fā)至監(jiān)測模塊,檢測模塊還用于在接收到數(shù)據(jù)讀取請求后,調(diào)用數(shù)據(jù)讀取請求對應(yīng)的通信數(shù)據(jù),通過數(shù)據(jù)接口發(fā)送至上位機(jī)。
進(jìn)一步的,數(shù)據(jù)接口包括UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)接口和/或SPI(Serial Peripheral Interface,串行外設(shè)接口)接口。
進(jìn)一步的,監(jiān)測模塊包括采樣解碼模塊、PRO(邏輯處理)模塊、FIFO(First Input First Output,先進(jìn)先出存儲器)及PLL(Phase Locked Loop,鎖相環(huán)電路),其中,
鎖相環(huán)電路用于輸出高倍時鐘;
先進(jìn)先出存儲器用于存儲通信數(shù)據(jù);
采樣解碼模塊的信號采樣端分別與USB座子的D+/D-(數(shù)據(jù)線正信號/數(shù)據(jù)線負(fù)信號)連接,用于使用高倍時鐘對數(shù)據(jù)線正信號/數(shù)據(jù)線負(fù)信號D+/D-進(jìn)行采樣,并對采集得到的有效數(shù)據(jù)進(jìn)行NRZI(No Return Zero-Inverse,非歸零反相編碼)解碼,得到有效字段;
邏輯處理模塊用于分析有效字段,得到通信數(shù)據(jù),并存儲到先進(jìn)先出存儲器。
進(jìn)一步的,監(jiān)測模塊還包括存儲控制器,存儲控制器連接先進(jìn)先出存儲器及外部的存儲模塊,用于在先進(jìn)先出存儲器的存儲控制不足時,將通信數(shù)據(jù)存入存儲模塊,并讀取存儲模塊內(nèi)的通信數(shù)據(jù),通過先進(jìn)先出存儲器及數(shù)據(jù)接口發(fā)送至上位機(jī)。
本發(fā)明提供了一種USB數(shù)據(jù)監(jiān)測方法,應(yīng)用于本發(fā)明提供的USB數(shù)據(jù)監(jiān)測裝置,USB數(shù)據(jù)監(jiān)測方法包括:
第一設(shè)備連接第一USB座子,第二設(shè)備連接第二USB座子,第一設(shè)備與第二設(shè)備通過第一USB座子及第二USB座子交互通信數(shù)據(jù);
監(jiān)測模塊監(jiān)測并存儲通信數(shù)據(jù);
通過數(shù)據(jù)接口發(fā)送通信數(shù)據(jù)至上位機(jī)。
進(jìn)一步的,還包括:
監(jiān)測模塊在監(jiān)測到通信數(shù)據(jù)后,判斷內(nèi)部存儲空間是否充足;
在內(nèi)部存儲空間不足時,將通信數(shù)據(jù)存儲在外部的存儲模塊內(nèi);
在需要發(fā)送通信數(shù)據(jù)時,從存儲模塊內(nèi)讀取通信數(shù)據(jù)并發(fā)送。
進(jìn)一步的,在通過數(shù)據(jù)接口發(fā)送通信數(shù)據(jù)至上位機(jī)之前,還包括:
數(shù)據(jù)接口將來自上位機(jī)的數(shù)據(jù)讀取請求轉(zhuǎn)發(fā)至監(jiān)測模塊;
檢測模塊在接收到數(shù)據(jù)讀取請求后,調(diào)用數(shù)據(jù)讀取請求對應(yīng)的通信數(shù)據(jù),通過數(shù)據(jù)接口發(fā)送至上位機(jī)。
進(jìn)一步的,監(jiān)測模塊監(jiān)測并存儲通信數(shù)據(jù)包括:
鎖相環(huán)電路輸出高倍時鐘;
采樣解碼模塊的信號采樣端分別與USB座子的數(shù)據(jù)線正信號/數(shù)據(jù)線負(fù)信號D+/D-連接,使用高倍時鐘對數(shù)據(jù)線正信號/數(shù)據(jù)線負(fù)信號D+/D-進(jìn)行采樣,并對采集得到的有效數(shù)據(jù)進(jìn)行非歸零反相編碼NRZI解碼,得到有效字段;
邏輯處理模塊分析有效字段,得到通信數(shù)據(jù),并存儲到先進(jìn)先出存儲器。
本發(fā)明還提供了一種USB數(shù)據(jù)監(jiān)測系統(tǒng),包括第一設(shè)備、第二設(shè)備、以及本發(fā)明提供的USB數(shù)據(jù)監(jiān)測裝置,第一設(shè)備連接第一USB座子,第二設(shè)備連接第二USB座子,第一設(shè)備與第二設(shè)備通過第一USB座子及第二USB座子交互通信數(shù)據(jù),USB數(shù)據(jù)監(jiān)測裝置用于監(jiān)測并存儲通信數(shù)據(jù),通過數(shù)據(jù)接口發(fā)送通信數(shù)據(jù)至上位機(jī)。
本發(fā)明的有益效果:
本發(fā)明提供了一種USB數(shù)據(jù)監(jiān)測裝置,該USB數(shù)據(jù)監(jiān)測裝置中的監(jiān)測模塊基于FPGA硬件實(shí)現(xiàn),與現(xiàn)有的邏輯分析儀相比,在實(shí)現(xiàn)了USB數(shù)據(jù)監(jiān)測的同時,結(jié)構(gòu)簡單、體積小、功耗低、成本低,并且還能提供多種數(shù)字接口,對于定制化需求能夠提供很好地支持,同時,在嵌入到系統(tǒng)當(dāng)中,并不會改變系統(tǒng)結(jié)構(gòu),提高系統(tǒng)穩(wěn)定性。
附圖說明
圖1為本發(fā)明第一實(shí)施例提供的USB數(shù)據(jù)監(jiān)測裝置的結(jié)構(gòu)示意圖;
圖2為本發(fā)明第二實(shí)施例提供的USB數(shù)據(jù)監(jiān)測方法的流程圖;
圖3為本發(fā)明第三實(shí)施例提供的USB數(shù)據(jù)監(jiān)測裝置的結(jié)構(gòu)示意圖;
圖4為本發(fā)明第三實(shí)施例提供的監(jiān)測模塊的結(jié)構(gòu)示意圖;
圖5為本發(fā)明第三實(shí)施例提供的USB數(shù)據(jù)監(jiān)測系統(tǒng)的示意圖;
圖6為本發(fā)明第三實(shí)施例提供的場景一的連接示意圖;
圖7為本發(fā)明第三實(shí)施例提供的場景二的連接示意圖。
具體實(shí)施方式
現(xiàn)通過具體實(shí)施方式結(jié)合附圖的方式對本發(fā)明做輸出進(jìn)一步的詮釋說明。
第一實(shí)施例:
圖1為本發(fā)明第一實(shí)施例提供的USB數(shù)據(jù)監(jiān)測裝置的結(jié)構(gòu)示意圖,由圖1可知,在本實(shí)施例中,本發(fā)明提供的USB數(shù)據(jù)監(jiān)測裝置包括:USB座子11(如1所示的11a及11b)、監(jiān)測模塊12及數(shù)據(jù)接口13(圖1所示的13a及13b),其中,
USB座子11包括用于連接第一設(shè)備的第一USB座子11a、用于連接第二設(shè)備的第二USB座子11b,第一USB座子與第二USB座子電連接,第一設(shè)備與第二設(shè)備通過USB座子交互通信數(shù)據(jù);在實(shí)際應(yīng)用中,通信數(shù)據(jù)包括作業(yè)數(shù)據(jù)、控制信令等,作業(yè)數(shù)據(jù)如待打印的文檔,控制信令如打印、取消打印等;
數(shù)據(jù)接口13連接監(jiān)測模塊及上位機(jī);
監(jiān)測模塊12基于FPGA器件實(shí)現(xiàn),連接USB座子11及數(shù)據(jù)接口13,用于監(jiān)測并存儲通信數(shù)據(jù),通過數(shù)據(jù)接口發(fā)送通信數(shù)據(jù)至上位機(jī)。
在一些實(shí)施例中,如圖1所示,上述實(shí)施例中的裝置還包括存儲模塊14,存儲模塊14用于存儲通信數(shù)據(jù);監(jiān)測模塊12與存儲模塊14連接,還用于在內(nèi)部存儲空間不足時,將通信數(shù)據(jù)存儲在存儲模塊14內(nèi),在需要發(fā)送通信數(shù)據(jù)時,從存儲模塊14內(nèi)讀取通信數(shù)據(jù)并發(fā)送。
在一些實(shí)施例中,上述實(shí)施例中的存儲模塊14包括SDRAM、RAM、FlashMemory中的至少一種。在實(shí)際應(yīng)用中,存儲模塊14還可以由其他類型的具備存儲功能的設(shè)備來實(shí)現(xiàn)。
在一些實(shí)施例中,上述實(shí)施例中的數(shù)據(jù)接口13用于將來自上位機(jī)的數(shù)據(jù)讀取請求轉(zhuǎn)發(fā)至監(jiān)測模塊12,檢測模塊12還用于在接收到數(shù)據(jù)讀取請求后,調(diào)用數(shù)據(jù)讀取請求對應(yīng)的通信數(shù)據(jù),通過數(shù)據(jù)接口13發(fā)送至上位機(jī)。本實(shí)施例主要用來保護(hù)USB數(shù)據(jù)監(jiān)測裝置在上位機(jī),如電腦PC等的控制下,上報(bào)通信數(shù)據(jù)的機(jī)制;在實(shí)際應(yīng)用中,USB數(shù)據(jù)監(jiān)測裝置還可以是在監(jiān)測到通信數(shù)據(jù)后,直接上報(bào)給上位機(jī),供上位機(jī)實(shí)時了解通信詳情,也可以降低對USB數(shù)據(jù)監(jiān)測裝置內(nèi)部存儲空間的需求。
在一些實(shí)施例中,上述實(shí)施例中的數(shù)據(jù)接口包括UART接口和/或SPI接口,或者其他的數(shù)據(jù)接口,如USB接口等。
在一些實(shí)施例中,上述實(shí)施例中的監(jiān)測模塊12包括采樣解碼模塊、PRO模塊、FIFO及PLL,其中,
PLL用于輸出高倍時鐘;
FIFO用于存儲通信數(shù)據(jù);
采樣解碼模塊的信號采樣端分別與USB座子的D+/D-連接,用于使用高倍時鐘對D+/D-進(jìn)行采樣,并對采集得到的有效數(shù)據(jù)進(jìn)行NRZI解碼,得到有效字段;
PRO模塊用于分析有效字段,得到通信數(shù)據(jù),并存儲到FIFO。
在一些實(shí)施例中,上述實(shí)施例中的監(jiān)測模塊還包括存儲控制器,存儲控制器連接FIFO及外部的存儲模塊,用于在FIFO的存儲控制不足時,將通信數(shù)據(jù)存入存儲模塊,并讀取存儲模塊內(nèi)的通信數(shù)據(jù),通過FIFO及數(shù)據(jù)接口發(fā)送至上位機(jī)。
對應(yīng)的,本發(fā)明提供了一種USB數(shù)據(jù)監(jiān)測系統(tǒng),包括第一設(shè)備、第二設(shè)備、以及本發(fā)明提供的USB數(shù)據(jù)監(jiān)測裝置,第一設(shè)備連接第一USB座子,第二設(shè)備連接第二USB座子,第一設(shè)備與第二設(shè)備通過第一USB座子及第二USB座子交互通信數(shù)據(jù),USB數(shù)據(jù)監(jiān)測裝置用于監(jiān)測并存儲通信數(shù)據(jù),通過數(shù)據(jù)接口發(fā)送通信數(shù)據(jù)至上位機(jī)。
第二實(shí)施例:
圖2為本發(fā)明第二實(shí)施例提供的USB數(shù)據(jù)監(jiān)測方法的流程圖,由圖2可知,在本實(shí)施例中,本發(fā)明提供的USB數(shù)據(jù)監(jiān)測方法包括:
S201:第一設(shè)備連接第一USB座子,第二設(shè)備連接第二USB座子,第一設(shè)備與第二設(shè)備通過第一USB座子及第二USB座子交互通信數(shù)據(jù);
S202:監(jiān)測模塊監(jiān)測并存儲通信數(shù)據(jù);
S203:監(jiān)測模塊通過數(shù)據(jù)接口發(fā)送通信數(shù)據(jù)至上位機(jī)。
在一些實(shí)施例中,上述實(shí)施例中的方法還包括:
監(jiān)測模塊在監(jiān)測到通信數(shù)據(jù)后,判斷內(nèi)部存儲空間是否充足;
在內(nèi)部存儲空間不足時,將通信數(shù)據(jù)存儲在外部的存儲模塊內(nèi);
在需要發(fā)送通信數(shù)據(jù)時,從存儲模塊內(nèi)讀取通信數(shù)據(jù)并發(fā)送。
在一些實(shí)施例中,上述實(shí)施例中的方法在通過數(shù)據(jù)接口發(fā)送通信數(shù)據(jù)至上位機(jī)之前,還包括:
數(shù)據(jù)接口將來自上位機(jī)的數(shù)據(jù)讀取請求轉(zhuǎn)發(fā)至監(jiān)測模塊;
檢測模塊在接收到數(shù)據(jù)讀取請求后,調(diào)用數(shù)據(jù)讀取請求對應(yīng)的通信數(shù)據(jù),通過數(shù)據(jù)接口發(fā)送至上位機(jī)。
在一些實(shí)施例中,上述實(shí)施例中的步驟S202監(jiān)測模塊監(jiān)測并存儲通信數(shù)據(jù)包括:
鎖相環(huán)電路輸出高倍時鐘;
采樣解碼模塊的信號采樣端分別與USB座子的數(shù)據(jù)線正信號/數(shù)據(jù)線負(fù)信號D+/D-連接,使用高倍時鐘對數(shù)據(jù)線正信號/數(shù)據(jù)線負(fù)信號D+/D-進(jìn)行采樣,并對采集得到的有效數(shù)據(jù)進(jìn)行非歸零反相編碼NRZI解碼,得到有效字段;
邏輯處理模塊分析有效字段,得到通信數(shù)據(jù),并存儲到先進(jìn)先出存儲器。
現(xiàn)結(jié)合具體應(yīng)用場景對本發(fā)明做進(jìn)一步的詮釋說明。
第三實(shí)施例:
針對現(xiàn)有USB1.1監(jiān)測的定制方案,結(jié)構(gòu)復(fù)雜會會影響系統(tǒng)的可靠性,用戶接口少不便于兼容,由于使用專用的IC無法定制化等問題,本實(shí)施例提供了一種新的USB數(shù)據(jù)監(jiān)測裝置。
如圖3所示,本實(shí)施例提供的USB數(shù)據(jù)監(jiān)測裝置包括:設(shè)置在產(chǎn)品兩端的USB座子、基于FPGA實(shí)現(xiàn)監(jiān)測模塊、SDRAM及數(shù)據(jù)接口UART或SPI。
在使用時,如圖4所示,A、B裝置分別使用USB線連接到本產(chǎn)品兩端的USB座子,F(xiàn)PGA實(shí)現(xiàn)進(jìn)行解碼、分析、處理、存儲、上傳,具體的,F(xiàn)PAG使用高倍時鐘采集樣D+/D-信號,通過采樣解碼模塊對采集到的有效數(shù)據(jù)進(jìn)行NRZI解碼,通過Pro模塊邏輯處理模塊分析有效字段并通過FIFO和DDR控制器將數(shù)據(jù)緩存到SDRAM中,上位機(jī)可以通過UART或SPI調(diào)取SDRAM中的數(shù)據(jù)。FPGA使用的高倍時鐘是通過內(nèi)部PLL倍頻實(shí)現(xiàn)的。FPGA內(nèi)部的DDR控制器主要負(fù)責(zé)SDRAM的讀寫操作。
如圖5所示,A、B裝置分別使用USB線連接到本產(chǎn)品兩端的USB座子,F(xiàn)PGA進(jìn)行解碼、分析、處理、存儲、上傳。FPAG使用高倍時鐘采集樣D+/D-信號,通過采樣解碼模塊對采集到的有效數(shù)據(jù)進(jìn)行NRZI解碼,通過Pro模塊分析有效字段并通過FIFO和DDR控制器將數(shù)據(jù)緩存到SDRAM中,上位機(jī)可以通過UART或SPI調(diào)取SDRAM中的數(shù)據(jù)。FPGA使用的高倍時鐘是通過內(nèi)部PLL倍頻實(shí)現(xiàn)的。FPGA內(nèi)部的DDR控制器主要負(fù)責(zé)SDRAM的讀寫操作。當(dāng)本實(shí)施例提供的裝置嵌入到系統(tǒng)當(dāng)中,并不會改變系統(tǒng)結(jié)構(gòu),提高了系統(tǒng)穩(wěn)定性。并且結(jié)構(gòu)簡單、體積小、功耗低、成本低,并且能提供多種數(shù)字接口,對于定制化需求能夠提供很好地支持。
本實(shí)施例的場景一的連接如圖6所示,PC使用USB線連接到本產(chǎn)品的USB座子,鍵盤使用USB線連接到本產(chǎn)品的USB座子,F(xiàn)PGA采集D+、D-信號進(jìn)行解碼、分析、處理、存儲后通過UART接口上傳到PC。
本實(shí)施例的場景二的連接如圖7所示,PC使用USB線連接到本產(chǎn)品的USB座子,打印機(jī)使用USB線連接到本產(chǎn)品的USB座子,F(xiàn)PGA采集D+、D-信號進(jìn)行分析處理后通過UART接口上傳到PC。
綜上可知,通過本發(fā)明的實(shí)施,至少存在以下有益效果:
本發(fā)明提供了一種USB數(shù)據(jù)監(jiān)測裝置,該USB數(shù)據(jù)監(jiān)測裝置中的監(jiān)測模塊基于FPGA硬件實(shí)現(xiàn),與現(xiàn)有的邏輯分析儀相比,在實(shí)現(xiàn)了USB數(shù)據(jù)監(jiān)測的同時,結(jié)構(gòu)簡單、體積小、功耗低、成本低,并且還能提供多種數(shù)字接口,對于定制化需求能夠提供很好地支持,同時,在嵌入到系統(tǒng)當(dāng)中,并不會改變系統(tǒng)結(jié)構(gòu),提高系統(tǒng)穩(wěn)定性。
以上僅是本發(fā)明的具體實(shí)施方式而已,并非對本發(fā)明做任何形式上的限制,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對以上實(shí)施方式所做的任意簡單修改、等同變化、結(jié)合或修飾,均仍屬于本發(fā)明技術(shù)方案的保護(hù)范圍。