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