【正文】
附錄二 系統(tǒng)各模塊VHDL程序 19第一章 緒論 引言隨著數(shù)字系統(tǒng)的發(fā)展,廣泛應(yīng)用于各種學(xué)科領(lǐng)域及日常生活,微型計算機(jī)就是一個典型的數(shù)學(xué)系統(tǒng)。根據(jù)數(shù)據(jù)采集技術(shù)原理,以Altera公司的EP2C8Q208C8N芯片為核心器件,通過ADC0809采集數(shù)據(jù),并用DAC0832輸出數(shù)據(jù),在Quartus II平臺上,通過VHDL語言編程完成數(shù)據(jù)采集系統(tǒng)電路的軟件設(shè)計、編譯、調(diào)試、仿真和下載,再與外圍硬件電路相結(jié)合調(diào)試,最終設(shè)計出數(shù)據(jù)采集系統(tǒng)電路。為了實現(xiàn)數(shù)字系統(tǒng)對這些電模擬量進(jìn)行檢測、運算和控制,就需要一個模擬量與數(shù)字量之間的相互轉(zhuǎn)換的過程。EDA技術(shù)是一種綜合性學(xué)科,打破了軟件和硬件見的壁壘,把計算機(jī)的軟件技術(shù)與硬件技術(shù)、設(shè)計效率和產(chǎn)品性能結(jié)合在一起,它代表了電子設(shè)計技術(shù)和應(yīng)用技術(shù)的發(fā)展方向。FPGA具有體系結(jié)構(gòu)和邏輯單元靈活、集成度高以及適用范圍寬等特點,在產(chǎn)品研發(fā)和開發(fā)中具有很大的優(yōu)勢。本設(shè)計用的是Altera公司的EP2C8Q208C8N芯片,里面有68416個邏輯單元,并提供了622個可用的輸入/。VHDL能從多個層次對數(shù)字系統(tǒng)進(jìn)行建模和描述,所以大大簡化了電路設(shè)計的任務(wù),提高了設(shè)計效率。第二章 總體設(shè)計 硬件設(shè)計 線性電源模塊根據(jù)系統(tǒng)要求,需提供+12V、12V、+5V的電源。在畫PCB的時候,用大面積覆銅,有助于美觀和節(jié)約實驗器材。ADC0809每進(jìn)行一次比較,即決定數(shù)字碼中的以為碼的去留操作,需要8個時鐘的脈沖,而它是8位A/D轉(zhuǎn)換器,所以它完成一次轉(zhuǎn)換需要8*8=64個時鐘,這樣它的轉(zhuǎn)換時間為t=64*(1/f),f為時鐘頻率。~+85攝氏度。START:A/D轉(zhuǎn)換啟動信號輸入端。VCC:+5V工作電壓。ALE:地址鎖存允許信號輸入端。而當(dāng)EOC為高電平時,表明A/D轉(zhuǎn)換結(jié)束。DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片,由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。177。D0~D7:8位數(shù)據(jù)輸入線。IOUT1:電流輸出端1,其值隨DAC寄存器的內(nèi)容線性變化。ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效。TL082是一通用JFET雙運算放大器。: 系統(tǒng)按鍵控制模塊電路: 系統(tǒng)實物圖在畫PCB的時候,用大面積覆銅,有助于美觀和節(jié)約實驗器材。當(dāng)WREN=‘0’時,采樣禁止,允許讀出RAM中的數(shù)據(jù)。: RAM8由芯片EP2C8Q208C8N產(chǎn)生的20MHz的時鐘做輸入,經(jīng)過分頻以后,一路輸出與芯片EP2C8Q208C8N的169引腳相連的500KHz的時鐘,另一路則輸出給ADC0809供電的10KHz的時鐘。第三章 系統(tǒng)軟硬件調(diào)試根據(jù)系統(tǒng)總體要求,把寫好的VHDL程序進(jìn)行引腳鎖定,綜合,適配,編程下載,調(diào)試。首先通過對數(shù)據(jù)采集原理進(jìn)行分析,總體上提出實現(xiàn)數(shù)據(jù)采集與輸出方案,通過CNT10B和RAM8等模塊的設(shè)計,用FPGA實現(xiàn)了數(shù)據(jù)的采集與輸出,并完成了軟硬件設(shè)計和調(diào)試。第二,濾波部分可以找到更合適的濾波器件,以提高波形的平滑度。同時也感謝同組的同學(xué)以及我們專業(yè)其他同學(xué),此次設(shè)計的順利完成少不了你們的毫無保留幫助和傾盡全力的支持,在此我衷心感謝你們。 use 。end entity。begin process(clk)500kHZbegin if clk39。 if temp1=24 then clk1=not clk1。end process。 then temp2=temp2+1。 end if。end behave。 來自0809轉(zhuǎn)換好的8位數(shù)據(jù)CLK : IN STD_LOGIC。 轉(zhuǎn)換開始信號OE : OUT STD_LOGIC。 8位數(shù)據(jù)輸出END ADCINT。 SIGNAL LOCK : STD_LOGIC。039。 LOCK0 = LOCK 。039。039。START=39。OE=39。039。039。139。 轉(zhuǎn)換未結(jié)束,繼續(xù)等待 WHEN st3= ALE=39。LOCK=39。 next_state = st4。039。139。 END PROCESS COM 。) THEN current_state=next_state。139。 END PROCESS LATCH1 。USE 。 DOUT : OUT STD_LOGIC_VECTOR(8 DOWNTO 0)。 SIGNAL CLK0 : STD_LOGIC。 PROCESS(CLK0,CLR,CQI) BEGIN IF CLR = 39。EVENT AND CLK0 = 39。 END PROCESS。RAM8的VHDL源程序:LIBRARY ieee。ENTITY ram8 IS PORT ( address : IN STD_LOGIC_VECTOR (8 DOWNTO 0)。139。 COMPONENT lpm_ram_dq GENERIC ( intended_device_family : STRING。 lpm_type : STRING。 inclock : IN STD_LOGIC 。 END COMPONENT。23