直流電機作為一種動力產生裝置,在工業及日常生活中得到了廣泛應用。對直流電機的控制有兩方面:轉速與轉向。ARM是近年來發展非常迅速的處理器,有著很好的應用前景。將ARM處理器應用于直流電機的轉速控制,有極大的使用價值。本文將S3C2440A處理器應用于直流電機的控制,對系統的工作原理及工作流程進行了研究與設計。
1 PWM功能簡介
PWM(Pulse Width Modulation,脈寬調制器)功能是由處理器提供的一種定時器。通過對PWM功能寄存器的設置,就可以設定占空比的大小、定時頻率的高低,這樣就可以通過控制電路來實現PWM輸出。
PWM的一個優點是從處理器到被控制系統的信號都是數字形式的,無需進行數/模轉換。讓信號保持為數字形式可以將噪聲影響降到最小,噪聲只有在強到足以將邏輯1改變為邏輯0或者將邏輯0改變為邏輯1時,才能對數字信號產生影響。
對噪聲抵抗能力的增強是PWM相對于模擬控制的另外一個優點,而且這也是在某些時候將PWM用于通信的主要原因。從模擬信號轉向PWM可以極大地延長通信距離。在接收端,通過適當的RC或LC網絡可以濾除用于調制的高頻方波并將信號還原為模擬形式。
PWM廣泛應用在多種系統中。這里將其應用于直流電機的轉速控制。
2 硬件設計
由ARM公司設計的采用RISC架構的ARM處理器性能強,功耗低,體積小,支持Thumb(16位)/ARM(32位)雙指令集,指令執行速度快。目前ARM系列微處理器在32位RISC嵌入式產品中已經占據75%以上的市場份額。現在ARM已經發展到了ARM11系列,不過市場上應用最多的還是ARM9系列,其性價比也占有優勢。
2.1 S3C2440A簡介
S3C2440A是由Samsung公司推出的基于ARM920T內核的16/32位RISC處理器。此款處理器提供了豐富通用的片上外設,大大減少了系統電路中除處理器以外的元器件配置。S3C2440A有4路PWM定時器,1路內部定時器,8路ADC和觸摸屏接口,130個通用I/O,24個外部中斷源。最高工作頻率可以達到400 MHz,完全能夠完成設計要求。
2.2 硬件實現
為提高系統效率,降低功耗,功放驅動電路采用基于雙極型H橋型脈寬調制方式(PWM)的集成電路L298N。L298N是SGS公司的產品,內部包含兩個H橋高電壓大電流橋式驅動器,接收標準TTL邏輯電平信號,可以驅動46 V,2 A以下的電機,工作溫度范圍-25~+130℃。L298N的內部結構如圖1所示。
L298N可以同時驅動2個直流電機,在這里只需要用到1個,將電機放在OUT1與OUT2之間即可。其中EnA是控制使能端,控制OUT1和OUT2之間電機的停轉。IN1,IN2腳接入控制電平,控制OUT1和OUT2之間直流電機的轉動方向。當使能端EnA有效,IN1為低電平IN2為高電平時,三極管T2,T3導通,T1,T4截止,電機反轉;相反當IN1為高電平IN2為低電平時,三極管T1,T4導通,T2,T3截止,電機正轉。當IN1,IN2電平相同時,電機停轉。
由于S3C2440A本身就帶有4個PWM輸出口,直接輸出控制信號到L298N即可,無須另加電路。系統原理框圖如圖2所示。系統中選用了工作在中斷模式下的定時器1作為產生PWM的定時器。通過編程設定I/O口GPB0作為定時器1輸出PWM的端口,接入L298N的EnA端口,根據定時器1輸出的PWM頻率分別控制2個直流電機的轉速。端口IN1連接GPB5,IN2連接GPB6。通過改變GPB5與GPB6電平的高低實現電機的正轉與反轉。電機的停止操作可以通過調制脈沖寬度為0即占空比為0或者關閉定時器的使能位實現。為保證L298N驅動芯片正常工作,還要在其與直流電機之間加入兩對續流二極管用以將電機中反向電動勢產生的電流分流到地或電源正極,以免反向電動勢對L298N產生損害。
3 系統的軟件設計
S3C2440A有5個16位的定時器。定時器0,1,2,3有脈寬調制功能。定時器4有一個沒有輸出引腳的內部定時器,定時器0有一個用于大電流設備的死區生成器。
定時器0和1共用一個8位預分頻器,定時器2,3,4共用另一個8位預分頻器。每個定時器有1個時鐘分頻器,可以生成5種不同的分頻信號:1/2,1/4,1/8,1/16和TCLK。每個定時器模塊從時鐘分頻器接收自己的時鐘信號,其分頻器從相應的8位預分頻器接收時鐘。8位預分頻器是可編程的并且根據裝載的值來分頻PCLK,它的值存儲在TCFG0和TCFG1寄存器。
3.1 定時器工作方式
在S3C2440A中,每個定時器都有自己的16位減法計數器,由定時器時鐘驅動。當定時器使能,定時器計數緩存寄存器(TCNTBn)得到一個被裝載到遞減計數器中的初始值。定時器比較緩存寄存器(TCMPBn)有一個被裝載到比較寄存器中用來和遞減計數器的值作比較的初始值。TC-NTBn和TCMPBn的雙緩存特點使得當頻率與負荷比發生改變時,定時器可以有1個穩定的輸出。
定時器的啟動步驟如下:
(1)寫初始值到TCNTBn和TCMPBn。
(2)設置對應定時器的手動更新位,反相器設置為off狀態。
(3)設置對應定時器的啟動位開啟定時器,同時清除手動更新位。
此時定時器開始倒數,當定時器計數器為0時,定時器發出中斷請求,通知處理器定時結束。此時,對應TCNTBn的值將自動載入計數器,從而可以進入下一個操作。如果定時器已經停止,清除TCONn中的定時器使能位,則TCNTBn中的值將不會被載入到計數器中。
3.2 PWM脈寬調制
對于定時器來說,其時鐘源輸入頻率一般不變。電動機的轉速與電機兩端的電壓成正比,而電機兩端的電壓與控制波形的占空比成正比,因此電機的速度與占空比成正比,占空比越大,電機轉速越快。而S3C2440A系統中PWM頻率由TCNTBn決定,PWM脈沖寬度由TCMPBn決定,占空比即為TCMPBn/TCNTBn。
如果使電機轉速下降,可以減少TCMPBn的值;相反可以增加TCMPBn的值。由于雙緩沖的特性,為了獲得下一個正確的PWM周期,可以在當前PWM周期的任意點通過ISR或其他程序來寫TCMPBn。
S3C2440A設置PWM的流程圖如圖3所示。
具體實現方法與步驟:
(1)I/O口設置是對PE口的工作方式進行設置,使之工作在定時器輸出狀態。
(2)對定時器時鐘源頻率進行設定。
(3)設置輸出波形頻率。
(4)設置占空比。
(5)設置定時器控制寄存器并啟動定時器,定時器啟動后可以采用示波器觀察輸出波形是否滿足要求。
3.3 實驗結果
在實驗中設置PWM輸出頻率為1 000 Hz時,電機能平穩轉動。此時改變占空比,電機的轉速能隨之改變。用數字示波器觀察,頻率為1000 Hz占空比為80%的PWM輸出調制波形如圖4所示,修改占空比為40%時的輸出波形如圖5所示。在圖4與圖5中,橫坐標表示時間,單位:μs;縱坐標表示電壓,單位:V。同樣,也可以用數字示波器觀察其他占空比時的調制波形。
4 結論
從整體上看,本文設計的直流調速系統可以很方便地實現對電機轉速以及轉向的控制。但為了實現更精確的控制,可以采用轉速與電流雙閉環結構。通過實驗表明,利用S3C2440A的PWM控制部分完全可以實現對直流電機轉速的控制,采用在ARM嵌入式系統上的C語言編程實現,充分利用了現有的集成芯片的強大功能,省去了許多硬件電路,使整個控制系統得到了大大的簡化。