ARM7加速度數(shù)據(jù)采集系統(tǒng)設(shè)計
2.3 應(yīng)用電路
加速度數(shù)據(jù)采集電路如圖2所示。其中,VDD設(shè)置為5 V。17引腳為2.5 V電壓參考引腳,可以單獨外接2.5 V電壓,也可以選擇分壓的方式。本文采用分壓的方式,通過設(shè)置R1=R2=5 kΩ。將VDD分壓為2.5 V,并連接一個O.01μF的旁路電容C1。本文引用地址:http://2s4d.com/article/195106.htm
AON和AOP引腳的電壓輸出值成比例對應(yīng)于加速度值,如圖3所示。在加速度為0的情況下,AON和AOP輸出值都是2.5 V。為了取得噪音較低、效果較好的信號輸出,本文采用差動方式將AON和AOP接到運放電路的輸入端,適當(dāng)設(shè)置電阻電容值,得出符合要求的輸出信號。AON與AOP求差后,范圍在0~4 V之間??紤]到輸出值應(yīng)與ARM7處理器的A/D端口輸入范圍匹配,因此設(shè)置R4/R3=R6/R5=3/4,從而得到一個0~3 V的輸出值范圍。
3 ARM7模數(shù)轉(zhuǎn)換器ADC的應(yīng)用
AT91SAM7X256自帶的ADC是基于逐次逼近寄存器(SAR)的10位模數(shù)轉(zhuǎn)換器(ADC)。它集成了一個8到1的模擬多路復(fù)用器,可實現(xiàn)8路模擬信號的模數(shù)轉(zhuǎn)換;轉(zhuǎn)換范圍為0 V~ADVREF;支持8位或10位分辨率模式,轉(zhuǎn)換結(jié)果進入一個所有通道可用的通用寄存器中,即通道專用寄存器。
通過設(shè)置ARM7并行控制器PIO控制器,將ADO~AD7的某一個端口設(shè)置為A/D轉(zhuǎn)換模擬輸入端口。ADVREF為參考電壓,即ADO~AD7端口輸入電壓值的范圍為0 V~ADVREF;ADVREF最小值為2.6 V,最大值為VDDIN(一般設(shè)為典型值3.3 V)。ARM7處理器的A/D轉(zhuǎn)換共有3種中斷方式,即軟件觸發(fā)、外部觸發(fā)(包括ADTRG引腳上升沿觸發(fā))和內(nèi)部觸發(fā)定時計數(shù)器輸出。本文采用內(nèi)部觸發(fā)定時計數(shù)器輸出觸發(fā)方式,即達到一定的間隔時間后引起中斷,然后對當(dāng)前的A/D模擬數(shù)據(jù)進行采集和分析。完成上述中斷處理后,再等待下一次中斷到來。使用ADC中斷請求前須先對AIC(高級中斷控制器)編程。
ADC還與PDC(外設(shè)數(shù)據(jù)控制器)通道連接。在轉(zhuǎn)換完成后,數(shù)字結(jié)果將會保存到當(dāng)前通道數(shù)據(jù)寄存器里。當(dāng)數(shù)據(jù)寄存器保存當(dāng)前數(shù)據(jù)后,狀態(tài)寄存器相應(yīng)位置位;當(dāng)取走數(shù)據(jù)寄存器中的數(shù)據(jù)后,狀態(tài)寄存器相應(yīng)位清零。
ADC支持8位或10位的分辨率。通過設(shè)置ADC模式寄存器(ADC_MR)LOWRES位執(zhí)行對8位的選擇。默認(rèn)情況下,復(fù)位后分辨率最高,且數(shù)據(jù)寄存器中的DATA域完全使用。通過設(shè)置LOWRES位,ADC切換到最低分辨率,且轉(zhuǎn)換結(jié)果可從數(shù)據(jù)寄存器的低8位中讀出。對應(yīng)于ADC_CDR寄存器的DATA域,最高兩位及ADC_LCDR寄存器的LDATA位為0。在數(shù)據(jù)處理之前,通過設(shè)置相應(yīng)寄存器對轉(zhuǎn)換分辨率、休眠方式、ADC時間等進行初始化。為防止ADVREF端口電壓過高,通常外加穩(wěn)壓二極管作保護。
4 系統(tǒng)軟件設(shè)計
軟件設(shè)計是整個檢測系統(tǒng)的重要組成部分。依據(jù)硬件設(shè)計的相關(guān)特點和要求,軟件設(shè)計的主要任務(wù)是完成系統(tǒng)的初始化,對加速度信號進行提取和分析,加速度過大或者超出設(shè)定值時予以警告提示,并完成與其他外設(shè)之間的數(shù)據(jù)通信。系統(tǒng)軟件流程如圖4所示。
評論