何佳林 鄭琳
【摘要】本文提出了一種簡(jiǎn)易數(shù)字示波器的設(shè)計(jì)方案。其設(shè)計(jì)方案基于STM32103C8T6單片機(jī),實(shí)現(xiàn)數(shù)字示波器基本功能。系統(tǒng)將傳感器輸出的4~20mA的標(biāo)準(zhǔn)信號(hào)通過以A/D轉(zhuǎn)換電路調(diào)理后,經(jīng)由單片機(jī)進(jìn)行數(shù)據(jù)處理,最后由LCD顯示波形相關(guān)值。與傳統(tǒng)的模擬示波器相比有許多優(yōu)點(diǎn),易操作、體積小、精度高、可永久存儲(chǔ)波形數(shù)據(jù)、反復(fù)重現(xiàn)波形數(shù)據(jù)等。特別適合電子制作群體,故其使用面更加廣。
【關(guān)鍵詞】波形檢測(cè);上位機(jī)開發(fā);A/D轉(zhuǎn)換;
1. 系統(tǒng)方案設(shè)計(jì)
數(shù)字示波器由7部分組成:?jiǎn)纹瑱C(jī)部分;信號(hào)調(diào)理電路A/D轉(zhuǎn)換部分;人機(jī)界面和交互式界面部分。系統(tǒng)組成框圖如圖1.1所示。
2. 硬件設(shè)計(jì)
2.1 單片機(jī)系統(tǒng)電路設(shè)計(jì)
本設(shè)計(jì)采用STM32103C8T6作為主控芯片,通過液晶屏幕顯示數(shù)據(jù)。整個(gè)系統(tǒng)的硬件設(shè)計(jì)大致可以分為四個(gè)模塊,分別是:電源電路、串口模塊、單片機(jī)最小系統(tǒng)(晶振電路和復(fù)位電路)、波形檢測(cè)電路。電源電路負(fù)責(zé)為單片機(jī)、復(fù)位電路、串口模塊和波形檢測(cè)電路供電,從而使單片機(jī)波形檢測(cè)電路和串口模塊正常運(yùn)行,綠色指示燈也因此點(diǎn)亮,表示當(dāng)前供電正常。整個(gè)系統(tǒng)的智能控制部分是單片機(jī)最小系統(tǒng),該系統(tǒng)也是整個(gè)系統(tǒng)的核心部分。
2.2顯示電路設(shè)計(jì)
JLX2.4TFT液晶模塊也叫JLX2.4TFT字符型液晶其是一種專門用來顯示字母、數(shù)字以及符號(hào)等的點(diǎn)陣型液晶集成模塊,該模塊有很多個(gè)5x7或者5x11等的點(diǎn)陣字符位構(gòu)成,每個(gè)點(diǎn)陣字符位都能夠顯示一個(gè)字符的功能。每個(gè)顯示的位之間有一個(gè)點(diǎn)距將其隔開,每一行顯示的字符之間也有間隔,起到了字符間距和行間距等的的作用,但是其不能顯示圖形(用自定義CGRAM,顯示效果也不好)JLX2.4TFT液晶顯示的內(nèi)容可以顯示多行,每行有128X64個(gè)字符液晶模塊(可以顯示字符和數(shù)字?jǐn)?shù)據(jù))目前市面上字符液晶模塊大多是基于HD44780液晶芯片控制的,控制原理是差不多相同的,因此以HD44780為基礎(chǔ)寫的控制程序可以很方便地應(yīng)用于市面上絕大部分的字符型。
2.3按鍵電路設(shè)計(jì)
系統(tǒng)有四個(gè)按鍵分別為,波形對(duì)應(yīng)PB12,倍率對(duì)應(yīng)PB13,數(shù)值+對(duì)應(yīng)PA11,數(shù)值對(duì)應(yīng)PA12,PB12起到了波形調(diào)節(jié)的作用,選擇不同的波形,PB13為倍率設(shè)計(jì)按鍵,當(dāng)設(shè)定過波形后通過PA11和PA12進(jìn)行調(diào)節(jié)。
2.4通訊電路設(shè)計(jì)
串口模塊采用HC-05主從一體的串口模塊。模塊為單電壓輸入電壓為3.3V。整個(gè)板子由Micro USB接口供電,兼容安卓手機(jī)的充電線,對(duì)應(yīng)該USB口添加了一個(gè)發(fā)光二極管D8,用于指示整版上電。模塊旁邊放置了電源開關(guān)SW110,左右波動(dòng)可以實(shí)現(xiàn)模塊的單獨(dú)上電和掉電。對(duì)應(yīng)電源開關(guān)有一個(gè)發(fā)光二極管D110,用于指示模塊上電。當(dāng)串口設(shè)備連接后,可以忽視串口內(nèi)部的通信協(xié)議。當(dāng)建立連接時(shí),只需觀察串口是否已經(jīng)設(shè)置完成AT模式是否連接好。
3. 軟件設(shè)計(jì)
3.1 系統(tǒng)主程序設(shè)計(jì)
本數(shù)字示波器的軟件設(shè)計(jì)部分采用模塊化程序設(shè)計(jì),主要由A/D轉(zhuǎn)換子程序,LCD液晶顯示子程序,EEPROM讀寫子程序,按鍵處理子程序組成。通過AD采集波形數(shù)據(jù)然后用按鍵調(diào)節(jié)波形,最后進(jìn)行波形處理,就可以在LCD上顯示完整的波形,整個(gè)系統(tǒng)的主程序流程圖如圖2.1所示。
3.2 串口通訊程序設(shè)計(jì)
串口通訊子程序的功能主要是作為調(diào)試時(shí)使用,由于單片機(jī)采集信號(hào)數(shù)據(jù)后,是存儲(chǔ)在RAM中的,有時(shí)候需要對(duì)采集到的數(shù)據(jù)進(jìn)行分析,這時(shí)就使用串口,將RAM中的這些數(shù)據(jù)信息發(fā)送到電腦的串口上,這樣就能很方便的對(duì)數(shù)據(jù)進(jìn)行分析。
從機(jī)器端的通信協(xié)議是:①關(guān)閉中斷以判斷當(dāng)前狀態(tài)是否是接收狀態(tài)(EA=0、RI=1),如果是則開始計(jì)數(shù)(記錄所收到的數(shù)據(jù)的字節(jié)數(shù));如果不是則直接清除接收到的信息同時(shí)打開中斷(EA=1、RI=0)。②根據(jù)第一個(gè)字節(jié)是否為0xAA來判斷所接收到的數(shù)據(jù)幀是否為命令幀。③根據(jù)字節(jié)數(shù)是否大于5字節(jié)來判斷所接收到的數(shù)據(jù)幀的字節(jié)是否符合要求。④按字節(jié)逐個(gè)個(gè)判斷所接收到的信息:首先確定是不是本機(jī)的地址、校驗(yàn)是否正確;如果判斷及效驗(yàn)正確則繼續(xù)判斷主機(jī)是向哪種類型數(shù)據(jù)發(fā)出要求命令,并在發(fā)送數(shù)據(jù)的命令后做出對(duì)應(yīng)的反應(yīng),檢驗(yàn)完一幀數(shù)據(jù)后直接將數(shù)據(jù)接收(RI=0),并打開中斷等待下一次的命令的到來。該模塊主要包括串口數(shù)據(jù)的發(fā)送與接收。
4. 系統(tǒng)調(diào)試
基于PC控制的硬件模塊和軟件模塊全部調(diào)試調(diào)試完成后,下面就可以對(duì)系統(tǒng)的整體進(jìn)行調(diào)試。首要部分依然是檢查整個(gè)電路的連接是否正常,將整個(gè)電路通過USB連接到電腦上之后。指示燈點(diǎn)亮,表示整個(gè)電路運(yùn)行正常。將PC串口助手打開,搜索到COM后,再進(jìn)行測(cè)試。用波形發(fā)生器發(fā)生波形然后手動(dòng)調(diào)試接收到的波形形態(tài),并嘗試復(fù)位能功能。如果全部都能實(shí)現(xiàn),那么總體的調(diào)試基本完成,該設(shè)計(jì)與預(yù)期相比能實(shí)現(xiàn)示波器基本功能,但后期波形調(diào)試還可以加以改善。與傳統(tǒng)模擬示波器相比,該設(shè)計(jì)不僅具有可存儲(chǔ)波形、體積小、功耗低,使用方便等優(yōu)點(diǎn),而且還具有強(qiáng)大的信號(hào)實(shí)時(shí)處理分析功能。
5. 結(jié)論
簡(jiǎn)易示波器的工作流程分為三步:采集、存儲(chǔ)、顯示,其工作原理為由高速A/D器件采集待測(cè)波形的電壓值,并將采集到數(shù)據(jù)存儲(chǔ)到RAM區(qū),然后由單片機(jī)對(duì)數(shù)據(jù)進(jìn)行運(yùn)算,并控制波形的顯示,本設(shè)計(jì)解決了如下問題:1.在本設(shè)計(jì)中所采用的核心控制器為STM32單片機(jī),該單片機(jī)的主頻比較低,所以對(duì)于采集較高頻率的波形比較困難。采取的措施為提高單片機(jī)的晶振頻率,改進(jìn)示波器數(shù)據(jù)采集算法。2.由于波形顯示的問題,ADC0809所采用的時(shí)鐘為500KHz,可以通過單片機(jī)的ALE信號(hào)分頻得來,單片機(jī)晶振采用12MHz,則ALE信號(hào)的頻率為2MHz,產(chǎn)生500KHz的時(shí)鐘,需經(jīng)過74LS908分頻后得到。
參考文獻(xiàn):
[1]陳明熒.MCU課程設(shè)計(jì)實(shí)訓(xùn)教材[M].北京:清華大學(xué)出版社,2015:25-27.
[2]王鵬.上拉電阻在數(shù)字電路中的應(yīng)用[N].河南機(jī)電高等學(xué)校學(xué)報(bào),2016-02-12(3).
[3] 于志贛,劉國平.液顯LCDJLX2.4TFT模塊的應(yīng)用[J].機(jī)電技術(shù),2015(3):21-23.
[4] 張琛,耿標(biāo).16*16點(diǎn)陣LED的設(shè)計(jì)[J].硅谷,2016(15):30-31.
作者簡(jiǎn)介:何佳林,男,沈陽工學(xué)院,學(xué)生。鄭琳(通訊作者),女,漢族,遼寧人,沈陽工學(xué)院,教師,講師,碩士學(xué)位。