梁 麗 陶光鈺 聶志雄 郭宇飛 張琳琳
北京工商大學 北京 100048
筆者設計并制作了一個波形采集、存儲與回放系統,示意圖如圖1所示。該系統能同時采集兩路周期信號波形,能連續回放已采集的信號,顯示在示波器上。

圖1 采集、存儲回放系統示意圖
以單片機為系統核心,外掛A/D、存儲、D/A、顯示、輸入和輸出等外圍電路,實現對輸入信號的采集、存儲與回放功能。整個系統簡單靈活,便于實現,但系統功耗大,適于對低速信號的處理。本設計采用該方案,旨在讓剛接觸單片機的學生,盡快掌握基于單片機的電子系統設計方法。
將A/D,D/A,顯示驅動等周邊器件集成到微控制單元是當前應用較多的器件設計方式。TI公司的微控制器產品MSP430,集成了ADC,DAC,運放,顯示驅動和SPI等豐富的內部資源。整個系統所需外圍電路少,功耗低,但軟件編程比較復雜。
該系統采用單片機和FPGA/CPLD結合方式,以單片機作為控制核心,以FPGA/CPLD作為主要執行機構。FPGA/CPLD完成對信號的采集、存儲、顯示以及A/D和D/A轉換等功能,由單片機實現人機交互及信號處理等功能。整個系統結構緊湊、可以實現復雜測量與控制,只是操作過于繁瑣。
系統處理的正弦波頻率范圍為10 Hz~5 kHz,三角波頻率范圍為10 Hz~2 kHz,方波頻率范圍為10 Hz~1 kHz。由于題目要求的正弦波的頻率較高,故采樣頻率的選取以正弦波為主。理論上采樣頻率fS只要大于被采樣信號最高頻率分量fM的2倍即可。工程上在選取采樣頻率時通常分兩種情況:一般要求(如語音信號的數字化)取fS≥2.5 fM,高精度要求(如數字化測量儀器)取fS≥(5~10)fM,這樣選取采樣頻率即可較好地恢復信號。
D/A輸出的回放信號是離散信號,直接接輸出電路恢復信號、送示波器顯示波形,波形失真比較嚴重。因此,為了將D/A所產生的高頻干擾濾除,D/A輸出端需要接低通濾波器來改善輸出信號的波形。本設計選用了無限增益多路反饋二階低通濾波器來實現,其電路如圖2所示。

圖2 無限增益多路反饋二階低通濾波器
在圖2所示電路中,當f =0時,C1和C2均開路,故通帶放大倍數為:
電路傳遞函數Au(s)和f0為:

從Au(s)表達式的分母可以看出,濾波器不會因通帶放大倍數數值過大而產生自激振蕩。
系統對A,B通道輸入信號的極性和幅度范圍有不同的要求,因此需要對A,B通道分別進行輸入輸出電路設計。
3.1.1 A通道電路
A通道輸入信號是單極性的,輸入信號電壓范圍為0~4 V。系統設置的A/D,D/A參考電平VREF為2.5 V,故在A通道輸入端需先將信號電壓由0~4 V轉換到0~2.5 V范圍內,再接至A/D輸入端;而在A通道輸出端需先將信號電壓由0~2.5 V還原到0~4 V范圍內,再接至示波器輸入端。
A通道的輸入電路如圖3所示,其為電壓跟隨器,輸入信號uI通過電阻R1,R2的分壓,使得輸出信號uO=0.5 uI。A通道的輸出電路如圖4所示,其為同相比例放大電路,使得輸出信號uO=2 uI。可見,整個通道的放大倍數為1,滿足了信號回放的要求。

圖3 A通道輸入電路

圖4 A通道輸出電路
3.1.2 B通道電路
B通道輸入信號是雙極性的,輸入信號電壓范圍為VPP= 100 mV。系統設置的A/D,D/A參考電平VREF為2.5 V,故需將輸入信號放大至A/D所能判別的范圍內,以提高系統對B通道信號的分辨率。在B通道輸入端需先將信號電壓由雙極性轉換為單極性并放大(VPP可達2.5 V),再接至A/D輸入端;而在B通道輸出端需先將信號電壓由單極性還原為雙極性并衰減(VPP可達100 mV),再接至示波器輸入端。
B通道輸入電路如圖5所示,輸出電路如圖6所示,兩者均為差分放大電路結構,實際上是一個直流偏移電路加上一個反向比例放大電路。在B通道輸入電路中,直流偏移電路給輸入信號加上一個1.25 V的偏移電壓,將雙極性信號轉換為單極性;反向比例放大電路對輸入信號進行放大,其交流放大倍數為:在B通道輸出電路中,直流偏移電路給輸入信號減去一個1.25 V的偏移電壓,將單極性信號還原為雙極性;反向比例放大電路對輸入信號進行衰減,其交流放大倍數為:可見,整個通道的放大倍數為1,滿足了信號回放的要求。

圖5 B通道輸入電路

圖6 B通道輸出電路
AT89C52是一個低電壓,高性能CMOS 8位單片機,片內含8 kB的可反復擦寫的Flash只讀程序存儲器和256 B的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業中有著廣泛的應用。
對于10 Hz的信號,采樣頻率為50 kHz時,每周期可采樣5 000個點,需要5 k的存儲空間。為了準確地計算周期值、最高電平和最低電平,需要采樣3個周期的數據,取多周期數據的平均值。這樣,10 Hz信號存儲空間需要15 kB,A,B兩路同時采集存儲空間需要30 kB,還有一些相關數據和計算結果也需要存儲,至少需要32 kB RAM。AT89C52單片機內部有256 B RAM,必須擴展外部數據存儲器,AT89C52單片機最多能擴展64 kB RAM(2片62256芯片)。為了減少系統功耗,在保證再生信號質量的前提下應盡量減少數據存儲量。
ADC0809是CMOS 8位8通道逐次逼近型A/D轉換器,圖7給出了ADC0809與AT89C52單片機接口電路的一個例子。ADC0809的8位數據輸出引腳D0~D7與單片機的P0口相連;地址譯碼引腳C,B,A分別與地址總線的低三位A2,A1,A0相連,以選擇IN0~IN7中的一個通道;地址鎖存信號ALE、啟動信號START及輸出允許信號OE分別由單片機讀寫信號和P2.7通過或非門來控制;轉換結束信號EOC經過反相后接至中斷請求端INT0。

圖7 ADC0809與AT89C52單片機的接口電路
DAC0832是具有兩級輸入數據寄存器的8位D/A轉換器。設計DAC0832與AT89C52單片機的接口電路時,常用單緩沖方式或雙緩沖方式的單極性輸出。多路的D/A轉換要求同步輸出時,必須采用雙緩沖同步方式,此時數字量的輸入鎖存和D/A轉換輸出是分兩步完成的。
根據設計要求,顯示內容為測試的信號周期值及單位、幅度高低電平值及單位,采集和回放時系統的各種信息采用十進制數字顯示,周期以“ms”為單位,幅度以“mV”為單位。液晶顯示器(LCD)具有省電、抗干擾能力強等優點,被廣泛應用在智能儀表和單片機測控系統中。本設計采用LCDl602模塊(LCM)既可滿足系統顯示要求,可將LCM掛接在AT89C52單片機的總線上,通過數據總線的讀寫實現對LCM的控制。
波形顯示采用示波器的X—Y方式。在X—Y方式下,示波器的垂直軸與水平軸的偏轉電壓均由外部提供。屏幕上每一個位置都對應一個X—Y坐標。因此,只要提供波形的坐標數據,經D/A轉換送至X,Y軸即可。
系統啟動后,首先對外部設備進行初始化,然后判斷是否有按鍵按下。若有按鍵按下,則讀入鍵值,確定按鍵的功能,以實現對輸入信號的采集、存儲和回放。若按鍵為信號采集、數據存儲功能,則系統控制A/D轉換器實現對輸入信號的采集,并把A/D轉換結果依次存入外部存儲芯片中;若按鍵為回放功能,則從存儲單元調用A路或(和)B路采集數據輸出到D/A轉換單元,并在示波器上回放信號波形,由液晶顯示器輸出系統的各種信息及采集波形的周期、幅度等信息。
系統以單片機AT89C52為核心,以低功耗運放LM358構成輸入輸出電路,選用外部低功耗芯片62256作存儲,軟件系統控制A/D轉換器實現對輸入信號的采集、數據存儲,通過D/A轉換器對存儲數據進行數模轉換,輸出到示波器上顯示,采集波形信息由LCD1602顯示輸出,實現對已采集信號的回放。
[1] 張毅剛.單片機原理及接口技術(C51編程)[M].北京∶人民郵電出版社,2011.
[2] 先鋒工作室.單片機程序設計實例[M].北京∶清華大學出版社,2004.
[3] 葛紉秋.實用微機接口技術[M].北京∶高等教育出版社,2003.
[4] 全國大學生電子設計競賽組委會.2011年全國大學生電子設計競賽獲獎作品選編[M].北京∶北京理工大學出版社,2012.