張 椅,張 儀,練俊君
(重慶川儀軟件有限公司,重慶 401121)
現(xiàn)場總線技術(shù)以其高度的開放性、高傳輸精度和可互操作性,在工業(yè)自動化領(lǐng)域獲得了越來越多的應(yīng)用。在傳統(tǒng)工業(yè)領(lǐng)域,下層儀表通過現(xiàn)場總線的方式與控制系統(tǒng)進行通信??偩€常采用菊花鏈式的拓撲結(jié)構(gòu),控制系統(tǒng)通過總線上的曼徹斯特碼獲取儀表上傳的各種信息。由于這種兩線制通信方式中,所有儀表共享總線,一旦總線出現(xiàn)問題可能造成整個通信網(wǎng)絡(luò)的崩潰?,F(xiàn)場總線技術(shù)采用的是串行數(shù)據(jù)傳輸方式,其傳輸速率低(僅為31.25 kbit/s),隨著總線負載儀表的增多其傳輸距離逐漸下降。
針對現(xiàn)行的兩線制通信的缺陷,提出將下層多個儀表的數(shù)據(jù)通過一個網(wǎng)關(guān)進行匯聚。網(wǎng)關(guān)和儀表之間采用點對點的通信方式。由于網(wǎng)關(guān)匯聚了多路儀表上傳的信息,為了保證數(shù)據(jù)能夠快速無誤地傳送到控制系統(tǒng),使用現(xiàn)場可編程門陣列 (field programmable gate array,FPGA)對數(shù)據(jù)進行加工處理。充分利用FPGA的并行處理能力,同時對多路儀表的數(shù)據(jù)進行編解碼,從而能夠有效保障數(shù)據(jù)的傳輸速率。為了保證傳輸數(shù)據(jù)的準確性,在FPGA進行曼徹斯特編碼時使用多種校驗方式。
本文基于對FPGA和現(xiàn)場儀表通信的研究,將FPGA應(yīng)用到現(xiàn)場儀表的通信網(wǎng)絡(luò)中,利用FPGA的并行、高速處理能力,提出了一種基于現(xiàn)場總線高速通信的曼徹斯特編解碼方法[1]。
曼徹斯特編碼電平跳變的規(guī)則是:低電平的中間時刻跳變表示‘0’,用高電平中間時刻的跳變表示‘1’。曼徹斯特碼如圖1所示。因而這樣防止時鐘同步的丟失,或來自低頻率位移在貧乏補償?shù)哪M鏈接位錯誤。實際上,二進制數(shù)據(jù)被傳輸通過這個電纜,不是作為一個序列的邏輯1或0來發(fā)送的。它具有自同步能力和良好的抗干擾性能[3]。但每一個碼元都被調(diào)成兩個電平,所以數(shù)據(jù)傳輸速率只有調(diào)制速率的1/2。在工業(yè)控制領(lǐng)域,由于曼徹斯特碼編碼方式簡單易行、無直流分量,且包含有豐富的時鐘信息,被廣泛用作高速基帶數(shù)據(jù)傳輸。
圖1 曼徹斯特碼
FPGA是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。FPGA具有可重復(fù)編程,易于維護,方便移植、升級和擴展,豐富的外設(shè)接口等優(yōu)點,同時FPGA采用并行的處理方式,支持更快的速度和更高的帶寬,滿足實時處理的要求。結(jié)合FPGA開發(fā)的優(yōu)勢,利用Verilog HDL硬件描述語言完成了曼徹斯特編解碼模塊的設(shè)計,在此基礎(chǔ)上加入了CRC校驗、奇偶校驗,進一步提高編解碼器的檢錯能力,保證傳輸數(shù)據(jù)的正確性。
編碼系統(tǒng)框圖如圖2所示。
圖2 編碼系統(tǒng)框圖
①編碼器首先將外部的并行二進制數(shù)據(jù)轉(zhuǎn)化為串行信息。
②對串行數(shù)據(jù)進行曼徹斯特編碼,再加上同步字和奇偶校驗位。編碼器邏輯如圖3所示。
圖3 編碼器邏輯圖
在每個周期的開頭增加同步字,然后再輸入數(shù)據(jù)進行編碼。若輸入數(shù)據(jù)為“1”,編碼通過輸出一個下降沿來表示;當(dāng)輸入數(shù)據(jù)為“0”時,編碼則輸出一個上升沿。數(shù)據(jù)輸入完成后,對輸入的數(shù)據(jù)進行奇偶校驗,如果在輸入的數(shù)據(jù)中“1”的個數(shù)為奇數(shù),編碼器輸出一個上跳電平,反之若數(shù)據(jù)中“1”的個數(shù)為偶數(shù)則輸出一個下跳電平。
曼徹斯特解碼是編碼的逆過程。解碼過程分為同步字的校驗識別、有效數(shù)據(jù)位的解碼和奇偶校驗三個部分。
解碼的關(guān)鍵在于:必須監(jiān)測同步字,才可以開始解碼周期。故解碼器必須不停地檢測輸入數(shù)據(jù)是否已有同步字。由于曼徹斯特碼自帶定時時鐘,故可從數(shù)據(jù)中分離出同步時鐘。采用傳統(tǒng)的數(shù)字鎖相環(huán)的方法分離時鐘,然后將時鐘和數(shù)據(jù)進行處理,使曼碼數(shù)據(jù)轉(zhuǎn)化為非歸零二進制數(shù)據(jù)。解碼系統(tǒng)框圖如圖4所示。
情到深處文自流,學(xué)生走入文本,與作者產(chǎn)生共鳴,這樣的練筆離不開教師圍繞文本內(nèi)容展開的情感和語言的雙重鋪墊,學(xué)生情感的閘門一經(jīng)打開,其創(chuàng)作的靈感就能如泉水一樣噴涌而出。
圖4 解碼系統(tǒng)框圖
①使用高頻時鐘掃描同步字頭。
②檢測到同步字頭后進入解碼周期,通過高頻時鐘掃描高低電平持續(xù)周期的長短來判定二進制碼。
③對有效數(shù)據(jù)位解碼完成后,進入CRC校驗。
④奇偶校驗。
⑤校驗完成后,并行輸出有效的二進制數(shù)據(jù)。
智能網(wǎng)關(guān)是一個用于系統(tǒng)中網(wǎng)絡(luò)通信的中轉(zhuǎn)服務(wù)設(shè)備,能夠?qū)崿F(xiàn)數(shù)據(jù)匯聚、數(shù)據(jù)分流和控制流、服務(wù)流傳輸。智能網(wǎng)關(guān)主要用來分擔(dān)控制器的通信功能,讓控制器能夠更加專注于計算和控制功能,加快網(wǎng)絡(luò)數(shù)據(jù)吞吐和通信效率,實現(xiàn)對多路智能儀表數(shù)據(jù)采集功能。智能網(wǎng)關(guān)架構(gòu)如圖5所示。
圖5 智能網(wǎng)關(guān)架構(gòu)圖
智能網(wǎng)關(guān)基于Xilinx ZYNQ平臺進行設(shè)計,主要負責(zé)三個方向數(shù)據(jù)流的處理和通信。智能網(wǎng)關(guān)與現(xiàn)場儀表(或其他智能終端)進行通信。負責(zé)將各個儀表(終端)的數(shù)據(jù)集中采集;對上通過以太網(wǎng)端口將控制流數(shù)據(jù)最終傳送到控制器;同時將服務(wù)流數(shù)據(jù)傳送到交換機,最終上傳至云平臺經(jīng)過計算和處理,以頁面終端或APP的形式呈現(xiàn)給用戶。智能網(wǎng)關(guān)與現(xiàn)場儀表之間采用兩線制進行通信,由于FPGA具有豐富的接口資源且獨特的并行處理方式,因此智能網(wǎng)關(guān)能夠與多組現(xiàn)場儀表并行通信,大大改善了數(shù)據(jù)的傳輸效率。同時,F(xiàn)PGA具有豐富的時鐘資源,基于FPGA的曼徹斯特編解碼模塊能夠大大提高數(shù)據(jù)的傳輸速率。
智能網(wǎng)關(guān)從總體結(jié)構(gòu)上分為五個部分,參見圖6智能網(wǎng)關(guān)詳細框圖如圖6所示。
圖6 智能網(wǎng)關(guān)詳細框圖
①FPGA芯片,內(nèi)部由MAC IP-core[4]、BRAM、處理器等部件組成。其中MAC通過硬件描述在FPGA片內(nèi)實現(xiàn)以太網(wǎng)MAC的功能。BRAM是FPGA片內(nèi)的硬件邏輯實現(xiàn)的存儲器,通過對應(yīng)的硬件描述和參數(shù)配置實現(xiàn)各種緩沖區(qū)設(shè)計;處理器是由FPGA片內(nèi)硬件邏輯組成的32位微處理器,主要負責(zé)主程序的運行和處理。
②以太網(wǎng)端口,主要由以太網(wǎng)PHY和網(wǎng)絡(luò)變壓器組成,完成網(wǎng)絡(luò)數(shù)據(jù)收發(fā)的傳輸。
③串行FLASH,用來保存FPGA硬件代碼和程序代碼,便于FPGA芯片上電時加載。
④SRAM存儲單元和電源。存儲單元用來承擔(dān)程序加載和運行時的緩沖區(qū),以及智能數(shù)據(jù)的臨時緩沖區(qū)。電源主要給FPGA芯片、各個端口以及存儲單元供電。
⑤智能端口模組即曼碼編解碼模塊,通過多組隔離的智能端口與智能儀表進行數(shù)據(jù)通信,并將采集到的數(shù)據(jù)送到處理器和存儲單元。
智能網(wǎng)關(guān)從功能層次上可以劃分為三個部分,主要包括以太網(wǎng)通信單元、核心處理單元和智能儀表(或終端)數(shù)據(jù)采集單元。以太網(wǎng)通信單元通過以太網(wǎng)端口發(fā)送和接受網(wǎng)絡(luò)數(shù)據(jù),內(nèi)部設(shè)計了濾波器和對應(yīng)的網(wǎng)絡(luò)MAC處理,可有效抑制扭曲和控制數(shù)據(jù)包流動。以太網(wǎng)通信單元通過直接內(nèi)存存取(direet memory access,DMA)將通過的數(shù)據(jù)送到核心處理單元
進行處理;智能儀表數(shù)據(jù)采集單元對下通信,經(jīng)過通信線路能與多路智能儀表進行數(shù)據(jù)通信,同時將采集的多組數(shù)據(jù)經(jīng)過雙端口緩沖區(qū)傳遞到核心處理單元;核心處理單元經(jīng)過FPGA內(nèi)部處理器運行的程序完成主要的數(shù)據(jù)轉(zhuǎn)存功能,將智能儀表數(shù)據(jù)采集單元的緩沖數(shù)據(jù)經(jīng)過一定的排列通過以太網(wǎng)通信單元傳送給上層設(shè)備。
當(dāng)前,現(xiàn)場總線技術(shù)不論是在離散工業(yè)還是流程工業(yè),都得到了廣泛的應(yīng)用。隨著信息化技術(shù)的發(fā)展,智能化設(shè)備越來越多,數(shù)據(jù)來源與數(shù)據(jù)類型也不斷增多,這給傳統(tǒng)的儀表行業(yè)帶來了巨大的挑戰(zhàn)。傳統(tǒng)的現(xiàn)場總線技術(shù)采用串行的數(shù)據(jù)傳輸方式,無法提供高速、可靠的數(shù)據(jù)傳輸手段。本文基于FPGA,提出了一種新型的工業(yè)智能網(wǎng)關(guān)方案。該方案不僅大大提高了現(xiàn)場儀表與上層設(shè)備的傳輸速率,而且解決了現(xiàn)場設(shè)備服務(wù)和運行數(shù)據(jù)無法處理及多個設(shè)備同時通信的問題。為工廠從自動化向數(shù)字化和智能化的轉(zhuǎn)變提供了理論基礎(chǔ)。