|
RS-485遠程測控係統
武漢波仕電子有限公司 -代永鋒
RS-485 總線型遠程測控係統已得到廣泛應用,這主要因為 RS-485 總線具有傳輸距離遠等特點。在傳輸速率為9600bit/s時傳輸距離可達1.2km以上,最高傳輸速率可達 10Mbit/s,且隻用普通雙絞線即可,同一對雙絞線上可以掛接多至256個以上的終端。有許多工業測控模塊都是采用 RS-485 總線型的,比如 Adam、Nudan 等,但價格較高。本文介紹的 RS-485 遠程測控係統結合傳統的分布式測控係統的特點、利用了 RS-485 總線的特點,而且巧妙地應用了 AT89C2051 單片機和 CD4067 多路開關,因而成本低,功能靈活,使用簡單。
1 係統設計方案
本係統由一台 PC 作為主機,多至255 台 AT89C2051 單片機作為從機,如圖1所示。主機的 RS-232 串行口經過外插式的 RS-232/RS-485 轉換器變成 RS-485 的數字信號總線。PC與單片機之間通過 RS-485 數字信號總線進行串行通信。
單片機的串行口通過 MAX485 芯片轉換成 RS-485 規程。單片機的 P1.0~P1.3 用於作為兩片 CD4067(16選1多路開關)的地址選擇信號。兩片 CD4067 共同構成一個雙16選1多路開關。PC首先發出所要選中的單片機編號m(0~254),然後發送該單片機控製的通道的序號n(0~15),這時第m個單片機的第n個通道選中,其信號與本係統的模擬信號總線相通,並傳送到PC並行口(即打印口)上掛接的微型數據采集器上。微型數據采集器對模擬信號進行A/D轉zhuan換huan後hou送song入ru計ji算suan機ji進jin行xing記ji錄lu和he顯xian示shi。如ru果guo被bei選xuan中zhong的de通tong道dao的de模mo擬ni信xin號hao是shi電dian流liu信xin號hao而er不bu是shi電dian壓ya信xin號hao,則ze需xu要yao在zai模mo擬ni信xin號hao總zong線xian之zhi間jian並bing接jie一yi隻zhi電dian阻zu,以yi便bian將jiang電dian流liu信xin號hao轉zhuan換huan成cheng電dian壓ya信xin號hao。為wei了le能neng有you效xiao地di傳chuan送song比bi較jiao微wei弱ruo的de模mo擬ni信xin號hao,比bi如ru熱re電dian偶ou的de熱re電dian勢shi信xin號hao,係xi統tong的de模mo擬ni信xin號hao總zong線xian必bi須xu使shi用yong屏ping蔽bi電dian纜lan。微wei型xing數shu據ju采cai集ji器qi應ying選xuan用yong帶dai多duo量liang程cheng選xuan擇ze和he程cheng控kong放fang大da的de型xing號hao,以yi適shi應ying各ge種zhong傳chuan感gan器qi輸shu出chu信xin號hao的de要yao求qiu。本ben係xi統tong也ye可ke以yi用yong來lai遠yuan程cheng控kong製zhi繼ji電dian器qi和he電dian機ji等deng,此ci時shi利li用yong微wei型xing數shu據ju采cai集ji器qi的deD/A轉換功能。比如第m個單片機的第n個通道接的是一個固態繼電器,首先PC通過串行口發出地址信號選中該通道,然後PC通過微型數據采集器向該通道發出開或關的控製信號(經過D/A轉換)。
2 係統硬件設計
主機PC所配的RS-232/RS-485轉換器和微型數據采集器都已有市售的產品,價格也較低。從機單片機及其外圍電路的組成見圖2。RS-485數字信號總線經過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。
3 係統軟件設計
主機PC與各從機的通信以單片機的串行通信方式3進行通信。方式3為波特率可變的9位數據(除1位起始位“0”和1位停止位“1”之外)異步通信方式,是多機通信中用得最多的方式。PC與多AT89C2051單片機的通信軟件設計關鍵在於對單片機的串行控製寄存器SCON的正確編程以及對PC串行口接口的靈活使用。
當AT89C2051工作在方式3時,傳送一幀信息共11位:1位起始位(D0=0),8位數據位(D1~D8),1位可編程位(D9)和1位停止位(D10)。其中附加的第9位D9作為“地址幀”和“數據幀”的識別標誌位。此位數據在發送端由串行控製寄存器的TB8位產生,在接收端由自動傳送到SCON的RB8位中。如果D9=TB8=1,則說明此幀信息為地址,否則為數據。串行控製寄存器SCON中有一位多機通信控製位SM2,當SM2=1時隻接收地址幀,當SM2=0時既可接收地址幀也可接收數據幀。
當主機PC與某從機通信時,主機首先發送命令FFH,使各從機的SM2全置1。然後發送該從機的地址m(00H~FFH),注意地址幀的附加位D9=1,所以此時所有從機都進行串行中斷響應處理(入口地址:0023H)。各從機中斷響應處理為:將接收到的地址號m與自己的編號進行比較,如果不相等,則不予理睬,如果相等,則置SM2=0,並且等待繼續接收將要選通的通道號n(0H~FH),再將n送到P3口。最後主機發送通道號n,由於n作為數據幀所以此時置D9=TB8=0。由於此時隻有編號為m的從機的SM2=0,所以m號從機的n號通道選通。任何時候隻能選通某一個從機的某一個通道。
對主機PC串行口的編程不僅要選擇相同的波特率,而且要對通信線路控製器LCR進行巧妙地設置,為了與單片機的方式3相匹配,對LCR的設置為:8位數字長、允許奇偶校驗、1位停止位。注意信號的奇偶校驗位D9不能設置為固定的0或1,所以必須靈活選擇奇校驗還是偶校驗以便設置D9為0或1。當發送地址幀時,需要D9為1,所以如果此時的地址的二進製碼中“1”的個數為奇數,則選擇偶校驗,若為偶數,則選擇奇校驗。而發送數據幀時,選擇正好相反。
|