基于LPC2134的多道脈沖幅度分析器設(shè)計(jì)
3 多道脈沖幅度分析器相關(guān)軟件設(shè)計(jì)
ARM微處理器軟件可采用前/后臺系統(tǒng)(foreground/background)或超循環(huán)系統(tǒng)(super-loops)設(shè)計(jì)。應(yīng)用程序是一個無限循環(huán),循環(huán)中調(diào)用相應(yīng)的函數(shù)可完成相應(yīng)的功能,這部分可以看成后臺行為(background)。中斷服務(wù)程序可處理異步事件、這部分可以看成前臺行為。后臺也可以叫做任務(wù)級,前臺也叫做中斷級。時(shí)間相關(guān)性很強(qiáng)的關(guān)鍵操作一定是靠中斷服務(wù)來保證的。因?yàn)橹袛喾?wù)提供的信息,要等到后臺程序運(yùn)行到可以處理這個信息時(shí),才能得到處理。這種軟件系統(tǒng)在處理信息的及時(shí)性上,比實(shí)際可以做到的要差。處理信息的及時(shí)性,稱作任務(wù)級響應(yīng)時(shí)間。最壞情況下的任務(wù)級響應(yīng)時(shí)間取決于整個循環(huán)的執(zhí)行時(shí)間。因?yàn)檠h(huán)的執(zhí)行時(shí)間不是常數(shù),程序經(jīng)過某一特定部分的準(zhǔn)確時(shí)間是確定的。進(jìn)而,如果程序修改了,循環(huán)的時(shí)序也會受到影響。程序在進(jìn)行初始化后,將進(jìn)入超級循環(huán)等待中斷,中斷到來先保護(hù)現(xiàn)場再轉(zhuǎn)到中斷服務(wù)程序,處理完畢后恢復(fù)現(xiàn)場,再返回超級循環(huán)并繼續(xù)等待中斷??梢娭袛嗵幚硎浅绦蛑斜容^重要的任務(wù)。
3.1 主函數(shù)程序設(shè)計(jì)流程
整個應(yīng)用系統(tǒng)軟件程序可采用模塊化設(shè)計(jì)方法,包括C語言和匯編語言兩在模塊。其主程序流程圖如圖7所示。
3.2 A/D轉(zhuǎn)換中斷服務(wù)程序
A/D轉(zhuǎn)換完畢后,可由AD7994的BUSY端向ARM申請中斷,ARM開始讀取來自A/D轉(zhuǎn)換的數(shù)據(jù)并保存。其程序流程如圖8所示。
AD7994是4通道12位ADC,為了能夠快速處理A/D中斷服務(wù)程序,本系統(tǒng)將A/D中斷設(shè)置為快速中斷。
3. 3 串口通信軟件設(shè)計(jì)
本系統(tǒng)中的串口中斷程序流程圖如圖9所示。
4 仿真調(diào)試
在PROTEUS軟件上進(jìn)行仿真,改變不同的電路參數(shù),可以觀察波形的變化。
利用函數(shù)發(fā)生器可產(chǎn)生一個矩形波信號,然后運(yùn)行仿真程序,以直接讀出各波形。改變電容Cll的值,可以改變輸出波形的幅度。然后調(diào)整不同的輸入信號進(jìn)行測試,并記錄輸出波形的幅度以及波形。波形幅度數(shù)據(jù)如表l所列,其波形仿真圖10所示。
由圖可見,當(dāng)C11的值小于160 pF或大于1.5nF的時(shí)候,波形開始失真。
5 結(jié)束語
本文所設(shè)計(jì)的硬件電路已經(jīng)通過了軟件調(diào)試和仿真,可以達(dá)到預(yù)期的效果。積分電容器的電容值過大過小都不行,在PROTEUS上選擇不同的電容值有較大的優(yōu)勢。由于CA3140的放大倍數(shù)等于某時(shí)候的最高信號頻率(為4.5 MHz),故在輸入信號頻率較高的時(shí)候,CA3140的放大倍數(shù)將不能接近1,而這會影響 最后的結(jié)果。所以,為了在高頻輸入時(shí),系統(tǒng)也能正常工作,可以把CA3140替換成高頻特性比較好的LM6161,這樣可以提高系統(tǒng)的高頻特性。
評論