本發(fā)明提供一種基于fpga和cpld的曼徹斯特碼通訊協(xié)議自適應方法,屬于工業(yè)控制自動化通信領域。
背景技術:
曼徹斯特碼與二進制碼相比,具有如下優(yōu)點:波形中在每一位碼元中間都有跳變,因此自帶時鐘信號,便于接收端提取時鐘信號;傳輸時無直流分量可降低系統(tǒng)功耗;曼徹斯特碼傳輸方式非常適合于多路數(shù)據(jù)的快速切換。所以曼徹斯特碼在許多領域得到廣泛應用,如電信業(yè),工業(yè)控制,車輛總線,石油勘測探井等。
中國專利cn105187070a公開了一種曼徹斯特編碼信號解碼方法,包括:接收曼徹斯特編碼信號;根據(jù)所述曼徹斯特編碼信號的理論頭電平持續(xù)時間確定采樣周期,在每一所述碼元的前后兩個采樣周期中均勻地設置相同數(shù)目的多個采樣點,并獲取每個采樣點對應的高、低電平;根據(jù)所述碼元的前后兩個采樣周期內的高電平采樣點的個數(shù)對所述曼徹斯特編碼信號進行修正;根據(jù)曼徹斯特編碼規(guī)則,對修正后的數(shù)據(jù)信號進行解碼。該發(fā)明只能識別單一的曼徹斯特碼通訊協(xié)議,在當今復雜、多樣性的工業(yè)控制系統(tǒng)中不具備通用性與兼容性。
中國專利cn103888143a公開了一種曼徹斯特碼接收電路,其包括:模擬電路,其被配置為將通過通信傳輸路徑接收的模擬信號轉換為基于曼徹斯特碼的數(shù)字信號;和特性補償單元,其被配置為補償上升延遲特性和下降延遲特性中的至少一個,其中所述上升延遲特性中所述數(shù)字信號的上升時間大于下降時間,所述下降延遲特性中所述數(shù)字信號的下降時間大于上升時間。該發(fā)明所述電路含模擬電路、數(shù)字電路,信號完整性不可靠,且電路繁雜。
技術實現(xiàn)要素:
本發(fā)明為了解決上述問題,提出了一種基于fpga和cpld的曼徹斯特碼通訊協(xié)議自適應方法,包括:
預設不同曼徹斯特碼通訊協(xié)議的數(shù)據(jù)接收、解碼、編碼、發(fā)送模塊,接收、解碼模塊用于接收來自數(shù)據(jù)鏈路層的數(shù)據(jù),并將數(shù)據(jù)解析出地址碼和數(shù)據(jù)碼,編碼、發(fā)送模塊用于將地址碼和數(shù)據(jù)碼編譯成不同格式的數(shù)據(jù)幀并發(fā)送出數(shù)據(jù)鏈路層。
數(shù)據(jù)幀格式識別與適應模塊,該模塊中不同的數(shù)據(jù)鏈路層協(xié)議對應著不同優(yōu)先級的數(shù)據(jù)幀格式,數(shù)據(jù)幀格式識別與適應模塊取出當前有效的數(shù)據(jù)幀格式的地址碼和數(shù)據(jù)碼傳給應用層,同時為應用層傳給數(shù)據(jù)鏈路層的數(shù)據(jù)限定地址碼和數(shù)據(jù)碼的格式。
這種基于fpga/cpld的曼徹斯特碼通訊協(xié)議自適應的方法,自動識別輸入數(shù)據(jù)的幀格 式,讀取數(shù)據(jù)內容,并選擇相匹配的輸出數(shù)據(jù)幀格式。不同系統(tǒng)所采用的不同通訊協(xié)議可用相同的fpga/cpld相同編碼來實現(xiàn),完成一個接口通用的,功能易于擴展的自適應的數(shù)據(jù)鏈路層協(xié)議組件,使之能更好的滿足各種工業(yè)控制系統(tǒng)條件下的通信要求。
附圖說明
圖1是現(xiàn)有技術中的一種曼徹斯特碼信號解碼方法。
圖2是本發(fā)明的一種基于fpga/cpld的曼徹斯特碼通訊協(xié)議自適應方法的框圖。
具體實施方式
本發(fā)明的基于fpga/cpld的曼徹斯特碼通訊協(xié)議自適應方法,包括:預設不同曼徹斯特碼通訊協(xié)議的數(shù)據(jù)接收、解碼、編碼、發(fā)送模塊,接收、解碼模塊用于接收來自數(shù)據(jù)鏈路層的數(shù)據(jù),并將數(shù)據(jù)解析出地址碼和數(shù)據(jù)碼,編碼、發(fā)送模塊用于將地址碼和數(shù)據(jù)碼編譯成不同格式的數(shù)據(jù)幀并發(fā)送出數(shù)據(jù)鏈路層。
以fpga和cpld等可編程邏輯器件為載體,以曼徹斯特碼為編碼規(guī)則的通訊協(xié)議識別與處理方法;從端口接收的數(shù)據(jù)經過接收和解碼模塊,將數(shù)據(jù)幀解析出地址碼和數(shù)據(jù)碼以及數(shù)據(jù)有效位標志;數(shù)據(jù)幀格式識別與適應模塊根據(jù)數(shù)據(jù)有效位和地址碼將數(shù)據(jù)內容傳給相應寄存器,并向譯碼、發(fā)送模塊發(fā)出使能信號;應用層接收來自數(shù)據(jù)幀識別與適應模塊的數(shù)據(jù),并將要輸出的數(shù)據(jù)配上地址碼傳給編碼、發(fā)送模塊;最終根據(jù)使能位選擇與接收的數(shù)據(jù)幀格式相匹配的編碼、發(fā)送模塊發(fā)送信號。
上述基于fpga和cpld的曼徹斯特碼通訊協(xié)議自適應方法,預置若干種接收、解碼模塊,所有接收、解碼模塊統(tǒng)計每一幀數(shù)據(jù)的長度,當數(shù)據(jù)幀長度與各自內置的長度設置相匹配時輸出有效位標識,每個模塊處理一種數(shù)據(jù)幀格式的信號即一種曼徹斯特碼通訊協(xié)議,接收、解碼模塊的數(shù)量根據(jù)所需兼容的協(xié)議數(shù)量而定,接收、編碼模塊輸出地址碼、數(shù)據(jù)碼和有效標志位。
上述基于fpga和cpld的曼徹斯特碼通訊協(xié)議自適應方法,數(shù)據(jù)幀格式識別與適應模塊接收所有接收、解碼模塊的輸出信號,一對通訊裝置之下只有一種通訊協(xié)議,相應的若干個接收、解碼模塊中,只有一個是有效工作并能給出有效位標志,數(shù)據(jù)幀格式識別與適應模塊根據(jù)有效標志位選中一個接收、解碼模塊的輸出,而將其他接收、解碼模塊的輸出過濾掉,應用層從數(shù)據(jù)幀格式識別與適應模塊讀取數(shù)據(jù)內容。
上述基于fpga和cpld的曼徹斯特碼通訊協(xié)議自適應方法,與接收、解碼模塊相對應的,預置若干種編碼發(fā)送模塊,每一種數(shù)據(jù)幀格式都有唯一接收、解碼模塊和編碼、發(fā)送模塊,應用層將要輸出的數(shù)據(jù)發(fā)送給所有編碼、發(fā)送模塊,根據(jù)發(fā)送使能位,只有一個編碼、發(fā)送模塊的輸出將從發(fā)送端口傳出。
如圖2所示,上述基于fpga和cpld的曼徹斯特碼通訊協(xié)議自適應方法,包括如下步驟(以數(shù)據(jù)幀格式n為例):
步驟一:端口接收到一幀數(shù)據(jù)幀格式為n的曼徹斯特碼通訊協(xié)議數(shù)據(jù),所有接收、解碼模塊都對這幀數(shù)據(jù)進行處理,但只有能處理幀格式n的接收、解碼模塊能輸出有效位標志,接收、解碼模塊(協(xié)議n)輸出地址碼、數(shù)據(jù)碼和有效位(n)標志;
步驟二:
3)數(shù)據(jù)幀格式識別與適應模塊選取帶有效位(n)標志的地址碼、數(shù)據(jù)碼(n)進行處理后傳給應用層;
4)數(shù)據(jù)幀格式識別與適應模塊輸出發(fā)送使能位(n);
步驟三:應用層將數(shù)據(jù)傳給所有編碼、發(fā)送模塊;發(fā)送使能位(n)使能編碼、發(fā)送模塊(協(xié)議n)的輸出數(shù)據(jù)給輸出端口。
所述的基于fpga和cpld的曼徹斯特碼通訊協(xié)議自適應方法,支持所有基于fpga和cpld的曼徹斯特碼通訊協(xié)議,通訊協(xié)議根據(jù)曼徹斯特碼數(shù)據(jù)幀長度的不同而不同。
以上說明對本發(fā)明而言只是說明性的,而非限制性的,本領域普通技術人員理解,在不脫離以下所附權利要求所限定的精神和范圍的情況下,可做出許多修改、變化或等效,但都將落入本發(fā)明的保護范圍內。