基于單片機(jī)的便攜數(shù)字存儲(chǔ)示波器
在電子技術(shù)領(lǐng)域中, 通常需要借助于一些輔助的儀器來(lái)觀察電路中信號(hào)的相互關(guān)系, 這些儀器的種類很多, 比如萬(wàn)用表、信號(hào)源、示波器、頻譜儀等。其中, 示波器可以觀察到信號(hào)的全貌, 它可以在顯示屏幕上直接觀察到被測(cè)信號(hào)的波形, 并測(cè)量信號(hào)的幅度、頻率、周期等基本參量。除此之外, 其他的非電量也可以轉(zhuǎn)化為電量, 使用示波器進(jìn)行觀測(cè)。因此, 示波器得到了廣泛的應(yīng)用。隨著電子設(shè)備復(fù)雜程度的增加, 對(duì)于示波器這樣的測(cè)量?jī)x器也提出了更多的要求, 除了成本的限制以外, 在體積、性能以及使用的靈活性方面也有了新的要求。目前常用的示波器一般都是體積比較大, 成本高,這就使它的應(yīng)用受到了一些限制, 在這種情況下, 開(kāi)發(fā)低成本便攜的手持示波器, 將會(huì)大大提高其應(yīng)用空間,為電子技術(shù)開(kāi)發(fā)人員提供更多的便利。
液晶顯示器在便攜式儀器中有著廣泛的應(yīng)用, 使用液晶作為顯示器件具有顯示質(zhì)量高, 數(shù)字式接口, 體積小, 重量輕, 功耗小等優(yōu)點(diǎn)。本文設(shè)計(jì)的系統(tǒng), 以C8051F020 單片機(jī)為核心, 以TFT 彩屏液晶為顯示器件, 將輸入信號(hào)經(jīng)過(guò)必要的信號(hào)調(diào)理電路以后進(jìn)行采樣, 采樣后的數(shù)字信號(hào)在單片機(jī)內(nèi)進(jìn)行實(shí)時(shí)的數(shù)據(jù)處
理, 并按照一定的格式輸出到液晶屏幕。通過(guò)對(duì)液晶進(jìn)行初始化, 并編寫相應(yīng)的程序, 實(shí)時(shí)顯示出輸入信號(hào)的波形, 并對(duì)信號(hào)進(jìn)行相關(guān)參數(shù)的測(cè)量, 實(shí)現(xiàn)了手持示波器的功能。
1 系統(tǒng)組成與工作原理
1. 1 系統(tǒng)組成
系統(tǒng)主要有信號(hào)調(diào)理電路, 采集處理模塊和液晶外圍電路組成。信號(hào)調(diào)理電路由繼電器、增益控制D/ A、兩級(jí)可變?cè)鲆娣糯笃鰽D603 和保護(hù)電路組成, 主要用于對(duì)輸入信號(hào)進(jìn)行程控的衰減與放大, 使得信號(hào)在最佳的測(cè)量和顯示量程范圍內(nèi)。采集處理模塊負(fù)責(zé)采集調(diào)理電路輸出的信號(hào), 并對(duì)信號(hào)進(jìn)行編碼緩存, 得到適合LCD 顯示的數(shù)字編碼信號(hào)。液晶外圍電路為液晶顯示電路提供合適的工作電壓, 并且對(duì)液晶模塊與單片機(jī)的接口電路進(jìn)行了設(shè)計(jì)。系統(tǒng)組成的總體框圖如圖1所示。
1. 2 系統(tǒng)工作原理
系統(tǒng)時(shí)鐘控制A/ D 采集波形數(shù)據(jù), 在單片機(jī)內(nèi)部配置兩塊RAM 緩存區(qū), 并采用循環(huán)存儲(chǔ)器結(jié)構(gòu)。也就是說(shuō), 存儲(chǔ)器的各存儲(chǔ)單元按串行方式依次尋址, 且首尾相連, 形成了一個(gè)環(huán)形結(jié)構(gòu)。采集開(kāi)始時(shí), 將采集數(shù)據(jù)按順序?qū)懭肫渲幸粋€(gè)存儲(chǔ)區(qū), 當(dāng)所有單元都存滿以后, 將該存儲(chǔ)區(qū)的數(shù)據(jù)送到LCD 顯示, 與此同時(shí), 下一輪的采樣數(shù)據(jù)不斷存儲(chǔ)到另一個(gè)存儲(chǔ)區(qū), 存滿以后2 個(gè)存儲(chǔ)區(qū)交換功能。如此輪換交替, 這樣接收A/ D 采集數(shù)據(jù)和數(shù)據(jù)顯示可以同時(shí)進(jìn)行, 而數(shù)據(jù)顯示的速率大于A/ D 采集速率, 從而可以有效避免數(shù)據(jù)丟失。
系統(tǒng)的工作過(guò)程如下: 輸入信號(hào)經(jīng)前端信號(hào)調(diào)理電路轉(zhuǎn)換到合適的電平, 在單片機(jī)的控制下通過(guò)A/ D 對(duì)信號(hào)采集處理并存儲(chǔ)采集數(shù)據(jù)。對(duì)LCD 初始化編程接收單片機(jī)存儲(chǔ)的波形數(shù)據(jù), 將信號(hào)的波形實(shí)時(shí)顯示出來(lái), 并測(cè)量信號(hào)的峰峰值電壓和頻率。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件主要實(shí)現(xiàn)對(duì)輸入信號(hào)的程控衰減放大, 過(guò)壓保護(hù), 信號(hào)的采集處理以及單片機(jī)與液晶模塊接口電路等, 系統(tǒng)硬件總體框圖如圖2 所示。
圖 2
2. 1 信號(hào)調(diào)理電路
信號(hào)調(diào)理電路實(shí)現(xiàn)了對(duì)輸入信號(hào)的程控衰減放大,它由增益變化范圍線性連續(xù)可調(diào)的可控增益放大器AD603 組成。通過(guò)單片機(jī), 結(jié)合8 位D/ A 轉(zhuǎn)換芯片CA3338E, 對(duì)兩片AD603 引腳端的輸入電壓進(jìn)行控制。該芯片輸入控制電壓Vc 的范圍為- 0. 5~ + 0. 5 V,一級(jí)增益和控制電壓的關(guān)系為:
當(dāng)使用兩級(jí)級(jí)聯(lián)時(shí), 則增益和控制電壓關(guān)系為:
單片機(jī)輸出控制信號(hào), 使繼電器對(duì)輸入信號(hào)進(jìn)行100 倍衰減。衰減后的信號(hào)經(jīng)A/ D 轉(zhuǎn)換后采集到單片機(jī)中, 根據(jù)預(yù)先設(shè)置的檔位判斷信號(hào)所屬的范圍。如果
信號(hào)幅度過(guò)低, 不在這些范圍之內(nèi), 則單片機(jī)重新發(fā)出控制信號(hào), 減小對(duì)輸入信號(hào)的衰減倍數(shù), 直到衰減后的信號(hào)滿足最佳測(cè)量范圍為止。對(duì)應(yīng)于每個(gè)檔位的信號(hào),輸出一個(gè)8 位的數(shù)字信號(hào)至CA3338E 芯片, 并將其輸出的模擬信號(hào)加到AD603 的輸入端, 得到不同的放大倍數(shù), 完成信號(hào)的程控衰減放大。
這樣設(shè)計(jì), 一方面可以實(shí)現(xiàn)自動(dòng)增益控制。系統(tǒng)會(huì)根據(jù)程序的設(shè)定對(duì)輸入信號(hào)的幅度自動(dòng)選擇放大衰減的倍數(shù), 來(lái)得到滿足信號(hào)采集部分電路要求的最佳信號(hào)電平, 在進(jìn)行信號(hào)電壓的測(cè)量時(shí), 只需要將采集到的信號(hào)電壓與相應(yīng)的程控倍數(shù)相乘, 就可以顯示出準(zhǔn)確的電壓值。另一方面, 也可以大大擴(kuò)展輸入信號(hào)的動(dòng)態(tài)范圍。信號(hào)采集電路允許的最大輸入電壓為4 V 左右, 這樣, 當(dāng)輸入峰峰值為400 V 信號(hào)時(shí), 由于存在100 倍的衰減, 調(diào)理以后的輸出信號(hào)仍然不超過(guò)采集電路的范圍。
2. 2 過(guò)壓保護(hù)電路
在A/ D 的輸入通路前并聯(lián)了兩個(gè)鉗位穩(wěn)壓二極管, 保證在輸入交流信號(hào)過(guò)壓時(shí)鉗位在安全范圍內(nèi), 此時(shí)程序判斷到A/ D 的輸出大于量程, 也會(huì)自動(dòng)切換衰減倍數(shù), 轉(zhuǎn)到更高檔位, 起到保護(hù)A/ D 和單片機(jī)芯片的作用。
2. 3 單片機(jī)與液晶模塊接口電路
單片機(jī)使用C8051F020, 它是一種高集成度的混合信號(hào)片上系統(tǒng), 有按8 位端口組織的64 個(gè)數(shù)字I/ O 引腳, 所有引腳都耐5 V 電壓, 都可以被配置為漏極開(kāi)路或推挽輸出方式和弱上拉。液晶模塊采用TFT 液晶,TFT( Thin Film T ransistor) 為薄膜晶體管有源矩陣液晶顯示器件。每個(gè)液晶像素點(diǎn)都是由集成在像素點(diǎn)后面的薄膜晶體管來(lái)驅(qū)動(dòng), 從而可以做到高速度、高亮度、高對(duì)比度顯示屏幕信息。它以行掃描信號(hào)和列尋址信號(hào)控制作用于被寫入像素電極上的薄膜晶體管有源電路, 使有源電路產(chǎn)生足夠大的通斷比, 從而間接控制像素間呈TN 型的液晶分子排列, 達(dá)到顯示目的。
液晶模塊采用ILI9320 片上系統(tǒng)( SoC) 驅(qū)動(dòng)器, 支持26 萬(wàn)色顯示, 分辨率為240RGB@320 像素, 圖像數(shù)據(jù)存儲(chǔ)區(qū)的大小為172, 800 字節(jié), 同時(shí)還集成了電源電路。其內(nèi)部結(jié)構(gòu)框圖如圖3 所示。
圖 3
ILI9320 與MCU 之間有4 種總線接口方法, 分別為i80 系統(tǒng)總線, 串行總線, RGB 總線和VSYNC 總線。在此采用i80 系統(tǒng)總線進(jìn)行控制, 通過(guò)讀使能( RDB) 和寫使能(WRB) 兩條控制線進(jìn)行讀寫操作, 其中數(shù)據(jù)寬度為8 位。由于LCD 模塊中的數(shù)據(jù)線為16 位, 實(shí)際中只用到了8 位, 因此要對(duì)低8 位接地。液晶模塊中,DB8~ DB15 為雙向數(shù)據(jù)總線, RS 為數(shù)據(jù)/ 寄存器的選擇信號(hào), 當(dāng)RS 為低電平時(shí), 表示對(duì)液晶模塊內(nèi)部的寄存器操作, 為高電平時(shí)對(duì)顯存中的數(shù)據(jù)進(jìn)行操作, CS 為片選信號(hào), RESET 為復(fù)位信號(hào)。這些信號(hào)線直接與單片機(jī)的GPIO 總線相連, 不需要設(shè)計(jì)外圍的電路。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要完成對(duì)程控衰減放大電路的控制, 波形數(shù)據(jù)的處理與存儲(chǔ), 觸發(fā)設(shè)置以及LCD 模塊的波形顯示功能初始化編程, 軟件設(shè)計(jì)總體框圖如圖4所示。[!--empirenews.page--]
3. 1 觸發(fā)器的軟件實(shí)現(xiàn)
觸發(fā)器是示波器的重要組成部分, 通過(guò)觸發(fā)器產(chǎn)生的控制信號(hào), 控制示波器對(duì)波形數(shù)據(jù)的存儲(chǔ)和顯示, 達(dá)到穩(wěn)定同步的目的。本系統(tǒng)設(shè)計(jì)的觸發(fā)器, 采用全數(shù)字化結(jié)構(gòu), 大大降低了系統(tǒng)硬件電路的復(fù)雜性, 并且觸發(fā)條件的調(diào)整比較方便。觸發(fā)器通過(guò)引用單片機(jī)內(nèi)部的RAM 資源定制了一個(gè)FIFO 作為采集數(shù)據(jù)的暫存區(qū),將波形數(shù)讀入該緩存區(qū), 按照預(yù)先設(shè)定的觸發(fā)門限,將緩存區(qū)中的數(shù)據(jù)讀出, 如果滿足觸發(fā)條件, 則將數(shù)據(jù)在屏幕上顯示出來(lái)。
圖4 軟件設(shè)計(jì)總體框圖
3. 2 波形顯示的插值算法
采樣得到的波形數(shù)據(jù)可以直接顯示, 這樣在屏幕上看到的是一些離散的亮點(diǎn), 波形的顯示不是連續(xù)的, 不利于觀察分析信號(hào), 因此需要進(jìn)行插值算法, 也就是說(shuō)利用少數(shù)采樣點(diǎn)來(lái)推算出完整波形數(shù)據(jù)的處理方法。插值的方法有多種, 比如矢量式內(nèi)插、正弦內(nèi)插、抽樣函數(shù)內(nèi)插等, 結(jié)合各自的特點(diǎn), 本系統(tǒng)使用了正弦內(nèi)插技術(shù), 使得波形的顯示具有很好的連續(xù)性, 提高了視覺(jué)效果。正弦內(nèi)插是一種專門用于信號(hào)重建的方法, 一般情況下, 每個(gè)周期使用2. 5 個(gè)數(shù)據(jù)字就可以構(gòu)成一個(gè)較完整的正弦波形。它的理論基礎(chǔ)是信號(hào)重建的抽樣內(nèi)插公式, 即:
式中: T 為采樣周期; x(mT ) 為A/ D 采樣得到的數(shù)據(jù)。式( 3) 表明, 可以通過(guò)抽樣信號(hào)恢復(fù)出原始的連續(xù)時(shí)間信號(hào)。本文中不需要恢復(fù)原始信號(hào), 只是為了增加采樣點(diǎn)數(shù)據(jù), 因此要對(duì)時(shí)間t 離散化, 一般來(lái)說(shuō), t 為0. 1T ~0. 2T, 也就是說(shuō)每一個(gè)采樣周期內(nèi)要插入5 ~ 10 個(gè)波形數(shù)據(jù), 同時(shí), 求和范圍也要進(jìn)行限制, 計(jì)算點(diǎn)區(qū)間為( 0, m) , m的取值不能太大, 否則會(huì)降低運(yùn)算速度[ 9] 。使用Matlab 對(duì)插值算法進(jìn)行仿真, 仿真結(jié)果如圖5 所示, 其中圖5( a) 、圖5( b) 、圖( c) 分別為原始信號(hào)、采樣以后的離散信號(hào)以及經(jīng)插值算法處理以后的采樣信號(hào),可見(jiàn), 正弦內(nèi)插算法插入的數(shù)據(jù)點(diǎn)接近原始信號(hào)的幅值。經(jīng)理論計(jì)算可知, 當(dāng)求和區(qū)間為( 0, 30) 時(shí), 引起的幅度顯示誤差小于0. 9%。
圖5 正弦內(nèi)插算法仿真
4 系統(tǒng)調(diào)試和測(cè)試
在完成了系統(tǒng)的硬件設(shè)計(jì)和軟件設(shè)計(jì)以后, 需要進(jìn)行綜合調(diào)試和測(cè)試。通過(guò)調(diào)試, 不斷優(yōu)化程序代碼, 對(duì)程序中的問(wèn)題及時(shí)更正修改, 使系統(tǒng)的性能得以提高,工作狀態(tài)更加穩(wěn)定。測(cè)試的過(guò)程中可以修正電路中元器件的參數(shù)等, 以免理論分析與實(shí)際狀態(tài)的差距引起的波形顯示效果不佳以及顯示中噪聲的影響。
在進(jìn)行系統(tǒng)聯(lián)調(diào)時(shí), 要不斷修正程控衰減放大電路的程序, 將輸入信號(hào)調(diào)整到最佳的顯示量程范圍內(nèi), 手持示波器的實(shí)物圖如圖6 所示。
圖6 手持示波器實(shí)物圖
當(dāng)輸入500 Hz, 峰峰值為3. 2 V 的正弦信號(hào)時(shí), 在TFT 彩屏上顯示的波形如圖7 所示, 其中屏幕的水平方向表示時(shí)間, 每一格為1 ms; 垂直方向表示輸入信號(hào)幅度, 每格為0. 6 V。從圖中可以看出, 波形顯示穩(wěn)定連續(xù), 測(cè)量信號(hào)參數(shù)的精度高, 且彩色信息豐富。
圖7 TFT 液晶顯示的正弦信號(hào)
5 結(jié) 語(yǔ)
研究了以TFT 液晶作為顯示器件的手持?jǐn)?shù)字存儲(chǔ)示波器的總體方案, 即由信號(hào)調(diào)理電路, 采集處理模塊和液晶外圍電路組成。在確定總體方案的同時(shí),給出了實(shí)現(xiàn)此總體方案的具體方法。采用CA3338E和兩級(jí)AD603 電路, 配合單片機(jī)控制繼電器的衰減倍數(shù), 實(shí)現(xiàn)了程控的衰減放大并且兼有自動(dòng)增益控制的功能。通過(guò)軟件設(shè)計(jì)了數(shù)字觸發(fā)器, 取代了一般示波器中常用的觸發(fā)電路, 降低了系統(tǒng)的硬件復(fù)雜度。波形顯示時(shí), 綜合利用了內(nèi)插函數(shù)和線性插入兩種插值法, 使顯示波形連續(xù)穩(wěn)定。該數(shù)字存儲(chǔ)示波器允許輸入信號(hào)的動(dòng)態(tài)范圍大, 體積小, 便于攜帶, 具有很高的應(yīng)用價(jià)值和廣闊的發(fā)展空間。