本發明屬于工業控制領域,尤其涉及一種基于異步時鐘的高速數據傳輸裝置和方法,主要用于解決工業控制領域中高速實時數據的傳輸問題。
背景技術:
在工業控制領域目前流行著多種標準的通信協議,如RS485、RS232、CAN等,其通訊速率最高的RS484一般也工作在10M以下,所以不能用于傳輸高速數據。以太網能夠達到100M以上的通訊速率,但協議中的CSMA/CD訪問機制造成了實時性無法保證,不適于用于工控領域。
在高速數據傳輸領域SERDES技術占據著壟斷的地位,其傳輸速率一般在Gbit以上,這就造成適配的器件、芯片等均有很高的要求,從而造成了其成本的上升,通用性方面也較弱。
現有的數據恢復技術中有采用過采樣的方法進行數據恢復的技術,但其普遍采用的是時鐘數據恢復算法(CDR),若想準確的實現CDR就必須避免連續多位的0或1。這就要有復雜的編碼解碼手段,并且時鐘數據恢復的算法也很復雜,這樣就造成整個技術實現非常復雜。
技術實現要素:
為了解決工業控制領域中百兆級別的數據傳輸問題,本發明的目的之一是提供一種基于異步時鐘的高速數據傳輸裝置。
本發明解決其技術問題所采用的技術方案是:一種基于異步時鐘的高速數據傳輸裝置,包括一個控制單元,用于完成數據的收發控制,以及數據幀的組裝與解析;一個發送單元,用于進行數據輸出;一個發送RAM單元和一個接收RAM單元,用于對數據進行緩沖,提高收發通道與控制單元對接的效率與可靠性;一個信號轉換單元,用于物理層的信號匹配;一個時鐘單元,用于輸出多個相差一定角度的同頻時鐘;一個求或輸出單元以及多個數據恢復單元和通信通道,每個數據恢復單元分別用不同的時鐘進行數據采樣恢復工作。
所述的一種基于異步時鐘的高速數據傳輸裝置,其數據恢復單元的數目不低于四個。
所述的一種基于異步時鐘的高速數據傳輸方法,其通信通道接收LVDS、BLVDS或光纖信號。
所述的一種基于異步時鐘的高速數據傳輸方法,其數據恢復單元包括采樣單元、幀頭檢測單元、雙口RAM和校驗單元;所述的采樣單元用于采樣數據,所述的雙口RAM支持主控制邏輯與數據接收邏輯工作于不同的頻率下實現異步工作,所述的幀頭單元在檢測通過時將數據緩存至雙口RAM中,并對數據進行校驗,校驗通過則表示接收到正確數據并上傳數據,否則丟棄數據。
本發明的目的之二是提供一種采用分時采樣技術,使得在同頻異步時鐘域中能對高速數據進行可靠的恢復的基于異步時鐘的高速數據傳輸方法。
本發明解決其技術問題所采用的技術方案是:一種基于異步時鐘的高速數據傳輸方法,包括如下步驟
a)、控制單元根據設定幀格式將數據填充到發送RAM單元中,然后啟動發送指令;
b)、發送單元在收到發送指令后,在發送時鐘的上升沿發送數據,直到發送RAM單元中的數據被發送完為止;
c)、信號轉換單元將發送單元發送的Bit流轉換成物理鏈路對應的信號,通過發送通道發至接收方,完成發送過程;
d)、接收通道收到外部輸入信號后,首先經過信號轉換單元,然后將轉換后的信號送至芯片中;
e)、送入芯片的信號被同時送至多個數據恢復單元中,采樣單元基于各自的接收時鐘進行數據恢復。
進一步,所述的傳輸數據幀包含起始標志、幀頭、地址段、可變長數據段、校驗字段。
進一步,當采樣單元檢測到特定幀頭時表示數據幀的開始,開始將數據緩存至收口RAM中;幀接收完后校驗單元對數據進行校驗,可以為CRC、求和校驗等,校驗通過時,表示此通道正確的恢復了數據,校驗未通過時丟棄數據。
再進一步,數據恢復單元用求或輸出單元將正確的數據傳輸至RAM單元中。
更進一步,控制單元根據接收RAM單元發送來的ready信號讀取接收數據的讀取,最終完成整個數據的發送與接收恢復
本發明的有益效果是:工作時,控制單元完成數據的收發控制,發送RAM單元和接收RAM單元負責數據的緩存,發送單元和數據恢復單元分別負責數據的發送和接收,信號轉換單元負責物理層的信號匹配工作,高速數據收發單元只需根據本地時鐘便能完成數據的收發工作,通信的另一端也必須采用相同的高速數據收發單元與其對接。
傳輸方法中數據收發均采用頻率相同的本地時鐘,一個發送時鐘為360°,發送通道在時鐘的上升沿發送數據,接收通道設有n個接收單元,各個單元的采樣單元的采樣時鐘依次相差360/n度,從而保證數據至少能被一個單元正確恢復,最后將校驗通過的數據傳至控制單元。
與現有技術相比,本發明的通信速率得到了大幅提升,且通信速率可跟據實際情況靈活確定,適應性強;通信協議可自定義;降低了編程難度,在普通FPGA芯片中即可實現,實現簡單;對高速數據不但高效可靠,而且波特率可根據器件自行調整,有很強的靈活性。
附圖說明
圖1為本發明高速數據傳輸裝置的結構框圖;
圖2為高速數據發送與單元的邏輯功能連接關系示意圖;
圖3為高速數據收發單元間的連接示意圖。
具體實施方式
為了更加清楚的闡述本發明方案,下面結合附圖和實例對發明內容進行進一步的說明。應當理解,此處所描述的具體是實施例僅用于解釋本發明,保護范圍并不局限于所述實例。
參照圖1所示,本發明公開了一種基于異步時鐘的高速數據傳輸裝置,包括
一個控制單元,用于完成數據的收發控制,以及數據幀的組裝與解析。
一個發送單元,用于在時鐘的上升沿(或下降沿)進行數據輸出,無輸出時將信號置為常高(或常低)。
一個發送RAM單元和一個接收RAM單元,用于對數據進行緩沖,以提高收發通道與控制單元對接的效率與可靠性。
一個信號轉換單元,用于物理層的信號匹配。
一個時鐘單元,用于輸出多個相差一定角度的同頻時鐘,時鐘單元要求有足夠的精度。
一個求或輸出單元以及多個數據恢復單元和通信通道,每個數據恢復單元分別用不同的時鐘進行數據采樣恢復工作;若數據恢復單元數目為n(n≥4),則每個單元的工作時鐘間隔為360/n度,數據收發均采用頻率相同的本地時鐘,一個發送時鐘周期為360°,發送通道在時鐘上升沿發送數據,接收通道設有n個接收單元,各個單元的采樣時鐘依次相差360°/n,從而保證數據至少能被一個單元正確恢復,最后將校驗通過的數據傳至控制單元。
其中,所述數據恢復單元的數目不低于四個。
其中,所述的通信通道采用LVDS、BLVDS或光纖信號,通信通道采用等方式,要求滿足高速率和抗干擾能力需求。
此外,所述的數據恢復單元包括采樣單元、幀頭檢測單元、雙口RAM和校驗單元;所述的采樣單元用于在各自時鐘的上升沿(或下降沿)采樣數據,所述的雙口RAM支持主控制邏輯與數據接收邏輯工作于不同的頻率下實現異步工作,所述的幀頭單元在檢測通過時將數據緩存至雙口RAM中,并對數據進行校驗,校驗通過則表示接收到正確數據并上傳數據,否則丟棄數據。
工作時,控制單元完成數據的收發控制,發送RAM單元和接收RAM單元負責數據的緩存,發送單元和數據恢復單元分別負責數據的發送和接收,信號轉換單元負責物理層的信號匹配工作,高速數據收發單元只需根據本地時鐘便能完成數據的收發工作,通信的另一端也必須采用相同的高速數據收發單元與其對接。
本發明提供的采用多路恢復配合幀頭加校驗的實現方法不但簡單可靠,而且通過雙口RAM實現了收發通道與主邏輯單元的隔離,可以使兩者工作在不同的時鐘域內。另外通過對物理層鏈路的優化手段也增強了此技術手段的可靠性和抗干擾能力,更具有實用價值。
參照圖2所示,一種基于異步時鐘的高速數據傳輸方法,包括如下步驟:
a)、控制單元根據設定幀格式將數據填充到發送RAM單元中,然后啟動發送指令,所述的傳輸數據幀包含起始標志、幀頭、地址段、可變長數據段、校驗字段;
b)、發送單元在收到控制單元的發送指令后,在發送時鐘的上升沿發送數據,直到發送RAM單元中的數據被發送完為止;
c)、信號轉換單元將發送單元發送的Bit流轉換成物理鏈路對應的信號,通過發送通道發至接收方,完成發送過程;
d)、接收通道收到外部輸入信號后,首先經過信號轉換單元(相當于發送單元的逆過程),然后將轉換后的信號送至芯片中;
e)、送入芯片的信號被同時送至多個數據恢復單元中,采樣單元基于各自的接收時鐘進行數據恢復;
f)、當采樣單元檢測到特定幀頭時表示數據幀的開始,開始將數據緩存至收口RAM中;幀接收完后校驗單元對數據進行校驗,可以為CRC、求和校驗等,校驗通過時,表示此通道正確的恢復了數據,校驗未通過時丟棄數據;
g)、由于在同頻時鐘下,多個恢復單元必然有一個或多個采樣單元能夠落入數據信號的有效眼圖中,所以數據恢復單元中必然有正確數據輸出,用求或輸出單元將正確的數據傳輸至RAM單元中;
h)、控制單元根據接收RAM單元發送來的ready信號讀取接收數據的讀取,最終完成整個數據的發送與接收恢復。
本發明傳輸方法可在FPGA、CPLD等多種可編程器件上實現,支持單線LVDS、BLVDS、光纖等多種物理傳輸介質,傳輸速率最高可達到400M,可自定義傳輸協議,具有很強的實時性。
高速數據的傳輸必須是在兩個擁有相同高速數據收發單元的系統間進行,其連接關系如圖3所示,將高速數據收發單元1的發送接口連接至高速數據收發單元2的接收接口,同樣將單元1的接收接口連接至單元2的發送接口。
數據從單元1的發送接口發出后進入單元2的接收接口,然后依次經過采樣單元、幀頭檢測、雙口RAM、校驗單元,最終將多個單元輸出的結果通過求或后輸出正確結果。
上述實施例僅例示性說明本發明的原理及其功效,以及部分運用的實施例,對于本領域的普通技術人員來說,在不脫離本發明創造構思的前提下,還可以做出若干變形和改進,這些都屬于本發明的保護范圍。