mcs- 96主從式總線結(jié)構(gòu)多機系統(tǒng)通信的研究
劉景森1,李 煜2
(1.河南大學(xué)計算機學(xué)院,河南開封475001, 2.河南大學(xué)管理學(xué)院,河南開封475001)
摘要。主從式總線結(jié)構(gòu)是構(gòu)造有主控結(jié)點的mcs-96分布式多單片機系統(tǒng)的一種主要拓撲結(jié)構(gòu),文中分析了該系統(tǒng)中通信功能的實現(xiàn)方法,控討了通信中同步問題、廣播功能、數(shù)據(jù)轉(zhuǎn)發(fā)、沖突處理和故障屏蔽的解決方案。
關(guān)鍵詞:mcs-96系列單片機i主從式總線結(jié)構(gòu)-分布式多機系統(tǒng)}串口
中圖分類號tp368.2 文獻標識碼.a(chǎn) 文章編號11001-6848(2000)03-0050-03
1 引 言
在構(gòu)造分布式多單片機系統(tǒng)時,主從式總線結(jié)構(gòu)是經(jīng)常使用的一種網(wǎng)絡(luò)拓撲結(jié)構(gòu),主要適用于具有主控結(jié)點的分布式控制系統(tǒng)。這種結(jié)構(gòu)下,系統(tǒng)的基本開銷、通信開銷、程序開銷和可靠性比較均衡,系統(tǒng)的構(gòu)建簡單靈活。
在主從式總線結(jié)構(gòu)分布系統(tǒng)中,所有的單片機結(jié)點都掛接在串行總線上,系統(tǒng)管理程序則集中在主機結(jié)點上執(zhí)行。若從機需要使用管理程序提供的功能,則應(yīng)向主機提出請求并發(fā)送信息。若管理程序要對從機進行控制或向從機回復(fù)處理結(jié)果,則由主機向從機發(fā)送信息。因此,系統(tǒng)的協(xié)同處理主要依賴于通信功能的實現(xiàn),即主機與多個從機之間的相互通信。
2通信功能的實現(xiàn)
mcs- 96分布式多機系統(tǒng)的機間通信功能是通過各結(jié)點機的全雙工串行通信接口實現(xiàn)的。對于主從式總線結(jié)構(gòu)的系統(tǒng)而言,其通信線路的連接方式如圖1所示,即:通過總線,將主機的串口發(fā)送端txd與所有從機的串口接收端rxd相連,主機的串口接收端rxd與所有從機的串口發(fā)送端txd相連。
mcs-96串口采用ttl電平,信號的傳輸距離很短,可通逆電平轉(zhuǎn)換,用rs-232c、rs-422a 等異步串行通信的標準接口總線進行數(shù)據(jù)傳輸,以增加通信距離,提高數(shù)據(jù)傳輸率。對于結(jié)點更分散、通信距離更長的情況,還可使用調(diào)制解調(diào)器來實現(xiàn)數(shù)據(jù)的遠程傳輸。
在主從式總線結(jié)構(gòu)的多機系統(tǒng)中,主機與所有mcs-96主從式總線結(jié)構(gòu)多機系統(tǒng)通信的研究劉景森李煜從機間的相互通信由串口模式2和模式3共同完成。當(dāng)串口置于模式2時,串行幀格式包括1個起始位(o電平)、8個數(shù)據(jù)位(do~d7)、1個可編程的第9數(shù)據(jù)位(d8)和1個停止位(1電平),共11位數(shù)據(jù)。接收數(shù)據(jù)時,若收到數(shù)據(jù)的d8 -1,則產(chǎn)生串口中斷,予以接收;若收到數(shù)據(jù)的d8=o,則不產(chǎn)生串口中斷,予以丟棄。當(dāng)串口置于模式3時,串行幀也是11位數(shù)據(jù),格式與模式2相同,但此時d8是奇偶校驗位,收到數(shù)據(jù)無論d8=0還是d8—1,都將產(chǎn)生串口中斷,予以接收。
利用以上特點,通信開始時主機串口設(shè)置為模式3,各從機串口設(shè)置為模式2。主機向某一從機結(jié)點發(fā)送數(shù)據(jù)時,先發(fā)一地址幀,地址幀的d8-1、do~d7為該從機的地址;工作于串口模式2的所有從機都能接收此地址,與本機地址編號相同者被選中,被選中的從機立即:轉(zhuǎn)入串口模式3;主機接著發(fā)送數(shù)據(jù)幀,數(shù)據(jù)幀的d8=0、do~d7為數(shù)據(jù);被選中的從機工作于模式3,可產(chǎn)生串口中斷,接收這些數(shù)據(jù);未被選中的從機仍工作于模式2,不能產(chǎn)生串口中斷,接收這些數(shù)據(jù);未被選中的從機仍工作于模式2,不能產(chǎn)生串口中斷,不能接收逮些數(shù)據(jù),仍繼續(xù)本機事務(wù)的處理;數(shù)據(jù)傳送一旦結(jié)束,被選中的從機立即恢復(fù)到通信開始時的串口設(shè)置,重新轉(zhuǎn)回模式2。從機向主機結(jié)點發(fā)送數(shù)據(jù)時,可直接發(fā)送數(shù)據(jù)幀,由于主機工作于模式3,故能夠產(chǎn)生串口中斷,接收這些數(shù)據(jù)。另外,主從機通信時應(yīng)約定好應(yīng)答信息,以保證主機知道自己與哪臺從機進行了數(shù)據(jù)交換。
依據(jù)上述原理,可方便地設(shè)計出主、從機結(jié)點的通信程序。對于mcs-96分布式多機系統(tǒng)而言,通信程序主要包括:串口引腳的使能,其中iocl(16h)的d5置1為txd使能,sp - con (11h)的d3置1為rxd使能;串口模式的設(shè)置,即sp—con(11h)的dl~do設(shè)置;波特率的設(shè)置,即baud—rate (oeh)設(shè)置,該寄存器為16位,只能按字節(jié)寫入,先寫低8位,后寫高8位,其中d14~do為波特率,d15置1時選用xtal1內(nèi)部時鐘作為輸入頻率,d1 |