ARM9嵌入式系統(tǒng)在勵(lì)磁調(diào)節(jié)裝置的應(yīng)用
關(guān)鍵詞: 勵(lì)磁調(diào)節(jié)裝置; ARM; Linux ; 嵌入式
0. 前言
勵(lì)磁系統(tǒng)是發(fā)電機(jī)組重要的輔助裝置,它對(duì)發(fā)電廠的自動(dòng)化、發(fā)電機(jī)組運(yùn)行的可靠性有著重要作用。隨著科學(xué)技術(shù)發(fā)展,勵(lì)磁方式已從直流電機(jī)勵(lì)磁系統(tǒng)發(fā)展到可控硅勵(lì)磁,自動(dòng)調(diào)節(jié)器從原來的模擬式發(fā)展到微機(jī)數(shù)字式。
本文所研究的勵(lì)磁調(diào)節(jié)裝置,它是以經(jīng)典和現(xiàn)代控制理論與數(shù)字信號(hào)處理器DSP技術(shù)與嵌入式技術(shù)相結(jié)合的微機(jī)勵(lì)磁調(diào)節(jié)器。它繼承了過去的微機(jī)勵(lì)磁調(diào)節(jié)器的全部調(diào)節(jié)、控制及限制保護(hù)功能,同時(shí)在計(jì)算速度、抗電磁干擾、可靠性等方面有了極大的改進(jìn),有效保證整個(gè)系統(tǒng)調(diào)節(jié)、控制功能的實(shí)現(xiàn); 外圍采用先進(jìn)的大規(guī)模可編程邏輯器件,以提高整個(gè)系統(tǒng)的可靠性,并形成對(duì)用戶開放的邏輯系統(tǒng)。
1.勵(lì)磁調(diào)節(jié)器的組成原理
圖一 勵(lì)磁調(diào)節(jié)系統(tǒng)原理圖
所示為自并勵(lì)勵(lì)磁調(diào)節(jié)器系統(tǒng)的組成圖,機(jī)自身向可控硅整流橋供電,AVR裝置根據(jù)采集的數(shù)據(jù)經(jīng)PI或PID計(jì)算得到數(shù)據(jù)控制量,經(jīng)過比較電路產(chǎn)生觸發(fā)脈沖,調(diào)節(jié)可控硅導(dǎo)通角的大小,使機(jī)端電壓保持在恒定值,從而最終達(dá)到控制的目的。
該系統(tǒng)主要由微機(jī)勵(lì)磁調(diào)節(jié)器;電氣制動(dòng)停機(jī)裝置等分組成。采用兩套相同的控制器冗余配置,物理通道相互獨(dú)立,每個(gè)通道基本包括:電源系統(tǒng)、主機(jī)板、采樣板、模擬量輸入輸出板(A/D,D/A) 、開關(guān)量輸入輸出板、脈沖形成及放大板等。
2. 嵌入式系統(tǒng)部分
2. 1嵌入式硬件單元
ARM(Advanced RISC Machines)是微處理器行業(yè)的一家知名企業(yè),設(shè)計(jì)了高性能、耗能低的RISC處理器,具有性能高、成本低和能耗省的特點(diǎn)。應(yīng)用于多種嵌入式領(lǐng)域,配備Thumb擴(kuò)展、調(diào)試和Harvard總線。5級(jí)流水線提高了時(shí)鐘頻率和并行處理能力。集成有串口,USB Host 控制器,LCD控制器,Nand Flash控制器,IDE, PCMCIA 等多種功能。32K FRAM.最高分辨率1024X768X32芯片,內(nèi)置以太網(wǎng)控制器,片上資源豐富。
本系統(tǒng)中管理單元是以ARM9為內(nèi)核,串行并行接口芯片,D/A轉(zhuǎn)換器等硬件,負(fù)責(zé)管理液晶、對(duì)外通訊、打印、錄波分析。大大增加了系統(tǒng)通信、后臺(tái)管理、遠(yuǎn)程維護(hù)等附加功能,可以運(yùn)行操作系統(tǒng)以及QT等應(yīng)用程序,具有比較強(qiáng)的事務(wù)管理功能。
控制單元是以DSP為內(nèi)核,負(fù)責(zé)脈沖形成、AD轉(zhuǎn)換、數(shù)據(jù)運(yùn)算等。 DSP由于其特殊的結(jié)構(gòu)、專門的硬件乘法器和特殊的指令,使其能快速地實(shí)現(xiàn)各種數(shù)字信號(hào)處理及滿足各種高實(shí)時(shí)性要求。其優(yōu)勢(shì)在于其強(qiáng)大的數(shù)據(jù)處理能力和較高的運(yùn)行速度。
本系統(tǒng)采用ARM和DSP芯片的雙核嵌入式系統(tǒng),充分利用了ARM和DSP的各自特點(diǎn)進(jìn)行協(xié)同開發(fā)。 DSP作為控制部分,可以充分發(fā)揮其對(duì)數(shù)字信號(hào)處理的獨(dú)特優(yōu)勢(shì);ARM作為管理部分,則發(fā)揮其前臺(tái)顯示通訊管理的優(yōu)勢(shì),使前臺(tái)部分相對(duì)獨(dú)立,減少主CPU負(fù)擔(dān);即使發(fā)生故障,對(duì)后臺(tái)主程序不產(chǎn)生影響,相應(yīng)增強(qiáng)了整個(gè)設(shè)備冗錯(cuò)能力。二者通過HPI進(jìn)行實(shí)時(shí)數(shù)據(jù)透明交換。
圖二 ARM+DSP嵌入式硬件圖
2.2 嵌入式操作系統(tǒng)選擇
在ARM 芯片上可以實(shí)現(xiàn)多種操作系統(tǒng)的移植,比如Window-CE、VXWorks等,由于Linux具有以下特點(diǎn): 1)開放的源碼,豐富的軟件資源;2)內(nèi)核功能強(qiáng)大,性能高效、穩(wěn)定,多任務(wù)易于裁減; 3)完善的網(wǎng)絡(luò)通信、圖形、文件管理機(jī)制;4)支持大量的周邊硬件設(shè)備; 5) 價(jià)格低廉可以有效降低產(chǎn)品成本。基于開發(fā)成本考慮,最后選用了ARM-Linux系統(tǒng)。
2.3 ARM 與 DSP連接
HPI是一個(gè)并行串口,ARM通過它可以之間訪問DSP存儲(chǔ)空間以及地址映射道存儲(chǔ)空間的外圍設(shè)備。HPI主要由地址寄存器HPIA,數(shù)據(jù)寄存器HPID,以及控制寄存器HPIC組成,ARM先通過對(duì)控制寄存器和地址寄存器設(shè)置,然后根據(jù)控制信號(hào)進(jìn)行對(duì)數(shù)據(jù)寄存器讀寫操作。ARM處理器在與HPI的讀/寫前,首先要完成自身工作模式等一系列初始化,其源代碼如下:
SYSCFG=0xeTffe22;/*關(guān)掉ARM中Cache*/
EXTDBWTH=0K0ffff556; /*使外部I/O接口工作于32位模式*/
EXTAC0NO=0x08610000/*配置外部I/O接口各讀寫時(shí)序關(guān)系*/
這段代碼通過對(duì)寄存器的操作,配置好ARM處理器工作模式后,對(duì)外部I/O接口就可以進(jìn)行讀寫,從而完成對(duì)HPI接口的相應(yīng)操作了。HPI接口可以用I/O端口方式,也可以用I/O存取方式。系統(tǒng)平臺(tái)采用I/O存取方式,將HPI訪問地址寄存器HPIA、數(shù)據(jù)寄存器HPID、控制寄存器HPIC映射到內(nèi)存物理地址為0x3fd40000開始的空間,通過訪問存儲(chǔ)器指令對(duì)HPI進(jìn)行操作。
HPI物理地址定義如下:
#define HPI-Base Ox3fd40000
#define Vpint /* volatile unsigned int */
#define HPICW (Vpint(HPI-Base +0x00))
#define HPICR (Vpint(HPI-Base +0x40)) /* 定義HPIC寄存器 */
#define HPIAW (Vpint(HPI-Base +0x10))
#define HPIAR (Vpint(HPI-Base +0x50)) /* 定義HPIA寄存器 */
#define HPIDW (Vpint(HPI-Base +0x20))
#define HPIDR (Vpint(HPI-Base +0x60)) /* 定義HPID寄存器 */
開始通信時(shí)ARM向DSP發(fā)送命令(如數(shù)據(jù)采集),通過HPI口中斷DSP,使DSP進(jìn)入相應(yīng)子程序;同時(shí)DSP將數(shù)據(jù)存入緩沖區(qū),一幀長度為256字節(jié)。當(dāng)ARM向DSP請(qǐng)求數(shù)據(jù)時(shí),向DSP發(fā)送一個(gè)幀同步命令字,并同時(shí)中斷DSP,DSP響應(yīng)中斷將數(shù)據(jù)送入HPI口RAM,存完一幀數(shù)據(jù)后DSP向ARM發(fā)中斷,ARM響應(yīng)中斷,清除該中斷把HPI口中數(shù)據(jù)取出存入RAM中,并送終端顯示并循環(huán)刷新。 ARM的部分程序流程圖如下圖所示:
圖三 ARM部分程序流程圖
HPI讀寫數(shù)據(jù)部分代碼:
for(i=0 ;i<HPISize;i++)
{
HPICW=0x00000000; /*初始化HPI口的控制寄存器*/
HPIAW=0x800000000; /*初始化HPI口的地址寄存器*/
hpiBaseAddr[i]=HPIDR; /*通過HPI讀出數(shù)據(jù),送到數(shù)組中暫存*/
CpLen=HPISize;
if ( copy_to user (buffer , (_u8*)(&hpi>HpiBaseAddr[j]), CpLen )) return-EFAULT;
/*將數(shù)據(jù)拷貝到用戶緩沖區(qū)*/
return CpLen
}
在開發(fā)DSP為內(nèi)核的控制單元中,大部分代碼采用了C語言來編寫,利用Ti公司提供的開發(fā)環(huán)境CCS IDE(Code Composer Studio Integrated Development Environment )進(jìn)行程序編譯、匯編和鏈接,并對(duì)程序進(jìn)行仿真調(diào)試,最后將生成的DSP可執(zhí)行代碼下載到DSP的Flash中。
3.結(jié)論及創(chuàng)新點(diǎn)
利用ARM9 CPU 強(qiáng)大的功能, 以及嵌入式Linux多進(jìn)程多線程編程等提供的便捷高效的底層支持,開發(fā)出的勵(lì)磁調(diào)節(jié)裝置具有可靠性高、操作方便等諸多優(yōu)點(diǎn),在勵(lì)磁調(diào)節(jié)控制系統(tǒng)中起到了樞紐和核心的作用。本文介紹使用的ARM和DSP雙CPU構(gòu)成的雙核嵌入式的硬件平臺(tái),給出系統(tǒng)整體硬件設(shè)計(jì)圖,并詳細(xì)介紹了ARM和DSP通信部分的設(shè)計(jì)。以后基于DSP進(jìn)行數(shù)據(jù)處理、ARM進(jìn)行管理,二者配合的系統(tǒng)將會(huì)越來越多、應(yīng)用也將越來越廣泛。
創(chuàng)新點(diǎn):(1) 系統(tǒng)用ARM處理器代替單片機(jī),使系統(tǒng)性能得以大大提高; (2) 采用ARM、DSP雙核嵌入式系統(tǒng),充分發(fā)揮了ARM和DSP的各自優(yōu)勢(shì);(3)工業(yè)級(jí)大液晶顯示器觸摸屏,替代傳統(tǒng)LCD,友好人機(jī)界面易學(xué)易用。
參考文獻(xiàn):
[1] 李基成 現(xiàn)代同步發(fā)電機(jī)勵(lì)磁系統(tǒng)設(shè)計(jì)及應(yīng)用 北京:中國電力出版社 2002
[2] 周雙喜、 李 丹 同步發(fā)電機(jī)數(shù)字式勵(lì)磁調(diào)節(jié)器 北京:中國電力出版社 1998
[3] 杜春雷,ARM體系結(jié)構(gòu)與編程[M],北京清華大學(xué)出版社,2003,7~191
[4] EP9315 User’s Guide by Cirrus Logic
[5] Atmel Corporation ARM Datasheet January[M],F(xiàn)rance:Atmel Corporation 1999
[6] 吳振綱,陳虎.PLC的人機(jī)接口與編程[J].微計(jì)算機(jī)信息,2005,8-1:21-23