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