新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 教你用最簡單的方法實現強大的多功能手持儀,提供完整軟硬件解決方案,不服來戰

        教你用最簡單的方法實現強大的多功能手持儀,提供完整軟硬件解決方案,不服來戰

        作者: 時間:2017-06-03 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/201706/347671.htm

        一、項目概述

        1.1 引言

        愛特梅爾半導體是世界上高級半導體產品設計、制造和行銷的領先者,產品包括了微處理器、可編程邏輯器件、非易失性存儲器、安全芯片、混合信號及RF射頻集成電路。ATMEL主要應用于高增長的電子設備市場,如通訊、計算、消費類產品、安全產品、汽車電子和工業應用。

        1.2 項目背景/選題動機

        隨著電子技術的發展和電路結構的不斷創新變化,對電路測量的要求也變得更高,在電子制作中會發現對很多參數的測量已經不是一塊能勝任的了,比如單片機 某I/O口的輸出波形或制作放大器測其頻率響應等等,所以自然而然的和一樣變成了電子工程和愛好者的必備工具,但是,又很昂貴,所以我 們就想發揮我們的聰明才智和所學的知識制作一臺使用的,并且盡量使功能多樣,并且想著節能環保,將以往按鍵形式的改為觸屏的,還附加其他的功能。

        二、需求分析

        2.1 功能要求

        1)雙通道示波器: 顯示輸入信號的波形、頻率、幅值。

        2)可測量參數:

        DCV:直流電壓;

        ACV:交流電壓、

        DCA:直流電流、

        R:電阻、

        UF:二極管的正向導通電壓、

        hFE:三極管放大倍數。

        3)產生方波、鋸齒波、正弦波、三角波等信號波形;信號的頻率和幅度可調。

        2.2 性能要求

        • 示波器

        • 通道數:2

        • 帶寬:60MHz

        • 垂直靈敏度:不小于10mV-5V/div

        • 最大輸入電壓:50Vpp

        • 輸入阻抗:1MΩ

        • 水平時基范圍:不小于500ns-50ms/div

        • 顯示:彩色液晶

        • 耦合方式:AC/DC

        2)數字萬用表

        • 直流電壓量程:200mV ;2V;20V;200V ----精度:±0.5%

        • 交流電壓量程:
          200mV -----精度:±1.2%
          2V;20V;200V----精度:±1.0%

        • 直流電流量程:
          2mA;20 mA ------精度:±0.5%
          200 mA ------精度:±1.5%
          10A ------精度:±2.0%

        • 交流電流量程:

        2mA;20 mA ------精度:±1.0%

        200 mA ------精度:±2.0%

        10A ------精度:±3.0%

        • 電阻量程:

        200Ω;2KΩ;20KΩ;200KΩ;2MΩ;------精度:±0.5%

        3)函數

        • 頻率范圍:1Hz~50MHz

        • 頻率精確度:±0.5 Hz

        • 信號諧波失真(50Ω匹配負載,1Vp-p輸出時):

        • 小于20kHz:-60dBc
        • 20kHz~1MHz:-50dBc
        • 1MHz~10MHz:-40dBc
        • 10MHz~50MHz:-30dBc
        • 輸出幅度范圍:2mV~2Vrms(開路),或1 mV~1 Vrms(50Ω負載)

        • 輸出阻抗: 50Ω

        • 穩幅特性(頻幅平坦度):10Hz~10MHz±0.5dB 1Hz~50MHz±1dB

        三、方案設計

        3.1示波器

        3.1.1系統功能實現原理

        數字示波器首先對模擬信號進行高速采樣獲得相應的數字數據并存儲。用數字信號處理技術對采樣得到的數字信號進行相關處理與運算,從而獲得所需的各種信號參 數。根據得到的信號參數繪制信號波形,并可對被測信號進行實時的、瞬態的分析,以方便使用者了解信號質量,快速準確地進行故障的診斷。測量開始時,操作者 可通過操作界面選定測量類型、測量參數及測量范圍;微處理器自動將測量設置解釋到采樣電路,并啟動數據采集;采集完成后,由微處理器對采樣數據按測量設置 進行處理,提取所需要的測量參數,并將結果送顯示部件。

        系統硬件結構框圖

        3.1.2 電路設計

        程控放大部分:

        程控放大器的作用是對輸入信號進行衰減或放大調整,使輸出信號電壓在 AD轉換器輸入電壓要求范圍內,達到最好的測量與觀察效果,所以程控放大器電路在規定帶寬內的增益一定要平坦,故對運算放大器的要求比較高。

        開關用繼電器控制,H代表吸合,L代表未吸合。

        電壓靈敏度與 S1~S4 的關系表:

        放大倍數 靈敏度 S1 S2 S3 S4

        0.1 2V H L L L

        0.2 1V H L H L

        0.4 0.5V L H L L

        1 0.2V L L L L

        2 0.1V L L H L

        4 50mV L H L H

        10 20mV L L L H

        20 10mV L L H H

        高速A/D轉換和數據存儲:

        由程控放大電路調整后的信號分成兩路,有一路進入A/D轉換電路進行采樣,采樣所得的數據由 74LVC574 鎖存緩沖后送入存儲器。

        時鐘電路:

        時鐘產生電路為 AD轉換器提供一系列的采樣時鐘信號,分別為 600Hz、 6kHz、 60kHz、600kHz、3MHz、6MHz、30MHz 和 60MHz,共 8種,分別對應著不同的水平水平掃速。

        基準時鐘為60MHz,通過多路選擇器和分屏器實現。

        主控MCU:

        由一片單片機作為主控芯片,進行數據的處理并控制程控放大器和時鐘產生器,并將數據送屏幕顯示。

        3.1.3 系統預計實現結果

        采樣速率: 600Sa/s, 6kSa/s, 60kSa/s, 600kSa/s, 3MSa/s, 6MSa/s, 30MSa/s, 60MSa/s

        水平水平掃速:500ns、1μs、5μs、10μs、50μs、500μs、5ms、50ms

        垂 直電壓靈敏度: 10mV/div, 20mV/div, 50mV/div, 0.1V/div, 0.2V/div, 0.5V/div, 1V/div, 2V/div,5V/div

        3.1.4系統軟件流程

        3.2函數

        3.2.1函數信號發生器簡介

        函數發生器又稱波形發生器。它能產生某些特定的周期性時間函數波形(主要是正弦波、方波、三角波、鋸齒波和脈沖波等)信號。頻率范圍可從幾毫赫甚至幾微赫的超低頻直到幾十兆赫。除供通信、儀表和自動控制系統測試用外,還廣泛用于其他非電測量領域。圖2為產生上述波形的方法之一,將積分電路與某種帶有回滯特性的閾值開關電路(如施米特觸 發器)相連成環路,積分器能將方波積分成三角波。施米特電路又能使三角波上升到某一閾值或下降到另一閾值時發生躍變而形成方波,頻率除能隨積分器中的RC 值的變化而改變外,還能用外加電壓控制兩個閾值而改變。將三角波另行加到由很多不同偏置二極管組成的整形網絡,形成許多不同斜度的折線段,便可形成正弦 波。另一種構成方式是用頻率合成器產生正弦波,再對它多次放大、削波而形成方波,再將方波積分成三角波和正、負斜率的鋸齒波等。對這些函數發生器的頻率都 可電控、程控、鎖定和掃頻,儀器除工作于連續波狀態外,還能按鍵控、門控或觸發等方式工作。   

        3.2.2方案設計與選擇

        方案一:采用單片函數發生器(如8038),8038可同時產生正弦波、方波等,而且方法簡單易行,用D/A轉換器的輸出來改變調制電壓,也可以實現數控調整頻率,但產生信號的頻率穩定度不高。

        方案二:采用鎖相式頻率合成器,利用鎖相環,將壓控振蕩器(VCO)的輸出頻率鎖定在所需頻率上,該方案性能良好,但難以達到輸出頻率覆蓋系數的要求,且電路復雜。

        方案三:采用單片機編程的方法來實現。該方法可以通過編程的方法來控制信號波形的頻率和幅度,而且在硬件電路不變的情況下,通過改變程序來實現頻率的變換。此外,由于通過編程方法產生的是數字信號,所以信號的精度可以做的很高。

        鑒于方案一的信號頻率不夠穩定和方案二的電路復雜,頻率覆蓋系數難以達標等缺點,所以決定采用方案三的設計方法。它不僅采用軟硬件結合,軟件控制硬件的方法 來實現,使得信號頻率的穩定性和精度的準確性得以保證,而且它使用的幾種元器件都是常用的元器件,容易得到,且價格便宜,使得硬件的開銷達到最省。

        3.2.3設計原理

        我們做的信號發生器只需用到外部中斷和PWM脈寬調制波兩項技術便可以實現,Atmel多數單片機都支持這兩項技術,由于主控芯片還未定,故該信號發生器暫時假定采用的控制芯片為Atmega16。

        數字信號可以通過數/模轉換器轉換成模擬信號,因此可通過產生數字信號再轉換成模擬信號的方法來獲得所需要的波形。Atmega16單片機本身就是一個完整 的微型計算機,具有組成微型計算機的各部分部件:中央處理器CPU、隨機存取存儲器RAM、只讀存儲器ROM、I/O接口電路、定時器/計數器以及串行通 訊接口等,,只要將Atmega16再配置鍵盤及其接口、顯示器及其接口、數模轉換及波形輸出、指示燈及其接口等四部分,即可構成所需的波形發生器,其信 號發生器構成原理框圖如圖3.1所示:

        信號發生器原理框圖

        Atmega16是整個波形發生器的核心部分,通過程序的編寫和執行,產生各種各樣的信號,并從鍵盤接收數據,進行各種功能的轉換和信號幅度的調節。當數字信號經過接口電路到達轉換電路,將其轉換成模擬信號也就是所需要的輸出波形。

        3.2.4設計思想

        1、利用單片機產生方波、鋸齒波、正弦波、三角波和鋸齒波等信號波形,信號的頻率和幅度可變。

        2、將一個周期的信號分離成256個點(按X軸等分),每兩點之間的時間間隔為T,用單片機的定時器產生,其表示式為:T=T/256。

        3、正弦波的模擬信號是D/A轉換器的模擬量輸出,其計算公式為:

        Y=(A/2sint)+A/2 (其中A=VREF)

        那么對應著存放在計算機里的這一點的數據為:

        4、一個周期被分離成256個點,對應的四種波形的256個數據存放在以TAB1--TAB4為起始地址的存儲器中。

        3.2.5設計功能

        根據系統操作界面的菜單提示選擇信號發生器輸出的波形。分別有正弦波、方波、三角波。

        在系統操作界面可以調節輸出波形的頻率和幅值。頻率范圍:10~1000Hz,輸出波形幅度為:0~5V。

        3.2.6硬件設計

        硬件原理框圖

        3.2.7軟件設計

        本文中子程序的調用是通過操作界面菜單選項的選擇來實現,在取得按鍵相應的鍵值后,啟動計時器和相應的中斷服務程序,再直接查詢程序中預先設置的數據值,通過轉換輸出相應的電壓,從而形成所需的各種波形。主程序的流程圖如下圖所示

        主程序的流程圖

        在程序開始運行之后,首先是對8155進行初始化,之后判斷信號頻率值,如符合所需的頻率,則重置時間常數,并通過顯示器顯示出來,不符則返回。在中斷結 束后,還要來判斷波形是否符合,如符合,則顯示其頻率,不符則返回,重新判斷。下圖為各波形子程序的流程圖。如圖所示,在中斷服務子程序開始后,通過判斷 來確定各種波形的輸出,當判斷選擇的不是方波后,則轉向對正弦波的判斷,如此反復。如果選擇的是方波,則用查表的方法求出相應的數據,并通過D/A轉換器 將數據轉換成模擬信號,形成所需波形信號。

        程序運行流程圖

        3.3數字萬用表

        3.3.1數字萬用表簡介

        特點: 分辨力強、準確度高(±0.5%~ ± 0.03%) 測試功能完善、測量速率快、顯示直觀、耗電省、過載能力強、便于攜帶。

        測量參數:DCV:直流電壓、ACV:交流電壓、DCA:直流電流、R:電阻、UF:二極管的正向導通電壓、hFE:三極管放大倍數

        3.3.2原理圖

        3.3.3功能電路

        1、功能量程的選擇:通過操作界面選擇萬用表模式,并選擇相應的檔位和量程。

        參數轉換電路:

        ICL7106:三位半LCD/LED顯示A/D轉換器.

        AD轉換原理

        從上式可知:被測電壓只與基準電壓及計數值有關,而這兩者的準確度都可以做得較高,所以數字萬用表的測量準確度較高

        測量 DCV、 ACV、 DCA、 hFE時UREF=100mV,測量二極管正向壓降時UREF=1V

        測量R時,UREF不一定為100mV

        5LCD顯示 在液晶屏幕上顯示出所測參數的物理量

        6、直流電流轉換電路(I→〈200mV電壓)

        以200mA檔為例

        UIN = 1Ω ×100mA= = 100mV

        7、直流電壓轉換電路

        8、交流電壓轉換電路(以200V檔為例)

        9、電阻轉換電路(以20k擋為例)

        若RX= RREF則N2=1000,把小數點點在百位即可

        10、二極管正負極測量電路

        11、 三極管放大倍數測量

        Ic=βIb ——> 200mV直流電壓——> A/D轉換

        3.4 LCD觸摸屏

        3.4.1 LCD觸摸屏參數

        1. 顯示屏幕尺寸 2.8inch

        2. 屏幕點陣 240 * 320

        3. 屏幕色彩 65K色

        4. 接口標準 intel80(D0-D15,ADDR0,nWR,nRD,nCS,)接口,支持MCU51(74F373擴展),ARM

        5. 驅動IC:HX8347

        6. 工作電壓2.5~3.6,背光電流80mA

        7. 可以支持2.8inch可視面積,3.0inch手寫觸摸膜

        8. 屏幕尺寸 50(W) * 69.2(H) * 4.0(T) 帶觸摸膜

        3.4.2 觸摸屏實現功能

        我們采用的液晶屏主要用于顯示功能,其次,該液晶屏還帶觸摸功能,還可以作為輸入,對系統進行控制。

        3.4.3 硬件實現

        由于該液晶屏已經自帶轉接線,只要從主控芯片把引腳擴展出來,另外再為液晶屏搭個驅動電路驅動液晶屏,便可以對液晶屏進行控制了。(具體硬件電路需等官方提供了開發套件之后方好確定下來)

        3.4.4 軟件部分

        液晶屏主要是用來顯示示波器的輸出,同時作為輸入對示波器進行各項功能的選擇,故我們把顯示屏軟體部分分成了兩個部分:一是輸出的顯示,二是輸入的檢測

        輸出的顯示根據示波器所處的模式,顯示相應的輸出,如果示波器處于波形檢測模式,則在輸出屏幕上顯示檢測到的波形;如果示波器處于萬用表工作模式下,則輸出屏幕上顯示測到的電壓,電流,電阻等物理量的數值。

        輸入檢測:由于該液晶屏帶觸摸功能,故可以把輸入按鍵放到液晶屏上,實現觸摸按鍵功能。

        下圖是多功能示波器的初步界面設計方案:(以下設計僅為初步設想,最終界面需根據具體功能進一步改善)

        (多功能示波器界面圖)

        3.5太陽能充電器

        為了綠色環保,我們將使用太陽能來提供所需的能源。

        6V200MA 太陽能電池板

        儀器使用2節5號充電電池供電。

        充電器功能:

        1、給充電電池充電;

        2、給手機充電;

        3、充電完成自動斷電,避免過沖。

        充電器輸出電壓:5V或1.2V

        充電器輸出電流:350mA

        3.6 SD外部存儲

        3.6.1 外部存儲簡介

        由 于示波器是一種精密的測量儀器,數據量比較大,很多時候用戶不僅需要實時地觀測數據,事后還需要對數據進行處理和分析,這就要求要有一個較大的數據存儲空 間,由于單片機自帶的ROM一般不會太大,而且很不方便與PC機進行數據傳輸,因而我們決定采用外部SD卡對數據進行存儲。

        3.6.2 SD外部存儲原理

        SD 有兩種操作模式:SD 卡模式,SPI 模式。SD 卡模式不介紹。一般用SPI 模式操作。我們這里采用SPI模式對SD卡進行存取數據。

        在SPI模式下,用單片機的4個控制I/O口分別模擬MOSI、MISO、CS、CLK即可實現數據的存取,電路簡單,如下圖所示:

        SD卡原理圖

        3.6.3 SD卡驅動

        通用驅動為:

        (1)初始化SPI接口,使用低速模式

        (2)延時至少74clock

        (3)發送CMD0,需要返回0x01,進入Idle 狀態

        (4)循環發送CMD55+ACMD41,直到返回0x00,進入Ready 狀態

        (5)設置讀寫block 大小為512byte

        (6)把SPI 設置為高速模式

        3.6.4 軟件程序

        下面為SD卡存取數據需要用到的主要幾個函數

        void SPI_Init(void){…}

        void SPI_Send_Byte(byte Data){…}

        void SPI_Receive_Byte(byte Data){…}



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兴安盟| 菏泽市| 南投市| 武陟县| 安泽县| 桑植县| 绥芬河市| 西充县| 庄河市| 余姚市| 祁门县| 焦作市| 新建县| 奉贤区| 行唐县| 和田市| 屯昌县| 寿宁县| 通化市| 施甸县| 唐河县| 乌拉特中旗| 深圳市| 溧水县| 双柏县| 松原市| 英山县| 高阳县| 舒城县| 仁布县| 扎鲁特旗| 双峰县| 和硕县| 利辛县| 青州市| 桐柏县| 定陶县| 蓬莱市| 日照市| 乐安县| 富锦市|