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