1 引言 在測試系統中,常需要對多臺儀器設備進行集中控制,并對它們的數據進行統一分析處理。測試系統智能化和自動化程度的提高對測試設備間的數據交換提出了更高的要求,這里,分布式控制成為一種十分有效的方式[1]。在分布式測試系統中,數據交換主要在主處理機與各智能控制單元間進行,根據測試系統的特點,其通信系統應具有良好的可靠性、通用性、擴展能力和簡單的連接方式,并應能適應長距離傳輸的需要,在系統通信方式及其協議的制定中應充分考慮以上特點,以使其適應不同測試應用的需要。 2 物理層協議與接口設計 為適應多控制節點和長距離通信的需要,本文采用RS—485半雙工串行通信協議作為本測試控制網絡的通信標準。由于采用了平衡驅動、差分接收方式,有效地減小了共模干擾等影響,從而使其傳輸距離和帶負載能力等都較RS—232C有很大提高[2]。 由于目前的PC機都配有RS—232C接口,故設計了一種RS—485接口,它可以安放在普通的轉接頭內,直接插到PC機的串口上,把PC機的RS—232C輸出轉換為RS—485輸出,其結構如圖1所示。與其它方法相比,這一方法具有接口方式簡單、通用性強、體積小、成本低等優點。另外,我們還可在這一接口中加入智能控制單元,以適應與常規儀器設備通信的需要。 圖1 串行接口適配器 3 數據傳輸協議與軟件設計 分布式測試系統中,各測試設備主要與主處理機間進行數據通信,根據這一特點,本文決定采用較為明確的主從式通信作為系統通信方式[3],以保持系統功能的統一性并同時滿足其余節點間通信的需要。 3.1 信息幀格式 系統中數據與命令的傳輸均采用打包方式,數據幀格式如圖2所示。其中,地址字節最高位規定為0,用以標志幀起始;采用可變長數據域,數據長度范圍為1~255字節;采用兩個字節進行數據校驗;尾標志規定為0FFH,用以標志幀結束。字節傳輸格式規定為11位,即8位數據位,1位地址/數據標志位,1位起始位和1位停止位。為便于實現多機通信,把傳輸字節劃分為地址類碼與數據類碼,地址類碼第9位標志為1,可為所有處于聽者狀態的下位機接收;數據類碼第9位標志為0,只能被指定的下位機接收。 通信中,主機發送的命令和數據可分為針對指定下位機的址令和針對所有下位機的通令。為此,我們規定地址7FH為通令地址,發向該地址的命令可為所有下位機接收。為保證數據傳輸可靠,均采取應答方式進行通信,下位機接收到主機發出的數據后,立即回送狀態信息。若超過指定時間仍未收到應答信息,則進行超時報警。本系統中約定用4個字節分別表示系統的通信和工作狀態。其中,兩個字節代表通信狀態,兩個字節代表控制器當前工作狀態,可根據具體應用進行調整。這里,采用CRC方式進行數據校驗,當發現數據傳輸錯誤時,主機采用自動反饋重發方法進行糾正。 圖2 數據通信幀格式 3.2 基于中斷的通信軟件設計 為了保證主處理機進行數據處理等工作的時間,通信過程應盡量減小其影響,故在軟件設計時,主要過程均采用中斷驅動。發送信息時,只需將數據寫入緩沖區,其后的過程即由中斷接管;同樣,接收過程也完全由中斷管理,使主機在進行其它處理過程中無需任何等待。為適應不同的通信任務,特別是大數據量通信的需要,接收及發送部分均采用了環形緩沖區結構。為充分利用硬件資源,主要過程采用匯編語言編寫,采用嵌入式匯編與匯編調用相結合的方法編寫C語言通信函數,以實現與高層程序的接口。另外,各主要通信過程均構成獨立的通信函數,可在任何采用該協議的通信網絡中使用。圖3所示為其中的串口中斷處理流程。這里,數據的發送及接收均采取逐字節方式進行,以避免集中占用主機工作時間。 采用以上通信協議和軟件,基于總線型網絡,我們方便地實現了PC機之間以及PC機與智能儀器間的數據通信,實驗證明它們具有良好適應性。 圖3 串口中斷處理流程 4 網絡式通信在檢測系統中的應用 在綜合性測試系統中,往往需要對其中的多種傳感器和執行機構進行集中統一控制。此外,主機主要用于數據處理及分析計算,控制過程不應對以上過程產生影響。一般而言,系統應能控制盡可能多的節點并應具備一定的擴展能力,以便于加入新的測試設備。 對以上控制要求,目前常采取硬件集中方式,即由硬件電路組成集中控制器控制傳感器等執行機構的動作,它具有功能集中、速度快等優點,但也有邏輯關系復雜、靈活性差、故障不易排除等許多不足。由前述可見,此類系統可視為由多個傳感測試單元及執行機構組成的分布式系統。采用以上網絡通信的設計思想,我們可將系統控制功能分散到各測試單元及執行機構,從而構成以系統主處理機兼作主控機的基于半雙工通信的分布式測試控制系統。 圖4 應用進程與主要通信模塊間關系 采用上面所述的通信協議和軟件,在約定了本控制系統特定的一套命令碼后,即可由主機對各執行機構進行控制。由于采用了全部基于中斷驅動的設計方式,系統通信過程不會對主機處理工作產生影響。系統主處理進程與部分通信模塊間的關系示于圖4。實際應用表明,與原有方法相比,控制系統的性能可得到很大提高。 5 結論 本文旨在研究一種具有較為廣泛適應性的數據通信方式并建立一套相應的通信協議,從而為我們今后進行檢測過程和檢測儀器的自動控制等工作打下基礎。實踐證明,與傳統的集中式硬件控制相比,本文所介紹的基于RS—485的數據通信網絡及其協議具有可靠性高、靈活性大、適應性好、故障診斷方便等優點,尤其適用于對智能化測試單元的控制。事實上,只要對圖1所示的串行接口稍作改動,即可用于目前許多配有外部通信接口,特別是RS—232C接口的測試儀器,從而實現對儀器設備的遠程集中控制。 為測試通信系統的可靠性,將其置于強干擾環境中,經實驗,在67.5Kbps波特率、100m傳輸距離下,完全可以保證數據的可靠傳輸。 |