1 前言
在許多巡檢系統(tǒng)工程應(yīng)用中,往往需要計(jì)算機(jī)與多個單片機(jī)實(shí)現(xiàn)遠(yuǎn)距離多機(jī)雙向通信。在計(jì)算機(jī)為上位機(jī),單片機(jī)是下位機(jī)的情況下,目前通用的方法是采用RS-485協(xié)議,要求芯片通常都具有抗靜電干擾、節(jié)點(diǎn)多、通信速率高等優(yōu)點(diǎn)。然而,在筆者設(shè)計(jì)的幾個系統(tǒng)中所使用的多種類型的RS-485、RS-422協(xié)議的芯片卻都無一例外的特別容易損壞,輕則封裝表面出現(xiàn)局部燒黑,重則爆裂,以致于整個系統(tǒng)癱瘓。在鄭州車輛段脫軌器微機(jī)監(jiān)控系統(tǒng)中,設(shè)計(jì)時用1臺計(jì)算機(jī)作為上位機(jī),23個股道的單片機(jī)(89C51)作為下位機(jī)。系統(tǒng)卻在空凋開關(guān)、日光燈短路等現(xiàn)象出現(xiàn)時造成芯片不同程序的損壞,幾乎每個月都要更換通信芯片20余片,設(shè)計(jì)者采取了多種保護(hù)措施,依然沒有解決問題。并且,離上位機(jī)距離最近的幾個總是最選損壞。
1999年初,新鄉(xiāng)三瑞電子技術(shù)有限公司精心研制了一種高可靠性、遠(yuǎn)距離、多機(jī)、分時雙工串行通信芯片SR331" title="SR331">SR331,并由中國臺灣加工生產(chǎn)。該器件的最大特點(diǎn)是可能、穩(wěn)定。SR331利用20mA電流環(huán)" title="電流環(huán)">電流環(huán)、光電隔離、多機(jī)通信" title="多機(jī)通信">多機(jī)通信原理有效地實(shí)現(xiàn)了復(fù)雜電磁環(huán)境下的多機(jī)通信,在通信距離為1000m時,通信速率達(dá)9600bps,而其下位機(jī)沒有數(shù)量限制。
2 SR331芯片介紹
SR331是遠(yuǎn)距離通信芯片,其主要特點(diǎn)是:可靠性高(這正是研制SR331的初衷)和對下位機(jī)數(shù)量沒有限制。
SR331采用的電源電壓為5±0.5V;并采用TTL電平,它的RxD和TxD直接與單片機(jī)(如AT89C51)連接;其MTBF大于100萬小時;工作溫度范圍為-30~+70℃。SR331采用8腳DIP封裝,其管腳排列如圖1所示。各引腳的功能定義如下:
1腳:T+,發(fā)送正端;
2腳:T-,發(fā)送負(fù)端;
3腳:RxD,接收端,接本地CPU的RxD;
4腳:GND,接地,通常接本地CPU的地;
5腳:R-,接收負(fù)端;
6腳:R+,接收正端;
7腳:TxD,發(fā)送端,接本地CPU的RxD;
8腳:Vcc,+5V的電源端,接本地CPU的Vcc。

3 點(diǎn)對點(diǎn)串行雙工通信
利用20mA電流環(huán)、光電隔離實(shí)現(xiàn)計(jì)算機(jī)與單片機(jī)點(diǎn)對點(diǎn)通信的原理在其它文獻(xiàn)[1]中介紹較多,這里不再敘述。
采用SR331實(shí)現(xiàn)1臺計(jì)算機(jī)與1個下位機(jī)串地通信的原理圖如圖2所示,計(jì)算機(jī)使用標(biāo)準(zhǔn)串行口COM1,單片機(jī)選用89C51。
MAX232用來實(shí)現(xiàn)計(jì)算機(jī)的標(biāo)準(zhǔn)串行口COM1所輸出的RS-232信號電平與TTL電平之間的轉(zhuǎn)換。計(jì)算機(jī)串行口X1-TxD腳的常態(tài)為-12V,D1的9腳輸出低電平(0V)到SR331的D2的TxD腳,此時,環(huán)路A[(8V)→(R1)→(RP1)→(D3的R+腳)→(D3的R-腳)→(D2的T+腳)→(D2的T-腳)→GND(上位機(jī)端)]無電流通過,D3的RxD腳輸出高電平(+5V)送給單片機(jī)90C51;而當(dāng)計(jì)算機(jī)發(fā)送信息的起始位時,X1的TxD腳輸出為+12V,D1的9腳輸出高電平(+5V)到SR331的D2的TxD腳,此時,環(huán)路A有20mA的電流通過,D3的RxD腳輸出低電平(0V),從而實(shí)現(xiàn)上位機(jī)到下位機(jī)的通信。
當(dāng)單片機(jī)89C51KD4中TxD腳的常態(tài)為高電平+5V時,環(huán)路B[8V]→(R2) →(RP2) →(D2的R+腳) →(D2的R-腳)→(D3的T+腳)→(D3的T-腳)→GND(上位機(jī)端)無電流通過,此時D2的RxD腳輸出的高電平(+5V)經(jīng)MAX232轉(zhuǎn)換為-12V送給計(jì)算機(jī);在單片機(jī)發(fā)送信息的起始位時,D4的TxD腳輸出為低電平0V,環(huán)路B中有20mA電流通過,D2的RxD腳輸出低電平(0V)并經(jīng)MAX232轉(zhuǎn)換為+12V送給計(jì)算機(jī),從而實(shí)現(xiàn)下位機(jī)到上位機(jī)的通信。根據(jù)通信距離的遠(yuǎn)近調(diào)節(jié)RP1和RP2可以使環(huán)路A和環(huán)路B中的電流為20mA。

4 多機(jī)主從式分時雙工串行通信
計(jì)算機(jī)與單片機(jī)的通信除點(diǎn)對點(diǎn)的通信以外,在許多現(xiàn)場控制中,還會出現(xiàn)一機(jī)對多機(jī)或多機(jī)間的通信。下面介紹以計(jì)算機(jī)作為上位機(jī),多個單片機(jī)(89C51)作為下位機(jī)的串行通信設(shè)計(jì)方式。該設(shè)計(jì)要求下位機(jī)要服從上位機(jī)的調(diào)度和支配,即單片機(jī)的通信方式要使用串行口通信方式2,也就是利用第9位。通信各方約定如下:
上位機(jī)向下位機(jī)發(fā)送地址信息時,其第9位必須為1,當(dāng)向下位機(jī)發(fā)送命令時,其第9位必須為0。
圖3所示為上位機(jī)與多個下位機(jī)進(jìn)行分時雙工串行通信的電路原理圖。當(dāng)上位機(jī)通過SR331向下位機(jī)發(fā)送地址、命令時,每個下位機(jī)通過SR331都能收以。在下位機(jī)處于監(jiān)聽狀態(tài)時,置SM2=1。當(dāng)確認(rèn)是本下位機(jī)地址時,置SM2=0,以準(zhǔn)備接收命令。然后向上位機(jī)回送信息。每個下位機(jī)均可單獨(dú)向上位機(jī)發(fā)送信息。平樣就實(shí)現(xiàn)了上位機(jī)與多個下位機(jī)的分時通信。
5 結(jié)束語
為了解決多機(jī)遠(yuǎn)距離通信的可靠性問題,新鄉(xiāng)三瑞電子技術(shù)有發(fā)公司才下決心研制SR331,可喜的是:SR331具有出人意料的高可靠性,并且環(huán)境適應(yīng)能力強(qiáng),無須中繼,同時對下位機(jī)的數(shù)量沒有限制(太多時,在電阻R1前使用較高電壓即可)。雖然,為了提高可靠性犧牲了部分通信速率,但9600bps對于一般巡檢系統(tǒng)已經(jīng)足夠。目前,SR331已經(jīng)成功應(yīng)用于鄭州車輛段脫軌器微機(jī)監(jiān)控系統(tǒng)(具有29個下位機(jī))、新鄉(xiāng)車輛段脫軌器微機(jī)監(jiān)控系統(tǒng)(具有12個下位機(jī))、新鄉(xiāng)車輛段列車試風(fēng)微機(jī)監(jiān)控系統(tǒng)(具有4個下位機(jī))、洛陽車輛段脫軌器微機(jī)監(jiān)控系統(tǒng)(具有12個下位機(jī))、洛陽車輛段空氣壓縮機(jī)微機(jī)監(jiān)控系統(tǒng)(具有4個下位機(jī))等系統(tǒng)中?,F(xiàn)在,投入實(shí)現(xiàn)運(yùn)行的300多片在連續(xù)工作500天后無一損壞。由此可見,SR331具有極高的可靠性。
