新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式整流模塊控制器設(shè)計(jì)

嵌入式整流模塊控制器設(shè)計(jì)

——
作者:張嶼 毛征 劉瑞東 時(shí)間:2006-06-01 來源:電子產(chǎn)品世界 收藏

基于AVR+μC/OS-II的嵌入式整流控制器設(shè)計(jì)

Design of Embedded Rectifier Module Controller Based on AVR + μC/OS-II

張嶼  毛征  劉瑞東

北京工業(yè)大學(xué)電子信息與控制工程學(xué)院  

北京動(dòng)力源科技股份有限公司

摘要:針對通信電源產(chǎn)品中嵌入式控制系統(tǒng)設(shè)計(jì)的兼容性與擴(kuò)展性問題,本文介紹了采用AVR單片機(jī)+μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)作為軟硬件開發(fā)平臺的嵌入式整流控制器的統(tǒng)一化設(shè)計(jì)方法。

關(guān)鍵詞:AVR單片機(jī);μC/OS-II;嵌入式控制器

引言

  雖然目前通信電源產(chǎn)品中嵌入式控制系統(tǒng)的研發(fā)技術(shù)比較成熟,但是同一系列(如DUM系列)不同功率型號的產(chǎn)品具有不同的性能參數(shù),以致控制系統(tǒng)采用不同的控制方法;同時(shí),在以往的產(chǎn)品研發(fā)過程中,不同的嵌入式系統(tǒng)工程師具有不同的軟硬件設(shè)計(jì)思想,帶來了芯片應(yīng)用、電路體系、軟件結(jié)構(gòu)的差異。這兩方面問題造成產(chǎn)品的統(tǒng)一管理、統(tǒng)一維護(hù)與升級困難,成本提高。

  針對上述嵌入式控制系統(tǒng)兼容性和擴(kuò)展性考慮不周的問題,結(jié)合8位AVR單片機(jī)的資源優(yōu)勢以及源代碼開放的μC/OS-II實(shí)時(shí)操作系統(tǒng)內(nèi)核的強(qiáng)健性和移植性,本文提出了嵌入式控制系統(tǒng)中基于AVR+μC/OS-II的整流控制器設(shè)計(jì)方法。利用AVR資源豐富、運(yùn)行速度快、編程靈活、調(diào)試方便的特點(diǎn)來滿足該控制器的功能與可靠性要求。采用C語言和匯編語言相結(jié)合的方法,將μC/OS-II實(shí)時(shí)操作系統(tǒng)移植入AVR,在保證系統(tǒng)性能的同時(shí),將軟件開發(fā)統(tǒng)一化、規(guī)范化,縮短了產(chǎn)品研發(fā)周期,易于產(chǎn)品維護(hù)升級,降低了成本。

1.組成及工作原理

  DUM系列通信電源的嵌入式控制系統(tǒng)由主控制器、整流模塊控制器(簡稱“模塊控制器”)等組成。主控制器是中央處理子系統(tǒng)。模塊控制器是聯(lián)結(jié)主控制器與整流模塊(簡稱“模塊”)之間的數(shù)據(jù)通信、信號采集與指令控制的子系統(tǒng),其功能由硬件和軟件兩部分協(xié)調(diào)完成。硬件上不同功率型號通信電源產(chǎn)品的模塊控制器架構(gòu)完全一致;軟件上使用μC/OS-II完成數(shù)據(jù)處理及任務(wù)調(diào)度。具體的工作原理是:AVR依次采集并轉(zhuǎn)換模塊的狀態(tài)信號,檢測在位和模塊告警信號,以此構(gòu)造狀態(tài)幀,通過RS485串行總線發(fā)送到主控制器,同時(shí)接收并解析主控制器發(fā)來的模塊調(diào)壓、限流和開關(guān)機(jī)控制信號幀,最后向模塊發(fā)送和執(zhí)行這些控制信號。下面結(jié)合圖1,具體說明主控部分的特點(diǎn),其余部分詳見文獻(xiàn)[1]。

  主控部分MCU芯片采用ATMEL公司的ATmega16L。它具有如下特點(diǎn)[2]:

  (1) 豐富片內(nèi)資源:片內(nèi)配置16KB Flash ROM、512B EEPROM、1KB RAM,8通道10-bit ADC,16-bit Counter/Timer(可作PWM通道),有USART、SPI等接口。為μC/OS-II提供充足的程序空間;豐富的片內(nèi)外設(shè)減少了AVR外圍電路,使控制器組態(tài)簡單,穩(wěn)定可靠。

  (2) 高速、低輻射、低功耗:采用8-bit增強(qiáng)的RISC結(jié)構(gòu)和Harvard結(jié)構(gòu),具有1MIPS/MHz性能,晶振頻率低(最大工作頻率為8MHz)。

  (3) 強(qiáng)大的C語言支持能力:結(jié)合1KB片內(nèi)RAM、硬件乘法器,以及優(yōu)秀的C編譯器,有助于生成快速、高效代碼。為μC/OS-II的運(yùn)行提供充足的堆??臻g,程序可讀性和兼容性得到保證。

  (4) 支持JTAG在線下載調(diào)試,從而縮短開發(fā)周期,降低產(chǎn)品成本。

2.軟件設(shè)計(jì)

  模塊控制器的軟件設(shè)計(jì)步驟為:第一,將所實(shí)現(xiàn)的功能劃分成若干用戶任務(wù);第二,以μC/OS-II為操作系統(tǒng),將它移植入ATmega16L并進(jìn)行配置;第三,編寫用戶任務(wù)和中斷程序;第四,在系統(tǒng)上編譯、調(diào)試程序。

2.1 μC/OS-II的移植和配置

  μC/OS-II是一個(gè)實(shí)時(shí)性強(qiáng)的操作系統(tǒng)內(nèi)核,其軟硬件體系結(jié)構(gòu)如圖2所示。應(yīng)用程序處于頂層,每個(gè)任務(wù)都可以獨(dú)占處理器,因此設(shè)計(jì)成無限循環(huán)。μC/OS-II處理器無關(guān)代碼提供操作系統(tǒng)服務(wù),應(yīng)用程序可以使用這些服務(wù)函數(shù)進(jìn)行創(chuàng)建和刪除任務(wù)、任務(wù)間通信以及內(nèi)存管理等操作。μC/OS-II的大部分代碼使用C語言編寫,與處理器相關(guān)的實(shí)時(shí)操作使用匯編語言編寫。用戶可將μC/OS-II內(nèi)核裁減為滿足功能的最小系統(tǒng)。

  將μC/OS-II移植入AVR,需要修改OS_CPU.H、OS_CPU_C.C和OS_CPU_A.S這三個(gè)與MCU相關(guān)的文件,并根據(jù)控制器功能需求配置μC/OS-II,即修改OS_CFG.H文件[3]。

2.2 任務(wù)功能

  將控制器的功能劃分成5個(gè)用戶任務(wù),指定任務(wù)優(yōu)先級,優(yōu)先級的制定原則是任務(wù)的重要性和實(shí)時(shí)性。μC/OS-II最多支持64個(gè)優(yōu)先級,每個(gè)任務(wù)賦予1個(gè)優(yōu)先級,其中用戶優(yōu)先級為4~OS_LOWEST_PRIO-3。本控制器的用戶優(yōu)先級選擇范圍是4~8。各用戶任務(wù)分別為:

  (1) 創(chuàng)建用戶任務(wù)的任務(wù)AppTaskStart():初始化操作系統(tǒng)時(shí)鐘節(jié)拍、初始化硬件、創(chuàng)建用戶任務(wù)。這是開啟多任務(wù)調(diào)度OSStart()之后第一個(gè)被執(zhí)行的任務(wù),優(yōu)先級為4。

  (2) 產(chǎn)生PWM波的任務(wù)SetPWMOutTask():產(chǎn)生PWM調(diào)壓、限流波輸出值,優(yōu)先級為5。

  (3) 處理模塊在位和告警信號的任務(wù)GetWarnStatusTask():采集模塊的在位信號和告警信號,優(yōu)先級為6。

  (4) 模塊狀態(tài)采集的任務(wù)RctMeasureTask():片內(nèi)ADC采集并量化模塊電流狀態(tài)信號,優(yōu)先級為7。

  (5) 處理模塊開關(guān)機(jī)的任務(wù)PowProcessTask():解析并向模塊執(zhí)行主控制器發(fā)來的開關(guān)機(jī)信令,優(yōu)先級為8。

  這里以創(chuàng)建用戶任務(wù)的任務(wù)為例,介紹用戶任務(wù)程序編寫方法。其主要代碼如下:

static void AppTaskStart(void *pdata)

{

(void)pdata;        // 防止編譯器告警

OSTickISR_Init();   // 初始化操作系統(tǒng)時(shí)鐘節(jié)拍

AppIOInit();         // 硬件初始化

AppTaskCreate();       // 創(chuàng)建用戶任務(wù)

while (1)           // 任務(wù)體(無限循環(huán)體)

{

OSTimeDly(10);    // 本任務(wù)延時(shí)100ms,同時(shí)讓下一個(gè)最高優(yōu)先級的就緒態(tài)任務(wù)執(zhí)行

}

}

2.3 中斷程序

  時(shí)鐘節(jié)拍中斷:操作系統(tǒng)通過時(shí)鐘節(jié)拍來實(shí)現(xiàn)計(jì)時(shí)以及延時(shí)操作,AVR工作頻率為8MHz,取一個(gè)時(shí)鐘節(jié)拍為10ms。必須創(chuàng)建一個(gè)用戶任務(wù)并開啟多任務(wù)調(diào)度OSStart()之后才能開啟時(shí)鐘節(jié)拍中斷,否則系統(tǒng)可能崩潰。

  USART接收完成中斷:接收并解析主控制器發(fā)來的命令數(shù)據(jù)幀。USART發(fā)送完成中斷:構(gòu)造模塊狀態(tài)信息幀,發(fā)送到主控制器。這2個(gè)中斷通過全局變量與用戶任務(wù)通信。

2.4 兼容與擴(kuò)展

  如果本控制器的某個(gè)功能需要改進(jìn),則直接修改相應(yīng)的任務(wù)函數(shù)即可;如果要為本控制器添加新功能,則直接創(chuàng)建新任務(wù),賦予優(yōu)先級,在新任務(wù)函數(shù)中加入新功能的源代碼即可。這就為系統(tǒng)軟件的維護(hù)與升級提供了方便快捷的途徑。

  本控制器采用統(tǒng)一的數(shù)據(jù)結(jié)構(gòu),采用統(tǒng)一的適用于不同型號模塊的控制處理過程。另外,按照通信協(xié)議,本控制器向主控制器發(fā)送請求模塊配置幀,然后接收主控制器發(fā)回的配置信息來配置被控模塊參數(shù)。

3.結(jié)論

  本文結(jié)合AVR單片機(jī)和μC/OS-II實(shí)時(shí)操作系統(tǒng)的優(yōu)點(diǎn),設(shè)計(jì)出基于AVR+μC/OS-II的嵌入式模塊控制器,它具有軟硬件設(shè)計(jì)的兼容性強(qiáng)和易于擴(kuò)展等突出特點(diǎn),為DUM系列不同功率型號通信電源產(chǎn)品的開發(fā)、維護(hù)和升級節(jié)省了時(shí)間和費(fèi)用。自2005年6月至今試用于DUM48-15B、25D、30D等通信電源產(chǎn)品中,其性能穩(wěn)定,采樣精度高,告警、控制準(zhǔn)確度100%,通信誤碼率低,取得了很好的應(yīng)用效果。

參考文獻(xiàn):

[1] 張嶼, 毛征, 劉瑞東. 基于AVR單片機(jī)的整流模塊控制器設(shè)計(jì)與實(shí)現(xiàn). 中國電子學(xué)會(huì)第十一屆青年學(xué)術(shù)年會(huì)論文集, 2005.

[2] Atmel Corporation. ATmega16(L) Datasheet.

[3] Jean J. Labrosse 著, 邵貝貝 等 譯. 嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II (第2版). 北京: 北京航空航天大學(xué)出版社, 2003.
 

張嶼:碩士,研究方向?yàn)榍度胧较到y(tǒng)。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉