ARM處理器設(shè)計(jì)的電機(jī)電物理量采集系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:設(shè)計(jì)了一種基于ARM處理器和μC/OS II的嵌入式電機(jī)電物理量采集系統(tǒng):該系統(tǒng)選用低噪聲低功耗芯片,對(duì)模擬電路進(jìn)行信號(hào)調(diào)理和高速采集;采用高性能工業(yè)級(jí)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ī)以來(lái),由于電能應(yīng)用方便,電動(dòng)機(jī)的性能優(yōu)良,便于控制,使用與操作簡(jiǎn)單,從而得到了迅速普及,應(yīng)用范圍越來(lái)越廣.然而,由于電機(jī)運(yùn)行機(jī)制復(fù)雜,長(zhǎng)期處于高速運(yùn)轉(zhuǎn)和高電壓、強(qiáng)磁場(chǎng)環(huán)境之下,運(yùn)行環(huán)境惡劣,要求電機(jī)設(shè)備不出故障是不現(xiàn)實(shí)的,絕對(duì)安全可靠的電機(jī)設(shè)備也是根本不存在的l1J.因此,我們只能從預(yù)防故障和減少損失的角度出發(fā),及時(shí)發(fā)現(xiàn)電機(jī)的異常,掌握設(shè)備的運(yùn)行狀態(tài).對(duì)已經(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來(lái)人手,借鑒了一些新的測(cè)試方法,并應(yīng)用ADS1.2設(shè)計(jì)出一套電機(jī)電物理量采集系統(tǒng).
1 系統(tǒng)簡(jiǎn)介
本系統(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ù)使用場(chǎng)合的具體要求,按照轉(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ī)可以對(duì)電機(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ù)半軸對(duì)稱折到x軸上方,使之范圍控制在0-3.3 V.產(chǎn)生波形如圖2所示.
同時(shí)電路里產(chǎn)生一個(gè)方波信號(hào).當(dāng)波形屬于被翻上去的部分時(shí)方波處于低電平,其他時(shí)候處于高電平.以此方波信號(hào)在上位機(jī)來(lái)還原波形.CPU集成電路包括直流穩(wěn)壓電源電路、A/D電路、主CPU電路和串口電路.A/D電路接受從轉(zhuǎn)換電路送過(guò)來(lái)的模擬信號(hào),然后轉(zhuǎn)換成ARMCPU能接受的數(shù)字信號(hào).經(jīng)過(guò)處理后從串口電路傳送給上位計(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è)相對(duì)完整,實(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語(yǔ)言來(lái)設(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所示.
[!--empirenews.page--]
1)AD數(shù)據(jù)采集.A/D轉(zhuǎn)換的數(shù)據(jù)可以通過(guò)中斷或查詢的方式來(lái)訪問(wèn),如果是用中斷方式,全部的轉(zhuǎn)換時(shí)間(從A/D轉(zhuǎn)換的開(kāi)始到數(shù)據(jù)讀出)要更長(zhǎng),因?yàn)橹袛喾?wù)程序返回和數(shù)據(jù)的訪問(wèn)的原因,所以采用查詢方式不斷檢測(cè)ADCCONt3j(轉(zhuǎn)換結(jié)束標(biāo)志位)來(lái)確定從ADCDAT寄存器讀取的數(shù)據(jù)是否是最新的轉(zhuǎn)換數(shù)據(jù).
主要代碼有:
#define PRSCVL(20<<6)
#define ADCCON
_
ENABLE_ START(Ox1)
#define STDBM (0x0<<2)
#define PRSCEN(0xl<<l41
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)連線,最少用一對(duì)線即可進(jìn)行.接收方對(duì)于同一根線上一連串的數(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);[!--empirenews.page--]
}
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)換過(guò)程中,要使采樣頻率大于信號(hào)中最高頻率2倍. 所以本系統(tǒng)能分析的諧波最高頻率為1.3 kHz,即1-3 kHz/50 Hz:26次諧波.足夠滿足上位機(jī)做諧波分析的要求.以S3C2410一S為核心的嵌入式硬件系統(tǒng),并采用ADS開(kāi)發(fā)相應(yīng)的應(yīng)用程序,串口方式實(shí)現(xiàn)通信,實(shí)現(xiàn)了電機(jī)物理量的采集,給上位機(jī)分析電機(jī)提供了可靠的保障.并且該系統(tǒng)采用的ARM核的微控制器也使之較傳統(tǒng)的系統(tǒng)在可靠性、體積、功耗、性價(jià)比等方面都具有明顯的優(yōu)勢(shì),使之有廣泛的應(yīng)用前景和價(jià)值.