1 引言 20世紀后半葉,變頻調速技術的出現和日益完善.成為電力拖動領域的一個重大事件。由于變頻調速技術的發展,使結構簡單牢固、價格低廉、應用普及的交流異步電動機有了性能良好的調速手段。 近10年來,隨著電力電子技術、計算機技術、自動控制技術的迅速發展.電氣傳動技術面臨著一場歷史革命,即交流調速取代直流凋速和計算機數字控制技術取代模擬控制技術已成為發展趨勢。交流異步電機變頻調速技術是當今節電、改善工藝流程以提高產品質量和改善環境、推動技術進步的一種主要手段。變頻調速以其優異的調速和起制動性能,高效率、高功率因數和節間效果,廣泛的適用范圍及其它許多優點而被國內外公認為最有發展前途的調速方式。 ARM技術是嵌入式系統方面的主流技術。目前市場上ARM芯片速度可達幾百兆,以它為主控芯片可在硬件上實現高速、高精度且具有一定處理能力的變頻調速控制系統。本系統采用Philips公司的LPC2292處理器,結合嵌入式μClinux操作系統來實現其功能。嵌入式μClinux操作系統提供了豐富的驅動資源。LPC2292處理器具有豐富的接口資源,能夠滿足變頻調速控制系統的設計要求。 2 系統硬件的工作原理 圖2.1為變頻調速控制系統的硬件設計和工作原理圖。系統的硬件設計主要有ARM處理器模塊、以太網模塊、鍵盤輸入模塊、LCD顯示屏模塊、數據采集模塊、A/D模數轉換模塊和PWM脈寬調制模塊7部分。ARM處理器模塊主要包括PLC2292處理器、FLASH、SDRAM、電源模塊、實時時鐘模塊和其它輔助電路構成。ARM處理器模塊是變頻調速控制系統的核心處理單元,以LPC2292為控制核心;以太網13接口模塊主要負責變頻調速控制系統進行遠程控制和監視;鍵盤模塊負責工作參數的設黃輸入,以及工作狀態的切換;LCD顯示屏模塊負責當前設置和丁作狀態的顯示,同時顯示時鐘日歷等,實時時鐘通過12C總線與LPC2292連接;數據采集模塊主要負責從外部采集信息;A/D模數轉換模塊主要是負責將數據采集模塊采集來的模擬信號轉換成數字信號;PWM脈寬調制模塊主要負責通過IPM職能功率模塊對交流異步電機進行變頻調速。 圖2.1變頻調速控制系統的硬件設計和工作原理圖 LPC2292處理器是變頻調速控制系統的核心處理單元。數據采集模塊采集的模擬信號經A/D模塊量化后數據參數傳人ROM中的嵌入式μClinIIX操作系統的應用程序中,應用程序根據數據在通過PWM脈寬調制模塊控制輸出頻率,從而再通過IPM智能功率模塊對交流異步電機進行變頻調速。 3 系統軟件平臺設計 系統軟件平臺設計主要使用c語言和ARM匯編語言。系統軟件平臺設計主要包括3個方面:啟動引導程序Bootload;建立μCLin呱操作系統的開發環境;PWM脈沖寬度調制模塊驅動森序的實現。 3.1啟動引導程序Bootloader 引導程序Bootloader是在操作系統運行之前執行的一段程序。它主要實現的功能包括:初始化CPU運行的時鐘頻率;初始化flash和內存的數據寬度,讀寫訪問周期和刷新周期;初始化中斷系統;初始化系統中各種片內、片外設備和FO端口;初始化系統各種運行模式下的寄存器和堆棧;加載和引導μCLinux操作系統。 3.2建立μCLinux操作系統的開發環境 μCLinux操作系統沿襲了傳統Linux操作系統的主要特性,包括穩定、強大的網絡和文件系統支持;建立μCLinux,操作系統的開發環境主要包括3個步驟:建立μCLinux操作系統的交叉編譯環境、μCLinux操作系統的編譯和μCLinux操作系統的加載。 3.3 PWM脈寬調制驅動程序的開發 設備驅動程序是操作系統內核和硬件之間的接口,它作為應用設備之間的軟件層.為應用程序屏蔽了硬件的細節。在μCLinux操作系統下開發字符設備驅動程序,主要有如下幾個步驟:(1)設置驅動程序的設備號。(2)實現保存設備信息的結構體中的部分函數。(3)實現驅動程序的初始化函數和清除函數。 PWM脈寬調制驅動程序屬于字符設備驅動程序,因此PWM脈寬調制驅動程序遵循上述的開發步驟。 3.3.1設置PWM驅動程序的設備號 PWM脈寬調制驅動程序要先建立文件設備的主設備號和從設備號。PWM驅動程序默認的主設備號為125,沒有使用從設備號。因此,需要建立1個設備文件,起主設備號為125.從設備號可任意選擇,文件名可定為PWM。建立設備文件的程序清單如下: 程序清單3.2建立設備文件程序 mknod /dev/PWM c 125 0 3.3.2實現保存設備信息的結構體中的部分函數 PWM驅動程序屬于字符設備的驅動程序。PWM驅動程序要建立保存設備信息的結構體。PWM驅動程序的結構體如下: 程序清單3.1 PWM驅動程序操作的結構體 struct file_operations pwm_fops={ owner:THIS_MODULE, open:pwm_open, release:pwm_release, ioctl:pwm_ioctl, } 因為PWM驅動程序僅需要實現open()、release()和ioctl()函數,所以PWM驅動不能使用標準C的庫函數來訪問,只能使用內核提供給應用程序的接口函數來訪問。 從此函數接口看.我們實現PWM設備的打開、釋放和控制。函數open(const cIla—pathname,int nags)主要實現對PWM設備的打開;函數close(int fd)主要實現對PWM設備的關閉;函數ioed(int fd,tinsigned IonE int cmd,⋯)主要實現對PWM脈寬調制設備輸出頻率和占空比的控制。 PWM脈寬調制驅動程序最重要的功能是控制PWM輸出的頻率和占空比。PWM脈寬調制驅動程序輸出的頻率可以通過命令PWM_SET_CYC設置PWM脈寬調制頻率。實際上是以VPB總線周期為單位設置PWM脈寬調制的頻率。頻率是周期的倒數,所以也就設置了頻率。PWM脈寬調制驅動程序知道PWM脈寬調制的輸出頻率和高電平時間,就可以計算占空比。因此,設置再設置高電平時間就可以計算占空比。PWM脈寬調制驅動程序可以用PWM_1_SET_DUYY、PWM_1_SET_DUYY等命令設置高電平時間。 3.3.3 實現驅動程序的初始化函數和清除函數 μCLinux操作系統在加載內核模塊時會調用驅動程序的初始化函數,在卸載內核模塊時調用驅動程序的清除函數。PWM驅動程序的初始化函數和清除函數程序代碼如下: 程序清單3.3 PWM驅動程序初始化函數代碼 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\h”,MAJOR_NR); return(result); } if(MAJOR_NR==0) MAJOR_NR=result; printk(KERN_INF0 DEVICE_NAME”:init 0K\n”); return(0); } 程序清單3.4 PWM驅動程序清除函數代碼 void pwm_cleanup(void){ unregister_chrdev(MAJOR_NR,DEVICE_NAME); } 3.3.4為PWM脈寬調制驅動程序添加中斷服務程序 μLinux操作系統內核具有中斷管理功能,因此中斷服務程序必須按照其規范使用。μCLinux操作系統在使用中斷服務程序之前,需要向內核注冊中斷服務程序;不再使用中斷服務程序時,需要注銷中斷服務程序。注冊中斷服務程序通過調用函數request_irq()實現。通常申請中斷返回值為0表示成功,或者返回—個負的錯誤碼。函數返回一EBUSY,表示另一個設備程序已使用了要申請信號線。注銷中斷服務程序通過調用free-irq()實現。 3.3.5編譯和測試驅動程序 PWM驅動程序源代碼編寫成功后,需要把它編譯進內核。當用戶需要打開設備時。還需要一個在/dev目錄的設備文件名稱.這樣驅動程序才能工作。 最后經過編譯得到zImage內核壓縮文件。用引導程序Bootloader通過串口或者以太網接口將zImage文件引導到LPC2292處理器上片外SDRAM上進行調試。 4 結束語 嵌入式系統具有低功耗、可靠性高等突出優點。采用嵌入式系統來設計和實現變頻調速控制系統,使得變頻調速控制系統可靠性高、性能強、實時性好,將以太網接口集成與變頻調速系統中,使得對變頻調速系統的遠程控制和監視變得簡單易行。因此,研制一個帶以太網接口的嵌入式變頻調速控制系統具有重要的科學意義和價值。 本文的主要創新點:具體實現了在PLC2292+μCLinux操作系統平臺下的6路PWM脈寬調制變頻調速控制系統的軟硬件設計;詳細分析可PWM脈寬調制模塊設備在嵌入式μCLinux操作系統下驅動程序結構和開發過程,編寫出驅動模塊,實現了6路PWM脈寬調制驅動模塊設備的控制,結合已經完成的以太網接口驅動模塊,已成功地應用到變頻調速控制系統中,系統簡明,擴展方便,信息處理實時性高。 作者:徐功偉 來源:《微計算機信息》(嵌入式與soc)2009年第25卷第6-2期 |