μCLinux下的變頻調速控制系統(tǒng)的設計
20世紀后半葉,變頻調速技術[1]的出現(xiàn)和日益完善,成為電力拖動領域的一個重大事件。由于變頻調速技術的發(fā)展,使結構簡單牢固、價格低廉、應用普及的交流異步電動機有了性能良好的調速手段。
近 10年來,隨著電力電子技術、計算機技術、自動控制技術的迅速發(fā)展,電氣傳動技術面臨著一場歷史革命,即交流調速取代直流調速和計算機數(shù)字控制技術取代模擬控制技術已成為發(fā)展趨勢。交流異步電機變頻調速技術是當今節(jié)電、改善工藝流程以提高產品質量和改善環(huán)境、推動技術進步的一種主要手段。變頻調速以其優(yōu)異的調速和起制動性能,高效率、高功率因數(shù)和節(jié)間效果,廣泛的適用范圍及其它許多優(yōu)點而被國內外公認為最有發(fā)展前途的調速方式。
ARM技術是嵌入式系統(tǒng)方面的主流技術。目前市場上 ARM芯片速度可達幾百兆,以它為主控芯片可在硬件上實現(xiàn)高速、高精度且具有一定處理能力的變頻調速控制系統(tǒng)。本系 1統(tǒng)采用 Philips公司的 LPC2292處理器,結合嵌入式 μClinux操作系統(tǒng)來實現(xiàn)其功能。嵌入式 μClinux操作系統(tǒng)提供了豐富的驅動資源。LPC2292處理器具有豐富的接口資源,能夠滿足變頻調速控制系統(tǒng)的設計要求。
2 系統(tǒng)硬件的工作原理
圖 2.1為變頻調速控制系統(tǒng)的硬件設計和工作原理圖。系統(tǒng)的硬件設計主要有 ARM處理器模塊、以太網模塊、鍵盤輸入模塊、LCD顯示屏模塊、數(shù)據(jù)采集模塊、A/D模數(shù)轉換模塊和 PWM脈寬調制模塊 7部分。 ARM處理器模塊主要包括 PLC2292處理器、FLASH、 SDRAM、電源模塊、實時時鐘模塊和其它輔助電路構成。 ARM處理器模塊是變頻調速控制系統(tǒng)的核心處理單元,以 LPC2292為控制核心;以太網口接口模塊[2]主要負責變頻調速控制系統(tǒng)進行遠程控制和監(jiān)視;鍵盤模塊負責工作參數(shù)的設置輸入,以及工作狀態(tài)的切換; LCD顯示屏模塊負責當前設置和工作狀態(tài)的顯示,同時顯示時鐘日歷等,實時時鐘通過 I2C總線與 LPC2292連接;數(shù)據(jù)采集模塊主要負責從外部采集信息; A/D模數(shù)轉換模塊主要是負責將數(shù)據(jù)采集模塊采集來的模擬信號轉換成數(shù)字信號;PWM脈寬調制模塊主要負責通過 IPM職能功率模塊對交流異步電機進行變頻調速。
LPC2292處理器是變頻調速控制系統(tǒng)的核心處理單元。數(shù)據(jù)采集模塊采集的模擬信號經 A/D模塊量化后數(shù)據(jù)參數(shù)傳入 ROM中的嵌入式 μClinux操作系統(tǒng)的應用程序中,應用程序根據(jù)數(shù)據(jù)在通過 PWM脈寬調制模塊控制輸出頻率,從而再通過 IPM智能功率模塊對交流異步電機進行變頻調速。
3 系統(tǒng)軟件平臺設計
系統(tǒng)軟件平臺設計主要使用C語言和ARM匯編語言。系統(tǒng)軟件平臺設計主要包括3個方面:啟動引導程序 Bootloader;建立μ CLinux操作系統(tǒng)的開發(fā)環(huán)境; PWM脈沖寬度調制模塊驅動程序的實現(xiàn)。
3.1 啟動引導程序Bootloader
引導程序 Bootloader是在操作系統(tǒng)運行之前執(zhí)行的一段程序 [3]。它主要實現(xiàn)的功能[4]包括:初始化 CPU運行的時鐘頻率;初始化 Flash和內存的數(shù)據(jù)寬度,讀寫訪問周期和刷新周期;初始化中斷系統(tǒng);初始化系統(tǒng)中各種片內、片外設備和 I/O端口;初始化系統(tǒng)各種運行模式下的寄存器和堆棧;加載和引導μCLinux操作系統(tǒng)。
3.2建立μCLinux操作系統(tǒng)的開發(fā)環(huán)境
μCLinux操作系統(tǒng)沿襲了傳統(tǒng) Linux操作系統(tǒng)的主要特性,包括穩(wěn)定、強大的網絡和文件系統(tǒng)支持;建立μCLinux操作系統(tǒng)的開發(fā)環(huán)境主要包括 3個步驟 [5]:建立μCLinux操作系統(tǒng)的交叉編譯環(huán)境、μCLinux操作系統(tǒng)的編譯和μCLinux操作系統(tǒng)的加載。
3.3 PWM脈寬調制驅動程序的開發(fā)
設備驅動程序是操作系統(tǒng)內核和硬件之間的接口,它作為應用設備之間的軟件層, 為應用程序屏蔽了硬件的細節(jié)。在μ CLinux操作系統(tǒng)下開發(fā)字符設備驅動程序,主要有如下幾個步驟[6]:(1)設置驅動程序的設備號。(2)實現(xiàn)保存設備信息的結構體中的部分函數(shù)。(3)實現(xiàn)驅動程序的初始化函數(shù)和清除函數(shù)。
PWM脈寬調制驅動程序屬于字符設備驅動程序,因此 PWM脈寬調制驅動程序遵循上述的開發(fā)步驟。
3.3.1設置PWM驅動程序的設備號
PWM脈寬調制驅動程序要先建立文件設備的主設備號和從設備號。PWM驅動程序默認的主設備號為125,沒有使用從設備號。因此,需要建立 1個設備文件,起主設備號為 125,從設備號可任意選擇,文件名可定為PWM。建立設備文件的程序清單如下:
程序清單3.2建立設備文件程序
mknod? /dev/PWM? c 125 0
3.3.2實現(xiàn)保存設備信息的結構體中的部分函數(shù)
PWM驅動程序屬于字符設備的驅動程序。PWM驅動程序要建立保存設備信息的結構體。PWM驅動程序的結構體如下:
程序清單3.1 PWM驅動程序操作的結構體
struct file_operations? pwm_fops={
因為PWM驅動程序僅需要實現(xiàn)open( )、release( )和ioctl( )函數(shù),所以 PWM驅動不能使用標準C的庫函數(shù)來訪問,只能使用內核提供給應用程序的接口函數(shù)來訪問。
從此函數(shù)接口看, 我們實現(xiàn)PWM設備的打開、釋放和控制。函數(shù) open(const char* pathname , int flags)主要實現(xiàn)對 PWM設備的打開;函數(shù)close(int fd )主要實現(xiàn)對PWM設備的關閉;函數(shù) ioctl(int fd , unsigned long int cmd , … )主要實現(xiàn)對PWM脈寬調制設備輸出頻率和占空比的控制。
PWM脈寬調制驅動程序最重要的功能是控制PWM輸出的頻率和占空比。PWM脈寬調制驅動程序輸出的頻率可以通過命令PWM_SET_CYC設置PWM脈寬調制頻率。實際上是以 VPB總線周期為單位設置PWM脈寬調制的周期。頻率是周期的倒數(shù),所以也就設置了頻率。 PWM脈寬調制驅動程序知道PWM脈寬調制的輸出頻率和高電平時間,就可以計算占空比。因此,設置再設置高電平時間就可以計算占空比。PWM脈寬調制驅動程序可以用 PWM_1_SET_DUYY、PWM_1_SET_DUYY等命令設置高電平時間。
3.3.3實現(xiàn)驅動程序的初始化函數(shù)和清除函數(shù)
μCLinux操作系統(tǒng)在加載內核模塊時會調用驅動程序的初始化函數(shù),在卸載內核模塊時調用驅動程序的清除函數(shù)。PWM驅動程序的初始化函數(shù)和清除函數(shù)程序代碼如下:
程序清單3.3 PWM驅動程序初始化函數(shù)代碼
?int pwm_init(void){?? int result ;
result = register_chrdev(MAJOR, DEVICE, &pwm_fops);
? if (result<0){
printk(KERN_ERR DEVICE_NAME “: Unable to get major %d\n” , MAJOR_NR);
return(result);
}
if (MAJOR_NR = =0) MAJOR_NR = result;
? printk(KERN_INFO DEVICE_NAME”: init OK\n”);
? return (0);
}
程序清單3.4 PWM驅動程序清除函數(shù)代碼
?void pwm_cleanup(void){
? unregister_chrdev(MAJOR_NR,DEVICE_NAME);
}
3.3.4為PWM脈寬調制驅動程序添加中斷服務程序
μCLinux操作系統(tǒng)內核具有中斷管理功能,因此中斷服務程序必須按照其規(guī)范使用。μ CLinux操作系統(tǒng)在使用中斷服務程序之前,需要向內核注冊中斷服務程序;不再使用中斷服務程序時,需要注銷中斷服務程序。注冊中斷服務程序通過調用函數(shù)request_irq( )實現(xiàn)。通常申請中斷返回值為0表示成功,或者返回一個負的錯誤碼。函數(shù)返回 -EBUSY,表示另一個設備程序已使用了要申請信號線。注銷中斷服務程序通過調用free_irq( )實現(xiàn)。
3.3.5編譯和測試驅動程序
PWM驅動程序源代碼編寫成功后,需要把它編譯進內核。當用戶需要打開設備時,還需要一個在/dev目錄的設備文件名稱,這樣驅動程序才能工作。
最后經過編譯得到zImage 內核壓縮文件。用引導程序Bootloader通過串口或者以太網接口將zImage文件引導到LPC2292處理器上片外SDRAM上進行調試。 4 結束語
嵌入式系統(tǒng)具有低功耗、可靠性高等突出優(yōu)點。采用嵌入式系統(tǒng)來設計和實現(xiàn)變頻調速控制系統(tǒng),使得變頻調速控制系統(tǒng)可靠性高、性能強、實時性好,將以太網接口集成與變頻調速系統(tǒng)中,使得對變頻調速系統(tǒng)的遠程控制和監(jiān)視變得簡單易行。因此,研制一個帶以太網接口的嵌入式變頻調速控制系統(tǒng)具有重要的科學意義和價值。
本文的主要創(chuàng)新點:具體實現(xiàn)了在PLC2292+μ CLinux操作系統(tǒng)平臺下的6路PWM脈寬調制變頻調速控制系統(tǒng)的軟硬件設計;詳細分析可PWM脈寬調制模塊設備在嵌入式μCLinux操作系統(tǒng)下驅動程序結構和開發(fā)過程,編寫出驅動模塊,實現(xiàn)了 6路PWM脈寬調制驅動模塊設備的控制,結合已經完成的以太網接口驅動模塊,已成功地應用到變頻調速控制系統(tǒng)中,系統(tǒng)簡明,擴展方便,信息處理實時性高。
參考文獻
[1]王樹.變頻調速系統(tǒng)設計與應用[M].北京:機械工業(yè)出版社,2005.
[2]熊育悅,趙哲身.工業(yè)以太網在控制系統(tǒng)應用前景[J].儀表技術,2002, (3):37~39
[3]孫秋野,孫凱,馮?。瓵RM嵌入式系統(tǒng)開發(fā)典型模塊[M].北京:人民郵電出版社,2007.
[4]單承剛,戴學豐.基于ARM的嵌入式BootLoader設計與啟動過程[J].微計算機信息,2006, 11-2:22.
[5]孫紀坤,張小全.嵌入式Linux系統(tǒng)開發(fā)技術詳解—基于ARM[M].北京:人民郵電出版社,
2006.
[6]周立功,陳明計,陳渝.ARM嵌入式Linux系統(tǒng)構建與驅動開發(fā)范例[M].北京:北京航空航天大學出版社,2006.
電子發(fā)燒友App











評論