基于AT90S8515單片機(jī)的瞬變信號(hào)捕獲與存儲(chǔ)器
當(dāng)代科學(xué)研究的許多領(lǐng)域中,常會(huì)遇到如何捕捉單次瞬變信號(hào)的問題。對(duì)于單脈沖信號(hào)捕獲、周期信號(hào)頻譜分析等高速數(shù)據(jù)采集系統(tǒng),通常都采用DMA技術(shù)實(shí)現(xiàn)。不論是由PC機(jī)內(nèi)的DMA控制器芯片實(shí)現(xiàn),還是由單片機(jī)結(jié)合DMA技術(shù)實(shí)現(xiàn),其系統(tǒng)結(jié)構(gòu)都比較復(fù)雜;若采用通用DSP芯片開發(fā)該類儀器儀表,造價(jià)過高。故此,研制電路簡(jiǎn)單、實(shí)用廉價(jià)的高速數(shù)據(jù)采集系統(tǒng)是很必要的。本瞬變信號(hào)捕獲與存儲(chǔ)器正是基于以上因素而設(shè)計(jì)的,它是由AT90S8515單片機(jī)直接控制TLC5510高速A/D實(shí)現(xiàn)高速數(shù)據(jù)采集,采樣速率高達(dá)8MHz,具有如下功能:
·可捕獲各種單次脈沖,最小脈寬可達(dá)1微秒。
·可將捕獲信號(hào)通過X軸、Y軸輸出,在CRT上顯示出來。
·能實(shí)現(xiàn)超低頻(1Hz以內(nèi))信號(hào)的穩(wěn)定顯示。
·捕獲信號(hào)的觸發(fā)電平、寬度均可預(yù)置。
該系統(tǒng)已應(yīng)用于RLC電路暫態(tài)分析測(cè)量系統(tǒng)。
1 AT90S8515簡(jiǎn)介
ATMEL公司新推出的90系列單片機(jī),內(nèi)含高速閃存FLASH,是基于增強(qiáng)精簡(jiǎn)指令RISC結(jié)構(gòu)的單片機(jī),簡(jiǎn)稱AVR單片機(jī)。該系列單片機(jī)在吸收PIC及8051單片機(jī)優(yōu)點(diǎn)的基礎(chǔ)上,作了重大改進(jìn),性能十分優(yōu)異。AT90S8515是AVR中比較典型的一種,它用32個(gè)快速存取RISC寄存器代替累加器,避免了傳統(tǒng)的累加器與存儲(chǔ)器間的數(shù)據(jù)傳送;可在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行一條指令來訪問兩個(gè)獨(dú)立的寄存器,代碼效率比常規(guī)CISC微控制器快十倍;片內(nèi)具有8K字節(jié)的Flash ROM存儲(chǔ)器,是8位單片機(jī)中第一種真正的RISC單片機(jī)。
AT90S8515引腳與MCS-51系列單片機(jī)的引腳兼容。有PA、PB、PC、PD四個(gè)8位并行口,其中PA、PC口具有I/O及AD總線功能,PB、PD口具有I/O及特殊功能復(fù)用特點(diǎn);復(fù)位端采用低電平復(fù)位,具有良好的抗干擾性能。AT90S8515運(yùn)用Harvard結(jié)構(gòu)概念,即對(duì)程序和數(shù)據(jù)帶有不同的存儲(chǔ)器和總線,通過單一級(jí)的流水線可對(duì)程序存儲(chǔ)器進(jìn)行訪問。當(dāng)執(zhí)行某一指令時(shí),下一指令被預(yù)先從程序存儲(chǔ)器中取回,這使得指令可以在每一個(gè)時(shí)鐘周期內(nèi)被執(zhí)行,如圖1所示。
AT90S8515有模擬比較器,它對(duì)正極PB2引腳(AIN0)和負(fù)極PB3引腳(AIN1)的輸入值進(jìn)行比較。當(dāng)PB2端的電壓高于PB3端的電壓時(shí),模擬比較器輸出(ACO)為1。比較器的輸出可觸發(fā)定時(shí)器/計(jì)數(shù)器T1的輸入捕獲功能;此外,比較器的輸出可觸發(fā)一個(gè)獨(dú)立于模擬比較器的中斷,用戶可以選擇比較器輸出上升、下降沿觸發(fā)中斷。其方框圖如圖2所示,由ACSR寄存器實(shí)現(xiàn)對(duì)該比較器的設(shè)定。
2 系統(tǒng)構(gòu)成
系統(tǒng)構(gòu)成如圖3所示。采用AT90S8515單片機(jī),輸入信號(hào)經(jīng)A/D轉(zhuǎn)換后通過PA口送入單片機(jī)內(nèi)的SRAM中,同時(shí)輸入信號(hào)經(jīng)PB3端引入到單片機(jī)的模擬比較器的負(fù)端,而該模擬比較器的正端(PB2)連到觸發(fā)電平電位器。SRAM中存放的采集數(shù)據(jù)從PC口送出經(jīng)74LS273鎖存后由D/A輸出至Y軸。PC口亦送出X軸掃描信號(hào),該信號(hào)通過另一片74LS273鎖存后經(jīng)D/A輸出至X軸,如圖4所示。每片鎖存器的鎖存是通過對(duì)PD6端的置位、復(fù)位而產(chǎn)生高低電平切換時(shí)的上升、下降沿觸發(fā)實(shí)現(xiàn)的。通過PD0、PD1端與MAX232連接,由MAX232擴(kuò)展出RS232串行通信口,該口可把每次采集的數(shù)據(jù)送入PC機(jī)。通過PB、PC口亦設(shè)計(jì)了采集時(shí)長(zhǎng)調(diào)整等控制界面。
3 硬件組成
·單片機(jī)芯片
采用ATMEL公司的AT90S8515,片內(nèi)有8K字節(jié)FLASH ROM和512字節(jié)SRAM。設(shè)計(jì)使用工作時(shí)鐘頻率為16MHz,可以有60納秒以下的指令周期。
· A/D轉(zhuǎn)換器
采用TI公司的TLC5510芯片,轉(zhuǎn)換精度8位并行輸出,采集速率為20MSPS。采用模擬比較器觸發(fā)中斷,觸發(fā)定時(shí)器T1,確定采集時(shí)長(zhǎng)。
· 靜態(tài)RAM
靜態(tài)RAM采用片內(nèi)512字節(jié)SRAM。
· 串行口電路
采用MAXIM公司的MAX232擴(kuò)展出串行通信口。
·D/A轉(zhuǎn)換器
采用NS公司的電流輸出型DAC0832芯片,其電流穩(wěn)定時(shí)間為1微秒。它把74LS273的鎖存數(shù)據(jù)經(jīng)數(shù)模轉(zhuǎn)換后在X軸、Y軸輸出。
4 工作原理
4.1 脈沖信號(hào)的捕獲
單片機(jī)系統(tǒng)開機(jī)運(yùn)行后,根據(jù)捕獲信號(hào)的幅度大小,調(diào)整好捕獲觸發(fā)電平的值,再調(diào)整好捕獲時(shí)長(zhǎng)。當(dāng)信號(hào)的幅度高于觸發(fā)電平時(shí),通過AT90S8515的模擬比較器產(chǎn)生中斷請(qǐng)求,觸發(fā)啟動(dòng)A/D轉(zhuǎn)換器,并通過PA口將轉(zhuǎn)換結(jié)果存入片內(nèi)SRAM內(nèi)。A/D轉(zhuǎn)換的采樣時(shí)間長(zhǎng)短是由定時(shí)器T1的初始值設(shè)定,T1的時(shí)長(zhǎng)可通過控制界面設(shè)定在20μs~1s之間,這樣就保證了瞬變信號(hào)能完整捕獲。
4.2 采樣數(shù)據(jù)的存放
每次A/D轉(zhuǎn)換后的數(shù)據(jù)存放在片內(nèi)512字節(jié)RAM中。利用512字節(jié)中的400字節(jié)作為存放A/D轉(zhuǎn)換的數(shù)據(jù)區(qū)。定時(shí)器T1確定的采樣時(shí)長(zhǎng)是由操作界面設(shè)定的,當(dāng)在1s采樣時(shí),采集400個(gè)點(diǎn)數(shù)據(jù);1ms時(shí)采集200個(gè)點(diǎn);20μs時(shí)采集數(shù)據(jù)的點(diǎn)數(shù)為100個(gè)點(diǎn)。根據(jù)采樣定理與實(shí)際情況,若以采樣5個(gè)點(diǎn)就可分辯出一個(gè)信號(hào)的特征計(jì)算,當(dāng)采集時(shí)長(zhǎng)設(shè)定在20μs、采集100個(gè)點(diǎn)時(shí),可分辨、捕獲瞬變信號(hào)的細(xì)微脈寬在1μs以下。實(shí)際運(yùn)行結(jié)果也驗(yàn)證了這樣的分辨率。
4.3 X軸、Y軸輸出
為了實(shí)現(xiàn)捕獲信號(hào)的觀察與測(cè)量,將X軸、Y軸輸出送至普通示波器的示波管后瞬變信號(hào)就能穩(wěn)定地顯示出來,這時(shí)也能穩(wěn)定觀測(cè)超低頻(小于1Hz)信號(hào)。X軸信號(hào)由R16、R17自動(dòng)累加產(chǎn)生,其值的變化范圍為0~400。捕獲時(shí)長(zhǎng)是1s、1ms、20μs,采集的數(shù)據(jù)長(zhǎng)度分別為400、200、100個(gè)字節(jié)時(shí),寄存器R16、R17的累加步長(zhǎng)應(yīng)為1、2、4。這樣就實(shí)現(xiàn)了X軸掃描信號(hào)與Y軸捕獲信號(hào)顯示的線性性。X軸、Y軸信號(hào)的讀出由T0定時(shí)器通過中斷觸發(fā),其讀出速度由T0定時(shí)器的時(shí)長(zhǎng)確定,本系統(tǒng)選取1kHz的讀出速度,且T1的中斷優(yōu)先級(jí)高于T0。這樣就保證了信號(hào)捕獲時(shí)段不受XY輸出的干擾。捕獲信號(hào)也可通過PD0、PD1端擴(kuò)展的串口傳送至PC機(jī)內(nèi)進(jìn)行進(jìn)一步分析。
5 軟件設(shè)計(jì)
AT90S8515單片機(jī)有32個(gè)通用寄存器,在程序設(shè)計(jì)時(shí)很靈活地使用了R0~R31寄存器,實(shí)現(xiàn)了程序設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)單、目標(biāo)代碼少(小于2K字節(jié))的目的。主程序流程圖見圖5。利用本設(shè)計(jì)研制的瞬變信號(hào)捕獲與存儲(chǔ)器達(dá)到了預(yù)先的指標(biāo)??捎闷胀ㄊ静ㄆ鞯氖静ü苡^察所捕獲信號(hào)的特征;同時(shí)也可方便地觀察超低頻(1Hz左右)信號(hào),實(shí)現(xiàn)慢掃描示波器的功能。該系統(tǒng)具有很高的性價(jià)比。
評(píng)論