《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 基于uC/OS-II的變頻器變結構控制系統設計

基于uC/OS-II的變頻器變結構控制系統設計

2008-08-26
作者:繆青海 陳模江 白連平

??? 摘 要: 介紹了抽油電機變頻器變結構控制系統功能原理,如何利用μC/OS-II" title="C/OS-II">C/OS-II的多任務" title="多任務">多任務功能實現控制系統的算法結構變換,操作系統的移植、多任務的建立和SDK下的軟件設計;最后總結了在應用中需注意的問題。
??? 關鍵詞: μC/OS-II? 多任務? DSP56F803? 變結構控制

?

??? 在油田生產中為了節省電能并減小故障率,變頻器得到越來越多的應用。但由于油井負載的非周期大脈動性質,從能量的流向來看,變頻器有兩種運行狀態——電動運行和回饋制動。不同運行狀態的控制變量和控制方法是不同的,這就要采用所謂的變結構控制。本應用是實現抽油電機變頻驅動中的變結構控制,不同的控制結構" title="控制結構">控制結構通過任務間的切換實現。
??? 系統控制核心采用DSP56F803,它是Motorola公司推出的16位DSP型微控制器,運算速度可達40MIPS,片內資源豐富,有強大的軟件支持,是嵌入式應用的理想選擇。本系統應用了其SPI、SCI、PWM、鍵盤中斷及通用I/O口等功能模塊。
1 系統設計
1.1?μC/OS-II的移植與配置

??? Motorola公司提供的軟件開發工具包SDK為使用μC/OS-II做好了鋪墊工作,與硬件相關的文件OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C已經給出,只需購得系統源代碼,然后將其考入指定的文件目錄,系統的移植就完成了。本文采用最新版本μC/OS-II V2.51。
??? 系統移植成功后,需要對操作系統進行配置(裁剪),把用不到的功能去掉,以最大限度地節省存儲空間。這項工作是通過os_cfg.h中的宏定義進行的,本文只用到了多任務管理、信號量" title="信號量">信號量、互斥量等功能。在本應用中,μC/OS-II內核經過剪裁后只有3KB左右,相對DSP56F803的32KB內部程序Flash只用了不到十分之一。需注意的另一個關鍵設置是時鐘節拍中斷頻率OS_TICKS_PER_SEC,它是系統多任務運行所依賴的時間基準,也決定了任務重復調用的最快頻率。這里缺省設為1000,要比文獻[3]中的推薦值高出一個數量級。但實際應用表明,DSP56F803以其高運算速度在這個設置下是完全勝任的。
1.2 系統功能
??? 根據油田生產的要求,系統要實現以下功能:鍵盤輸入、參數顯示、三相電流采集、直流側電壓采集、溫度采集、變頻指令輸出以及保護等。系統對電流、電壓、溫度進行周期性采樣,采樣值經過數字信號處理,作為控制器的參數,最后由控制算法得出控制量,經PWM和D/A轉換器發送給變頻器,形成反饋閉環控制。系統運行過程中實時顯示電流、溫度等參數,并可以通過鍵盤對控制器進行參數在線設定。另外,高溫、過流等保護功能必不可少。系統原理如圖1。控制器根據直流側電容C上電壓的大小來確定以哪一種控制結構運行。當直流側電壓不超過設定值時,系統以電動狀態運行。超過設定值時要以回饋制動方式運行,要求兩種工作狀態要互鎖,切換要準確、及時。

?


1.3 任務的創建及變結構控制的實現
??? 根據功能要求,本著盡量減少任務數以減輕CPU運行負擔的原則,本文設計了AD采集、電動運行、回饋制動和顯示四個任務。另外還設計了兩個中斷服務子程序:用PortA口的中斷功能實現8個鍵盤輸入,用外部中斷IrqA實現短路、過流、缺相保護功能。
??? 每個任務都有自己的名稱、內存空間和優先級。不同的任務必須有不同的優先級,它們可以是0~62之間的任意值,數值越小優先級越高。優先級的設置有不同的依據,以本文為例,回饋運行任務對時間要求最苛刻,如果不能及時啟動或過早結束都會對變頻器造成危害,所以其優先級設為最高;AD采集任務運行最頻繁,必須為其它任務提供可靠的參數,優先級設為次高;電動運行任務是常規運行狀態,優先級低于AD采集任務;顯示任務只實現人機交互,顯示狀態和參數對控制器性能沒有直接影響,優先級設為最低。μC/OS-II要求為每個任務分配OS_STK類型的堆棧空間,并且它們占用的RAM存儲空間必須是連續的。
??? 任務延時是指任務執行完畢處于掛起等待狀態到下一次重新運行之間的時間間隔,它的單位是時鐘中斷節拍。由于OS_TICKS_PER_SEC為1000,每一拍為1ms。每個任務的調用間隔不能小于一個節拍,它將影響模擬量的采樣頻率。
??? 各個任務的屬性定義如表1所示。

?


1.4 任務間的通信
??? 各個任務是通過搶占CPU的使用權來運行的,它們之間存在一定的邏輯關系,彼此互相聯系又互相制約。信號量、郵箱、消息隊列等功能為實現任務間通信提供了有力工具,它們的使用方法靈活多變,如用信號量設置事件標志,喚醒任務、用郵箱在任務間傳遞參數、用消息隊列的循環尋址功能進行模擬通道的數據采集等。本文設計了兩個信號量,在系統運行開始后,任務TASK_AD檢測直流側電壓的大小。當電壓未超過設定值時,發出信號DC_NORM喚醒任務Task_NORMAL;當電壓高出設定值時,發出信號DC_OVER喚醒任務Task_FEBACK。雖然這兩個任務基于不同的控制結構,采用不同的算法,但都要使用PWM輸出和SPI通信口,所以在喚醒一個任務的同時必須讓另外一個任務掛起。這里引入了互斥型信號量T_MUTEX實現這個功能。得到T_MUTEX信號的任務將獨自占有共享資源的使用權,兩個任務不會因資源沖突而同時掛起,解決了任務間優先級反轉問題,避免了系統功能失效。任務間邏輯關系如圖2所示。

?


??? 操作系統為任務間通信提供了多種途徑,但最簡單有效的方法是共享全局變量。本文使用共享全局變量的方法實現了顯示任務與鍵盤中斷服務之間的通信,代碼如下:
??? 鍵盤中斷:
??? static void KeyboardISR(void)
??? {
??? ??UWord16?? cpu_sr;
???? ?OS_ENTER_CRITICAL(); //臨界區代碼保護
??? ??asm{
??? ??move X:$0FB7,A1??//讀鍵盤中斷狀態表
??? ??move A1,state1??//將中斷狀態放入全局變量
??? ??};
??? ??OS_EXIT_CRITICAL();?//臨界區代碼保護結束
??? ??}
??? 這里state1是全局變量,鍵盤中斷的工作僅僅是將PORTA口中斷狀態寄存器(IESR,地址$0FB8)讀入state1中。為防止其他任務在此期間對state1的修改,使用了臨界區代碼保護。
??? 顯示任務的部分代碼:
????switch(state1)
???????{case 1:??//PTA_0對應的鍵被按下
???????……???//相應的服務程序,略
?? ?? ?case 128:??//PTA_7對應的鍵被按下
?? ????break; }
? ??asm{move $00,X:$0FB8};??????? //清鍵盤中斷狀態,以備下次中斷
??? 顯示任務中采用多分支結構,根據statel=2n,(n=0,1,2,3,,4,5,6,7),不同的值代表不同的鍵被按下,程序進行相應的處理;最后將IESR寄存器清零。用同樣的方法,兩位之間互相組合可擴展形成16個按鍵。這樣只用一個全局變量就完成了中斷與任務間的通信,程序用內嵌匯編的C來寫,簡捷高效。
2 系統設計中需注意的問題
??? 首先是存儲器分配問題。多任務、郵箱等功能的使用會增加RAM的額外開銷,在不擴展外部RAM的情況下,可用的只有片內2KB數據RAM和512字的程序RAM,資源相對有限,存儲空間的合理分配就顯得很重要。任務堆棧所占用的RAM空間要根據實際應用來確定,必須考慮任務調用的嵌套情況、任務中函數為局部變量所分配的內存數目。另外,它必須能保存DSP的所有22個寄存器和16個存儲器字。如果為任務分配的存儲空間富余過多則造成資源緊張,甚至會因內存溢出導致系統崩潰。解決方法是調用系統函數OSTaskStkChk(),它可以檢測每個任務運行時使用的內存大小,為合理分配內存空間提供了依據。另外,可采用一些簡化方法節省RAM空間。例如SDK為AD采集的每個通道都定義一個結構體" title="結構體">結構體,它包括三個元素:句柄、數值長度和采樣值;如果使用五路AD采集,就得定義五個結構體。通常不進行初始化,DSP內核在運行時將它們放入RAM空間,占用RAM較多。通常關心的只是采樣值一個元素,其他兩個只完成輔助功能。如果使用一個存放采樣值的變量代替這個結構體,或直接采用匯編語言寫這段代碼,就可大幅度地節省RAM空間。本文的AD采集程序就是用匯編完成。
??? SDK沒有提供在DSP56F803下使用SPI函數的例程。仿照在807中的成功應用,筆者調用spiWrite()函數,通過SPI驅動D/A轉換芯片。但在編譯連接時出現系統錯誤,數據類型unsigned short與const void不匹配,在const.c中將spiWrite做強制類型轉換(void*)(&spiWrite),解決了這一問題。
??? 利用SDK與μC/OS-II相配合,充分發揮了DSP型控制器DSP56F803的功能,采用內嵌匯編的C語言編程,大大提高了代碼的可讀性和可移植性,縮短了系統開發周期,成功實現了系統的變結構控制功能,也體現了操作系統的多任務功能在實現多算法結構上的優越性。
參考文獻
1 Motolora DSP56F80X User's Manual.? 2000
2 Motolora SDK Programmer's Guide. 2001
3 Labrosse Jean J.,邵貝貝譯.嵌入式實時操作系統μC/OS-II.北京:北京航空航天大學出版社,2003
4 邵貝貝.Motolora DSP型16位單片機原理與實踐. 北京:北京航空航天大學出版社,2003

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
午夜精品久久久久久久99樱桃| 欧美三级午夜理伦三级中视频| 亚洲高清视频在线观看| 久久综合给合久久狠狠狠97色69| 久久aⅴ国产欧美74aaa| 精品成人国产在线观看男人呻吟| 欧美电影在线免费观看网站| 亚洲精品一区二区三区福利| 99综合精品| 国产伦精品免费视频| 久久综合一区二区| 久久久久久久一区二区| 亚洲免费电影在线| 亚洲欧美高清| 亚洲高清二区| 亚洲二区精品| 国产精品入口66mio| 久久综合久久综合九色| 久久久亚洲午夜电影| 久久免费偷拍视频| 99国产精品久久久久久久| 亚洲茄子视频| 亚洲一级黄色| 在线电影欧美日韩一区二区私密| 欧美日韩在线看| 久久久青草青青国产亚洲免观| 欧美中文字幕久久| 亚洲社区在线观看| 亚洲电影免费观看高清完整版在线观看 | 欧美涩涩网站| 国产精品久久久久一区二区三区 | 日韩视频一区二区三区在线播放免费观看 | 欧美激情一区二区三区在线| 亚洲永久视频| 久久国产精品久久久久久电车| 欧美一区二区三区免费观看视频 | 欧美尤物一区| 久久频这里精品99香蕉| 欧美成人69| 国产精品白丝av嫩草影院| 免费短视频成人日韩| 亚洲欧美另类中文字幕| 亚洲精品国产精品国自产在线| 亚洲宅男天堂在线观看无病毒| 亚洲欧洲综合| 伊人久久婷婷| 亚洲美女毛片| 亚洲欧美日韩一区二区三区在线观看 | 欧美精品www| 国产精品久久久亚洲一区| 国产视频自拍一区| 欧美午夜一区二区| 国产日韩在线视频| 亚洲精品国产精品乱码不99按摩| 影音先锋一区| 日韩视频一区| 欧美亚洲综合网| 亚洲欧美久久久| 亚洲国产精品视频| 久久高清免费观看| 99国产精品久久久久老师| 亚洲成人在线免费| 一区二区三区四区五区精品| 亚洲人妖在线| 亚洲尤物视频网| 久久一区国产| 国产精品99一区二区| 悠悠资源网亚洲青| 亚洲影院在线观看| 最新成人av网站| 亚洲一区在线直播| 免费在线观看精品| 男女精品网站| 国产精品亚洲一区| 日韩午夜精品| 亚洲美女色禁图| 欧美一区二区三区久久精品| 99精品国产热久久91蜜凸| 久久国产免费看| 久久精品国产亚洲a| 欧美日韩播放| 久久久久天天天天| 欧美三区视频| 最新国产の精品合集bt伙计| 午夜精品视频在线观看| 99pao成人国产永久免费视频| 久久久久国内| 久久久91精品国产一区二区精品| 欧美日本在线视频| 国产自产v一区二区三区c| 黄色在线一区| 亚洲国产欧美久久| 亚洲免费视频一区二区| 卡一卡二国产精品| 国产日韩精品久久| 黄色成人片子| 亚洲欧洲av一区二区| 中文网丁香综合网| 欧美精品三级日韩久久| 精品va天堂亚洲国产| 午夜视频在线观看一区二区| 亚洲丝袜av一区| 性久久久久久久久久久久| 欧美在线视频免费观看| 欧美日韩在线播放一区| 亚洲激情av| 在线亚洲高清视频| 亚洲欧美在线另类| 亚洲在线观看视频| 欧美日韩高清在线| 亚洲欧洲精品成人久久奇米网| 亚洲福利一区| 久久影院午夜论| 国产有码一区二区| 性欧美videos另类喷潮| 欧美在线精品一区| 国产免费亚洲高清| 亚洲欧美在线aaa| 久久成人资源| 国产香蕉久久精品综合网| 午夜在线一区二区| 欧美在线视频一区| 国产婷婷色综合av蜜臀av| 午夜欧美视频| 久久久久久久久久久成人| 国产在线拍揄自揄视频不卡99| 欧美亚洲在线播放| 久久亚洲国产成人| 亚洲国产成人av好男人在线观看| 亚洲精选国产| 欧美日韩一区二区三区在线观看免| 亚洲美女性视频| 亚洲婷婷综合色高清在线 | 欧美精品日韩精品| 亚洲精品久久久久久下一站| 一本到12不卡视频在线dvd| 欧美日韩高清免费| 亚洲四色影视在线观看| 亚洲第一成人在线| 久久综合婷婷| 91久久线看在观草草青青| aa亚洲婷婷| 欧美性猛片xxxx免费看久爱| 亚洲一区视频在线观看视频| 小黄鸭精品aⅴ导航网站入口| 国产欧美精品xxxx另类| 久久精品日产第一区二区三区 | 久久久久久自在自线| 1024成人| 在线午夜精品自拍| 国产精品区一区二区三| 先锋亚洲精品| 欧美gay视频| 一二美女精品欧洲| 久久国产乱子精品免费女| 亚洲大片在线观看| 国产精品99久久99久久久二8 | 亚洲欧美在线aaa| 欧美乱人伦中文字幕在线| 日韩亚洲视频| 欧美在线国产精品| 亚洲国产精品久久久| 亚洲在线观看视频网站| 国内精品久久久| 一本一本久久a久久精品牛牛影视| 国产精品区免费视频| 亚洲丁香婷深爱综合| 欧美日韩国产成人| 午夜亚洲福利在线老司机| 玖玖玖国产精品| 在线亚洲精品| 老司机一区二区| 一区二区高清视频在线观看| 久久精品三级| 亚洲最黄网站| 久久综合色影院| 亚洲一区二区三区激情| 欧美不卡在线视频| 亚洲欧美一区二区三区极速播放| 欧美91大片| 午夜精品久久久99热福利| 欧美国产日韩亚洲一区| 在线免费观看成人网| 亚洲一级片在线观看| 在线观看成人小视频| 午夜精品一区二区三区四区| 亚洲电影观看| 欧美在线一二三四区| 亚洲人成在线观看网站高清| 欧美有码在线视频| 亚洲精选视频在线| 另类专区欧美制服同性| 亚洲一区二区三区高清| 欧美国产一区二区在线观看 | 久久亚洲一区| 亚洲一级特黄| 欧美日本一道本在线视频| 亚洲第一主播视频| 国产视频一区三区| 亚洲——在线|