RS-485總線通訊技術(shù)在多機(jī)監(jiān)控系統(tǒng)中的應(yīng)用
引言
本文引用地址:http://www.biyoush.com/article/201609/304049.htm一個(gè)監(jiān)控系統(tǒng)中如果要同時(shí)檢測(cè)到控制系統(tǒng)中的各種分散的數(shù)據(jù)往往是比較困難的,而采用RS-485總線通訊與單片機(jī)組成分布式監(jiān)控系統(tǒng)是一種最佳可行的方案。而多機(jī)通訊技術(shù)是組成分布式監(jiān)控系統(tǒng)的關(guān)鍵技術(shù)之一。作者對(duì)設(shè)備監(jiān)控系統(tǒng)進(jìn)行大量查閱資料并進(jìn)行了詳細(xì)分析,對(duì)通訊網(wǎng)進(jìn)行了較深入的研究,最后通過舞臺(tái)燈的軟、硬件聯(lián)調(diào)和抗干擾試驗(yàn),投入現(xiàn)場(chǎng)使用,運(yùn)行都很良好,因此,試驗(yàn)驗(yàn)證了該方法的可行性。
1 系統(tǒng)結(jié)構(gòu)
我們采用PC機(jī)或51單片機(jī)為主機(jī)(雙系統(tǒng)),用AT89C52作為從機(jī)模塊,選用MAX487數(shù)據(jù)通訊接口器件作為通訊接口,構(gòu)成一個(gè)以RS-485接口為通訊總線的分布式網(wǎng)絡(luò),與主機(jī)連接的各個(gè)從機(jī)分別進(jìn)行相應(yīng)的舞臺(tái)設(shè)備的開關(guān)量控制,上升、下降等狀態(tài)切換,限位信號(hào)的處理等工作。各種數(shù)據(jù)及信號(hào)的傳輸都是通過數(shù)據(jù)通訊總線實(shí)現(xiàn)。
2 理論分析
網(wǎng)絡(luò)的正常運(yùn)行與多機(jī)聯(lián)網(wǎng)的通訊方式、通訊接口標(biāo)準(zhǔn)及多機(jī)通訊的總線競(jìng)爭(zhēng)等都是在研發(fā)中必需考慮得的關(guān)鍵技術(shù)問題。
2.1 通訊方式的選擇
本系統(tǒng)的多機(jī)通訊采用的是串行方式。串行通訊分異步和同步。由于異步通訊允許間歇通訊,對(duì)于低速通訊(如工業(yè)監(jiān)控系統(tǒng))來說是理想的。眾所周知,主機(jī)上的串行工作方式有4種,方式3是9位波特率可變的異步通訊方式。此方式的第9個(gè)數(shù)據(jù)位和標(biāo)志位SM2聯(lián)合使用時(shí)具有識(shí)別地址的功能,特別實(shí)用于多機(jī)通訊。因此,本系統(tǒng)選用了串行通訊方式3。
2.2 通訊接口標(biāo)準(zhǔn)的選擇
目前廣泛使用的串行通訊接口為RS-232C。但RS-232C在分布式監(jiān)控系統(tǒng)中作為多機(jī)通訊使用有以下幾點(diǎn)不足:
1) 數(shù)據(jù)傳輸率局限于20Kbit/秒,傳輸距離局限于15米。
2)不能避免共模信號(hào)在通訊中的干擾。
3)只適用于點(diǎn)對(duì)點(diǎn)的通訊,無法用最少的信號(hào)線實(shí)現(xiàn)多點(diǎn)對(duì)多點(diǎn)的通訊。
RS-422(全雙工)和RS-485(半雙工)串行接口總線正是為了克服上述缺點(diǎn)而設(shè)計(jì)的標(biāo)準(zhǔn)接口。RS-422需要兩對(duì)平衡差分信號(hào)線,而RS-485只需其中一對(duì),對(duì)于多機(jī)連接更為便利,因此,選用了RS-485作為聯(lián)網(wǎng)的通訊是最佳選擇方案。
2.3 總線競(jìng)爭(zhēng)的解決方案
在各種分布式集中監(jiān)控系統(tǒng)中,總線型網(wǎng)絡(luò)的通信方式主要是采用主從方式,即系統(tǒng)的通信由主機(jī)(上位機(jī))控制通信的主動(dòng)權(quán),選擇呼叫某一個(gè)從機(jī)(下位機(jī))進(jìn)行通信。這種通信方式不會(huì)產(chǎn)生總線的競(jìng)爭(zhēng),通信協(xié)議簡(jiǎn)單可靠。主從方式的工作機(jī)制確定了它主要適用于從機(jī)有經(jīng)常性的數(shù)據(jù)需要傳送的場(chǎng)合。在本系統(tǒng)中,有突發(fā)性數(shù)據(jù)需要傳輸(如開關(guān)變位,限位信號(hào)到達(dá)),而系統(tǒng)又要求對(duì)從機(jī)的這種突發(fā)性數(shù)據(jù)進(jìn)行快速響應(yīng),這種情況下簡(jiǎn)單的主從方式在實(shí)現(xiàn)時(shí)數(shù)據(jù)通信可能會(huì)丟失。尤其是本系統(tǒng)從機(jī)數(shù)量比較多,有時(shí)會(huì)發(fā)生兩個(gè)或多個(gè)從機(jī)同時(shí)想占用總線的情況。例如,可能在某一時(shí)刻有兩個(gè)單片機(jī)監(jiān)控的限位信號(hào)同時(shí)到達(dá),都向主機(jī)發(fā)送數(shù)據(jù),從而產(chǎn)生了總線競(jìng)爭(zhēng)。不同的總線形式采用了不同的解決方法。作者研發(fā)的監(jiān)控系統(tǒng)主要采用上位機(jī)為PC機(jī)或51單片機(jī),下位機(jī)為51單片機(jī)的形式,這也是監(jiān)控系統(tǒng)中應(yīng)用最為廣泛的形式,并且降低了成本。以下主要就這種形式的總線,分析兩種解決多機(jī)通信中總線競(jìng)爭(zhēng)問題的方法。
圖1 解決總線競(jìng)爭(zhēng)的方案1
在圖1中,當(dāng)從機(jī)J有信息主動(dòng)發(fā)送時(shí),將自身的主動(dòng)發(fā)送標(biāo)志位Fj置1。主機(jī)接收到數(shù)據(jù)后,若校驗(yàn)正確,則表示無總線競(jìng)爭(zhēng)情況,發(fā)送數(shù)據(jù)成功;若校驗(yàn)錯(cuò)誤,表明可能發(fā)生總線競(jìng)爭(zhēng),主機(jī)查詢從機(jī)1。從機(jī)1接收到主機(jī)查詢命令后,檢驗(yàn)自身主動(dòng)發(fā)送標(biāo)志位Fj,若為0,則從機(jī)1沒有主動(dòng)發(fā)送數(shù)據(jù),主機(jī)依次查詢下一從機(jī);若Fj為1,表明從機(jī)曾主動(dòng)發(fā)送,要將已發(fā)數(shù)據(jù)再發(fā)送一次。主機(jī)再次接收到信號(hào),校驗(yàn)正確后,依次查詢下一從機(jī),直到將從機(jī)查詢完畢。
圖2 解決總線競(jìng)爭(zhēng)方案2
方案二前面步驟同方案一,不同之處是主機(jī)校驗(yàn)從機(jī)主動(dòng)所發(fā)的數(shù)據(jù),如果數(shù)據(jù)校驗(yàn)正確,主機(jī)回復(fù)從機(jī),表明已正確接收;若校驗(yàn)錯(cuò)誤,主機(jī)廣播發(fā)送信號(hào),請(qǐng)求從機(jī)重發(fā)數(shù)據(jù)。因?yàn)橹鳈C(jī)是廣播發(fā)送,所以各從機(jī)幾乎同時(shí)接收到請(qǐng)求信號(hào)。沒有主動(dòng)發(fā)送數(shù)據(jù)的從機(jī)不返回信號(hào);而曾主動(dòng)發(fā)送的從機(jī)以接收到請(qǐng)求信號(hào)為標(biāo)志,延時(shí)j*T后(j為從機(jī)的序列號(hào)),重發(fā)數(shù)據(jù),如圖2所示。在重發(fā)數(shù)據(jù)時(shí),不同的從機(jī)延時(shí)不同,使得占用總線的時(shí)間不重疊,所以不會(huì)造成總線競(jìng)爭(zhēng)。作者在現(xiàn)場(chǎng)調(diào)試中,通過調(diào)整延時(shí)T,即便是在序列號(hào)相鄰的從機(jī)都重發(fā)數(shù)據(jù)的情況下,也不會(huì)發(fā)生沖突。而且延時(shí)T只有數(shù)十ms,整個(gè)通訊,從第一次因總線競(jìng)爭(zhēng)而造成的發(fā)送失敗,到主機(jī)接收完畢正確的重發(fā)信號(hào),不到0.1s。從而既解決了總線競(jìng)爭(zhēng)問題,也確保了數(shù)據(jù)的實(shí)時(shí)傳送,兼顧了系統(tǒng)的實(shí)時(shí)性和可靠性。
當(dāng)通訊出現(xiàn)總線競(jìng)爭(zhēng)時(shí),在方案1中,主機(jī)遍查從機(jī),流程簡(jiǎn)明,但主機(jī)使用查詢方式,被占用了較多資源;方案2采用了從機(jī)分時(shí)上報(bào)的方式,解放了主機(jī)的查詢工作,但因?yàn)榧尤胙訒r(shí),需要現(xiàn)場(chǎng)調(diào)試找出延時(shí)的合理值。本系統(tǒng)為減輕主機(jī)的工作負(fù)擔(dān),應(yīng)用了方案2,但方案1在主機(jī)資源開銷不大的系統(tǒng)中,可以作為首選。
以上方案通訊結(jié)構(gòu)簡(jiǎn)單,軟件易實(shí)現(xiàn),能避免總線競(jìng)爭(zhēng)引發(fā)的數(shù)據(jù)丟失,特別適用于有突發(fā)性數(shù)據(jù)需要傳輸?shù)亩鄼C(jī)控制系統(tǒng)中。
3 結(jié)束語
通過本項(xiàng)目的研究,作者研制了將RS-485通訊技術(shù)構(gòu)成總線通訊網(wǎng),并運(yùn)用于多機(jī)監(jiān)控系統(tǒng)的方法;實(shí)現(xiàn)選擇通訊方式、通訊接口的關(guān)鍵技術(shù);給出了總線競(jìng)爭(zhēng)問題的解決方案。本系統(tǒng)投入現(xiàn)場(chǎng)運(yùn)行時(shí),通訊網(wǎng)絡(luò)可靠,達(dá)到了預(yù)期的效果。
評(píng)論