蔡 祥,江 冰
(河海大學 常州校區計算機與信息學院,江蘇 常州 213022)
在工業生產中,為檢驗產品在實際工作狀態下的電氣安全性能,必須進行交/直流耐壓試驗、絕緣電阻測量、泄漏電流測量、接地電阻測量等電氣測試。目前市場上所見的耐壓測試儀采用GB4706(等同IEC1010)標準,使用較多的是臺式結構的單項測試指標測試儀器,不能滿足用戶同時進行多指標綜合測試的需求,因此設計符合用戶需求能夠進行多指標綜合測試的測試系統網絡具有重要意義。由于在實際測量環境中存在高壓等復雜電磁環境,因此系統排除了易受干擾的無線網絡組網方案,采用了基于RS485的有線組網方案。基于RS485組建的半雙工網絡具有傳輸可靠、通訊距離遠、抗干擾能力強等優點,能夠滿足系統的設計需求。
圖1是測試系統的硬件設計方案框圖。系統由PC機、中控機和各組測試設備組成。PC機與中控機通過232聯機,操作員在PC機上通過上位機軟件設置工作參數、并通過觀察窗口實時觀察各組測試設備的工作情況,在PC機和中控機無法直接相連時通過USB存儲設備向中控機傳遞參數和數據,PC機上位機軟件可以將各種數據保存在數據庫中。下位機是多臺帶有485接口芯片的程控耐壓絕緣測試設備,下位機通過485總線[1]與中控機聯機組成半雙工網絡[2],中控機通過485總線直接控制各組測試設備,操作人員可以通過中控機設置工作參數,同時通過液晶屏實時觀察測試設備的工作狀態,并通過外接U盤保存測量數據。用于聯機的電纜使用普通的雙絞線,也可以使用具有較好電磁兼容性能的屏蔽雙絞線以增加網絡的抗干擾性。

圖1 基于485網絡的耐壓絕緣測試系統框
圖2是程控耐壓絕緣測試設備原理圖,圖3是耐壓絕緣測試系統中控機原理圖。測試設備和中控機的CPU均采用了Cygnal公司的一種混合信號系統級高速單片機C8051F020芯片[3]。芯片內有兩個獨立的 UART 串行接口分別實現 232通信和485通信。C8051F020單片機比一般的51單片機增加了許多功能,同時其可靠性和速度也有很大提高。

圖2 程控耐壓絕緣測試設備原理
串行接口 RS485[4]采用了 Maxim公司一種 RS-485芯片MAX485。MAX485是用于RS-485的低功耗收發器,在器件中具有一個驅動器和一個接收器。MAX485的驅動器擺率不受限制,可以實現最高 2.5 Mb/s的傳輸速率。在一條總線上最多可掛接32臺收發器。

圖3 耐壓絕緣測試系統中控機原理
系統中控機和下位機多臺測試設備之間建立485通信網絡,但 485串行通信標準只規定定義了電壓,阻抗等,沒用對軟件通信協議給予定義。目前在工業控制[5]中常用的通用工業標準是Modbus標準通信協議。Modbus標準通信協議可以將基于它的不同廠商的控制設備連成工業網絡。而使用標準通信協議設計復雜度和成本均要提高,并不適用項目中搭建的測試系統。因此系統參考OSI模型設計了實現簡單能可靠傳輸的通信協議[6]。
在開放系統互連(OSI,Open System Interconnection)七層模型中,層次化的結構模型使不同的系統不同的網絡之間實現可靠通信,在測試系統設計中規定:傳輸的數據量較小時,對傳輸錯誤的信息采取重發;傳輸的信息由測量參數組成,不需要進行額外的編譯碼和加密過程;數據的傳輸只傳輸一個數據包,因此不考慮傳輸層、會話層、表示層協議。應用層協議根據系統功能需求編寫,系統中物理層協議由485標準接口協議實現。
由上述分析可以獲得如圖4所示的OSI簡化模型,根據簡化的通信系統模型,可以編寫出簡單易實現的通信協議。MAX485芯片的性能使系統中的組網設備連接數限制在32以內,因此在系統的通信協議中網絡層即地址位只需要設置成一位。
表1是根據OSI簡化模型編寫的通信協議,該協議由起始位、地址、數據位、校驗位和結束位組成。當接收端接收到起始字符時,接收過程開始,當接收端接收到結束字符時,一次接收過程完成。

圖4 OSI簡化模型

表1 基于四層OSI模型的通信協議
在該通信協議下,發送數據必須避免與起始字符和結束字符相同,解決辦法是采用增加起始位和結束位長度的方法,以減小沖突誤判可能,但在這種情況下依然有很小概率產生沖突誤判。另一種解決方案采用在高級數據鏈路控制協議中能實現透明傳輸的“0比特插入法”,但該方法會增加數據傳輸量,在最壞情況下會增加一倍數據傳輸量[7]。
以上兩種方案均存在不足,因此系統對表1中的通信協議進行了改進,在數據接收的起始位和結束位增加判斷條件,判斷的依據是起始位和結束位在本幀數據中的實際位置,實現方法是在起始位后增加數據長度位,用一個字節表示。如表2所示。

表2 基于四層OSI模型改進的通信協議
協議中數據長度位包括了在通信過程中發送的數據總長度,假設數據長度為N,則起始位是第1個字符,結束位是第N個字符,當接收端接收到起始位字符并且該字符是第1位時,判斷一次數據接收開始,當接收端接收到結束字符并且該字符是第N位時,判斷一次數據接收結束。在應用中,實際每次傳送的數據總長度不超過251位,不會產生數據分段傳輸的現象,新的協議不會產生誤判,數據傳輸量只增加一位,能實現數據的正確傳輸。
根據上節設計的通信協議,中控機和測試設備間可組成半雙工網絡。系統工作步驟如下:
①中控機通過 RS485網絡同時對多臺測試設備工作參數進行設定;
②在中控機發送完參數后,測試設備根據本機所接收到的指令進行應答以及執行操作指令,各測試設備在操作結束后向中控機返回結果;
③中控機將數據結果保存到存儲器中。系統工作流程如圖5所示。

圖5 耐壓絕緣測試系統控制流程
為方便用戶的操作,設計了人機交互軟件[8],軟件的主要功能是遠程設置系統工作參數,保存用戶歷史設置參數,保存用戶操作記錄以及設備工作記錄。軟件的界面設計參照了原設備的界面,操作方便,易于掌握。軟件添加的數據庫功能可以將歷史數據和歷史參數保存,便于查詢對比。
圖6是參數設置界面,用戶可以輸入用于測試的相關參數,同時可以在參數設置欄下讀取系統默認的設置參數,軟件在編寫時已經將各參數值的范圍限定,因此用戶設定參數時,系統默認將超過范圍的值修改到指定范圍內,減少人為操作失誤。

圖6 演示系統參數設置界面
這里介紹了耐壓絕緣測試系統的工作原理,說明了基于485網絡的耐壓絕緣測試系統的設計方法,比較了幾種通信協議的設計方法,設計了適合該系統的通信協議,同時給出了中控機和下位機數據通信的流程圖。
系統設計滿足了當前耐壓絕緣阻抗測試儀的升級需求,能有效解決測試的安全性問題,簡化測試操作員的工作流程,具有相當的市場價值。
[1] 李正軍.現場總線及其應用技術[M].北京:機械工業出版社,2005.
[2] 陳斌.基于RS-485的單片機多機通信技術[J].電子產品世界,2005(14):91-94.
[3] 童長飛.C8051F系列單片機開發與C語言編程[M].北京:航空航天大學出版社,2005.
[4] RS422/485 Application Note.B&B Electr- onics,October 1997.[EB/OL](2009-07-16)[2010-08-11].http://download.csdn.net/s ource/1495291.
[5] 徐功偉,戴學豐,劉樹東,等.嵌入式以太網控制器設計[J].通信技術,2009,42(05):183-187.
[6] 姚學禮.網絡通信協議一致性測試研究[J].通信技術,2009,42(05):172-176.
[7] DRUMEA A, VASILE A.Aspects of Serial Communication in a Network of Medical Devices, Andrei Drumea[C].USA:IEEE,2006:377-381.
[8] 李廷軍,邱麗波,李衛華,等.一種串口通信程序的設計[J].通信技術,2003(07):84-85.