摘要:設(shè)計(jì)了一種基于ARM處理器和μC/OS II的嵌入式電機(jī)" title="電機(jī)">電機(jī)電物理量采集" title="物理量采集">物理量采集系統(tǒng):該系統(tǒng)選用低噪聲低功耗芯片,,對模擬電路進(jìn)行信號(hào)調(diào)理和高速采集;采用高性能工業(yè)級(jí)ARM" title="ARM">ARM微處理器(S3C2410一S),結(jié)合軟件算法進(jìn)行實(shí)時(shí)數(shù)字信號(hào)處理.實(shí)驗(yàn)結(jié)果表明該系統(tǒng)具有體積小,、重量輕,、功耗低、精度較高,、實(shí)時(shí)性好等優(yōu)點(diǎn),,能有效的采集電機(jī)電流、電壓信號(hào),,進(jìn)而使上位機(jī)能更方便的進(jìn)行電機(jī)電物理量分析.
引言
自19世紀(jì)發(fā)明發(fā)電機(jī)和電動(dòng)機(jī)以來,,由于電能應(yīng)用方便,電動(dòng)機(jī)的性能優(yōu)良,,便于控制,,使用與操作簡單,從而得到了迅速普及,,應(yīng)用范圍越來越廣.然而,,由于電機(jī)運(yùn)行機(jī)制復(fù)雜,長期處于高速運(yùn)轉(zhuǎn)和高電壓,、強(qiáng)磁場環(huán)境之下,,運(yùn)行環(huán)境惡劣,要求電機(jī)設(shè)備不出故障是不現(xiàn)實(shí)的,,絕對安全可靠的電機(jī)設(shè)備也是根本不存在的l1J.因此,,我們只能從預(yù)防故障和減少損失的角度出發(fā),及時(shí)發(fā)現(xiàn)電機(jī)的異常,,掌握設(shè)備的運(yùn)行狀態(tài).對已經(jīng)形成的或正在形成的故障進(jìn)行分析診斷,,判斷故障的部位和產(chǎn)生的原因,并及早采取有效的措施,,防患于未然.這就需要我們能實(shí)時(shí)的精確的采集電機(jī)在運(yùn)行中的各種物理量,,進(jìn)而進(jìn)行有效的分析、判斷故障.傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)多以8/16位單片機(jī)構(gòu)成控制系統(tǒng),,其硬件電路較復(fù)雜,,集成度較低,設(shè)計(jì)和調(diào)試難度較大,,不太方便系統(tǒng)升級(jí).傳統(tǒng)的前后臺(tái)式的軟件設(shè)計(jì)方法限制了硬件系統(tǒng)功能的充分發(fā)揮,,影響了系統(tǒng)的實(shí)時(shí)性與穩(wěn)定性.筆者從ARM9來人手,借鑒了一些新的測試方法,,并應(yīng)用ADS1.2設(shè)計(jì)出一套電機(jī)電物理量采集系統(tǒng).
1 系統(tǒng)簡介
本系統(tǒng)設(shè)計(jì)采集電機(jī)的電壓,、電流2個(gè)物理量.其中電流3相都要采集.電物理量采集系統(tǒng)的設(shè)計(jì)關(guān)鍵在于A/D轉(zhuǎn)換的環(huán)節(jié).A/D轉(zhuǎn)換器是模擬信號(hào)源和CPU之間聯(lián)系的接口,它的任務(wù)是將連續(xù)變化的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),,以便計(jì)算機(jī)和數(shù)字系統(tǒng)進(jìn)行處理,、存儲(chǔ)、控制和顯示.在工業(yè)控制和數(shù)據(jù)采集及許多其他領(lǐng)域中,A/D轉(zhuǎn)換是不可缺少的.A/D轉(zhuǎn)換器有以下類型:逐位比較型,、積分型,、計(jì)數(shù)型、并行比較型,、電壓一頻率型.主要應(yīng)根據(jù)使用場合的具體要求,,按照轉(zhuǎn)換速度、精度,、價(jià)格,、功能以及接口條件等因素決定選擇何種類型.本系統(tǒng)的ARM采用三星公司的S3C2410一S,其擁有8路10位A/D轉(zhuǎn)換器,,最大轉(zhuǎn)換率為500 KPSO1.S3C2A-10一S的A/D轉(zhuǎn)換器能接受電壓范圍為0—3.3 V,,但電機(jī)電信號(hào)是成正弦波的圖像分布的,超出了A/D轉(zhuǎn)換器能接受的電壓范圍.所以設(shè)計(jì)前端調(diào)理電路將電信號(hào)的正弦波整體向上抬高,。使之范圍控制在0—3.3 V.然后將電信號(hào)輸出到A/D轉(zhuǎn)換器.最后經(jīng)CPU的處理將采集到的數(shù)據(jù)從串口傳送給計(jì)算機(jī).進(jìn)計(jì)算機(jī)可以對電機(jī)物理量進(jìn)行相應(yīng)的分析.
2 系統(tǒng)設(shè)計(jì)
2.1 硬件設(shè)計(jì)
該系統(tǒng)主要由前端調(diào)理電路,、CPU集成電路和計(jì)算機(jī)組成.基本結(jié)構(gòu)如圖1所示
其中由于S3C2410一S的A/D轉(zhuǎn)換器能接受電壓范圍為O~3.3 V,但電機(jī)電信號(hào)是成正弦波的圖像分布的.所以前端調(diào)理電路設(shè)計(jì)將電信號(hào)的正弦波負(fù)半軸對稱折到x軸上方,,使之范圍控制在0-3.3 V.產(chǎn)生波形如圖2所示.
同時(shí)電路里產(chǎn)生一個(gè)方波信號(hào).當(dāng)波形屬于被翻上去的部分時(shí)方波處于低電平,,其他時(shí)候處于高電平.以此方波信號(hào)在上位機(jī)來還原波形.CPU集成電路包括直流穩(wěn)壓電源電路,、A/D電路,、主CPU電路和串口電路.A/D電路接受從轉(zhuǎn)換電路送過來的模擬信號(hào),然后轉(zhuǎn)換成ARMCPU能接受的數(shù)字信號(hào).經(jīng)過處理后從串口電路傳送給上位計(jì)算機(jī).
2.2 軟件設(shè)計(jì)
2.2.1 μC/OS II操作系統(tǒng)的移植
μC/OS II提供的僅僅是一個(gè)任務(wù)調(diào)度的內(nèi)核,,要想實(shí)現(xiàn)一個(gè)相對完整,,實(shí)用的嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng),還需要相當(dāng)多的擴(kuò)展性的工作,,主要包括:建立文件系統(tǒng)(本系統(tǒng)以Flash為存儲(chǔ)介質(zhì),,建立文件和目錄)、為外部設(shè)備建立驅(qū)動(dòng)程序并規(guī)范相應(yīng)的API函數(shù)創(chuàng)建圖形用戶接口(GUI)函數(shù),、建立其他實(shí)用的應(yīng)用程序接口(API)函數(shù)等.本系統(tǒng)中基于μC/OS II內(nèi)核的RTOS軟件系統(tǒng)總體框圖如圖3所示.
2.2.2 應(yīng)用程序的設(shè)計(jì)
該程序采用ADS1.2結(jié)合c語言來設(shè)計(jì).首先是系統(tǒng)初始化,,根據(jù)ARM芯片固有的功能和特征,進(jìn)行主程序的入口設(shè)置,,所用寄存器清零,,程序ROM區(qū)和數(shù)據(jù)RAM區(qū)的初始化,中斷矢量設(shè)置等主程序運(yùn)行前的準(zhǔn)備工作.以及檢查系統(tǒng)電源,,監(jiān)視芯片上電后的ARM芯片內(nèi)的硬件運(yùn)行情況.當(dāng)ARM芯片運(yùn)行正常后,,進(jìn)人數(shù)據(jù)采集軟件的主程序運(yùn)行.流程圖如圖4所示.
1)AD數(shù)據(jù)采集.A/D轉(zhuǎn)換的數(shù)據(jù)可以通過中斷或查詢的方式來訪問,如果是用中斷方式,,全部的轉(zhuǎn)換時(shí)間(從A/D轉(zhuǎn)換的開始到數(shù)據(jù)讀出)要更長,,因?yàn)橹袛喾?wù)程序返回和數(shù)據(jù)的訪問的原因,所以采用查詢方式不斷檢測ADCCONt3j(轉(zhuǎn)換結(jié)束標(biāo)志位)來確定從ADCDAT寄存器讀取的數(shù)據(jù)是否是最新的轉(zhuǎn)換數(shù)據(jù).
主要代碼有:
#define PRSCVL(20<<6)
#define ADCCON
_
ENABLE_ START(Ox1)
#define STDBM (0x0<<2)
#define PRSCEN(0xl<
void init
_ ADdevice0 //AD設(shè)備初始化
{
rADCCON=(PRSCVLlADCCON_ENABLE_STARTISTDBMIPRSCEN);
)
int GetADresuh(int channe1)
{
rADCCON=ADCCON
— ENABLE— START—BYREADI(channel<<3)IPRSCENIPRSCVL,;
while(!frADCCON&ADCCON—FLAG)),; //AD轉(zhuǎn)換結(jié)束
return f0x3ff&rADCDATO); //返回采樣值
}
2)數(shù)據(jù)發(fā)送.異步串行方式是將傳輸數(shù)據(jù)的每個(gè)字符一位接一位(例如先低位,、后高位)地傳送.?dāng)?shù)據(jù)的各不同位可以分時(shí)使用同一傳輸通道,,因此串行I/O 可以減少信號(hào)連線,最少用一對線即可進(jìn)行.接收方對于同一根線上一連串的數(shù)字信號(hào),,首先要分割成位,,再按位組成字符.為了恢復(fù)發(fā)送的信息,雙方必須協(xié)調(diào)工作.在微型計(jì)算機(jī)中大量使用異步串行I/O 方式,,雙方使用各自的時(shí)鐘信號(hào),,而且允許時(shí)鐘頻率有一定誤差。因此實(shí)現(xiàn)較容易.主要代碼有:
int Uart_
Init(int whichUart,,int baud)
{
if(whichUaxt>=NumberOfUartDrv)
return FALSE,;
return serial_
drv[whichUart]->init(baud);
}
int Uart_ SendByte(int whichUart,,int data)
{
if(whichUart>=NumberOfUartDrv)
return FALS E,;
return serial— .drv[whichUart]->write(data);
}
void Uart_
SendString(int whichUart,,char pt)
{
while( pt){
if( pt== \n )
Uart_
SendByte(whichUart,, kr );
Uart
_ SendByte(whichUart,*pt++),;
)
)
void Uart_Prinf(int whichUart,,char fmt,...)
{
va
_ list ap,;
static char string[256],;
va
_ start(ap,fmt);
vsprinf(string,fmt,,ap),;
Uart_
SendString(whichUart,string),;
va
_ end(ap),;
)
3 結(jié)論
采集數(shù)據(jù)分4路,1路電壓和3路的電流.采集時(shí)上位機(jī)接收到的數(shù)據(jù)每路每個(gè)周期有52個(gè)點(diǎn).既其采樣頻率達(dá)到了2 600 Hz.根據(jù)奈奎斯特定理,,為了完整的保留原始信號(hào)中的信息,,在進(jìn)行模擬/數(shù)字信號(hào)的轉(zhuǎn)換過程中,要使采樣頻率大于信號(hào)中最高頻率2倍. 所以本系統(tǒng)能分析的諧波最高頻率為1.3 kHz,,即1-3 kHz/50 Hz:26次諧波.足夠滿足上位機(jī)做諧波分析的要求.以S3C2410一S為核心的嵌入式硬件系統(tǒng),,并采用ADS開發(fā)相應(yīng)的應(yīng)用程序,,串口方式實(shí)現(xiàn)通信,實(shí)現(xiàn)了電機(jī)物理量的采集,,給上位機(jī)分析電機(jī)提供了可靠的保障.并且該系統(tǒng)采用的ARM核的微控制器也使之較傳統(tǒng)的系統(tǒng)在可靠性,、體積、功耗,、性價(jià)比等方面都具有明顯的優(yōu)勢,,使之有廣泛的應(yīng)用前景和價(jià)值.