基于PIC單片機的簡易數(shù)字示波器設(shè)計
摘要:提出了利用PIC單片機作為控制核心的簡易數(shù)字示波器的設(shè)計方案。介紹了系統(tǒng)總體設(shè)計的體系結(jié)構(gòu),以及硬件和軟件的具體實現(xiàn)。輸入信號經(jīng)過預(yù)處理租AD轉(zhuǎn)換后,傳輸?shù)絾纹瑱C,利用鍵盤做功能設(shè)置,在LCD上把波形顯示出來,實現(xiàn)信號的實時采樣、數(shù)據(jù)處理以及顯示控制等簡易數(shù)字示波器功能。此系統(tǒng)方案規(guī)模小、性能穩(wěn)定、實現(xiàn)方便、價格低廉,具有一定的實用價值。
關(guān)鍵詞:PIC;單片機;數(shù)字示波器;AD轉(zhuǎn)換;采樣
0 引言
數(shù)字示波器是工業(yè)控制、電子測量、信號處理及儀器儀表等行業(yè)最常用的測量儀器之一。它將捕捉到的模擬信號通過AD轉(zhuǎn)換后,存儲到示波器中,對信號作一步的處理,可以獲得被測信號的多種信號參數(shù),如頻率、幅值、前后沿時間、平均值等,有利于對產(chǎn)品作進一步的分析設(shè)計。
1 總體設(shè)計
表征示波器的一些關(guān)鍵技術(shù)指標有:采樣率、存儲容量、觸發(fā)類型、帶寬、分辨率等。采樣率定義了每秒從連續(xù)信號中提取并組成離散信號的采樣個數(shù),采樣率的倒數(shù)是采樣周期,它表示采樣之間的時間間隔。采樣率可分為實時采樣率和等效采樣率,實時采樣率指單次采樣所能達到的最大采樣率,等效采樣率指用多次采樣得到的信號共同完成信號的重建。
存儲容量指獲取波形的取樣點的數(shù)目,用直接存放AD轉(zhuǎn)換后數(shù)據(jù)的獲取存儲器的存儲單元數(shù)來表示記錄時間、取樣速率以及存儲深度三者之間的關(guān)系。示波器的存儲容量越大,采樣數(shù)據(jù)的能力越強,更善于捕獲像毛刺這類通常偶爾發(fā)生的信號。
觸發(fā)常見的類型有上升沿觸發(fā)和下降沿觸發(fā),即通過指定的極性和電壓電平識別波形的觸發(fā),設(shè)定一個適當?shù)挠|發(fā)電平以后,觸發(fā)電路開始捕捉觸發(fā)脈沖,完成數(shù)據(jù)采集。顯示出來的波形是以信號的某個上升沿或某個下降沿為觸發(fā)參考點的。作用是保證每次采集的數(shù)據(jù),都是從輸入信號上的一個精確確定的點作為參考點來顯示,有利于顯示波形重復(fù)且穩(wěn)定,如果沒有觸發(fā)電路,在屏幕上看到的將是雜亂無章的波形。
分辨率分為垂直(電壓)分辨率和水平(時間)分辨率,反映了信號波形的細節(jié)特性。AD轉(zhuǎn)換器通過把采樣電壓和參考電壓進行比較來確定采樣電壓的幅度。構(gòu)成AD轉(zhuǎn)換器所用的比較器越多,AD轉(zhuǎn)換器可以識別的電壓層次也越多,這個特性稱為垂直分辨率,垂直分辨率越高,則示波器上的波形中可以看到的信號細節(jié)越小。
本系統(tǒng)將采集到的模擬信號經(jīng)過AD轉(zhuǎn)換后變成數(shù)字量,利用單片機進行數(shù)據(jù)的處理儲存,轉(zhuǎn)換成LCD相應(yīng)的X、Y坐標值和顯示數(shù)值??梢圆捎脝纹瑱C和FPGA/CPLD的方式實現(xiàn),由FPGA/CPLD完成采集、存儲、顯示及AD/DA等功能,即由FPGA/CPLD實現(xiàn)人機交互及信號測量分析等功能。由于 硬件的限制,系統(tǒng)的實現(xiàn)由PIC單片機、AD轉(zhuǎn)換器、LCD模塊等組成,由單片機完成基本處理分析,包括信號的采集、存儲、顯示等控制與變換工作。此方式的優(yōu)點在于系統(tǒng)規(guī)模比較小,可以靈活實現(xiàn),卻不適宜于觀察高速信號或復(fù)雜信號。體系結(jié)構(gòu)圖如圖1所示。
2 硬件設(shè)計
硬件電路由七部分組成:輸入程控放大電路、采樣電路(高速AD轉(zhuǎn)換電路)、FIFO存儲電路、觸發(fā)電路、顯示控制電路、時鐘產(chǎn)生電路和測頻與控制電路。其中程控放大電路、采樣電路和顯示控制電路是主要的三部分。程控電路是將波形幅值通過比例縮放顯示在屏幕上,之后在周邊加上標尺注明,將波形調(diào)整到合適的采集范圍。采樣電路負責采集,它的核心為AD轉(zhuǎn)換器,采樣信號經(jīng)過AD轉(zhuǎn)換器,傳輸?shù)絾纹瑱C,由單片機處理以及顯示控制電路。顯示控制電路負責按照要求的形式顯示被測信號的波形。
2.1 程控電路設(shè)計
程控電路的作用是對輸入信號進行衰減或放大調(diào)整,使輸出信號電壓在AD轉(zhuǎn)換器輸入電壓要求范圍內(nèi),達到最好的測量與觀察效果,這就要求運算放大器在規(guī)定帶寬內(nèi)的增益一定要平坦,選用NSC公司生產(chǎn)的LM6172運算放大器,帶寬為100MHz,轉(zhuǎn)換速率3000v/μs。圖2是程控電路原理圖的一部分。
2.2 采樣電路設(shè)計
AD轉(zhuǎn)換電路將被測信號采樣并轉(zhuǎn)換成數(shù)字信號存入存儲器,它直接決定著數(shù)字示波器所能測量的最高頻率,在本電路中選用的8位高速AD轉(zhuǎn)換器ADS830E,采樣頻率為10kSa/s~60MSa/s。
ADS830E的每個時鐘周期進行一次DA轉(zhuǎn)換,采樣率就是時鐘頻率,可以方便地通過控制采樣時鐘來控制采樣率,而且ADS830E的輸入電壓幅度是可以編程控制的,RSEL引腳為控制引腳,當置高電平時,ADS830E的輸入電壓范圍是1.5~3.5V,即2Vpp;當置低電平時,輸入電壓范圍是2~3V,即1Vpp。
由程控放大電路調(diào)整后的信號分成兩路,一路進入AD轉(zhuǎn)換電路進行采樣,采樣所得的數(shù)據(jù)由74LVC574鎖存緩沖后送入FIFO存儲器。在AD轉(zhuǎn)換器與PIC單片機之間加入FIFO的作用是起到高速數(shù)據(jù)緩沖的作用,因為AD轉(zhuǎn)換器的最高工作頻率為60MHz,遠高于單片機的工作頻率,所以讓FIFO與AD轉(zhuǎn)換器同步工作存儲AD轉(zhuǎn)換器的轉(zhuǎn)換輸出數(shù)據(jù),當FIFO存儲器存滿后引腳被拉高,通知單片機進行數(shù)據(jù)讀取,這時單片機禁止AD轉(zhuǎn)換器與FIFO存儲器的時鐘使能信號,F(xiàn)IFO的控制權(quán)交給單片機。
2.3 顯示控制電路設(shè)計
顯示的核心是LCD在不同的坐標位置上打點,眾多的點聯(lián)系在一起就成了圖形。前面敘述了由于PIC單片機讀取數(shù)據(jù)的速度跟不上高速的采樣速率造成了在接收中要有個緩存的部分,此處采用了FIFO存儲器。FIFO的特點是速度快、雙端口、輸入和輸出分開,而且擁有空滿標志。它可以從一端讀入數(shù)據(jù),不會使得AD轉(zhuǎn)換器和PIC共用一個I/O口,在處理數(shù)據(jù)上很方便。
PIC單片機對采集到的數(shù)據(jù)顯示的過程是先對FIFO做是否滿判斷,確認采集到足夠的數(shù)據(jù)來顯示,然后清除屏幕上已有的圖像,之后判斷數(shù)據(jù)是否在屏幕顯示的范圍內(nèi),若超出范圍,將兩組數(shù)據(jù)合理組合得到在屏幕上顯示的數(shù)據(jù),通過調(diào)用顯示函數(shù)顯示出來。后面的數(shù)據(jù)只需讀出一組,通過和之前的數(shù)據(jù)運算和處理顯示出來,這樣就可繪制出連續(xù)的波形了。
對顯示的控制采用鍵盤按鍵,鍵盤電路采用6個信號接口控制24個鍵,大大節(jié)省了單片機控制所使用的I/O口。鍵盤的24個鍵被分為3組,每一組對應(yīng)于一個741s148,它是一個3/8譯碼器,當有一個鍵被按下,則其中一個被置低電平,741s148有三個口D0、D1、D2,這三個口可指出其中哪個鍵被按下,如Y1檢測電平拉低,則D0、D1、D2對應(yīng)是101。圖3是鍵盤控制電路圖。
3 軟件設(shè)計
軟件部分要由AD轉(zhuǎn)換子程序、顯示子程序、讀寫子程序、按鍵處理子程序組成。圖4是一次完整采樣處理的流程圖。
主程序在上電初始化后,等待信號采集,查詢AD轉(zhuǎn)換是否完成,AD轉(zhuǎn)換完成后,數(shù)據(jù)寫入FIFO存儲器,當FIFO存儲器寫滿后,FIFO寫滿標志位觸發(fā)單片機的數(shù)據(jù)讀取程序,把采樣數(shù)據(jù)讀取到單片機內(nèi),根據(jù)先前的按鍵狀態(tài)所設(shè)置的功能寄存器內(nèi)容,處理數(shù)據(jù),并在LCD上顯示需要的波形。
AD轉(zhuǎn)換程序在一定的采樣時間內(nèi),對輸入的模擬信號進行數(shù)據(jù)采樣,由定時器定時產(chǎn)生中斷,在采樣中斷到來時開啟AD轉(zhuǎn)換,AD轉(zhuǎn)換結(jié)束后數(shù)據(jù)存儲到指定的區(qū)域。通過控制定時器定時的時間即可控制不同的采樣率,從而實現(xiàn)對不同頻率段數(shù)據(jù)的采集。由于AD轉(zhuǎn)換時間的限制,不能采集頻率高韻信號波形,對此采用等效采樣模式,等效采樣是指多個信號周期連續(xù)采樣來復(fù)現(xiàn)一個信號波形,采樣系統(tǒng)能以擴展的方式復(fù)現(xiàn)頻率大大超過奈奎斯特極限頻率的信號波形。
顯示子程序?qū)⑥D(zhuǎn)換得到的數(shù)字信號量顯示在LCD相應(yīng)的點上。橫軸用于顯示耐間,縱軸顯示電壓大小的值,先計算出某一個待顯示數(shù)字量在橫軸上的位置,再根據(jù)數(shù)字量的大小計算出在縱軸上的位置,這樣就能在顯示器上顯示出該數(shù)字量所對應(yīng)的點。將所采集的點依次顯示后在屏幕上看到的即為信號的波形。
讀寫子程序的功能是將想要存儲的信號波形存儲起來,以便以后觀看波形細節(jié)。按鍵處理子程序的功能主要是根據(jù)不同的輸入,選擇不同的功能。采用行列掃描的方式對按鍵進行掃描,當掃描的某一按鍵按下時,執(zhí)行相應(yīng)的功能。
4 結(jié)束語
本系統(tǒng)設(shè)計簡單、清晰,充分利用單片機內(nèi)部資源,實現(xiàn)了普通示波器的基礎(chǔ)功能如信號測量、頻率測量、觸發(fā)電平可調(diào),垂直與掃描檔可變等,同時又擴展了按鍵波形存儲,單次觸發(fā)等功能,可應(yīng)用于儀表實時顯示動態(tài)波形,具有良好的使用前榮。如果選用性能更好的模擬開關(guān)和運算放大器,更合理的電阻,可提高信號調(diào)理電路的放大準確度,增大測量幅度范圍。