




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、湖南文理學(xué)院課程設(shè)計(jì)報(bào)告課程名稱(chēng): 通信系統(tǒng)課程設(shè)計(jì) 專(zhuān)業(yè)班級(jí): 通信1101班 學(xué)號(hào)(06位 )學(xué)生姓名: 指導(dǎo)教師: 戴正科 完成時(shí)間: 2014年 11 月 21 日 報(bào)告成績(jī):評(píng)閱意見(jiàn): 評(píng)閱教師 日期 2014.11.21 基于FPGA的智能溫度控制的設(shè)計(jì)目錄1.設(shè)計(jì)題目12.設(shè)計(jì)要求13.設(shè)計(jì)作用與目的14.所用設(shè)備(儀器)和軟件25.系統(tǒng)設(shè)計(jì)方案25.1 系統(tǒng)總體設(shè)計(jì)25.2 工作原理35.2.1 溫度控制系統(tǒng)特性研究36.智能溫度控制器系統(tǒng)硬件設(shè)計(jì)46.1 系統(tǒng)方案設(shè)計(jì)46.1.1 FPGA與DAC0832結(jié)合的目的46.1.2 系統(tǒng)需求分析46.1.3系統(tǒng)需求分析56.2系統(tǒng)
2、結(jié)構(gòu)66.2.1調(diào)試/配置電路67.智能溫度控制系統(tǒng)軟件設(shè)計(jì)87.1 軟件總體設(shè)計(jì)87.1.1 設(shè)定定義87.1.2 VHDL實(shí)現(xiàn)87.2 軟件程序設(shè)計(jì)97.2.1 分頻模塊97.2.2 鍵盤(pán)模塊107.2.3 ADC0809 控制模塊117.2.4 三模塊連接在一塊137.3 本章小結(jié)158.實(shí)驗(yàn)調(diào)試結(jié)果158.1 實(shí)驗(yàn)條件158.2 實(shí)驗(yàn)結(jié)果及分析158.3 本章小結(jié)179.設(shè)計(jì)中的問(wèn)題及解決方法1710.設(shè)計(jì)心得1811.參考文獻(xiàn)1812.附錄181.設(shè)計(jì)題目基于FPGA的智能溫度控制的設(shè)計(jì)2.設(shè)計(jì)要求通過(guò)前向溫度采集電路,采集當(dāng)前孵化器內(nèi)部的溫度信號(hào),將采集到的模擬信號(hào)通過(guò)ADC080
3、9模數(shù)轉(zhuǎn)換芯片,轉(zhuǎn)變?yōu)镕PGA可控的數(shù)字信號(hào),F(xiàn)PGA芯片根據(jù)輸入的當(dāng)前實(shí)際溫度,控制輸出合理的數(shù)字信號(hào),再由DAC0832轉(zhuǎn)換為模擬信號(hào),輸入到后向加熱執(zhí)行電路,以此來(lái)完成對(duì)整個(gè)孵化器的溫度控制。整個(gè)系統(tǒng)中,帶有溫度傳感器的前向溫度采集電路作為系統(tǒng)的反饋環(huán)節(jié),實(shí)時(shí)反映當(dāng)前環(huán)境的具體溫度。3.設(shè)計(jì)作用與目的在空間生命科學(xué)試驗(yàn)中,生命培養(yǎng)模擬地面環(huán)境要求,主要研究宇空間因素,如失重、宇宙輻射、真空、高溫(或低溫)等對(duì)生命過(guò)程的影響。其中溫度對(duì)空間生命的生存有直接作用,是空間生物學(xué)研究的主要對(duì)象。同時(shí)由于空間、體積、電功率的限制,對(duì)電功率加熱器和控制電路方面盡量做到節(jié)能、低功耗、小體積。假設(shè)模擬地
4、面培養(yǎng)箱內(nèi)的溫度在18。這樣對(duì)控制精度和芯片必須有更高的要求。傳統(tǒng)的溫度控制方法以設(shè)定 為臨界點(diǎn),超出設(shè)定允許范圍即進(jìn)行溫度調(diào)控,低于設(shè)定值就加熱,反之就停止或降溫。這種方法實(shí)現(xiàn)簡(jiǎn)單、成本低,但控制效果不理想,控制溫度精度不高、達(dá)到穩(wěn)定點(diǎn)的時(shí)間也長(zhǎng),因此,只能用在精度要求不高的場(chǎng)合。對(duì)于空間生命科學(xué)的溫度控制,這樣的控制過(guò)程遠(yuǎn)遠(yuǎn)達(dá)不到控制要求。FPGA是通過(guò)硬件語(yǔ)言描述實(shí)現(xiàn)并行計(jì)算機(jī)功能的硬件電路。應(yīng)用FPGA實(shí)現(xiàn)PID控制可以提高PID運(yùn)算的速度,避免了用單片機(jī)實(shí)現(xiàn)PID控制按順序執(zhí)行命令對(duì)運(yùn)行速度延時(shí)性,非線(xiàn)性的影響。同時(shí)FPGA實(shí)現(xiàn)的PID控制的內(nèi)在電路可以根據(jù)現(xiàn)實(shí)需要進(jìn)行修改,提高了系
5、統(tǒng)的靈活性。采用智能PID控制溫度則具有測(cè)量控制精度高、成本低、體積小、功耗低的優(yōu)點(diǎn)。將傳統(tǒng)的電路溫度控制用芯片取代,因此利用FPGA實(shí)現(xiàn)PID的智能溫度控制具有深遠(yuǎn)的意義4.所用設(shè)備(儀器)和軟件整個(gè)系統(tǒng)的主芯片采用PFGA即現(xiàn)場(chǎng)可編程門(mén)陣列,F(xiàn)PGA在結(jié)構(gòu)上由邏輯功能塊排列為陣列,并且有可編程的內(nèi)部連線(xiàn)連接功能塊實(shí)現(xiàn)的一定的邏輯功能。FPGA由掩膜可編程門(mén)陣列可編程邏輯器件演變而來(lái),它具有門(mén)陣列的高邏輯密度和通用性,還具有用戶(hù)可編程的特性。利用功率繼電器的通斷作為自動(dòng)開(kāi)關(guān),控制設(shè)定值與控制輸入量的關(guān)系,通過(guò)串口模塊和上位機(jī)進(jìn)行通訊,進(jìn)一步實(shí)現(xiàn)在用戶(hù)操作界面上進(jìn)行在線(xiàn)修改,時(shí)間采樣、圖形顯示
6、、數(shù)據(jù)保存等功能5.系統(tǒng)設(shè)計(jì)方案5.1系統(tǒng)總體設(shè)計(jì)近百年來(lái),溫度傳感器的發(fā)展大致經(jīng)歷以下三個(gè)階段:第一階段是傳統(tǒng)的分立式溫度傳感器(含敏感元件);第二個(gè)階段是模擬集成的溫度傳感器/控制器;第三個(gè)階段是智能溫度傳感器。在近幾年中,國(guó)際上的許多國(guó)家已經(jīng)研發(fā)出關(guān)于智能溫度控制器的系列產(chǎn)品。智能溫度控制器具有可以輸出溫度控制量以及與溫度數(shù)據(jù)相關(guān)的,適配各種微型控制器特點(diǎn);并且它是在硬件的基礎(chǔ)上通過(guò)軟件實(shí)現(xiàn)測(cè)試控制功能的,其智能化程度取決于軟件的開(kāi)發(fā)水平。智能溫度傳感器最大的有點(diǎn)就是能對(duì)現(xiàn)場(chǎng)測(cè)量到溫度值進(jìn)行數(shù)據(jù)處理和傳輸,并與上位機(jī)進(jìn)行數(shù)據(jù)通信。二十世紀(jì)九十年代中期智能溫度控制器問(wèn)世了,智能溫度控制器是
7、在微電子技術(shù)與計(jì)算機(jī)技術(shù)還有自動(dòng)測(cè)試技術(shù)的結(jié)合產(chǎn)物。二十一世紀(jì)以后,智能溫度傳感器正朝著精度高、功能強(qiáng)、標(biāo)準(zhǔn)化總線(xiàn)、安全性、可靠性、進(jìn)一步開(kāi)發(fā)虛擬網(wǎng)絡(luò)溫度控制器、研制溫度測(cè)量還有溫度控制系統(tǒng),這些高科技的方向迅速發(fā)展。1.改善低精度和低分辨率過(guò)去生產(chǎn)的智能溫度傳感器存在著精度低和分辨力差的缺點(diǎn),并且均采用最常用的8位數(shù)模轉(zhuǎn)化器?,F(xiàn)在很多智能溫度的廠(chǎng)家都針對(duì)提升精度和提高分辨力方面做足了工作,分辨力達(dá)到了0.50.0625,測(cè)溫精度達(dá)到±0.5,數(shù)模轉(zhuǎn)換器也從8位擴(kuò)展到了9到12位。很多國(guó)外的公司在現(xiàn)有成就的基礎(chǔ)上,又生產(chǎn)出不需要數(shù)模轉(zhuǎn)換的,13位二進(jìn)制數(shù)據(jù)傳輸精度為±0.2
8、、分辨力最高可達(dá)到0.03125的智能溫度傳感器。2.增加多通道功能為了給研制和開(kāi)發(fā)多路溫度測(cè)量控制系統(tǒng)提供良好條件,許多智能溫度傳感器正從單通道向多通道發(fā)展,同時(shí)新型智能溫度傳感器的測(cè)試功能也在不斷增強(qiáng),還在芯片中增加存儲(chǔ)功能。3.總線(xiàn)技術(shù)的標(biāo)準(zhǔn)化和規(guī)范化總線(xiàn)技術(shù)實(shí)現(xiàn)標(biāo)準(zhǔn)化和規(guī)范化,例如:一線(xiàn)總線(xiàn)、I2C總線(xiàn)、SM Bus總線(xiàn)和SPI總線(xiàn)等總線(xiàn)方式。4.安全性和可靠性5.2工作原理5.2.1 溫度控制系統(tǒng)特性研究工程生產(chǎn)中,模擬的建立應(yīng)該盡量簡(jiǎn)化,我們將溫度控制中的各個(gè)參數(shù)當(dāng)作置于溫度有關(guān)的函數(shù)來(lái)處理。熱量的傳播方向總是從高溫物體傳向低溫物體,就算在同一個(gè)問(wèn)題內(nèi)部進(jìn)行熱傳導(dǎo),也是從高溫部分傳
9、向低溫部分。電熱杯加熱系統(tǒng)中,主要是通過(guò)電熱絲產(chǎn)生即通過(guò)氣體的相互碰撞產(chǎn)生熱量進(jìn)行熱傳遞。溫度在傳遞過(guò)程中一定存在時(shí)間延時(shí),這個(gè)延時(shí)時(shí)間可能是由于體積的大小產(chǎn)生的。電熱杯的傳遞函數(shù)寫(xiě)成GS=K1+TSe-ts 式5-1其中參數(shù)K:系統(tǒng)的放大系數(shù)、T:時(shí)間、t延遲時(shí)間、s:復(fù)變量。1. 放大系數(shù)K放大系數(shù)K,是被控制對(duì)象再次達(dá)到平衡狀態(tài)時(shí),變化輸出量和變量輸入量的比值。在輸入變化作用相同的情況下,K值越大,變化輸出量就越大,被控對(duì)象的自身穩(wěn)定性也會(huì)越差;相反,K值越小,被控對(duì)象的自身穩(wěn)定性就越好。2. 時(shí)間常數(shù)T時(shí)間常數(shù)T,是指被控對(duì)象輸入影響后,輸出變量達(dá)到新穩(wěn)態(tài)值的快慢。時(shí)間常數(shù)T,決定動(dòng)態(tài)
10、過(guò)程的時(shí)間快慢,是被控制對(duì)象的動(dòng)態(tài)特性參數(shù)。3. 延遲時(shí)間t滯后時(shí)間t是描述這種現(xiàn)象的動(dòng)態(tài)參數(shù)。 6.智能溫度控制器系統(tǒng)硬件設(shè)計(jì)6.1 系統(tǒng)方案設(shè)計(jì)6.1.1 FPGA與DAC0832結(jié)合的目的溫度,是一種具有慣性大、滯后性大、非線(xiàn)性和時(shí)變性強(qiáng)等等特點(diǎn),因此傳統(tǒng)的控制方法想達(dá)到很高的控制要求使很難實(shí)現(xiàn)的。在控制過(guò)程中,在溫度不斷變化的過(guò)程中,環(huán)境在不斷的變化,同時(shí)隨著加熱和降溫,加熱器件的特性也會(huì)變化,這些都是導(dǎo)致溫度時(shí)變的原因;溫度升高外界環(huán)境對(duì)加熱系統(tǒng)吸收熱量的程度不同,直接導(dǎo)致了溫度的非線(xiàn)性變化。但是隨著科學(xué)創(chuàng)新,工業(yè)發(fā)展的強(qiáng)烈需求,各行各業(yè)對(duì)溫度控制的適應(yīng)性、精度、穩(wěn)定性方面
11、都提出了更高層次的要求,同時(shí)使溫度控制進(jìn)入了智能化的階段。DAC0832溫度傳感器是數(shù)字型的溫度傳感器。在溫度采集時(shí),不需要通過(guò)模數(shù)轉(zhuǎn)換器對(duì)溫度值進(jìn)行轉(zhuǎn)換,而且在使用時(shí)不需要溫度標(biāo)準(zhǔn),就可以直接連接到電路中,因此為硬件電路搭建提供了很大的方便,可以使硬件電路結(jié)構(gòu)簡(jiǎn)化。同時(shí),DAC0832溫度傳感器還具有速度快,精度高,成本低的有點(diǎn)。FPGA有豐富的I/O引腳和觸發(fā)器的資源,同時(shí)還具有動(dòng)態(tài)重構(gòu)、可反復(fù)編程的特點(diǎn),并且可以利用計(jì)算機(jī)對(duì)器件進(jìn)行功能仿真。仿真過(guò)程中如果出現(xiàn)問(wèn)題,可以及時(shí)調(diào)整設(shè)計(jì)方案,極大的提高了FPGA的靈活性和通用性。FPGA還具有體積小、集成度高、結(jié)構(gòu)標(biāo)準(zhǔn)化、可移植性好和并行運(yùn)算
12、的有點(diǎn)。如果將FPGA和DAC0832結(jié)合,利用FPGA控制器實(shí)現(xiàn)DAC0832溫度傳感器的溫度采集和控制處理的工作再結(jié)合PID智能控制,不但可以提高溫度控制的速度、精度、而且還可以提高系統(tǒng)的穩(wěn)定性。6.1.2 系統(tǒng)需求分析本設(shè)計(jì)以這種模擬電路控制在實(shí)際應(yīng)用中很難做到恒溫控制,溫度會(huì)在最終歸的預(yù)設(shè)值附近上下浮動(dòng),影響禽蛋的孵化。而且,孵化器的溫度設(shè)置也是模擬電路,這樣是完全達(dá)不到精準(zhǔn)的溫度設(shè)置。通過(guò)學(xué)習(xí)FPGA,我設(shè)想運(yùn)用數(shù)字電路來(lái)對(duì)禽蛋孵化器內(nèi)部溫度進(jìn)行控制,來(lái)實(shí)現(xiàn)可控,可調(diào),溫度恒定的禽蛋孵化器。具體的設(shè)計(jì)框架如下 圖6-1 設(shè)計(jì)框架 6.1.3系統(tǒng)需求分析本設(shè)計(jì)應(yīng)用FPGA控制溫度整體框
13、圖如圖6-2所示。硬件系統(tǒng)可以由兩部分組成,一部分是信號(hào)采集裝置,主要是由溫度傳感器、UART(串口數(shù)據(jù)通訊電路)組成,另一部分是信號(hào)處理裝置,主要由JTAG(聯(lián)機(jī)測(cè)試的接口)、液晶顯示器、FPGA、上位機(jī)、繼電器、報(bào)警器、電源管理。 圖6-2 FPGA控制溫度整體框圖本方案通過(guò)前向溫度采集電路,采集當(dāng)前孵化器內(nèi)部的溫度信號(hào),將采集到的模擬信號(hào)通過(guò)ADC0809模數(shù)轉(zhuǎn)換芯片,轉(zhuǎn)變?yōu)镕PGA可控的數(shù)字信號(hào),F(xiàn)PGA芯片根據(jù)輸入的當(dāng)前實(shí)際溫度,控制輸出合理的數(shù)字信號(hào),再由DAC0832轉(zhuǎn)換為模擬信號(hào),輸入到后向加熱執(zhí)行電路,以此來(lái)完成對(duì)整個(gè)孵化器的溫度控制。整個(gè)系統(tǒng)中,帶有溫度傳感器的前向溫度采集
14、電路作為系統(tǒng)的反饋環(huán)節(jié),實(shí)時(shí)反映當(dāng)前環(huán)境的具體溫度,具體的電路圖如下。 圖6-3 前向溫度采集電路圖6.2系統(tǒng)結(jié)構(gòu)在整個(gè)設(shè)計(jì)系統(tǒng)的硬件中主要包括FPGA、調(diào)制/配置電路、時(shí)鐘電路、復(fù)位電路/重配置電路、系統(tǒng)電源電路、繼電器、外存儲(chǔ)器、LED、獨(dú)立按鍵和撥碼開(kāi)關(guān)等構(gòu)成。6.2.1調(diào)試/配置電路此電路設(shè)計(jì)以AD590作為溫度觸感器,通過(guò)添加相應(yīng)的調(diào)節(jié)電阻,讓溫度與輸出電壓保持一個(gè)相對(duì)線(xiàn)性的關(guān)系其中: :為調(diào)零電阻. :為調(diào)滿(mǎn)度電阻.最終得到的溫度與輸出電壓的關(guān)系式為: 式6-1 模數(shù)轉(zhuǎn)換芯片采用的是ADC0809,具體的連接電路圖如下圖6-4 ADC0809與FPGA的連接IN0IN7管角中任選一
15、路作為前向溫度采集電路的輸入,VCC與同時(shí)接+5V電壓,與GND接地,OUT1OUT8數(shù)據(jù)輸出端連接FPGA,START,OE,EOC,ADDA-C均連接FPGA,根據(jù)ADC0809的工作時(shí)序圖,由FPGA給出相應(yīng)的信號(hào)控制ADC0809。數(shù)模轉(zhuǎn)換部分采用的是DAC0832,具體連接圖如下圖6-5 DAC0832的連接圖DI0-DI7分別于FPGA的8位數(shù)據(jù)輸出端相連,因?yàn)镈AC0832工作在連續(xù)的負(fù)反饋電路中,故采用直通的工作方式,將WR1與WR2直接與地相連,ILE與CS,Xfer引腳均接至FPGA,有FPGA發(fā)送控制信號(hào)來(lái)控制DAC0832的工作。輸出引腳Iout1與Iout2連接一個(gè)流
16、壓轉(zhuǎn)換器,將輸出的電流信號(hào)轉(zhuǎn)換為需要的電壓信號(hào),并進(jìn)行適當(dāng)?shù)姆糯蟆W詈筝敵龅椒趸鞯募訜犭娐?。FPGA模塊控制ADC0809的工作狀態(tài),并接收來(lái)自ADC0809的數(shù)字信號(hào),與鍵盤(pán)輸入的預(yù)設(shè)信號(hào)進(jìn)行比較后,將控制信息傳送給DAC0832,經(jīng)由數(shù)模轉(zhuǎn)換器轉(zhuǎn)換后加在發(fā)熱裝置兩端,對(duì)整個(gè)孵化器內(nèi)部溫度進(jìn)行控制。7.智能溫度控制系統(tǒng)軟件設(shè)計(jì)7.1 軟件總體設(shè)計(jì)7.1.1 設(shè)定定義在系統(tǒng)設(shè)計(jì)之前,首先需要提出方案、系統(tǒng)設(shè)計(jì)和FPGA芯片選擇等前期工作。然后針對(duì)系統(tǒng)指標(biāo)和復(fù)位程度,根據(jù)芯片的成本、資源等各方面進(jìn)行衡量,選擇出合理的設(shè)計(jì)方案和芯片類(lèi)型。一般情況下,對(duì)FPGA的設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法,先把整
17、個(gè)系統(tǒng)分為幾個(gè)基本單元,再把每個(gè)基本單元?jiǎng)澐譃橄乱粚拥幕締卧?,按照上述步驟進(jìn)行,直至可以使用元件庫(kù)中的元件。7.1.2 VHDL實(shí)現(xiàn) VHDL實(shí)現(xiàn)就是在設(shè)計(jì)的系統(tǒng)和電路中用硬件描述語(yǔ)言(VHDL)表示出來(lái),并輸入給EDA工具的過(guò)程。為了避免以往繪制原理圖時(shí)的可移植性差、效率低下、不易維護(hù)的缺點(diǎn),目前在實(shí)際開(kāi)發(fā)中廣泛應(yīng)用的是HDL語(yǔ)言輸入法,利用文本描述設(shè)計(jì)。最常用的兩種語(yǔ)言HDL和VDL和VHDL是美國(guó)電氣與電子工程師協(xié)會(huì)(IEEE)的標(biāo)準(zhǔn),它們共同的優(yōu)點(diǎn)是:語(yǔ)言與芯片工藝無(wú)關(guān),利用自頂向下的設(shè)計(jì)方法,可移植性好,便于模塊的劃分與移植,具有很強(qiáng)的邏輯描述和方針功能。圖7-1 FPGA的開(kāi)發(fā)流
18、程圖7.2 軟件程序設(shè)計(jì) 本文所設(shè)計(jì)運(yùn)用程序模塊化編程思想將系統(tǒng)各功能模塊化,軟件系統(tǒng)基本可以分為三個(gè)個(gè)模塊:分頻模塊、鍵盤(pán)模塊、ADC0809控制模塊、下面對(duì)每個(gè)模塊進(jìn)行詳細(xì)介紹。7.2.1 分頻模塊圖7-2 分頻模塊由于外界的時(shí)鐘源一般都較高,而ADC0809以及鍵盤(pán)掃描模塊需要的時(shí)鐘頻率較低,故需要對(duì)外界時(shí)鐘源進(jìn)行分頻,這里外界輸入時(shí)鐘源為20MHz,對(duì)其進(jìn)行64分頻。波形仿真圖如下:圖7-3 分頻波形仿真圖從波形圖可以看出,clk每經(jīng)過(guò)64個(gè)脈沖,clk1跳轉(zhuǎn)一次。分頻模塊工作正常.7.2.2 鍵盤(pán)模塊圖7-4 鍵盤(pán)模塊鍵盤(pán)模塊的脈沖輸入來(lái)自分頻模塊。其中,輸入端口為兩位二進(jìn)制數(shù),分別
19、接兩個(gè)按鍵,來(lái)對(duì)預(yù)設(shè)溫度進(jìn)行加減調(diào)控。輸出有兩個(gè)端口,xianshi端口作為保留端口,存儲(chǔ)著當(dāng)前預(yù)設(shè)溫度的數(shù)值,可外接顯示設(shè)備。zhi端口為信息傳送端口,其存儲(chǔ)值為當(dāng)前預(yù)設(shè)溫度值經(jīng)由采集電路溫度電壓公式換算后的十進(jìn)制數(shù)值。換算公式如下: 式7-1例:38攝氏度對(duì)應(yīng)的ADC0809輸出數(shù)據(jù)為5*38*256/100/5,得到十進(jìn)制值為97;波形仿真圖如下:圖7-5 溫度減按鍵圖7-6 溫度加按鍵圖中,圖7-5為溫度減按鍵,圖7-6為溫度加按鍵,相應(yīng)的預(yù)設(shè)溫度對(duì)應(yīng)相應(yīng)的ADC0809輸出值,由圖2得,當(dāng)預(yù)設(shè)溫度為38攝氏度時(shí),對(duì)應(yīng)換算后的ADC0809輸出數(shù)據(jù)為97,與計(jì)算相符。鍵盤(pán)輸入模塊工作正
20、常7.2.3 ADC0809 控制模塊圖7-7 ADC0809控制模塊經(jīng)查閱資料,DAC0832需采用直通式,故,將DAC0832的控制語(yǔ)句直接寫(xiě)在了ADC0809的控制語(yǔ)句塊內(nèi)。ile為輸出到ADC0832的輸入鎖存允許信號(hào),cont為ADC0832WR1,WR2,CS等引腳。Wendu為預(yù)設(shè)溫度的輸入引腳。din為ADC0809轉(zhuǎn)換后的輸出信號(hào),dout為受FPGA控制的輸出到DAC0832的控制信號(hào)。clk8為來(lái)自為頻器的時(shí)鐘信號(hào)。根據(jù)ADC0809的時(shí)序圖,總結(jié)出相應(yīng)的狀態(tài)轉(zhuǎn)移圖,一次來(lái)編寫(xiě)控制ADC0809的VHDL語(yǔ)言文件,狀態(tài)轉(zhuǎn)移圖如下圖7-8 狀態(tài)轉(zhuǎn)移圖具體波形仿真圖如下:圖7
21、-9控制ADC0809的仿真圖波形仿真建立在預(yù)設(shè)溫度為38攝氏度的條件下。前面提到,38攝氏度對(duì)應(yīng)的ADC0809輸出值為97,VHDL程序中設(shè)定,當(dāng)ADC0809輸入值大于或等于97時(shí)(當(dāng)前溫度大于或等于預(yù)設(shè)溫度),F(xiàn)PGA輸出到DAC0832的控制信號(hào)為0,即停止加熱。當(dāng)ADC0809輸入值小于92(即36攝氏度,與設(shè)定溫度相差大于兩度)時(shí),F(xiàn)PGA輸出到DAC0832的控制信號(hào)為255,即以最大功率加熱。當(dāng)ADC0809輸入值小于92時(shí),將會(huì)細(xì)分為5個(gè)階段,即以逐次遞減的功率加熱。由圖可知,ADC0809工作正常。7.2.4 三模塊連接在一塊 最后,將三個(gè)模塊運(yùn)用元件例化語(yǔ)句連接在一塊,
22、并進(jìn)行電路觀(guān)察,生成相應(yīng)的邏輯電路,如下圖:圖7-10 三模塊連接圖總體波形仿真如下圖:圖7-11 總仿真圖波形分析:剛開(kāi)始,F(xiàn)PGAjia置1,預(yù)設(shè)溫度逐漸增加,如下圖:圖7-12 溫度增加仿真圖 當(dāng)溫度到達(dá)38攝氏度后停止增加,即將38攝氏度作為預(yù)設(shè)溫度,隨后,觀(guān)察FPGAin與FPGAout。當(dāng)預(yù)設(shè)溫度為38攝氏度時(shí),輸入為97時(shí),對(duì)應(yīng)輸出為0,當(dāng)為92時(shí),對(duì)應(yīng)輸出為5,當(dāng)為96時(shí),對(duì)應(yīng)輸出為1,當(dāng)輸入不在92-97之間,輸入大于97時(shí),輸出為0,輸入小與92時(shí),輸出為255.觀(guān)察上圖波形仿真,完全符合程序設(shè)計(jì)。7.3 本章小結(jié)本章運(yùn)用了模塊化思想,將系統(tǒng)各個(gè)部分模塊化,應(yīng)用主函數(shù)調(diào)用其
23、他相應(yīng)的模塊,大大的提高了編程效率,減少程序修改,整合過(guò)程的工作量。8.實(shí)驗(yàn)調(diào)試結(jié)果8.1 實(shí)驗(yàn)條件實(shí)驗(yàn)是在恒溫下調(diào)試出的結(jié)果。8.2 實(shí)驗(yàn)結(jié)果及分析以下圖8-1、圖8-2、圖8-3、圖8.4分別是分頻模塊、鍵盤(pán)模塊、ADC0809控制模塊、三模塊連接在一起時(shí)在仿真正常的統(tǒng)計(jì)報(bào)告圖:圖8-1 分頻模塊分頻模塊的VHDL文件見(jiàn)附錄1圖8-2 鍵盤(pán)模塊鍵盤(pán)模塊的VHDL文件見(jiàn)附錄2圖8-3 ADC0809控制模塊ADC0809模塊的VHDL仿真文件見(jiàn)附錄3圖8-4 三模塊連接圖總體的VHDL程序見(jiàn)附錄48.3 本章小結(jié)應(yīng)用設(shè)計(jì)出的軟件、硬件對(duì)實(shí)際的電熱杯溫度信息測(cè)量和控制,得到最適合被設(shè)計(jì)的智能溫
24、度控制器為微分先行PID控制器。9.設(shè)計(jì)中的問(wèn)題及解決方法在本次設(shè)計(jì)中主要遇到的問(wèn)題是對(duì)于FPGA芯片不是很了解,需要查閱很多資料去了解FPGA芯片的一系列管腳即其功能。10.設(shè)計(jì)心得本文從智能控制的角度出發(fā),在控制領(lǐng)域中應(yīng)用FPGA,設(shè)計(jì)并實(shí)現(xiàn)了基本FPGA的智能溫度控制,我在這次設(shè)計(jì)中遇到了很多的困難,資料不齊全,而且是很零散的,還重新學(xué)習(xí)了,但是我都沒(méi)有放棄,還是一步一步的實(shí)現(xiàn),在這次設(shè)計(jì)中剛開(kāi)始我在網(wǎng)上找到的圖片是很模糊的,所以我就用protel99這個(gè)軟件重新畫(huà)圖,但是我已經(jīng)很久沒(méi)有畫(huà)了,都差不多都忘了protel99,我就開(kāi)始重新學(xué)習(xí)了,把圖給畫(huà)好了,在這次設(shè)計(jì)中我學(xué)會(huì)了怎么在網(wǎng)上
25、自己獨(dú)立的尋找資料,還知道了自己有哪些不足的地方,自己日后則可以知道忘哪些地方學(xué)習(xí)咯11.參考文獻(xiàn)1.劉美霞,智能溫度控制系統(tǒng)(碩士學(xué)位論文)南京航空航天大學(xué),2003.2. 韓雪,將國(guó)平,馬幼軍。數(shù)字式溫度傳感器DS18B20在溫室環(huán)境檢測(cè)中的應(yīng)用,儀表技術(shù)與傳感器,2002(9):29-313. 肖衡,陳春俊。PID溫度控制裝置的電路設(shè)計(jì)。計(jì)量與測(cè)試技術(shù),2003(1):10-114陳文軍,陳理君。FPGA在窯爐溫度模糊控制系統(tǒng)設(shè)計(jì)。鹽城工學(xué)報(bào),2006(12):40-43 12.附錄附錄1程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;US
26、E IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity fenpin isport(clk :in std_logic; -外部輸入時(shí)鐘源 clk1: out std_logic);end fenpin; -分頻后的時(shí)鐘源architecture b of fenpin is signal count : std_logic_vector(7 downto 0); -信號(hào)定義 signal clk2 : std_logic; beginprocess(clk) beginif(clk'event and clk
27、='1') then -計(jì)數(shù)脈沖上升沿if(count="01000000") thencount<=(others=>'0');clk2<=not clk2; -當(dāng)達(dá)到64個(gè)脈沖時(shí)count置0,clk2取反else count<=count+1; -未達(dá)到64脈沖時(shí)繼續(xù)計(jì)數(shù); end if;end if;clk1<=clk2; 將產(chǎn)生的分頻信號(hào)給輸出端口end process;end b;附錄2: library ieee;use ieee.std_logic_1164.all;use ieee.std_lo
28、gic_arith.all;use ieee.std_logic_unsigned.all;entity jianpan isport(clk:in std_logic; -分頻后的時(shí)鐘輸入shuru:in std_logic_vector(1 downto 0);-輸入端,按鍵加0位,按鍵減1位 zhi :out integer; -預(yù)設(shè)溫度轉(zhuǎn)化為ADC0809輸出值 xianshi :out integer); -當(dāng)前預(yù)設(shè)溫度 end entity;architecture beha of jianpan is signal x:integer range 0 to 200; -定義信號(hào)b
29、eginprocess(clk)begin if(clk'event and clk='1') then case shuru is -檢測(cè)是否有輸入 when "01"=>x<=x+1; -按鍵加按下,溫度+1 when "10"=>if(x=0)then x<=0; -按鍵減按下,判斷溫度是否為0 else x<=x-1; -若為0,則依舊為0,否則,溫度-1 end if; when others=>x<=x; -其他按鍵情況,溫度不變 end case; end if; xians
30、hi<=x; -將溫度賦給顯示輸出端zhi<=x*5*256/100/5; -將溫度轉(zhuǎn)化后賦給輸出端end process;end beha;附錄3:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity ADC0809 isport(din :in std_logic_vector(7 downto 0); -ADC0809輸出的采樣數(shù)據(jù) clk8 :in std_logic; -時(shí)鐘信號(hào) eoc :in std_log
31、ic; -ADC0809轉(zhuǎn)換結(jié)束指示,高電平有效 ale :out std_logic; -ADC0809地址鎖存次信號(hào) ile: out std_logic; -DAC0832數(shù)據(jù)鎖存允許 cont: out std_logic; -DAC0832控制信號(hào)(WR1,WR2,CS,Xfer) start :out std_logic; -ADC0809轉(zhuǎn)換啟動(dòng)信號(hào) oe :out std_logic; -ADC0809數(shù)據(jù)輸出允許信號(hào) wendu:in integer; -溫度顯示 adda :out std_logic; -ADC0809信號(hào)通道控制位 addb :out std_logic
32、; -ADC0809信號(hào)通道控制位 addc :out std_logic; -ADC0809信號(hào)通道控制位 lock0 :out std_logic; -ADC0809觀(guān)察數(shù)據(jù)鎖存時(shí)鐘 dout :out std_logic_vector(7 downto 0); -輸出到DAC0832的8位數(shù)據(jù)end ADC0809;architecture beha of ADC0809 is type states is(st0,st1,st2,st3,st4); -定義ADC0809工作狀態(tài) signal current_state,next_state:states:=st0; -定義信號(hào) sig
33、nal regl :std_logic_vector(7 downto 0); signal shuchu :std_logic_vector(7 downto 0); signal lock :std_logic; signal count :std_logic_vector(7 downto 0);begin adda<='1' -地址輸入001,選擇IN1 addb<='0' addc<='0' dout<=shuchu; -將處理后的數(shù)據(jù)傳輸?shù)捷敵龆丝?lock0<=lock; -數(shù)據(jù)傳輸 ile<=&
34、#39;1' -DAC0832的控制信號(hào) cont<='0' com:process(current_state,eoc) -狀態(tài)轉(zhuǎn)移 begin case current_state is when st0=>ale<='0'start<='0'lock<='0'oe<='0'next_state<=st1; when st1=>ale<='1'start<='1'lock<='0'oe<
35、;='0'next_state<=st2; when st2=>ale<='0'start<='0'lock<='0'oe<='0'next_state<=st1; if(eoc='1')then next_state<=st3; else next_state<=st2; end if; when st3=>ale<='0'start<='0'lock<='0'oe<
36、='1'next_state<=st4; when st4=>ale<='0'start<='0'lock<='1'oe<='1'next_state<=st0; when others=>next_state<=st0; end case; end process com;reg:process(clk8) begin if(clk8'event and clk8='1') then current_state<=next_sta
37、te; -在時(shí)鐘上升沿改變狀態(tài) end if; end process reg;latch1:process(lock) begin if lock='1'and lock'event then regl<=din; -將輸入數(shù)據(jù)賦給中間變量 end if;end process latch1;kongzhi:process(regl) begin if(regl<wendu) then -判斷輸入數(shù)據(jù)與預(yù)設(shè)溫度的大小 case wendu-regl is -判斷輸入數(shù)據(jù)與預(yù)設(shè)溫度的 when "00000101"=>shuchu&
38、lt;="00000101" -差值為5時(shí)輸出控制信號(hào)5 when "00000100"=>shuchu<="00000100" -差值為4時(shí)輸出控制信號(hào)4 when "00000011"=>shuchu<="00000011" -差值為3時(shí)輸出控制信號(hào)3 when "00000010"=>shuchu<="00000010" -差值為2時(shí)輸出控制信號(hào)2 when "00000001"=>shu
39、chu<="00000001" -差值為1時(shí)輸出控制信號(hào)1 when others=>shuchu<="11111111" -差值大于5時(shí)輸出255 end case; else shuchu<="00000000" -當(dāng)前溫度大于預(yù)設(shè)溫度,輸出0 end if;end process kongzhi; end beha;附錄4:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_
40、arith.all;entity FPGA isport(clkin:in std_logic; -定義外部時(shí)鐘端口 FPGAeoc:in std_logic; FPGAin :in std_logic_vector(7 downto 0); FPGAout:out std_logic_vector(7 downto 0); FPGAale :out std_logic; FPGAjia :in std_logic; FPGAjian :in std_logic; FPGAwendu:out integer; FPGAile: out std_logic; FPGAcont: out std_
41、logic; FPGAstart :out std_logic; FPGAoe :out std_logic; FPGAadda :out std_logic; FPGAaddb :out std_logic; FPGAaddc :out std_logic);end entity;architecture beha of FPGA iscomponent ADC0809 is -元件例化聲明port(din :in std_logic_vector(7 downto 0); clk8 :in std_logic; eoc :in std_logic; ale :out std_logic;
42、ile: out std_logic; cont: out std_logic; start :out std_logic; wendu:in integer; oe :out std_logic; adda :out std_logic; addb :out std_logic; addc :out std_logic; lock0 :out std_logic; dout :out std_logic_vector(7 downto 0); end component;component fenpin is -元件例化聲明 port(clk :in std_logic; clk1: out
43、 std_logic);end component;component jianpan is port(clk:in std_logic; shuru:in std_logic_vector(1 downto 0); zhi :out integer; xianshi:out integer);end component; signal c:std_logic; -定義中間變量signal n:integer; beginU0:fenpin port map(clk=>clkin,clk1=>c); -元件例化U1:ADC0809 port map(clk8=>c,wendu
44、=>n,din=>FPGAin,eoc=>FPGAeoc,dout=>FPGAout,ale=>FPGAale,ile=>FPGAile, cont=>FPGAcont,start=>FPGAstart,oe=>FPGAoe,adda=>FPGAadda,addb=>FPGAaddb,addc=>FPGAaddc);U2:jianpan port map(clk=>c,shuru(1)=>FPGAjian,shuru(0)=>FPGAjia,zhi=>n,xianshi=>FPGAwendu)
45、;end beha;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity fenpin isport(clk :in std_logic; -外部輸入時(shí)鐘源 clk1: out std_logic);end fenpin; -分頻后的時(shí)鐘源architecture b of fenpin is signal count : std_logic_vector(7 downto 0); -信號(hào)定義 signal clk2 : std_l
46、ogic; beginprocess(clk) beginif(clk'event and clk='1') then -計(jì)數(shù)脈沖上升沿if(count="01000000") thencount<=(others=>'0');clk2<=not clk2; -當(dāng)達(dá)到64個(gè)脈沖時(shí)count置0,clk2取反else count<=count+1; -未達(dá)到64脈沖時(shí)繼續(xù)計(jì)數(shù); end if;end if;clk1<=clk2; 將產(chǎn)生的分頻信號(hào)給輸出端口end process;end b;library
47、ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity jianpan isport(clk:in std_logic; -分頻后的時(shí)鐘輸入 shuru:in std_logic_vector(1 downto 0); -輸入端,按鍵加0位,按鍵減1位 zhi :out integer; -預(yù)設(shè)溫度轉(zhuǎn)化為ADC0809輸出值 xianshi :out integer); -當(dāng)前預(yù)設(shè)溫度 end entity;architecture beha of
48、jianpan is signal x:integer range 0 to 200; -定義信號(hào)beginprocess(clk)begin if(clk'event and clk='1') then case shuru is -檢測(cè)是否有輸入 when "01"=>x<=x+1; -按鍵加按下,溫度+1 when "10"=>if(x=0)then x<=0; -按鍵減按下,判斷溫度是否為0 else x<=x-1; -若為0,則依舊為0,否則,溫度-1 end if; when others=>x<=x; -其他按鍵情況,溫度不變 end case; end if; xians
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 游樂(lè)設(shè)備材料選用與應(yīng)用考核試卷
- 管道工程公共服務(wù)優(yōu)化與發(fā)展動(dòng)態(tài)分析考核試卷
- 礦物增強(qiáng)塑料批發(fā)考核試卷
- 信托業(yè)務(wù)與體育產(chǎn)業(yè)發(fā)展考核試卷
- 地理信息系統(tǒng)在地質(zhì)勘探與資源評(píng)價(jià)中的應(yīng)用考核試卷
- 稀土金屬壓延加工的產(chǎn)業(yè)升級(jí)路徑探索考核試卷
- 電視設(shè)備智能安防技術(shù)考核試卷
- 遼寧科技大學(xué)《藥學(xué)細(xì)胞生物學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 寧波大學(xué)《藝術(shù)管理學(xué)(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 濰坊護(hù)理職業(yè)學(xué)院《集成電路測(cè)試實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 院感試題100題及答案
- 急性冠脈綜合征診斷及治療課件
- 吹小號(hào)的天鵝試題及答案
- 數(shù)據(jù)庫(kù)開(kāi)發(fā) 試題及答案
- GB/T 45434.3-2025中國(guó)標(biāo)準(zhǔn)時(shí)間第3部分:公報(bào)
- 2024年鄭州工業(yè)應(yīng)用技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案
- 北京市消防條例解讀
- 農(nóng)業(yè)合作社管理與運(yùn)營(yíng)模式試題及答案
- Unit 4 Clothes 單元整體(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教精通版(2024)英語(yǔ)三年級(jí)下冊(cè)
- 2025年版中等職業(yè)教育專(zhuān)業(yè)教學(xué)標(biāo)準(zhǔn) 710205 大數(shù)據(jù)技術(shù)應(yīng)用
- 2025年中國(guó)城市軌道交通維修行業(yè)投資潛力分析及行業(yè)發(fā)展趨勢(shì)報(bào)告
評(píng)論
0/150
提交評(píng)論