專利名稱:一種基于fpga技術(shù)的光纖傳輸usb信號的裝置的制作方法
技術(shù)領(lǐng)域:
本實用新型涉及USB信號的傳輸,具體是一種基于FPGA技術(shù)的光纖來傳輸USB信 號的裝置。
背景技術(shù):
—般來說,USB設(shè)備與PC之間的通信是通過電纜實現(xiàn)的。電纜因為造價低廉,因 此在現(xiàn)實生活中廣泛應(yīng)用。然而因為電纜信號的抗衰減以及抗干擾性能不是很理想,所以 在USB規(guī)范中對電纜的長度有著嚴格限制,其通信距離也因此受到限制。相比之下,采用光 纖作為介質(zhì)來傳輸USB信號則可以大大提高USB系統(tǒng)的抗衰減和抗干擾性能。此外采用光 纖來傳輸USB信號,也為遠距離傳輸USB信號成為可能。 —般情況下PC機和USB設(shè)備之間的連接方式,前者為直接連接,這樣電纜的長度 不能超過5m。另外的常見方法則在PC機和USB設(shè)備之間級聯(lián)了一個hub。 USB規(guī)范中允許 最多級聯(lián)5個hub。 中國專利ZL02284431. 4提到了一種用光纖來傳輸USB信號的方法,但是這個專利 主要是基于全硬件(例如邏輯電路、驅(qū)動電路、激光檢測與接收發(fā)送電路等)的方式來進行 的。這種近似于全模擬電路的實現(xiàn)方式存在抗干擾能力不強的缺點。另外,USB高速模式 下的差分信號的電平很低,只有幾百毫伏。這種電壓在普通電路中,特別是邏輯電路中,都 被視為低電平。因此,國內(nèi)專利ZL02284431. 4提到的方法很難區(qū)分USB高速模式下的數(shù)據(jù) 狀態(tài)和空閑狀態(tài),即很難判斷當前是否有數(shù)據(jù)需要進行傳輸。另外,USB高速模式下的信號 速率達到480Mbps,而一般電路器件很難滿足這種速率下對各種指標的要求,比如對器件翻 轉(zhuǎn)時間、時序上的建立時間和保持時間的要求等。 在專利CN101176085A中公開了利用光纖以及其他介質(zhì)來進行USB信號的傳輸,但 是這個專利只是更多地強調(diào)其對延時的容忍度很高,更多地描述對如何增加延時容忍度的 實現(xiàn)方法,而并沒有很詳細描述其如何具體利用光纖來實現(xiàn)USB信號的傳輸。
實用新型內(nèi)容本實用新型的目的在于通過光纖來傳輸USB(通用串行總線)信號,以提高系統(tǒng)的 抗衰減和抗干擾性能,并為遠距離傳輸USB信號創(chuàng)造條件。 如果采用硬件電路的方式將USB信號到光信號兩者之間直接進行轉(zhuǎn)換,就很難保 證穩(wěn)定傳輸USB高速模式下的信號。但是,如果將USB高速信號數(shù)字化,再將其通過光纖來 傳輸,則可以很好避免上述提到的問題。 基于這個出發(fā)點,本實用新型提出了一種基于FPGA技術(shù)的光纖傳輸USB信號的裝 置,先將USB高速信號數(shù)字化,再將其通過光纖來傳輸,具體為該裝置包括PC端、USB設(shè) 備端及光纖,PC端部分包括hub、由FPGA實現(xiàn)的設(shè)備控制器、USB PHY、光模塊,USB設(shè)備端 包括hub、由FPGA實現(xiàn)的主機控制器、USB PHY、光模塊,兩個部分內(nèi)部的模塊均通過電路連 接,兩部分外部之間包括握手信號、USB數(shù)據(jù)信號以及監(jiān)控信號均通過光纖連接。[0009] 上述設(shè)備控制器和主機控制器的內(nèi)部均設(shè)置有通過電連接的主要負責檢測PC機 在枚舉USB設(shè)備過程中出現(xiàn)的握手信號的握手模塊,主要負責對數(shù)據(jù)的接收、存儲和發(fā)送 處理的數(shù)據(jù)收發(fā)模塊,及主要檢測PC機和USB設(shè)備的物理連接以及對系統(tǒng)狀態(tài)的處理的監(jiān) 控模塊。 設(shè)備控制器和主機控制器的握手模塊內(nèi)部均設(shè)置著通過電連接的上電初始子模 塊、USBPHY配置模塊、鏈路連接檢測子模塊、握手信號檢測子模塊和握手信號產(chǎn)生子模塊。 主機控制器的握手模塊內(nèi)部的握手信號產(chǎn)生子模塊設(shè)置著握手監(jiān)控子模塊、 CHIRPK碼檢測子模塊和CHIRP KJ序列產(chǎn)生子模塊;設(shè)備控制器的握手模塊內(nèi)部的握手信 號產(chǎn)生子模塊設(shè)置著握手監(jiān)控子模塊、CHIRP KJ序列檢測子模塊和CHIRPK碼產(chǎn)生子模塊。 本實用新型中,一套裝置的設(shè)備端掛載著13個USB設(shè)備。 由FPGA實現(xiàn)的設(shè)備控制器和主機控制器首先檢測PC機和USB設(shè)備與本裝置的物 理連接,由FPGA實現(xiàn)的設(shè)備控制器檢測PC機與本裝置的物理連接,同時主機控制器首先檢 測USB設(shè)備與本裝置的物理連接。當檢測到有效連接,主機控制器和設(shè)備控制器分別模擬 不同的USB角色,分別檢測握手信號,并在不同時間段做出響應(yīng)信號,進行PC機對USB設(shè)備 的握手; 當主機控制器和設(shè)備控制器分別檢測到有數(shù)據(jù)的時候,即啟動數(shù)據(jù)收發(fā)模塊對數(shù) 據(jù)進行處理,USB PHY芯片負責將USB差分信號轉(zhuǎn)換成并行數(shù)據(jù)信號,進而主機控制器或者 設(shè)備控制器截取該數(shù)據(jù),并根據(jù)協(xié)議進行打包,發(fā)送給光模塊,對方從光模塊接收到信號后 根據(jù)協(xié)議進行相應(yīng)的解包,然后再把得到的數(shù)據(jù)根據(jù)USB PHY芯片要求的數(shù)據(jù)格式將數(shù)據(jù) 發(fā)送給USB PHY芯片,USB PHY芯片再將該數(shù)據(jù)轉(zhuǎn)換成USB的差分信號,送到PC機或者USB 設(shè)備進行識別; 由FPGA實現(xiàn)的設(shè)備控制器和主機控制器中設(shè)置的數(shù)據(jù)收發(fā)模塊在空閑狀態(tài)就將 下一個幀的SYNC字符提前寫入RAM中,當本地的控制器中的數(shù)據(jù)收發(fā)模塊接收到經(jīng)過光纖 傳輸過來的USB幀信號后就馬上發(fā)送SYNC,在發(fā)送SYNC的同時,本地控制器的數(shù)據(jù)收發(fā)模 塊也開始存儲這次USB幀的信息,當發(fā)送完SYNC后,本地控制器的數(shù)據(jù)收發(fā)模塊就已經(jīng)存 儲了一定深度的數(shù)據(jù)。 主機控制器的握手模塊內(nèi)部的握手信號產(chǎn)生子模塊設(shè)置著握手監(jiān)控子模塊、 CHIRPK碼檢測子模塊和CHIRP KJ序列產(chǎn)生子模塊,后兩個模塊均與第一個模塊相連接,且 在其監(jiān)控下運行;設(shè)備控制器的握手模塊內(nèi)部的握手信號產(chǎn)生子模塊設(shè)置著握手監(jiān)控子模 塊、CHIRPKJ序列檢測子模塊和CHIRPK碼產(chǎn)生子模塊,后兩個模塊均與第一個模塊相連接, 且在其監(jiān)控下運行。 本實用新型的一套裝置的設(shè)備端掛載著13個USB設(shè)備。如果在外部再級聯(lián)hub 的話,可以掛載更多設(shè)備。 在上電后,本裝置會首先檢測PC機和USB設(shè)備與本裝置的物理連接是否有效。一 旦檢測到有效連接,裝置中的主機控制器和設(shè)備控制器分別模擬不同的USB角色,促使PC 機開始對設(shè)備進行握手。之后,兩個控制器會分別檢測握手信號,并在不同時間段做出響應(yīng) 信號,以完成PC機對USB設(shè)備的握手。當主機控制器和設(shè)備控制器分別檢測到有數(shù)據(jù)的時 候,即啟動數(shù)據(jù)收發(fā)模塊對數(shù)據(jù)進行處理。該數(shù)據(jù)收發(fā)模塊通過根據(jù)USB幀的特點,采用的 數(shù)據(jù)收發(fā)方法,一定程度上縮小了數(shù)據(jù)傳輸上的延時。[0019] 整個裝置對所有USB信號進行透明傳輸,因此不需要再對USB設(shè)備的驅(qū)動程序進 行額外的開發(fā)。本裝置支持對USB設(shè)備的熱插拔。而且,任意時刻PC端部分的狀態(tài)可以在 USB設(shè)備端部分反映出來,USB設(shè)備端部分的狀態(tài)也可以在PC機端部分反映出來。本實用 新型可以利用光纖穩(wěn)定傳輸USB高速信號,且兼容全速和低速信號。
圖1為本實用新型的PC機與設(shè)備的連接方式; 圖2為本實用新型的主機控制器或者設(shè)備控制器的內(nèi)部結(jié)構(gòu)圖; 圖3是主機控制器握手控制模塊的內(nèi)部結(jié)構(gòu)圖; 圖4是設(shè)備控制器握手控制模塊的內(nèi)部結(jié)構(gòu)圖; 圖5為本實用新型所采用的數(shù)據(jù)收發(fā)方法的原理圖。
具體實施方式從圖1可以看出,該方式下的裝置主要分為兩個部分,即PC端部分和USB設(shè)備端 部分。圖中也標示出了每個部分內(nèi)部的模塊。 見圖2,控制器的內(nèi)部結(jié)構(gòu)主要分為三個模塊。根據(jù)需要還可以在控制器內(nèi)部添加 加密模塊。握手模塊主要負責PC機在檢測USB設(shè)備中的握手信號,以及對不同時間節(jié)點的 握手信號做出相應(yīng)的響應(yīng)。數(shù)據(jù)收發(fā)模塊主要負責對數(shù)據(jù)的接收、存儲和發(fā)送處理。監(jiān)控 模塊主要檢測PC機和USB設(shè)備的物理連接以及對系統(tǒng)狀態(tài)的處理。 當上電的時候,PC端部分的設(shè)備控制器和設(shè)備端的主機控制器分別進行相應(yīng)的初 始化工作,見圖3和圖4。此時,PC端的USB PHY(USB底層物理傳輸芯片)被設(shè)備控制器設(shè) 置成CHIRP模式,以驅(qū)動USB的DP和匿兩根差分信號線上出現(xiàn)SEO信號。相應(yīng)地,設(shè)備端 的USB PHY (USB底層物理傳輸芯片)被主機控制器設(shè)置成全速模式,以使得USB的DP差分 信號線為高,匿為低,即進入全速模式的空閑狀態(tài)。這樣做,就不會使得PC機或者USB設(shè) 備在對方?jīng)]有物理連接的情況下自行開始握手。之后,兩個控制器分別檢測PC機和設(shè)備是 否都已經(jīng)物理連接。如果沒有,則繼續(xù)等待。如果是,則PC端的設(shè)備控制器將首先驅(qū)動PC 端的USB PHY進入全速模式。在檢測到PC機發(fā)送過來的連續(xù)的滿足一定時間長度的SEO 信號后,PC端的設(shè)備控制器通過光纖通知設(shè)備端的主機控制器驅(qū)動其USB PHY進入CHIRP 模式,以通知USB設(shè)備開始握手。之后,設(shè)備端的主機控制器再啟動檢測模塊,檢測USB設(shè) 備是否上報CHIRP K碼。如果沒有,則等待;如果有,則通過光纖通知PC端的設(shè)備控制器開 始向PC機報告CHIRP K碼,并且根據(jù)USB設(shè)備傳遞過來的信息控制CHIRP K碼的長度。之 后,PC端的設(shè)備控制器開始檢測PC是否報告CHIRP K J序列。如果沒有,則等待。如果有, 則通過光纖通知設(shè)備端的主機控制器向USB設(shè)備發(fā)送CHIRP K J序列,并根據(jù)PC傳遞過來 的信息決定CHIRP K J序列的長度。主機控制器和設(shè)備控制器會對握手事件進行同步。 在完成握手后再啟動數(shù)據(jù)收發(fā)模塊對USB的數(shù)據(jù)進行處理。這里以PC訪問一次 USB設(shè)備為例,說明這個裝置是如何通過光纖傳輸USB信號的,USB訪問PC也是同樣的方 式。在傳輸數(shù)據(jù)的時候,USB PHY芯片負責將USB差分信號轉(zhuǎn)換成并行數(shù)據(jù)信號。進而主 機控制器或者設(shè)備控制器截取該數(shù)據(jù),并根據(jù)協(xié)議進行打包,發(fā)送給光模塊。這樣,數(shù)據(jù)就 能夠通過光纖傳遞到對方。對方從光模塊接收到信號后根據(jù)協(xié)議進行相應(yīng)的解包,然后再把得到的數(shù)據(jù)根據(jù)USB PHY芯片要求的數(shù)據(jù)格式將數(shù)據(jù)發(fā)送給USB PHY芯片。USB PHY芯 片再將該數(shù)據(jù)轉(zhuǎn)換成USB的差分信號,從而被PC機或者USB設(shè)備所識別。 根據(jù)USB2. 0規(guī)范, 一個有效的USB幀包括SYNC、PID、DATA、CRC和E0P。而每個幀 的SYNC字符的結(jié)構(gòu)都是一樣的?;谶@一點,F(xiàn)PGA的數(shù)據(jù)收發(fā)模塊在空閑狀態(tài)就將下一 個幀的SYNC字符提前寫入RAM中。如圖5所示,DIR_R, NXT_R信號為對端USB PHY芯片根 據(jù)ULPI協(xié)議轉(zhuǎn)換出來的接口信號。這兩個信號與USB幀包括SYNC、 PID、 DATA、 CRC和EOP 是對應(yīng)的。通常情況下,USP PHY是從PID開始報告有效數(shù)據(jù)的,這樣的話,本地的FPGA就 會在接收到PID后再開始往本地的USB總線上驅(qū)動SYNC,見圖5上半部分。因此,延時會 增大。但是,按照這種新的方法,見圖5下半部分,當本地的FPGA接收到經(jīng)過光纖傳輸過來 的USB幀信號后就馬上發(fā)送SYNC。在發(fā)送SYNC的同時,本地FPGA也開始存儲這次USB幀 的PID、DATA、CRC等信息。當發(fā)送完SYNC后,本地FPGA也已經(jīng)存儲了一定深度的數(shù)據(jù)。因 此,本地FPGA可以接著發(fā)送PID, DATA, CRC等信息。這樣,既不會破壞當前USB幀的有效 性,又可以一定程度上縮小傳輸延時。雖然從圖5也可以看出本地在接收到對方的幀后只 是延時了很少的時鐘周期,但這對于USB通信來說是很有利的。
權(quán)利要求一種基于FPGA技術(shù)的光纖傳輸USB信號的裝置,包括PC端、USB設(shè)備端及光纖,其特征是PC端部分包括hub、由FPGA實現(xiàn)的設(shè)備控制器、USB PHY、光模塊,USB設(shè)備端包括hub、由FPGA實現(xiàn)的主機控制器、USB PHY、光模塊,兩個部分內(nèi)部的模塊均通過電路連接,兩部分外部之間包括握手信號、USB數(shù)據(jù)信號以及監(jiān)控信號均通過光纖連接。
2. 根據(jù)權(quán)利要求1所述的裝置,其特征是設(shè)備控制器和主機控制器的內(nèi)部均設(shè)置有 通過電連接的主要負責檢測PC機在枚舉USB設(shè)備過程中出現(xiàn)的握手信號的握手模塊,主要 負責對數(shù)據(jù)的接收、存儲和發(fā)送處理的數(shù)據(jù)收發(fā)模塊,及主要檢測PC機和USB設(shè)備的物理 連接以及對系統(tǒng)狀態(tài)的處理的監(jiān)控模塊。
3. 根據(jù)權(quán)利要求2所述的裝置,其特征是設(shè)備控制器和主機控制器的握手模塊內(nèi)部 均設(shè)置著通過電連接的上電初始子模塊、USB PHY配置模塊、鏈路連接檢測子模塊、握手信 號檢測子模塊和握手信號產(chǎn)生子模塊。
4. 根據(jù)權(quán)利要求3所述的裝置,其特征是主機控制器的握手模塊內(nèi)部的握手信號產(chǎn) 生子模塊設(shè)置著握手監(jiān)控子模塊、CHIRPK碼檢測子模塊和CHIRP KJ序列產(chǎn)生子模塊;設(shè)備 控制器的握手模塊內(nèi)部的握手信號產(chǎn)生子模塊設(shè)置著握手監(jiān)控子模塊、CHIRP KJ序列檢測 子模塊和CHIRPK碼產(chǎn)生子模塊。
5. 根據(jù)權(quán)利要求1所述的裝置,其特征是一套裝置的設(shè)備端掛載著13個USB設(shè)備。
專利摘要本實用新型提出了一種基于FPGA技術(shù)的光纖傳輸USB信號的裝置,先將USB高速信號數(shù)字化,再將其通過光纖來傳輸,具體裝置為PC端部分包括hub、由FPGA實現(xiàn)的設(shè)備控制器、USB PHY、光模塊,USB設(shè)備端包括hub、由FPGA實現(xiàn)的主機控制器、USB PHY、光模塊,兩個部分內(nèi)部的模塊均通過電路連接,兩部分外部之間包括握手信號、USB數(shù)據(jù)信號以及監(jiān)控信號均通過光纖連接。整個裝置采用的數(shù)據(jù)收發(fā)方法,一定程度上縮小了數(shù)據(jù)傳輸上的延時,對所有USB信號進行透明傳輸,任意時刻PC機的狀態(tài)可以在USB設(shè)備端部分反映出來,同理USB設(shè)備的狀態(tài)也可以在PC端部分反映出來,且兼容全速和低速信號。
文檔編號G06F13/38GK201477579SQ20092014091
公開日2010年5月19日 申請日期2009年6月2日 優(yōu)先權(quán)日2009年6月2日
發(fā)明者吳振峰, 孫述桂, 嵇凌, 張小輝, 秦志輝, 范志剛, 許廷麗 申請人:中國電子科技集團公司第三十四研究所