• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Arduino平臺(tái)的簡(jiǎn)易示波器設(shè)計(jì)與實(shí)現(xiàn)

      2018-05-30 01:48:11貴州民族大學(xué)機(jī)械電子工程學(xué)院普天堯
      電子世界 2018年9期
      關(guān)鍵詞:示波器寄存器波形

      貴州民族大學(xué)機(jī)械電子工程學(xué)院 普天堯

      1.Arduino平臺(tái)簡(jiǎn)介

      Arduino是一個(gè)基于一系列單片機(jī)電路板的開(kāi)源電子設(shè)計(jì)平臺(tái),它同時(shí)提供了免費(fèi)的開(kāi)發(fā)環(huán)境(Arduino IDE)。相較其他單片機(jī)平臺(tái),Arduino具有多種優(yōu)勢(shì),使其越來(lái)越廣泛地被應(yīng)用于高校教學(xué)、課程設(shè)計(jì)之中。

      1.1 易用性

      Arduino使用C/C++語(yǔ)言編寫(xiě)程序,并且其核心庫(kù)文件提供了大量的基于AVR-GCC庫(kù)二次封裝形成的API(Application Programming Interface)[1]。因此,使用者無(wú)需熟悉單片機(jī)寄存器的功能和設(shè)置方法,稍懂一些C語(yǔ)言即可開(kāi)始項(xiàng)目設(shè)計(jì),適合在高校低年級(jí)學(xué)生的實(shí)踐課程、競(jìng)賽培訓(xùn)等中應(yīng)用、推廣。

      1.2 開(kāi)放性

      Arduino的硬件電路、IDE軟件及核心庫(kù)文件均是開(kāi)源的,在不用于商業(yè)用途的前提下,允許使用者在其基礎(chǔ)上擴(kuò)展開(kāi)發(fā)。

      1.3 交流性

      Arduino在世界各地?fù)碛斜姸嚅_(kāi)發(fā)者和用戶,因此可以在網(wǎng)絡(luò)上搜索到豐富的案例教程,以及一些I/O設(shè)備在Arduino下的類庫(kù),從而有效地降低開(kāi)發(fā)難度、縮短開(kāi)發(fā)周期。

      1.4 低成本

      Arduino開(kāi)發(fā)板價(jià)格相對(duì)便宜,例如本文設(shè)計(jì)使用的Arduino UNO R3控制器,價(jià)格在15到20元。此外,不需要編輯器,直接使用USB數(shù)據(jù)線即可完成程序下載,開(kāi)發(fā)成本低,適合學(xué)生學(xué)習(xí)、創(chuàng)作。

      2.系統(tǒng)硬件設(shè)計(jì)

      數(shù)字示波器其工作原理是將輸入的模擬信號(hào)經(jīng)ADC(Analog to Digital Converter)采樣后得到數(shù)字信號(hào),并對(duì)其進(jìn)行存儲(chǔ)、運(yùn)算后將信號(hào)波形及所需參數(shù)輸出到顯示屏。

      Arduino UNO是Arduino的主流產(chǎn)品,它包含14個(gè)數(shù)字輸入/輸出端口,6個(gè)模擬輸入端口,一個(gè)16MHz的晶體振蕩器[2]。其微控制器是ATmega328,它內(nèi)部提供一個(gè)10位精度的逐次逼近型ADC。本文采用該系列最新版本UNO R3來(lái)實(shí)現(xiàn)信號(hào)的采樣、存儲(chǔ)及處理。波形及參數(shù)顯示使用LCD12864,以串行方式將其與Arduino的硬件SPI口連接[3]。開(kāi)關(guān)S1、S2用于采樣率大小的增減,開(kāi)關(guān)S3用于波形的鎖定。示波器的電路圖如圖1所示:

      圖1 示波器硬件電路圖

      3.系統(tǒng)軟件設(shè)計(jì)

      Arduino程序主要由函數(shù)setup()和loop()構(gòu)成。setup()函數(shù)中的代碼只被執(zhí)行一次,通常用于完成I/O口狀態(tài)的配置等初始化工作。loop()函數(shù)是一個(gè)死循環(huán),其中程序?qū)⒎磸?fù)運(yùn)行。

      本文設(shè)計(jì)的數(shù)字示波器的軟件部分主要包括:信號(hào)采樣模塊、鍵盤掃描模塊、信號(hào)參數(shù)計(jì)算模塊及波形顯示模塊。其中,信號(hào)采樣需要使用定時(shí)器中斷,其余模塊均放入loop()中實(shí)現(xiàn)。

      3.1 信號(hào)采樣模塊

      采樣率,即單位時(shí)間內(nèi)的采樣次數(shù),單位Sa/s,是數(shù)字示波器的重要指標(biāo),其大小影響波形質(zhì)量。數(shù)字示波器的采樣主要有實(shí)時(shí)采樣和等效采樣兩種模式。綜合考慮控制器的性能指標(biāo),本設(shè)計(jì)中采用實(shí)時(shí)采樣,即固定時(shí)間間隔采樣,該模式下如果波形使用矢量顯示,采樣率應(yīng)不低于數(shù)字實(shí)時(shí)帶寬的10倍[4]。

      Arduino核心庫(kù)提供了函數(shù)analogRead()用于模數(shù)轉(zhuǎn)換,它讀入一個(gè)模擬輸入信號(hào)耗時(shí)100μs,即使用該函數(shù)能夠獲得的最大采樣率為10000Sa/s,此時(shí)數(shù)字示波器的測(cè)量頻率小于1kHz。為了實(shí)現(xiàn)更高的采樣率,需要對(duì)ATmega328內(nèi)置ADC進(jìn)行設(shè)置。ADC的工作模式使用ADC自動(dòng)觸發(fā)連續(xù)采樣,在該模式下,完成一次轉(zhuǎn)換的時(shí)間是13.5個(gè)ADC周期。該ADC模塊包含一個(gè)預(yù)分頻器,通過(guò)對(duì)系統(tǒng)時(shí)鐘分頻可以獲得一個(gè)適合的ADC時(shí)鐘頻率。在經(jīng)過(guò)多次性能測(cè)試后,本設(shè)計(jì)的預(yù)分頻系數(shù)設(shè)置為8,即 fADC=2MHz,對(duì)應(yīng)的采樣周期為:

      因此該系統(tǒng)的最高采樣頻率:

      完成一次模數(shù)轉(zhuǎn)換后其結(jié)果存放在ADC數(shù)據(jù)寄存器中,故需等時(shí)間間隔讀取ADC結(jié)果,并以數(shù)組形式存入控制器內(nèi)存,這個(gè)過(guò)程本文采用定時(shí)器中斷實(shí)現(xiàn)。ATmega328的定時(shí)器在CTC(Clear Timer On Compare)模式下,計(jì)數(shù)值與寄存器OCRnA的數(shù)值進(jìn)行比較,若匹配則進(jìn)入中斷,之后計(jì)數(shù)值清零。這里不對(duì)定時(shí)器時(shí)鐘分頻,則當(dāng)OCRnA取107時(shí),定時(shí)器中斷發(fā)生的頻率與ADC采樣頻率一致。

      3.2 鍵盤掃描模塊

      該示波器配置三個(gè)按鈕,其中一個(gè)用于鎖定波形,另外兩個(gè)按鈕分別用于采樣率大小的增減。每次進(jìn)入鍵盤掃描函數(shù)后,會(huì)檢測(cè)指定引腳的電平變化,滿足條件時(shí)則對(duì)相關(guān)參數(shù)進(jìn)行修改。波形鎖定是通過(guò)改變標(biāo)志變量的值,從而控制LCD繪圖程序是否運(yùn)行;而對(duì)定時(shí)器中OCRnA寄存器的值進(jìn)行修改則可以調(diào)整定時(shí)器中斷周期,從而調(diào)整采樣率大小。

      3.3 信號(hào)參數(shù)計(jì)算模塊

      為了使得每次掃描的數(shù)據(jù)同步,顯示的波形穩(wěn)定,需要查找到信號(hào)的同步觸發(fā)點(diǎn),并將該點(diǎn)作為信號(hào)顯示的起點(diǎn)并丟棄前面的數(shù)據(jù)。因此,盡管波形顯示區(qū)域設(shè)置為96╳64,但這里采樣深度取192點(diǎn)。

      除了波形顯示外,本設(shè)計(jì)將對(duì)采樣數(shù)據(jù)進(jìn)行處理,獲得輸入信號(hào)的峰峰值Vpp和頻率f。Vpp的計(jì)算是通過(guò)查找采樣數(shù)據(jù)中的最大值和最小值來(lái)實(shí)現(xiàn)。頻率可以使用周期法測(cè)量,已知采樣率,通過(guò)對(duì)采樣數(shù)據(jù)處理得到輸入信號(hào)每個(gè)周期的平均采樣次數(shù),進(jìn)而確定其周期T,頻率f=1/T。具體實(shí)現(xiàn)代碼如下:

      3.4 波形顯示模塊

      通常情況下,為了實(shí)現(xiàn)LCD12864的正常顯示功能,使用者需要嚴(yán)格地按要求寫(xiě)入驅(qū)動(dòng)程序。然而利用Arduino平臺(tái)進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),可以跳過(guò)這個(gè)繁冗的步驟,本設(shè)計(jì)中直接調(diào)用U8glib庫(kù)函數(shù)來(lái)實(shí)現(xiàn)液晶屏的設(shè)置及圖形繪制功能。U8glib是目前Arduino上使用最廣泛的圖形顯示類庫(kù),支持多種型號(hào)的液晶顯示屏。Arduino控制器和LCD采用硬件SPI通信,引腳連接如圖1所示。程序中需包含U8glib.h頭文件,并建立一個(gè)LCD對(duì)象,代碼如下:

      上述代碼中的draw()函數(shù),其中應(yīng)包含實(shí)現(xiàn)圖形顯示的代碼。

      4.測(cè)試分析及結(jié)論

      為了驗(yàn)證示波器的波形顯示功能和頻率測(cè)量性能,本文使用信號(hào)發(fā)生器提供等幅值不同頻率的正弦輸入信號(hào)。示波器輸出波形及信號(hào)參數(shù)如圖2所示:

      圖2 不同頻率的信號(hào)波形顯示

      表1給出輸入信號(hào)頻率不同時(shí)頻率測(cè)量的相對(duì)誤差。

      表1 頻率測(cè)量結(jié)果

      經(jīng)測(cè)試數(shù)據(jù)顯示,利用Arduino平臺(tái)提供的開(kāi)源硬軟件可以實(shí)現(xiàn)一個(gè)誤差較小的簡(jiǎn)易數(shù)字示波器。

      基于Arduino的系統(tǒng)設(shè)計(jì)具有軟件結(jié)構(gòu)簡(jiǎn)單、實(shí)現(xiàn)成本低、開(kāi)發(fā)周期短等優(yōu)勢(shì),適合引入到高校工科專業(yè)實(shí)驗(yàn)課程的教學(xué)活動(dòng)中,有助于提高學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生的創(chuàng)新思維和實(shí)際操作能力。

      [1]陳呂洲.Arduino程序設(shè)計(jì)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2015.

      [2]范欽武.基于arduino和enc28j60的溫濕度監(jiān)控系統(tǒng)設(shè)計(jì)[J].科技視界,2014(23):108-109.

      [3]吳漢清.玩轉(zhuǎn)Arduino電子制作[M].北京:機(jī)械工業(yè)出版社,2016.

      [4]康玲竹.數(shù)字示波器特性及應(yīng)用[J].船電技術(shù),2009(06):59-60.

      猜你喜歡
      示波器寄存器波形
      對(duì)《壓力容器波形膨脹節(jié)》2018版新標(biāo)準(zhǔn)的理解及分析
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      基于LFM波形的靈巧干擾效能分析
      一款教學(xué)示波器的Y通道設(shè)計(jì)與實(shí)現(xiàn)
      電子制作(2017年13期)2017-12-15 09:00:08
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      可攜帶式虛擬雙蹤示波器
      電子制作(2017年20期)2017-04-26 06:57:46
      基于ARM的任意波形電源設(shè)計(jì)
      大連臺(tái)使用CTS-1記錄波形特點(diǎn)
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      一種可重構(gòu)線性反饋移位寄存器設(shè)計(jì)
      南溪县| 唐海县| 田林县| 夹江县| 屯昌县| 龙州县| 吉木萨尔县| 什邡市| 临沂市| 亳州市| 临湘市| 秭归县| 金堂县| 东台市| 西乌珠穆沁旗| 烟台市| 昌宁县| 牡丹江市| 上思县| 安吉县| 北辰区| 西贡区| 沙河市| 宁强县| 巴南区| 常熟市| 邹平县| 南丹县| 武隆县| 筠连县| 岢岚县| 革吉县| 巴林右旗| 淮安市| 肇庆市| 兴和县| 全南县| 祁门县| 隆昌县| 吴忠市| 四会市|