目 錄
摘要…………………………………………………………………………………………
ABSTRACT…………………………………………………………………………………
1 緒論…………………………………………………………………………………………
1.1 選題的意義…………………………………………………………………………
1.2 研究現狀與發展趨勢……………………………………………………………
2波形采集存儲與回放系統的設計原理與功能……………………………………………
2.1 波形采集存儲與回放系統的設計原理……………………………………………
2.2 波形采集存儲與回放系統的功能…………………………………………………
2.3 總體開發計劃和課題所達到的功能目標和技術指標……………………………
2.3.1 達到的功能目標…………………………………………………………
2.3.2 技術指標……………………………………………………………………
2.4 本章小結……………………………………………………………………………
3 方案論證選擇與硬件設計…………………………………………………………………
3.1 采樣方式選擇………………………………………………………………………
3.2 A/D與D/A轉換選擇………………………………………………………………
3.3 觸發方式選擇………………………………………………………………………
3.4 輸入模塊……………………………………………………………………………
3.4.1 A路輸入電路…………………………………………………………………
3.4.2 B路輸入………………………………………………………………………
3.5 A/D轉換器…………………………………………………………………………
3.5.1 ADC0809引腳圖以及接口…………………………………………………
3.5.2 ADC0809使用要求及應用說明……………………………………………
3.6 主控模塊……………………………………………………………………………
3.6.1 AT89S52芯片主要特點及性能………………………………………………
3.6.2 AT89S52芯片的最小電路系統以及接口……………………………………
3.7 D/A轉換器…………………………………………………………………………
3.7.1 DAC0832的引腳圖以及接口………………………………………………
3.7.2 DAC0832的工作方式………………………………………………………
3.7.3 實現D/A轉換時,主要涉及的參數………………………………………
3.8 輸出模塊…………………………………………………………………………
3.9 顯示模塊…………………………………………………………………………
3.10 存儲模塊…………………………………………………………………………
3.11 本章小結…………………………………………………………………………
4 軟件設計…………………………………………………………………………………
4.1 軟件設計目標……………………………………………………………………
4.2 Keil2簡介…………………………………………………………………………
4.3 軟件功能模塊分類………………………………………………………………
4.3.1 主程序流程…………………………………………………………………
4.3.2 LCD子程序流程……………………………………………………………
4.3.3 按鍵處理子程序流程………………………………………………………
4.3.4 回放子程序流程……………………………………………………………
4.3.5 采集并存儲子程序流程……………………………………………………
4.3.6 存儲處理子程序流程………………………………………………………
4.4 本章小結…………………………………………………………………………
5 系統測試及結果分析……………………………………………………………………
5.1 測試使用儀器與設備……………………………………………………………
5.2 測試方案與測試結果……………………………………………………………
5.2.1 測試方法……………………………………………………………………
5.2.2 測試結果與分析……………………………………………………………
5.2.3 誤差產生原因………………………………………………………………
5.3 設計和調試中遇到的問題………………………………………………………
6 小結……………………………………………………………………………………
致謝…………………………………………………………………………………………
參考文獻……………………………………………………………………………………
附錄…………………………………………………………………………………………
附錄Ⅰ AT89S52與LCD1602的接口程序…………………………………………………
附錄Ⅱ AT89S52與ADC0809的連接程序…………………………………………………
1
波形的采集存儲與回放系統
1 緒論
1.1 選題的意義電子信息技術的迅猛發展,現代航空、雷達、衛星、醫療等眾多領域常常需要對波形進行采集、存儲和回放,波形信號的采集、存儲在信息技術行業應用的越來越廣泛。從常規的波形發生器、波形顯示器到現在的數碼管顯示液晶等都有了本質性的變化。從以前的模擬信號到現在越來越應用廣泛的數字信號,無處不顯示電子信息技術的快速發展。所以在波形采集存儲方面也應用了更為穩定和方便的數字信號直接進入液晶顯示器的顯示。眾所周知,近幾十年以來,對于高速、海量數據的采集、存儲和回放一般都是采用FPGA或者是DSP來處理的。然而FPGA和DSP技術來處理這些數據所需要的功耗是一個很大的麻煩。 然而現在的產品對于功耗的要求越來越苛刻。人們對于產品有兩個顯著的要求,第一:功耗低,耐持久。第二:便攜,最好能隨身攜帶。從而在設計本系統時,基于數字存儲示波器的原理,以單片機AT89S52為控制核心通過高速AD對信號的實時采樣。
數據采集系統,一般是由單片機為核心及其一些外圍芯片構成的數據采集系統。單片機具有體積小、功耗低、成本低、可靠性高、靈活方便、價廉以及控制功能強特點而得到廣泛的應用。基本組成如圖1-1所示。
圖1-1 數據采集系統的組成
采集系統硬件主要包括傳感器、A/D轉換器、單片機、輸入/輸出接口電路等。由單片機作為控制單元的數據采集系統的工作過程可分為以下幾個步驟:數據采集是將被測量的信號轉換為能夠被單片機所識別的信號并輸入給單片機;數據處理是由單片機執行以測試為目的的算法程序后,得到與被測參數對應的測量值或形成相應的決策與判斷;數據輸出是將處理結果送給輸出設備,進行顯示、儲存等操作。
1.2 研究現狀與發展趨勢隨著計算機的產生與發展,電子信息技術也發展的越來越快。為了便于人們更快捷的運算,便有了數字系統。如今數字系統也被應用到國民經濟、國防建設和科學試驗的各個領域。但是數字系統只能處理離散的數字信號,外部世界提供給我們的卻是大量的模擬信號,我們就需要把這些模擬信號轉換為便于處理和儲存的數字信號。作為信息科學的一個重要分支,數據的采集技術應運而生。將模擬信號轉換成數字信號或者直接來自傳感器的其他數字信號送往計算機,并進一步予以處理、顯示、傳輸與記錄的過程就成為數據采集。
目前國內外,在許多應用場合,人們需要高速數據采集系統,甚至超高速系統。目前就采集系統的研究有很多種。從計算機并口采集到串口采集,從基于ISA總線的采集系統到基于PCI總線的采集系統,從聲音信號的采集到圖像數據的采集都有以下相關的資料和文獻。并且在設計方面也有不同的設計方法,取得了很大的成就。
以后不論是什么,都要朝著簡便、快速的方向發展,波形的采集、存儲與回放系統也一樣,要越來越簡便,讓別人可以很明確的知道系統的作用、組成等一些只是,而且系統也要功耗低,耐持久,這也就要求本系統里面的元器件更加精煉,對元器件的要求也會增加,將要找到更合適的元器件來代替之前所用的元器件。以后發展的趨勢會是將系統如何的簡化,而且可以實現更多的功能。
2波形采集存儲與回放系統的設計原理與功能
2.1 波形采集存儲與回放系統的設計原理在本設計系統中,將采用一種基于AT89S52單片機的兩路數據采集系統的設計方案,以實現實時數據數據采集會存儲回放的功能。系統的總體結構圖如圖所示:
圖2-1 總體結構圖
2.2 波形采集存儲與回放系統的功能各模塊的功能如下:
A/D轉換器:將電信號(模擬信號)轉換為數字信號。
D/A轉換器:將數字信號轉換成模擬信號輸出。
A路輸入模塊:采集單極性模擬信號并進行處理,然后輸入到轉換器中,進行模數的轉化。
B路輸入模塊:采集雙極性模擬信號并進行處理,然后輸入到轉換器中,進行模數的轉化。
液晶顯示模塊:顯示所采集的信號的電壓,幅度等數值。
2.3 總體開發計劃和課題所達到的功能目標和技術指標2.3.1 達到的功能目標(a)能完成對A通道單極性信號(高電平約4V、低電平接近0V)、頻率約1kHz信號的采集、存儲與連續回放。要求系統輸入阻抗不小于
,輸出阻抗不大于
。
(b)采集、回放時能測量并顯示信號的高電平、低電平和信號的周期。原信號與回放信號電平之差的絕對值
,周期之差的絕對值
。
(c)本系統處理的正弦波信號頻率范圍限定在10Hz~10kHz,三角波信號頻率范圍限定在10Hz ~2kHz,方波信號頻率范圍限定在10Hz~1kHz。
(d)預留電源電流的測試點。
(e)采集與回放時采用示波器監視。
(f)采集、回放時顯示的周期和幅度應是信號的實際測量值,規定采用十進制數字顯示,周期以“ms”為單位,幅度以“V”為單位。
2.3.2 技術指標(a)A/D位數選擇依據
通用示波器垂直方向共8格,要求每格32級,共有
級。
(1-1)
因此采用8位A/D以上的即可。
(b)采用頻率選擇依據
假設掃描速度為t s/div,每格點數為n,采樣頻率為
,則:
(1-2)
當n=20時,針對不同的掃描速度,可得到不同的采樣頻率。在一定的情況下,掃描速度的改變是通過改變采樣頻率實現的。對于10KHz的正弦波,采樣頻率為1MHz時,每周期可采樣100個點,由采樣值可以很好地恢復采樣前的信號。因而,選用采樣頻率為1MHz以上的A/D即可滿足單路輸入時對頻率范圍的要求。若考慮到雙路輸入的情況,所需A/D最高采樣頻率應為2MHz。因而,應選擇采樣頻率為2MHz以下的A/D。
(c)波形回放頻率選擇依據
顯示屏上顯示的信號是從存儲器中讀出的信號,只要使觀察到的波形不閃爍即可。本設計中,單通道時刷新頻率為200Hz;雙蹤示波時,每通道刷新頻率為100HZ。通過計算,每秒讀出的點數為
。即RAM讀出頻率為40KHz,要求D/A轉換速率高于40KHz。
2.4 本章小結本章主要是研究了波形采集存儲與回放系統的大概設計原理與各個部分模塊的作用,說明了本設計所要求達到的目標以及為了達到目標所要的技術指標對整個系統有了一定的了解,并且為以后的著手設計提供了方便之處。
3 方案論證選擇與硬件設計
3.1 采樣方式選擇模擬信號數字化方式很多,不同的方法有不同的應用,采用方式對信號的影響最大。通常采用的方案有:
方案一:等效時間采樣法。采用中高速模數轉換器,對于頻率較高的周期性信號采用等效時間采樣的方法,即對每個周期僅采樣一個點,經過若干個周期后就可對信號各個部分采樣一遍。而這些點可以借助步進延遲方法均勻地分布于信號波形的不同位置。其中步進延遲是每一次采樣比上一次樣點的位置延遲
時間。只要精確控制從觸發獲得采樣的時間延遲,就能夠準確地恢復出原始信號。
方案二:實時采樣。實時采樣是在信號存在期間對其采樣。根據采樣定理,采用速率必須高于信號最高頻率分量的兩倍。對于周期的正弦信號,一個周期內應該大于兩個采樣點。為了不失真的恢復原被測信號,獲得比較好的信號,根據實踐經驗。一個信號周期內對信號取23個點進行采樣。
等效時間采樣雖然可以對很高頻率的信號進行采樣,可是步進延遲的采樣技術與電路較為復雜。再者,它只限于處理周期信號,而且對單次觸發采樣無能為力。實時采樣可以實現整個頻段的全速采樣,因此設計采用實時采樣。
3.2 A/D與D/A轉換選擇方案一:采用ADC0809的8位單斷模擬輸入信號中的一個進行A/D轉換,允許8路模擬量分時輸入,共用一個A/D轉換器進行轉換,可以進行多數據采集。而地址鎖存與譯碼電路完成對A、B、C三個地址位進行鎖存和譯碼,轉換結果通過三態輸出鎖存器存放、輸出。
方案二:PCF8591是具有IIC接口,有AIN0~AIN3四個模擬輸入通道和一個模擬輸出通道,最多可以有8片8591連接到I2C總線。通過時鐘線SCL和數據線SDA與單片機之間的數據進行傳輸。
經比較,我們選擇方案一。
3.3 觸發方式選擇要使屏幕上顯示穩定的波形,則需將被測信號本身或者與被測信號有一定時間關系的觸發信號加到觸發電路。觸發源選擇確定觸發信號由何處供給。通常有三種觸發源:內觸發(INT)、電源觸發(LINE)、外觸發(EXT)。題目要求選擇內觸發,即使用被測信號作為觸發信號。
方案一:采用數字觸發方式。對波形信號進行采集,將采集到的波形數據和觸發電平(可由鍵盤設置)進行比較,找到波形在上升過程中大于或等于該觸發電平的點,即得到觸發,此時開始對波形進行存儲。因為本來就需要對波形信號進行采集,使用這種方法無需要增加額外的硬件電路,實現方便。但是,對波形每個周期只采集有限個點,不可能每次都能采集到等于觸發電平的點(這時不得不以大于該電平的值為觸發電平),從而使觸發位置不穩定,連續觸發時輸出波形會有抖動現象。
方案二:采用模擬觸發方式。通過比較器LM324測波形信號和觸發電平進行比較,大于觸發電平時輸出為高電平,小于觸發電平時則輸出低電平,即可得到信號被整形后的脈沖序列,再在該脈沖序列的上升沿開始存儲波形即實現了觸發存儲的功能。這種觸發方式穩定,故我們采用了這種方案。
3.4 輸入模塊輸入電路主要由比較電路和放大電路組成,主要完成對波形的采集、放大。
3.4.1 A路輸入電路A路輸入:系統要求A路輸入信號為單極性(0~4V),采集后在ADC0809中進行模數的轉換,計算出相應的真正輸入值,從而顯示A路的最大值和最小值。最后輸出送入單片機里面進行采樣。
圖3-1 A路輸入電路圖
3.4.2 B路輸入系統要求B路輸入信號為雙極性,因此需要將電壓放大至A/D轉換器所能判別的范圍內,這樣可以提高系統對B路信號的分辨率,同時需要將輸入雙極性信號轉換為單極性信號,這樣才能便于AD轉換器識辨。
圖3-2 B路輸入電路圖
3.5 A/D轉換器3.5.1 ADC0809引腳圖以及接口本系統采用ADC0809作為模數轉換器。ADC0809引腳圖如下:
圖3-3 ADC0809引腳圖與元件圖
D7-D0:8位數字量輸出引腳;IN0-IN7:8位模擬量輸入引腳;VCC:+5V工作電壓;GND:地;REF(+):參考電壓正端;REF(—):參考電壓負端,兩種信號用于啟動A/D轉換;START:A/D轉換啟動信號輸入端;ALE:地址鎖存允許信號輸入端;EOC:轉換結束信號輸出引腳,開始轉換時為低電平,當轉換結束時為高電平;OE:輸出允許控制端,用以打開三態數據輸出鎖存器;CLK:時鐘信號輸入端(一般為500KHz);A、B、C:地址輸入線。
3.5.2 ADC0809使用要求及應用說明ADC0809對輸入模擬量要求:信號單極性,電壓范圍是0-5V,若信號太小,必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。
應用說明如下:
(a)ADC0809內部帶有輸出鎖存器,可以與AT89S52單片機直接相連。
(b)初始化時,使ST和OE信號全為低電平。
(c)送要轉換的哪一通道的地址到A,B,C端口上。
(d)在ST端給出一個至少有100ms寬的正脈沖信號。
(e)是否轉換完畢,我們根據EOC信號來判斷。
(f)當EOC變為高電平時,這時給OE為高電平,轉換的數據就輸出給單片機了。地址輸入和控制線:4條。ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與譯碼器將A,B,C三條地址線的地址信號進行鎖存,經譯碼后被選中的通道的模擬量進入轉換器進行轉換。A,B和C為地址輸入線,用于選通IN0-IN7上的一路模擬量輸入。
(g)ST為轉換啟動信號。當ST上跳沿時,所有內部寄存器清零;下跳沿時,開始進行A/D轉換;在轉換期間,ST應保持低電平。EOC為轉換結束信號。當EOC為高電平時,表明轉換結束;否則,表明正在進行A/D轉換。OE為輸出允許信號,用于控制三條輸出鎖存器向單片機輸出轉換得到的數據。OE=1,輸出轉換得到的數據;OE=0,輸出數據線呈高阻狀態。D7-D0為數字量輸出線。
(h)CLK為時鐘輸入信號線。因ADC0809的內部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為500KHz。
3.6 主控模塊3.6.1 AT89S52芯片主要特點及性能AT89S52是一種帶8K字節Flash可編程可擦除只讀存儲器(EPROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。AT89S52是一種帶2K字節閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89S52是一種高效微控制器,AT89S52是它的一種精簡版本。AT89S52單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。
與MCS-51兼容,8K字節可編程閃爍存儲器,壽命:1000寫/擦循環,數據保留時間:10年,全靜態工作:0Hz-33Hz,三級程序存儲器鎖定,128*8位內部RAM,32可編程I/O線,三個16位定時器/計數器,八個中斷源,可編程串行通道,低功耗的閑置和掉電模式,掉電后中斷可喚醒,看門狗定時器,片內振蕩器和時鐘電路。
3.6.2 AT89S52芯片的最小電路系統以及接口圖3-4 AT89S52最小系統
VCC:供電電壓。
GND:接地。
P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。
P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。
P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。
P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。
P3口也可作為AT89S52的一些特殊功能口,如下表所示:
P3.0 RXD(串行輸入口);P3.1 TXD(串行輸出口);P3.2 /INT0(外部中斷0);P3.3 /INT1(外部中斷1);P3.4 T0(記時器0外部輸入);P3.5 T1(記時器1外部輸入);P3.6 /WR(外部數據存儲器寫選通);P3.7 /RD(外部數據存儲器讀選通);P3口同時為閃爍編程和編程校驗接收一些控制信號。
RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。
PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。
EA/VPP:當EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,EA將內部鎖定為RESET;當EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。
XTAL1:反相振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。
3.7 D/A轉換器3.7.1 DAC0832的引腳圖以及接口本系統采用DAC0832作為模數轉換器。DAC0832引腳圖如圖3-5。
圖3-5 DAC0832的引腳圖與元件圖
D0~D7:數字信號輸入端;ILE:輸入寄存器允許,高電平有效;CS:片選信號,低電平有效;WR1:寫信號1,低電平有效;XFER:傳送控制信號,低電平有效;WR2:寫信號2,低電平有效;IOUT1、IOUT2:DAC電流輸出端;Rfb:是集成在片內的外接運放的反饋電阻;Vref:基準電壓(-10~10V);Vcc:是源電壓(+5~+15V);AGND:模擬地;NGND:數字地,可與AGND接在一起使用。
DAC0832輸出的是電流,一般要求輸出是電壓,所以還必須經過一個外接的運算放大器轉換成電壓。
3.7.2 DAC0832的工作方式第一種方法是使輸入寄存器工作在鎖存狀態,而DAC寄存器工作在直通狀態。具體地說,就是使
和
都為低電平,DAC寄存器的鎖存選通端得不到有效電平而直通;此外,使輸入寄存器的控制信號ILE處于高電平、
處于低電平,這樣,當
端來一個負脈沖時,就可以完成1次轉換。
第二種方法是使輸入寄存器工作在直通狀態,而DAC寄存器工作在鎖存狀態。就是使和
為低電平,ILE為高電平,這樣,輸入寄存器的鎖存選通信號處于無效狀態而直通;當和端輸入1個負脈沖時,使得DAC寄存器工作在鎖存狀態,提供鎖存數據進行轉換。
根據上述對DAC0832的輸入寄存器和DAC寄存器不同的控制方法,DAC0832有如下3種工作方式:
(a)單緩沖方式。單緩沖方式是控制輸入寄存器和DAC寄存器同時接收資料,或者只用輸入寄存器而把DAC寄存器接成直通方式。此方式適用只有一路模擬量輸出或幾路模擬量異步輸出的情形。
(b)雙緩沖方式。雙緩沖方式是先使輸入寄存器接收資料,再控制輸入寄存器的輸出資料到DAC寄存器,即分兩次鎖存輸入資料。此方式適用于多個D/A轉換同步輸出的情節。
(c)直通方式。直通方式是資料不經兩級鎖存器鎖存,即,,,均接地,ILE接高電平。此方式適用于連續反饋控制線路,不過在使用時,必須通過另加I/O接口與CPU連接,以匹配CPU與D/A轉換。
3.7.3 實現D/A轉換時,主要涉及的參數(a)分辨率。分辨率是指最小輸出電壓(對應于輸入數字量最低位增1所引起的輸出電壓增量)和最大輸出電壓(對應于輸入數字量所有有效位全為1時的輸出電壓)之比。
(b)轉換精度。如果不考慮D/A轉換的誤差,DAC轉換精度就是分辨率的大小,因此,要獲得高精度的D/A轉換結果,首先要選擇有足夠高分辨率的DAC。
(c)非線性誤差。D/A轉換器的非線性誤差定義為實際轉換特性曲線與理想特性曲線之間的最大偏差,并以該偏差相對于滿量程的百分數度量。轉換器電路設計一般要求非線性誤差不大于±1/2LSB。
(d)轉換速率/建立時間。轉換速率實際是由建立時間來反映的。建立時間是指數字量為滿刻度值(各位全為1)時,DAC的模擬輸出電壓達到某個規定值(比如,90%滿量程或±1/2LSB滿量程)時所需要的時間。
3.8 輸出模塊圖3-6 輸出電路圖
LM324的5管腳與DAC0832的(IOUT2)12管腳相連,LM324的6管腳與DAC0832的(IOUT1)11管腳相連,LM324的7管腳與DAC0832的REF(9)管腳相連.
第一級運算放大器的作用是將DAC0832輸出的電流信號轉化為電壓信號V1,第二級運算放大器的作用是將V1通過反向放大電路放大(R2/R1)倍。
3.9 顯示模塊圖3-7 LCD1602電路圖
顯示采用的是LCD1602液晶顯示屏,LCD1602是工業字符型液晶,能夠同時顯示16x02即32個字符。1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。
1602LCD是指顯示的內容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數字)。
3.10 存儲模塊存儲模塊使用AT24C02存儲數據。AT24C02的最小系統如圖3-8,芯片的5、6口分別與單片機的P06、P05接口相連,以便達到數據的存儲功能。
圖3-8 AT24C02最小系統
3.11 本章小結本章在前一章討論分析本系統所要求達到的技術指標熟悉模塊的基礎上,介紹了系統的硬件方面的知識,有不同的模塊的功能以及它們各自的電路圖、引腳圖,然后著手的是硬件的設計以及電路的連接問題,和電路的處理問題。
4 軟件設計
4.1 軟件設計目標最終能實現同時采集兩路周期信號波形,要求系統斷電恢復后,能連續回放已采集的信號,顯示在LCD上。(a)按K1按鍵,依次進入回放已采集的信號狀態。(b)按下回放鍵后,該系統將采樣波形進行循環回放(重現);(c)在采集時可改變幅值,并且采集到的數據也會同時在回放的時候變化;(d)在回放時,若按下回放鍵,將停止波形的回放;若按下采集鍵,將終止當前波形的回放,并采集新的波形。
本程序的程序流程圖如下所示:
圖4-1 程序總體流程圖
最終目標是實現同時能夠采集兩路周期信號波形,當系統斷電恢復后,能連續回放已采集的信號,并且顯示在示波器上。
(a)按按鍵,進入采集信號狀態。
(b)按下回放鍵后,該系統將所采樣波形進行循環回放;
(c)在采集時可改變幅值和頻率,并且采集到的數據也會同時在回放的時候變化;
(d)在回放時,若按下存儲鍵,將停止當前波形的回放并且示波器上顯示直線,若按下回放鍵,即采集到新的波形。
(e)能夠實現方波、三角波以及正弦波的采集和回放。
模擬信號通過信號調理模塊(阻抗變換、固定衰減/放大、觸發電路)將模擬信號的幅值大小調理到高速AD的輸入范圍0~3.3V。同時,兩路信號經比較器得到方波,送處理器AT89S52進行測頻。處理器測得輸入信號頻率后控制內部AD以輸入信號頻率的80倍速率采樣。在AT89S52內部增加波形存儲控制模塊,當滿足觸發條件時ARM對AD轉換得到的數據進行存儲。
首先,“開始”部分是將程序內容進行初始化,設定需采集數據的存儲首地址。
“采集存儲”部分啟動對輸入信號的A/D轉換、執行延時程序等待轉換結束、取回轉換結果并存儲和存儲器地址加1,為下次存儲做準備等程序。
其次,判斷是否有觸發。該課題設計采用單次觸發方式,即可以按下設定的功能鍵,在滿足觸發條件后,進行一次采集存儲。
最后,通過設定初始地址,連續輸出存儲的數據,顯示存儲的波形。
4.2 Keil2簡介Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(UVISION)將這些組合在一起。
Keil有以下幾個特點:
(a)全功能的源代碼編輯器。
(b)器件庫用來配置開發工具設置。
(c)項目管理器用來創建和維護用戶的項目。
(d)集成的MAKE工具可以匯編、編譯和連接用戶嵌入式應用。
(e)所有開發工具的設置都是對話框形式的。
(f)真正的源代碼級的對CPU和外圍器件的調試器。
(g)高級GDI(AGDI)接口用來在目標硬件上進行軟件調試以及和Monitor-51進行通信。
4.3 軟件功能模塊分類4.3.1 主程序流程主程序循環調用的主要程序有:LCD顯示子程序、按鍵處理、周期處理、幅度處理、二進制到ASCII碼轉換、Flash存儲等程序,當端口上電時,轉入相應功能程序。
圖4-2 主程序流程圖
系統開始工作的時候,整個系統就開始初始化,包括液晶還有A/D、D/A轉換器,都會進行初始化,然后系統會開始按鍵掃描,當我們按下采集按鍵的時候,會掃描到按鍵的電平發生改變,之后就會進行采集處理,當采集完成后,會產生一個EOC有效信號,之后則會對采集好的波形進行存儲,但是如果沒有得到有效的EOC信號,則會繼續采集。然后系統繼續掃描按鍵,當掃描到回放按鍵有電平變化的時候就會進行回放的處理,沒有回放則會繼續進行采集。
4.3.2 LCD子程序流程圖4-3 LCD應用的流程圖
4.3.3 按鍵處理子程序流程按鍵子程序:定義IOB4、IOB6分別為通道的采集按鍵與回放按鍵;IOB5為選擇通道按鍵。
圖4-4 按鍵應用流程圖
4.3.4 回放子程序流程圖4-5 回放子程序流程圖
首先系統會分別為A、B兩通道設置數據指針,初始的數據個數為0,當A通道進行波形的采集的時候,則會讀取數據,然后送到DA1中,這樣數據個數加1,不斷的累計,知道檢測到輸出的數據滿1024的時候會回放采集波形。
4.3.5 采集并存儲子程序流程圖4-6 采集并存儲子程序流程
對于采集的部分,系統首先判斷出是A通道還是B通道進行的采集,之后再選擇不同的通道設置DPTR,如果有信號的出入,則啟動A/D轉換器,在AD轉換結束的時候會產生一個狀態信號,系統這時檢測如果發現EOC有效,會讀取AD轉換數據,精心存儲,反之如果沒有檢測到有效的EOC信號,則會繼續進行采集命令,知道可以達到存儲條件為止。
4.3.6 存儲處理子程序流程圖4-5 存儲處理應用流程圖
4.4 本章小結本章分別介紹了系統的軟件方面的設計,分為不同的模塊設計,也是整個系統看起來比較易懂。如果出現問題的話,也可以在相應的模塊上去發現問題。
5 系統測試及結果分析
5.1 測試使用儀器與設備表5-1 測試儀器
5.2 測試方案與測試結果5.2.1 測試方法連接各部分電路,分別對A、B通道進行設計要求的測試。
5.2.2 測試結果與分析(1)輸入、輸出阻抗:通過在輸入、輸出口并上相應電阻觀看回放出來的波形幅度變化,從而得出答案輸入、輸出阻抗分別小于
、
電阻,滿足題目要求。
(2)A通道輸出電壓、頻率有效值測量:從A輸入端輸入單極性0~4V、10Hz~10kHz正弦波,經采樣、儲存再斷電后再上電回放的測試數據如表5-2,測量數據結果顯示基本上滿足了設計要求。
表5-2 正弦波測試數據
(3)B通道輸出電壓、頻率有效值測量:從B輸入端輸入雙極性、電壓峰峰值為
、頻率為10Hz~10kHz正弦波,經采樣、儲存再斷電后再上電回放的測試數據如表5-3所示,測量數據結果顯示基本上滿足了設計要求。
表5-3 正弦波測試數據
(4)A通道輸出電壓、頻率有效值測量:從A輸入端輸入單極性0~4V、10Hz~2kHz三角波,經采樣、儲存再斷電后再上電回放的測試數據如表5-4所示,測量數據結果顯示基本上滿足了設計要求。
表5-4 三角波測試數據
(5)B通道輸出電壓、頻率有效值測量:從B輸入端輸入雙極性、電壓峰峰值為
、頻率為10Hz~2kHz三角波,經采樣、儲存再斷電后再上電回放的測試數據如表5-5所示,測量數據結果顯示基本上滿足了設計要求。
表5-5 三角波測試數據
(6) A通道輸出電壓、頻率有效值測量:從A輸入端輸入單極性0~4V、10Hz ~1kHz方波,經采樣、儲存再斷電后再上電回放的測試數據如表5-6所示,測量數據結果顯示基本上滿足了設計要求。
表5-6 方波測試數據
(7)從B輸入端輸入雙極性、電壓峰峰值為、頻率為10Hz ~1kHz方波,
表5-7 方波測試數據
經采樣、儲存再斷電后再上電回放的測試數據如表5-7所示,測量數據結果顯示基本上滿足了設計要求。
(8)用萬用表對系統功耗進行測試,現在待測點測出電壓,再串入測的電流由
的系統功耗大于
,沒有滿足設計要求。
5.2.3 誤差產生原因我們測量的誤差主要來源是程序設計上,由于能力有限,設計程序時計算的精度還不很高而導致。而功耗沒有滿足設計要求是因為輸入和輸出電路采用了較多的分離原件,我們是已犧牲功耗這一項而使的整個系統電路簡單。
還有就是在焊電路板的時候,在排線的問題是上有比較大的問題。把元器件的引腳都焊的比較近,所以可能在整個電路上有些問題。
5.3 設計和調試中遇到的問題整個系統在程序設計和調試中遇到的問題比較多,需要一一考慮清楚,采用合理的方法解決。本系統為波形采集、存儲與回放系統,程序上需要考慮怎樣把輸入進來的的模擬信號進行采集轉換成數字信號后存儲起來,后又將數字信號轉換成模擬信號回放出來的問題,這是最主要的;模擬設計就是輸入、輸出電路的設計,輸入電路要求單極性A通道輸入的4V電壓和雙極性B通道輸入的峰值都轉換成約2V再輸入到主控電路里進行A/D轉換、采集、存儲、D/A轉換,D/A轉換后從主控電路輸出再由輸出電路進行放大實現回放輸出采集進來的信號。由于采用的是AT89S52單片機,所以還要采用外部的A/D和D/A轉化器,以及AT24C02的存儲器,這樣的話使得外圍電路比較復雜,還是花了很多時間,最終在老師的指導及同組人共同努力下基本通過調試設計,把最難的程序設計完成了。
但是在設計的過程中還是有不少的問題,比如說電路的設計、單雙極性的轉換、以及在編程方面還是存在著很多毛病。
6 小 結
經過測試,系統采集不同種類不同范圍的波形,經系統斷電恢復后的回放波形與實際的有一點點差距,正弦波差距隨著頻率的增加差距較為明顯。這主要是程序算法不夠精確。
本人在這里只是實現了波形采集、存儲與回放系統的初步設計,它還可以進行功能的擴展,在已經完成的基礎上,提高系統的智能性,使得適用本系統能采集、存儲與回放頻率更高及更準確的任意波形。
下面我將對自己在畢業設計過程中一些印象深刻的東西做些簡單的闡述。
(1)分析題目確定設計方案。在分析題目的過程中一定要多查資料多聽取老師同學的意見,盡量站在別人的肩膀上少走彎路。對所選的題目也大概有了一些了解,下一步就是在這樣一個基礎上,綜合已有的資料來更透徹的分析題目。分析一下題目屬于哪種類型,因為題目類型一般情況下分為兩大類:一類是研究型的,即只是理論上的設想和創新,目前幾乎沒有人研究出可以實用的東西,另一類是應用型的,即可以編寫出程序源代碼的,能夠做出實際的、具體實現的東西,這在各個領域是很有前途的,這類題目也比較多。我的畢業設計的題目就屬于后一種了。題目類型確定后,就要仔細研究這個題目在哪些方面是還沒有完全發揮潛力的,然后確定一個具體的方向,那么就可以動工了。
(2)查閱資料。上網查資料是必不可少的,目前各大搜索引擎都推出有自己特色的搜索服務,一定要找到適合自己的東西。好的開端就相當于成功了一半,因此資料是否全面、是否可靠,關系到整個畢業設計的進程。資料的查找方式有很多種,網上的信息包羅萬象,可以通過各個搜索引擎進行搜索,還有老師介紹的專門的論文期刊網,搜索時通過某個關鍵字段或幾個關鍵字進行搜索,搜索出許多站點然后進行篩選和查詢,關鍵字段的確定很重要,選錯了自然白白浪費了時間。我一開始的時候就開始鉆牛角尖,吃了很大的虧。搜索了很長時間,也沒什么進展,感到非常迷茫、苦惱,心想真是很郁悶我就請教老師和同學,在大家的幫助下,終于使自己從迷茫中走出來。另外,到圖書館、書店、資料室去雖說是比較原始的方式,但也有可取之處的。總之,不管通過哪種方式查的資料都是有利用價值的,要一一記錄下來以備后用。
(3)學習的能力。明確了問題并且分析了題目然后就是如何實現的問題了。這個時候學習能力顯得特別的重要。如何通過自己的努力把不明白的東西搞明白,這對學習的能力有很高的要求。接著自己開始編寫簡單的程序來檢驗一下學習的效果,理論學習和工作實際緊密結合起來,互相參照,學習進展快,掌握牢,可以取得事半功倍的效果。應該根據自己的知識結構和水平確定一個合理的攻關順序,并大體上擬定一個進度表,根據自己完成的情況進行調整,如果碰到不理解的概念、原理和方法,給學習帶來困難,甚至無法做下去的時候,就要和導師進行溝通,也許老師的一句話就會給自己很多的啟示。
(4)要實際動手,防止眼高手底。很多事情想起來是一回事真正做起來就不是那么簡單了,一定要有恒心,這樣才能克服困難,這點我深有體會。在剛開始的一個月里認為畢業設計已經基本結束,因為想的比較簡單,而且考慮的不夠全面。但是隨著工作的進展,很多問題就暴露出來了。軟件比想象的要復雜的多,整天編程序搞的頭都大了,后來休息調整后才算是順利的完成了任務。
以上就是我的一些心得,現實比想象的要困難比較多。只有在實際動手的過程中才會學到很多知識。想起了一句話:在實踐中檢驗真理并發展真理。在設計過程中,我通過查閱大量有關資料,與同學交流經驗和自學,并向老師請教等方式,使自己學到了不少知識,也經歷了不少艱辛,但收獲同樣巨大。在整個設計過程中我懂得了許多東西,也培養了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學習工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創造過程中的探索的艱難和成功的喜悅。在這個過程中我學習到了很多東西,這些肯定會伴隨我的一生,認識到了自己需要提高的地方還很多,自己還需要用以后的時間來不斷學習不斷提高。
致 謝
本論文的工作是在指導老師張俊濤老師的悉心指導下完成的,張俊濤老師嚴謹的治學態度和科學的工作方法給了我極大的幫助和影響。在此衷心感謝張俊濤老師對我的關心和指導。
張俊濤老師在畢業設計上給我們幫助,悉心指導我們完成了畢業論文工作,在學習上和生活上都給予了我很大的關心和幫助,在此向張俊濤老師表示衷心的謝意。
張俊濤老師對于我的論文提出了許多的寶貴意見,在此表示衷心的感謝。
另外還要感謝師母陳曉莉老師對我的幫助,在張老師有事無法給我指導的情況下,陳老師也在電路圖的方面給予了我很大的幫助,在此也要向陳曉莉老師表示衷心的謝意。