張 椅,張 儀,練俊君
(重慶川儀軟件有限公司,重慶 401121)
現場總線技術以其高度的開放性、高傳輸精度和可互操作性,在工業自動化領域獲得了越來越多的應用。在傳統工業領域,下層儀表通過現場總線的方式與控制系統進行通信。總線常采用菊花鏈式的拓撲結構,控制系統通過總線上的曼徹斯特碼獲取儀表上傳的各種信息。由于這種兩線制通信方式中,所有儀表共享總線,一旦總線出現問題可能造成整個通信網絡的崩潰。現場總線技術采用的是串行數據傳輸方式,其傳輸速率低(僅為31.25 kbit/s),隨著總線負載儀表的增多其傳輸距離逐漸下降。
針對現行的兩線制通信的缺陷,提出將下層多個儀表的數據通過一個網關進行匯聚。網關和儀表之間采用點對點的通信方式。由于網關匯聚了多路儀表上傳的信息,為了保證數據能夠快速無誤地傳送到控制系統,使用現場可編程門陣列 (field programmable gate array,FPGA)對數據進行加工處理。充分利用FPGA的并行處理能力,同時對多路儀表的數據進行編解碼,從而能夠有效保障數據的傳輸速率。為了保證傳輸數據的準確性,在FPGA進行曼徹斯特編碼時使用多種校驗方式。
本文基于對FPGA和現場儀表通信的研究,將FPGA應用到現場儀表的通信網絡中,利用FPGA的并行、高速處理能力,提出了一種基于現場總線高速通信的曼徹斯特編解碼方法[1]。
曼徹斯特編碼電平跳變的規則是:低電平的中間時刻跳變表示‘0’,用高電平中間時刻的跳變表示‘1’。曼徹斯特碼如圖1所示。因而這樣防止時鐘同步的丟失,或來自低頻率位移在貧乏補償的模擬鏈接位錯誤。實際上,二進制數據被傳輸通過這個電纜,不是作為一個序列的邏輯1或0來發送的。它具有自同步能力和良好的抗干擾性能[3]。但每一個碼元都被調成兩個電平,所以數據傳輸速率只有調制速率的1/2。在工業控制領域,由于曼徹斯特碼編碼方式簡單易行、無直流分量,且包含有豐富的時鐘信息,被廣泛用作高速基帶數據傳輸。

圖1 曼徹斯特碼
FPGA是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。FPGA具有可重復編程,易于維護,方便移植、升級和擴展,豐富的外設接口等優點,同時FPGA采用并行的處理方式,支持更快的速度和更高的帶寬,滿足實時處理的要求。結合FPGA開發的優勢,利用Verilog HDL硬件描述語言完成了曼徹斯特編解碼模塊的設計,在此基礎上加入了CRC校驗、奇偶校驗,進一步提高編解碼器的檢錯能力,保證傳輸數據的正確性。
編碼系統框圖如圖2所示。

圖2 編碼系統框圖
①編碼器首先將外部的并行二進制數據轉化為串行信息。
②對串行數據進行曼徹斯特編碼,再加上同步字和奇偶校驗位。編碼器邏輯如圖3所示。

圖3 編碼器邏輯圖
在每個周期的開頭增加同步字,然后再輸入數據進行編碼。若輸入數據為“1”,編碼通過輸出一個下降沿來表示;當輸入數據為“0”時,編碼則輸出一個上升沿。數據輸入完成后,對輸入的數據進行奇偶校驗,如果在輸入的數據中“1”的個數為奇數,編碼器輸出一個上跳電平,反之若數據中“1”的個數為偶數則輸出一個下跳電平。
曼徹斯特解碼是編碼的逆過程。解碼過程分為同步字的校驗識別、有效數據位的解碼和奇偶校驗三個部分。
解碼的關鍵在于:必須監測同步字,才可以開始解碼周期。故解碼器必須不停地檢測輸入數據是否已有同步字。由于曼徹斯特碼自帶定時時鐘,故可從數據中分離出同步時鐘。采用傳統的數字鎖相環的方法分離時鐘,然后將時鐘和數據進行處理,使曼碼數據轉化為非歸零二進制數據。解碼系統框圖如圖4所示。
情到深處文自流,學生走入文本,與作者產生共鳴,這樣的練筆離不開教師圍繞文本內容展開的情感和語言的雙重鋪墊,學生情感的閘門一經打開,其創作的靈感就能如泉水一樣噴涌而出。

圖4 解碼系統框圖
①使用高頻時鐘掃描同步字頭。
②檢測到同步字頭后進入解碼周期,通過高頻時鐘掃描高低電平持續周期的長短來判定二進制碼。
③對有效數據位解碼完成后,進入CRC校驗。
④奇偶校驗。
⑤校驗完成后,并行輸出有效的二進制數據。
智能網關是一個用于系統中網絡通信的中轉服務設備,能夠實現數據匯聚、數據分流和控制流、服務流傳輸。智能網關主要用來分擔控制器的通信功能,讓控制器能夠更加專注于計算和控制功能,加快網絡數據吞吐和通信效率,實現對多路智能儀表數據采集功能。智能網關架構如圖5所示。

圖5 智能網關架構圖
智能網關基于Xilinx ZYNQ平臺進行設計,主要負責三個方向數據流的處理和通信。智能網關與現場儀表(或其他智能終端)進行通信。負責將各個儀表(終端)的數據集中采集;對上通過以太網端口將控制流數據最終傳送到控制器;同時將服務流數據傳送到交換機,最終上傳至云平臺經過計算和處理,以頁面終端或APP的形式呈現給用戶。智能網關與現場儀表之間采用兩線制進行通信,由于FPGA具有豐富的接口資源且獨特的并行處理方式,因此智能網關能夠與多組現場儀表并行通信,大大改善了數據的傳輸效率。同時,FPGA具有豐富的時鐘資源,基于FPGA的曼徹斯特編解碼模塊能夠大大提高數據的傳輸速率。
智能網關從總體結構上分為五個部分,參見圖6智能網關詳細框圖如圖6所示。

圖6 智能網關詳細框圖
①FPGA芯片,內部由MAC IP-core[4]、BRAM、處理器等部件組成。其中MAC通過硬件描述在FPGA片內實現以太網MAC的功能。BRAM是FPGA片內的硬件邏輯實現的存儲器,通過對應的硬件描述和參數配置實現各種緩沖區設計;處理器是由FPGA片內硬件邏輯組成的32位微處理器,主要負責主程序的運行和處理。
②以太網端口,主要由以太網PHY和網絡變壓器組成,完成網絡數據收發的傳輸。
③串行FLASH,用來保存FPGA硬件代碼和程序代碼,便于FPGA芯片上電時加載。
④SRAM存儲單元和電源。存儲單元用來承擔程序加載和運行時的緩沖區,以及智能數據的臨時緩沖區。電源主要給FPGA芯片、各個端口以及存儲單元供電。
⑤智能端口模組即曼碼編解碼模塊,通過多組隔離的智能端口與智能儀表進行數據通信,并將采集到的數據送到處理器和存儲單元。
智能網關從功能層次上可以劃分為三個部分,主要包括以太網通信單元、核心處理單元和智能儀表(或終端)數據采集單元。以太網通信單元通過以太網端口發送和接受網絡數據,內部設計了濾波器和對應的網絡MAC處理,可有效抑制扭曲和控制數據包流動。以太網通信單元通過直接內存存取(direet memory access,DMA)將通過的數據送到核心處理單元
進行處理;智能儀表數據采集單元對下通信,經過通信線路能與多路智能儀表進行數據通信,同時將采集的多組數據經過雙端口緩沖區傳遞到核心處理單元;核心處理單元經過FPGA內部處理器運行的程序完成主要的數據轉存功能,將智能儀表數據采集單元的緩沖數據經過一定的排列通過以太網通信單元傳送給上層設備。
當前,現場總線技術不論是在離散工業還是流程工業,都得到了廣泛的應用。隨著信息化技術的發展,智能化設備越來越多,數據來源與數據類型也不斷增多,這給傳統的儀表行業帶來了巨大的挑戰。傳統的現場總線技術采用串行的數據傳輸方式,無法提供高速、可靠的數據傳輸手段。本文基于FPGA,提出了一種新型的工業智能網關方案。該方案不僅大大提高了現場儀表與上層設備的傳輸速率,而且解決了現場設備服務和運行數據無法處理及多個設備同時通信的問題。為工廠從自動化向數字化和智能化的轉變提供了理論基礎。