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 周期之后才能消除這種偏差。
評論
查看更多