1 引言
眾所周知, 要實現(xiàn)直流電機的遠程調(diào)速控制及溫度檢測, 信號傳輸問題無疑是重要的, 傳統(tǒng)的模擬控制法,不僅難以滿足遠程傳輸需求, 而且電路過于復雜。采用計算機技術、總線技術和通訊技術, 不僅可以使整個系統(tǒng)變得簡單,而且有利于實現(xiàn)分布式集散控制,提高智能化控制水平。本文介紹一種以8051 系統(tǒng)為主控制器的遠程恒溫控制解決方案,它采用RS-485 總線解決直流電機PWM調(diào)速(制冷)、溫度檢測和PC 通訊等環(huán)節(jié)的信號傳輸問題。系統(tǒng)采用全數(shù)字設計方案, 結構簡單。當該系統(tǒng)以單片機為主控制器單獨工作時監(jiān)控距離可以達到1.2km,如果與微機聯(lián)網(wǎng)使用,則監(jiān)控距離可以增加到2.4km。
2 控制原理及硬件結構
該系統(tǒng)硬件結構如圖1 所示,它是一個8051 單片機控制系統(tǒng),控制“對象”為直流電機,工作時根據(jù)現(xiàn)場溫度調(diào)節(jié)直流電機轉速, 直流電機轉速影響制冷系統(tǒng)制冷量,從而達到溫度自動調(diào)節(jié)目的。溫度檢測采用DB18B20數(shù)字溫度傳感器,直流電機采用PWM 調(diào)速。直流電機和溫度傳感器通過RS-485 總線與單片機系統(tǒng)實現(xiàn)信息交換,單片機系統(tǒng)通過RS-485 總線經(jīng)USB 接口與PC 實現(xiàn)信息交換, 從而達到遠程監(jiān)控目的。
單片機系統(tǒng)是以8051 為核心的交互式測控系統(tǒng),系統(tǒng)所有接口電路地址及數(shù)據(jù)總線由74LS373 和74LS138提供。單片機系統(tǒng)任務包括以下幾個方面:
第一, 通過RS - 4 8 5 總線向直流電機驅動器輸出PWM 調(diào)速信號;第二,通過RS-485 總線對數(shù)字溫度傳感器DB18B20寫入初始化命令;第三,溫度傳感器所檢測的現(xiàn)場溫度經(jīng)RS-485 總線反饋給單片機,并據(jù)此調(diào)節(jié)PWM 信號輸出;第四, 實時顯示現(xiàn)場溫度;第五, 通過人機接口設置給定溫度、電機調(diào)速范圍等參數(shù);第六,通過RS-485 總線向PC 機反饋溫度等信息;第七,接受PC 系統(tǒng)控制指令,根據(jù)控制指令完成相應的處理。
下面對圖1 所示系統(tǒng)各主要電路作如下說明:
圖1 控制系統(tǒng)硬件結構
2.1 人機界面與人機系統(tǒng)
人機界面為矩陣式鍵盤和數(shù)碼管,它以8279 為主要接口芯片(其它芯片如圖所示),占用8051 一個外部中斷源(INT0),人機系統(tǒng)的基本任務包括溫度設置、電機調(diào)速范圍設置、啟停控制和溫度顯示等。根據(jù)圖1 所示硬件,通過8051 外部中斷(INT0)處理程序和定時器(T0)中斷處理程序相互配合完成人機系統(tǒng)的基本功能。
2.2 輸入輸出(IO)通道
輸入輸出通道是以8255 為主要接口芯片的控制信號或反饋信息傳輸通道,PWM 調(diào)速信號輸出、溫度傳感器初始化命令輸出和現(xiàn)場溫度讀取等均通過8255 進行。
8255PA 口作為控制信號輸出通道,PB 口作為反饋信息輸入通道,PC 口作為輸出/ 輸入使能控制。三個端口每一位定義詳情見后續(xù)軟件部分。
為了實現(xiàn)IO 信號的遠距離傳輸, 采用RS-4 8 5 總線,圖2 所示是專門為此設計的電路原理圖(僅畫出其中一路,下同),其中,圖2(a)是PWM 信號輸出接口,由圖可見, 計算機一側和終端設備( 伺服驅動器) 各使用一片MAX488,計算機一側MAX488 為發(fā)送器,終端設備一側MAX488 為接收器。圖中TLP-521 是計算機系統(tǒng)與外設進行電氣隔離所必需的環(huán)節(jié)。圖2(b)是專為溫度傳感器DS18B20 設計的遠程傳輸接口,由于DS18B20 是一款單總線、可編程數(shù)字溫度傳感器,該傳感器涉及初始化命令或參數(shù)寫入和工作之中的溫度讀取問題, 因此,遠程傳輸接口必須被設計成雙向I O 口, 通過兩片MAX485 和兩片MAX488 實現(xiàn)信息的半雙工傳輸要求,這里兩片MAX488 用于終端MAX485(右側)使能控制。
對DS18B20 的讀寫操作由8255PC 口相應的控制位作使能控制,即,當8051 執(zhí)行對DS18B20 的寫入操作時,首先使PC0=1、PC1=0,然后使數(shù)據(jù)從PA 口輸出;當8051執(zhí)行對DS18B20 的讀操作時,首先使PC0=0、PC1=1,然后使數(shù)據(jù)從PB 口輸入。
圖2 遠距離傳輸接口電路原理圖
需要指出的是, 圖2 所示的電路結構, 實現(xiàn)了信號的全硬件、遠程、無條件傳輸目的,避免了終端使用微處理器,具有硬件軟件簡單、實時性好、系統(tǒng)擴展容易等特點。特別是溫度檢測通道,由于采用的是單總線溫度傳感器DS18B20,僅使用一條4 芯雙絞線屏蔽電纜,就可以很好地滿足在1.2km 范圍之內(nèi)的多點分布式溫度測控需求。對于PWM 信號傳輸通道,可以根據(jù)實際需要選擇屏蔽電纜,如4 臺直流電機只需使用一條8 芯雙絞線屏蔽電纜。對于控制對象數(shù)量較多時,可以通過擴展8255 芯片,解決IO 通道不足問題。2.3 PC 機通訊接口
8051 系統(tǒng)與PC 機通訊,采用“RS-485+USB”接口信息傳輸方案,如圖1 所示。這里,用8051 串口線TxD、RxD 通過“TTL/RS-485 → RS-485/TTL → USB 接口”等環(huán)節(jié),實現(xiàn)了8051 系統(tǒng)與PC 之間的遠程通訊需求,從而擴大了控制范圍。
在進行電路設計時,“T T L/ RS - 4 8 5 → RS - 4 8 5 /TTL”變換可以采用兩片MAX488,并將其連接成全雙工模式,限于篇幅這里不再畫出;USB 接口選用PL2303,如圖3 所示,直接將來自“RS-485/TTL”電路的TTL電平(TxD、RxD)變?yōu)閁SB 信號,優(yōu)點是占用8051 資源少、編程簡單。
圖3 USB 通訊接口電路原理圖
3 應用程序設計
應用程序包括8051 對目標系統(tǒng)(電機與溫度檢測)的監(jiān)控程序和8051 與微機的通訊控制,現(xiàn)分別說明如下:
3.1 監(jiān)控程序
該部分程序是應用軟件的核心部分,包括一個主程序和兩個中斷處理程序。為了使整個程序結構清晰和易于功能擴展, 采用“存儲管理”的編程思想, 對于程序中使用最頻繁、實時性要求最高的變量定義在8051內(nèi)部RAM,對于需要占用大量存貯空間或訪問頻度較低的變量, 盡可能放在外擴的數(shù)據(jù)存貯器上( 圖1 未畫出),對于信息處理過程所使用的臨時變量,盡可能使用通用寄存。
監(jiān)控程序必須具有溫度設置、基于溫度的PWM 調(diào)速和溫度顯示等基本功能,這實際上涉及的是人機交互處理和基于溫度的PWM 信號處理。根據(jù)圖1 所示電路結構和基本功能要求,可以認為,它是一個基于8051 中斷源INT0 和T0 的中斷處理系統(tǒng), 即,需要設計兩個中斷處理程序INT0 和T0,其中,INT0 中斷處理任務是按鍵識別與處理,完成溫度設置、系統(tǒng)啟停、顯示切換等工作;T0 中斷處理主要任務是調(diào)節(jié)直流電機轉速, 它是根據(jù)傳感器所測得溫度與給定溫度的比較情況,通過調(diào)整有關參數(shù),使輸出PWM 波形占空比發(fā)生變化達到調(diào)速目的,具體方法詳見后述。主程序主要完成系統(tǒng)初始化和顯示等任務, 包括以下幾個方面:
(1) 監(jiān)控程序使用的所有變量的定義及初始化;(2) 8279 和8255 初始化;(3) 8051 中斷系統(tǒng)初始化;(4) DS18B20 初始化、溫度讀取、溫度顯示;(5) 控制變量的判斷及處理。
這里, ( 4 ) - ( 5 ) 應該被設計成一個循環(huán)執(zhí)行的程序結構。
3.2 通訊程序
通訊程序主要功能是實現(xiàn)8051 與PC 的數(shù)據(jù)交換。
8051 利用其串口線RxD 和TxD 實現(xiàn)與PC 的數(shù)據(jù)收發(fā)工作, 這些交換數(shù)據(jù)包括:
(1) 8051 向PC 發(fā)送的溫度信息;(2) 8051 接收來自PC 的控制指令,這些控制指令通過8051 串口中斷處理程序處理。
在PC 方面,需要編寫基于PL2303 的USB 驅動程序和面向8051 的人機界面,限于篇幅在此不作細述。
4 PWM 導通率調(diào)整及溫控軟件算法
根據(jù)上面所述可以知道,調(diào)節(jié)8051 輸出PWM 波占空比大小是實現(xiàn)直流調(diào)速的前提,而直流調(diào)速主電路使得受控于PWM 波的功率開關導通率發(fā)生變化,從而實現(xiàn)了直流電機的PWM 調(diào)速?,F(xiàn)在假設功率開關一個通斷周期時間為T _ timer , 在一個周期內(nèi)的導通時間為t _ on ,則導通率
,因此, PWM 調(diào)速實際上就是用軟件方法對變量t _ on 或T _ timer進行調(diào)節(jié),而調(diào)節(jié)依據(jù)則是被測點的實際溫度與設定溫度的比較情況。下面首先介紹基于8051 定時中斷的導通率調(diào)節(jié)方法,然后進一步介紹如何根據(jù)溫度比較情況調(diào)節(jié)導通率。
在導通率公式中, T _ timer 所允許的最小值取決于功率開關元件的最高工作頻率、直流電機調(diào)速范圍和執(zhí)行定時中斷處理程序所需時間等因素,而T _ timer所允許的最大值則取決于直流電機電樞電流連續(xù)性和轉速脈動量。
導通時間t _ on 由程序控制, 其值在0 ~ T _ timer之間變化。在進行導通率δ 調(diào)節(jié)的算法設計時, 既可以使T _ timer為常量, t _ on 為變量,也可以使T _ timer為變量, t _ on 為常量,或者使T _ timer 和t _ on 均為變量。實際上,由于T _ timer所允許的最小值和最大值分別受上述因素限制, 設計時在綜合考慮上述因素后取常量,此時t _ on 則成為導通率d 調(diào)節(jié)的唯一手段了。
下面以工作于6MHz 的8051 為例,說明導通率δ調(diào)節(jié)及計算方法。
根據(jù)8051 定時計算公式,當定時器/ 計數(shù)器工作于“定時、方式1”時, 我們不難推導出定時中斷周期為:
其中, c T 為8051 定時器/ 計數(shù)器在編程時的定時常數(shù),如果功率開關元件的開關頻率f Hz vt = 4000 ,則定時中斷周期T _timer = 250ms ,此時= *11 c T 。
t _ on 的確定,可以采用軟件延時方法實現(xiàn),假設控制功率開關元件通斷的驅動電路采用負邏輯驅動,cyc _ times為延時程序控制循環(huán)次數(shù)的一個參數(shù),則定時中斷處理程序進行一次通斷操作的流程如圖4(a )所示,此時t _ n = 4 * cyc _ times 。
圖4 程序流程圖
據(jù)此,可以推導出在開關頻率f Hz vt = 4000 條件下,導通率
,其中cyc _ times = 1 ~ 62整數(shù)。
下面進一步討論如何根據(jù)溫度比較情況調(diào)節(jié)導通率的問題。眾所周知,在控制論中一種所謂的“PID”調(diào)節(jié)算法被人們廣泛使用,這種方法是建立在輸出量的高精度檢測和精確比較基礎上的差值控制理論,由于算法繁雜往往計算工作量大, 對于低速CPU 往往應用受限。本文介紹的溫度調(diào)節(jié)不采用PID 算法,它采用的是一種所謂的“直接比較”控制方法(稱之為“DC”法),它是以一定的周期比較兩個變量的大小關系(而非實際差值),來決定輸出量調(diào)整方向(增加或減小或保持),而且當比較結果不等于零時, 對輸出量的調(diào)整不是一次到位,而是逐次增加或減小(如固定“加1”或“減1”),從而極大地簡化了控制算法。采用“DC”算法的溫控處理程序流程圖(一個基于8051T0 中斷處理程序)如圖4(b)所示,在該流程圖中, T 和g T 分別為實際溫度和給定溫度,我們只要將T 和g T 進行簡單的比較,就能夠實現(xiàn)直流電機PWM 調(diào)速導通率δ的調(diào)整,算法如下:
當Tg - T > 0 g 時,將變量“cyc _ times ”加1(在還沒有達到最大值時);當Tg - T < 0 g 時,將變量“cyc _ times ”減(在還沒有達到最小值時);當T g- T = 0 g 時,保持變量“cyc _ times ”值不變顯然, 根據(jù)上述導通率公式
:,只要變量cyc _ times 發(fā)生了變化,導通率d 必定也隨之發(fā)生改變, 從而達到調(diào)速目的。
顯而易見,上述調(diào)整方法并不是根據(jù)Tg - T 的實際差值(偏差)來計算應有的cyc _ times 調(diào)整量,而是僅僅比較兩者的大小關系來決定cyc _ times 調(diào)整方向,而且每個T _ timer周期cyc _ times 調(diào)整量僅為1。由此可見,只要T T g - 有偏差, 特別是, 當偏差較大時, 往往需要經(jīng)過多個T _ timer 周期之后才能消除這種偏差。