基于RS-485總線的遠程測控系統(tǒng)
RS-485 總線型遠程測控系統(tǒng)已得到廣泛應用,這主要因為 RS-485總線具有傳輸距離遠等特點。在傳輸速率為9600bit/s時傳輸距離可達1.2km以上,最高傳輸速率可達10Mbit/s,且只用普通雙絞線即可,同一對雙絞線上可以掛接多至256個以上的終端。有許多工業(yè)測控模塊都是采用 RS-485總線型的,比如 Adam、Nudan 等,但價格較高。本文介紹的 RS-485遠程測控系統(tǒng)結合傳統(tǒng)的分布式測控系統(tǒng)的特點、利用了 RS-485總線的特點,而且巧妙地應用了 AT89C2051 單片機和 CD4067 多路開關,因而成本低,功能靈活,使用簡單。
本文引用地址:http://butianyuan.cn/article/155461.htm1 系統(tǒng)設計方案
本系統(tǒng)由一臺 PC 作為主機,多至255 臺AT89C2051 單片機作為從機,如圖1所示。主機的 RS-232 串行口經(jīng)過外插式的 RS-232/RS-485 轉換器變成 RS-485的數(shù)字信號總線。PC與單片機之間通過 RS-485數(shù)字信號總線進行串行通信。
圖1 系統(tǒng)原理圖
單片機的串行口通過 MAX485 芯片轉換成 RS-485 規(guī)程。單片機的 P1.0~P1.3 用于作為兩片
CD4067(16選1多路開關)的地址選擇信號。兩片 CD4067 共同構成一個雙16選1多路開關。PC首先發(fā)出所要選中的單片機編號m(0~254),然后發(fā)送該單片機控制的通道的序號n(0~15),這時第m個單片機的第n個通道選中,其信號與本系統(tǒng)的模擬信號總線相通,并傳送到PC并行口(即打印口)上掛接的微型數(shù)據(jù)采集器上。微型數(shù)據(jù)采集器對模擬信號進行A/D轉換后送入計算機進行記錄和顯示。如果被選中的通道的模擬信號是電流信號而不是電壓信號,則需要在模擬信號總線之間并接一只電阻,以便將電流信號轉換成電壓信號。為了能有效地傳送比較微弱的模擬信號,比如熱電偶的熱電勢信號,系統(tǒng)的模擬信號總線必須使用屏蔽電纜。微型數(shù)據(jù)采集器應選用帶多量程選擇和程控放大的型號,以適應各種傳感器輸出信號的要求。本系統(tǒng)也可以用來遠程控制繼電器和電機等,此時利用微型數(shù)據(jù)采集器的D/A轉換功能。比如第m個單片機的第n個通道接的是一個固態(tài)繼電器,首先PC通過串行口發(fā)出地址信號選中該通道,然后PC通過微型數(shù)據(jù)采集器向該通道發(fā)出開或關的控制信號(經(jīng)過D/A轉換)。
2 系統(tǒng)硬件設計
主機PC所配的RS-232/RS-485轉換器和微型數(shù)據(jù)采集器都已有市售的產(chǎn)品,價格也較低。從機單片機及其外圍電路的組成見圖2。RS-485數(shù)字信號總線經(jīng)過MAX485芯片轉換成TTL電平的RS-232信號以便與AT89C2051的串行口相配。AT89C2051的P1.0~P1.3分別接到兩片CD4067(16選1多路開關)的地址選擇端A0~A3。這樣當P1.0~P1.3輸出某個通道號(比如A3A2A1A0=0001)時,CH1的正端CH1+(即X1端)和CH-(即Y1端)同時選通。選用雙端信號方式而不用單端信號方式(此時所有通道負端全部共地)的好處在于各個通道可以相互獨立的輸出信號或接收控制信號,因而各通道所接的傳感器可以公用一個電源。兩片CD4067的公共端X和Y分別接到模擬信號總線的正端和負端,整個從機電路用單5V電源供電,功耗大約100mW。
圖2 從機單片機及其外圍電路
3 系統(tǒng)軟件設計
主機PC與各從機的通信以單片機的串行通信方式3進行通信。方式3為波特率可變的9位數(shù)據(jù)(除1位起始位“0”和1位停止位“1”之外)異步通信方式,是多機通信中用得最多的方式。PC與多AT89C2051單片機的通信軟件設計關鍵在于對單片機的串行控制寄存器SCON的正確編程以及對PC串行口接口的靈活使用。
當AT89C2051工作在方式3時,傳送一幀信息共11位:1位起始位(D0=0),8位數(shù)據(jù)位(D1~D8),1位可編程位(D9)和1位停止位(D10)。其中附加的第9位D9作為“地址幀”和“數(shù)據(jù)幀”的識別標志位。此位數(shù)據(jù)在發(fā)送端由串行控制寄存器的TB8位產(chǎn)生,在接收端由自動傳送到SCON的RB8位中。如果D9=TB8=1,則說明此幀信息為地址,否則為數(shù)據(jù)。串行控制寄存器SCON中有一位多機通信控制位SM2,當SM2=1時只接收地址幀,當SM2=0時既可接收地址幀也可接收數(shù)據(jù)幀。
當主機PC與某從機通信時,主機首先發(fā)送命令FFH,使各從機的SM2全置1。然后發(fā)送該從機的地址m(00H~FFH),注意地址幀的附加位D9=1,所以此時所有從機都進行串行中斷響應處理(入口地址:0023H)。各從機中斷響應處理為:將接收到的地址號m與自己的編號進行比較,如果不相等,則不予理睬,如果相等,則置SM2=0,并且等待繼續(xù)接收將要選通的通道號n(0H~FH),再將n送到P3口。最后主機發(fā)送通道號n,由于n作為數(shù)據(jù)幀所以此時置D9=TB8=0。由于此時只有編號為m的從機的SM2=0,所以m號從機的n號通道選通。任何時候只能選通某一個從機的某一個通道。
對主機PC串行口的編程不僅要選擇相同的波特率,而且要對通信線路控制器LCR進行巧妙地設置,為了與單片機的方式3相匹配,對LCR的設置為:8位數(shù)字長、允許奇偶校驗、1位停止位。注意信號的奇偶校驗位D9不能設置為固定的0或1,所以必須靈活選擇奇校驗還是偶校驗以便設置D9為0或1。當發(fā)送地址幀時,需要D9為1,所以如果此時的地址的二進制碼中“1”的個數(shù)為奇數(shù),則選擇偶校驗,若為偶數(shù),則選擇奇校驗。而發(fā)送數(shù)據(jù)幀時,選擇正好相反。
評論