




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要本論文介紹了一個(gè)基于fpga的數(shù)字溫度計(jì)電路的設(shè)計(jì)與實(shí)現(xiàn)。該電路采用數(shù)字溫度傳感器ds18b20采集外界環(huán)境溫度,同時(shí)結(jié)合該傳感器的數(shù)據(jù)接口和特點(diǎn),使用fpga作為控制器,嚴(yán)格控制ds18b20 的時(shí)序 ,在單總線上實(shí)現(xiàn)讀寫功能,完成測(cè)量數(shù)字溫度的功能。再將采集的二進(jìn)制數(shù)轉(zhuǎn)換為bcd碼 ,并通過數(shù)碼管顯示。該系統(tǒng)軟件設(shè)計(jì)通過 verilog hdl 語言進(jìn)行編譯。這次設(shè)計(jì)相比于傳統(tǒng)的數(shù)字溫度計(jì)具有結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),功耗小,可靠性高,反應(yīng)時(shí)間短等優(yōu)點(diǎn)。關(guān)鍵詞:數(shù)字溫度計(jì);fpga ;verilog hdl ;ds18b20abstractthis paper expounds a de
2、sign and implementation of a digital thermometer circuit based on fpga. the circuit adopts the digital temperature sensor ds18b20 collecting the environment temperature, combining with the characteristics of the sensor data interface, using fpga as the controller, strict control over the timing of d
3、s18b20, read and write functions on 1-wire, complete the function of digital temperature measurement. then measure the binary number into bcd code, and display it on the digital tube. the program design of the system is compiled by verilog hdl language. compared to the traditional digital thermomete
4、r, it has many advantages such as simpler structure, strong anti-interference ability, low consumption, high reliability, short reaction time. keywords:digital thermometer, fpga, verilog hdl, ds18b20目錄1緒論11.1課題研究意義11.2課題相關(guān)技術(shù)的發(fā)展21.3課題的主要研究?jī)?nèi)容31.4論文結(jié)構(gòu)安排32 總體方案的論證52.1 方案的選擇52.2 方案論證與確立72.3 quartus ii介紹7
5、3. 系統(tǒng)的硬件設(shè)計(jì)103.1 系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)103.2 數(shù)據(jù)處理模塊153.3數(shù)碼管顯示模塊214 系統(tǒng)總體模塊設(shè)計(jì)244.1 verilog hdl語言介紹244.2 軟件程序設(shè)計(jì)255整體編譯結(jié)果與分析315.1 整體編譯315.2 程序的下載調(diào)試326 設(shè)計(jì)中遇到的問題347結(jié)束語35參考文獻(xiàn)36附錄37附錄a系統(tǒng)總體電路圖38附錄b 系統(tǒng)總程序38附錄 c 外文翻譯501緒論1.1課題研究意義溫度是生活中最基本的環(huán)境參數(shù)。溫度的監(jiān)測(cè)與控制,對(duì)于生物的生存與生長(zhǎng),工業(yè)生產(chǎn)發(fā)展都有著非同一般的意義。溫度傳感器的應(yīng)用涉及機(jī)械制造、工業(yè)過程控制、汽車電子產(chǎn)品、消費(fèi)電子產(chǎn)品和專用設(shè)備等各個(gè)
6、領(lǐng)域。傳統(tǒng)的常用溫度傳感器有熱電偶、電阻溫度計(jì)rtd和ntc熱敏電阻等。但信號(hào)調(diào)理,模數(shù)轉(zhuǎn)換及恒溫器等功能全都會(huì)增加成本。現(xiàn)代集成溫度傳感器通常包含這些功能,并以其低廉的價(jià)格迅速占據(jù)了市場(chǎng)。dallas semiconductor 公司推出的數(shù)字式溫度傳感器ds18b20采用數(shù)字化一線總線計(jì)數(shù)具有很多的優(yōu)異特性。其一,它將控制線、地址線、數(shù)據(jù)線合成一根導(dǎo)線,允許在同一根導(dǎo)線上掛接多個(gè)控制對(duì)象,形成多點(diǎn)一線總線測(cè)控系統(tǒng)。布線施工方便,成本低廉。其二,線路上傳送的是數(shù)字信號(hào),所受的干擾和損耗小,性能好。本課題旨在分析和設(shè)計(jì)數(shù)字化溫度測(cè)控系統(tǒng)。本系統(tǒng)采用fpga實(shí)現(xiàn)一個(gè)數(shù)字溫度計(jì),采用verilog
7、hdl作為開發(fā)語言,實(shí)現(xiàn)對(duì)溫度的測(cè)量。由于單片機(jī)設(shè)計(jì)的控制器生產(chǎn)成本較低,所以過去人們通常使用這種方法來設(shè)計(jì)數(shù)字溫度計(jì)。這種設(shè)計(jì)方法的缺點(diǎn)是它并不能完成很復(fù)雜的功能,只能進(jìn)行一些簡(jiǎn)單的運(yùn)算和控制,并且設(shè)計(jì)的控制器性能也很一般。因此,在這種情況下,研究人員要是想進(jìn)一步的提升技術(shù),就不得不冒著犧牲機(jī)器性能的風(fēng)險(xiǎn)來擴(kuò)展外部硬件電路,顯然用這種傳統(tǒng)的方法設(shè)計(jì)數(shù)字溫度計(jì),既具有局限性又具有一定的難度,所以我們要尋找一種新的設(shè)計(jì)方法來替代這種傳統(tǒng)的研究方法。fpga是xilinx公司率先提出的概念,又名現(xiàn)場(chǎng)可編程門陣列,它是以pal等可編程器件為基礎(chǔ)發(fā)展起來的一種高密度可編程邏輯器件,作為一種半定制電路,
8、fpga彌補(bǔ)了定制電路的不足之處,并且在結(jié)構(gòu)上能夠?qū)崿F(xiàn)復(fù)雜系統(tǒng)所需要的主要功能,此外,使用fpga設(shè)計(jì)產(chǎn)品也非常便利。首先用硬件描述語言設(shè)計(jì)電路,然后經(jīng)過布局仿真驗(yàn)證實(shí)驗(yàn)結(jié)果,最后燒入到fpga中進(jìn)行現(xiàn)場(chǎng)測(cè)試。因此,用fpga設(shè)計(jì)能解決傳統(tǒng)設(shè)計(jì)中遇到的一些不可避免的難題。利用fpga設(shè)計(jì)產(chǎn)品能夠有效避免很多前期的風(fēng)險(xiǎn)投資,并且在軟件階段就可以準(zhǔn)確評(píng)估出設(shè)計(jì)的正確性,從而極大的提高產(chǎn)品開發(fā)效率。綜上所述,fpga是原型設(shè)計(jì)最理想的載體。本次課題使用fpga設(shè)計(jì)數(shù)字溫度計(jì)是一種新穎的設(shè)計(jì)方法,它能解決使用單片機(jī)這種傳統(tǒng)設(shè)計(jì)方法所帶來的能源供需以及電路復(fù)雜等問題,同時(shí),對(duì)溫度測(cè)量的發(fā)展前景有著極其重
9、要的現(xiàn)實(shí)研究意義。1.2課題相關(guān)技術(shù)的發(fā)展當(dāng)今電子產(chǎn)品正向功能多元化,體積最小化,功耗最低化的方向發(fā)展。它與傳統(tǒng)的電子產(chǎn)品在設(shè)計(jì)上的顯著區(qū)別是大量使用大規(guī)??删幊踢壿嬈骷?,使產(chǎn)品的性能提高,體積縮小,功耗降低。同時(shí),廣泛運(yùn)用現(xiàn)代計(jì)算機(jī)技術(shù),提高產(chǎn)品的自動(dòng)化程度和競(jìng)爭(zhēng)力,縮短研發(fā)周期。eda技術(shù)正是為了適應(yīng)現(xiàn)代電子技術(shù)的要求,吸收眾多學(xué)科最新科技成果而形成的一門新技術(shù)。美國(guó)altera公司的可編程邏輯器件采用全新的結(jié)構(gòu)和先進(jìn)的技術(shù),加上quartus開發(fā)環(huán)境,更具有高性能,開發(fā)周期短等特點(diǎn),十分方便進(jìn)行電子產(chǎn)品的開發(fā)和設(shè)計(jì)1。eda技術(shù)以大規(guī)模可編程邏輯器件為設(shè)計(jì)載體,以硬件描述語言為系統(tǒng)邏輯描
10、述主要表達(dá)方式,以計(jì)算機(jī)、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實(shí)驗(yàn)開發(fā)系統(tǒng)為設(shè)計(jì)工具,通過有關(guān)的開發(fā)軟件,自動(dòng)完成用軟件的方式設(shè)計(jì)的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯,邏輯化簡(jiǎn),邏輯分割,邏輯映射,編程下載等工作。最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù)2。 新產(chǎn)品、新技術(shù)層出不窮,電子技術(shù)的發(fā)展更是日新月異??梢院敛豢鋸埖恼f,電子技術(shù)的應(yīng)用無處不在,電子技術(shù)正在不斷地改變我們的生活,改變著我們的世界。近些年,隨著科技的發(fā)展和社會(huì)的進(jìn)步,人們對(duì)溫度計(jì)的要求也越來越高,不管在哪里,人們都想知道此刻的溫度和天氣狀況等一些信息,傳統(tǒng)的溫度計(jì)由于它的局限性以及不方便性,已不能滿足人們的需求。溫度計(jì)等待一次
11、革命,不管在性能還是在樣式上它都將發(fā)生質(zhì)的變化,于是數(shù)字溫度計(jì)的時(shí)代悄然來臨。1.3課題的主要研究?jī)?nèi)容首先在深入研究了數(shù)字溫度計(jì)的總體原理后,分析其系統(tǒng)的組成,做出了該系統(tǒng)相應(yīng)的整體框架,然后利用quartus軟件進(jìn)行開發(fā),用verilog hdl語言描述其數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、bcd譯碼模塊、動(dòng)態(tài)掃描模塊等各功能模塊的設(shè)計(jì),并利用圖形編輯實(shí)現(xiàn)各模塊的頂層連接。最后將程序下載到fpga芯片上,通過數(shù)碼顯示管顯示出預(yù)期的測(cè)量效果。1.4論文結(jié)構(gòu)安排本論文各部分內(nèi)容如下:第一部分對(duì)課題的背景及意義進(jìn)行研究,了解課題相關(guān)技術(shù)的發(fā)展,最后概述了該課題的主要內(nèi)容和研究方法。第二部分通過與單片機(jī)設(shè)計(jì)
12、方案進(jìn)行比較,得到用fpga設(shè)計(jì)本課題更加合理的結(jié)論,再將ad590與ds18b20溫度傳感器進(jìn)行簡(jiǎn)單比較后,得出用ds18b20更具有優(yōu)越性,最后介紹本課題最重要的工具quartus ii。第三部分為系統(tǒng)的硬件設(shè)計(jì)部分,詳細(xì)介紹了溫度采集模塊,數(shù)據(jù)處理模塊,數(shù)碼顯示模塊所用得到硬件資源,并介紹了其在設(shè)計(jì)中的功能。第四部分為系統(tǒng)軟件設(shè)計(jì)部分,將整個(gè)課題按性質(zhì)分為各個(gè)小模塊,用 verilog hdl語言進(jìn)行設(shè)計(jì)。第五部分為整個(gè)設(shè)計(jì)的總體編譯、結(jié)果與分析。最后對(duì)整個(gè)課題進(jìn)行總結(jié),研究其不足之處。2 總體方案的論證2.1 方案的選擇2.1.1 總體方案比較過去數(shù)字溫度計(jì)普遍采用單片機(jī)來實(shí)現(xiàn),不過隨
13、著可編程邏輯控制器件的不斷發(fā)展,控制器部分也開始頻繁使用可編程邏輯器件來實(shí)現(xiàn)功能。下面分別提供了單片機(jī)和fpga作為控制器的方案,最后進(jìn)行比較選擇。方案一:此方案是基于單片機(jī)設(shè)計(jì)數(shù)字溫度計(jì),使用的是at89c51單片機(jī)處理各個(gè)單元電路的工作。本方案采用的是ad590溫度傳感器,首先通過溫度系統(tǒng)采集相關(guān)溫度數(shù)據(jù),然后經(jīng)過a/d轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),并將轉(zhuǎn)換后的數(shù)字信號(hào)直接送給單片機(jī),再由單片機(jī)控制顯示。其框圖如圖2.1所示。圖2.1 基于單片機(jī)的數(shù)字溫度計(jì)系統(tǒng)框圖方案二:此方案以fpga作為核心控制設(shè)備,利用高精度的數(shù)字溫度傳感器ds18b20進(jìn)行溫度采集,將采集到的溫度直接
14、以數(shù)字信號(hào)提供給fpga控制器,不需要經(jīng)過a/d轉(zhuǎn)換,采集到的溫度可以通過數(shù)碼管顯示。其框圖如圖2.2所示。圖2.2 基于fpga的數(shù)字溫度計(jì)系統(tǒng)框圖2.1.2 溫度傳感器的選擇溫度傳感器的主要作用是感受溫度并將感受到的溫度轉(zhuǎn)化成可用輸出信號(hào),它是溫度測(cè)量?jī)x器的核心部分。隨著技術(shù)的不斷發(fā)展,溫度傳感器的品種繁多,下面分別提供了ad590和ds18b20傳感器的特性,最后進(jìn)行比較選擇。方案一:采用ad590溫度傳感器ad590是ad公司制成的電流輸出型兩端溫度傳感器,其正向電流與溫度成比例。在4v到30v電壓之間,此器件相當(dāng)于一個(gè)高阻抗的恒流源。ad590具有精度高、線性好等特點(diǎn),另外它還可以承
15、受4v正向電壓和20v反向電壓,所以當(dāng)器件反接時(shí)不會(huì)被損壞。但是它也有一些自身的缺點(diǎn),例如需要模擬轉(zhuǎn)數(shù)字電路、成本高、測(cè)量點(diǎn)數(shù)量少、電路繁多以及對(duì)線阻有要求等。方案二:采用ds18b20溫度傳感器ds18b20是dallas公司生產(chǎn)的單總線器件,它具有線路簡(jiǎn)單、體積小等特點(diǎn),因此多個(gè)ds18b20可以并聯(lián)在2根或3根線上,只需要一根端口線就可以和很多ds18b20進(jìn)行通信。ds18b20不需要模擬轉(zhuǎn)數(shù)字電路,只需要一個(gè)元件即可測(cè)溫,此器件還具有成本低、精確度高、信號(hào)線距離遠(yuǎn)等特點(diǎn)??偠灾?,ds18b20的優(yōu)點(diǎn)可以彌補(bǔ)ad590的缺點(diǎn),ds18b20溫度傳感器不需要a/d轉(zhuǎn)換直接可以與fpga
16、芯片相連,因此,此次課題我們將采用ds18b20作為溫度傳感器。2.2 方案論證與確立通過上述方案的比較,利用單片機(jī)作為控制器件具有原理簡(jiǎn)單、電路可靠,易于實(shí)現(xiàn)控制功能等優(yōu)點(diǎn),然而,這種情況下的溫度測(cè)量電路和譯碼電路是比較復(fù)雜且易于出錯(cuò),同時(shí)電路產(chǎn)生的誤差會(huì)大大降低設(shè)備的壽命;利用fpga作為核心控制器件,并且采用高精度數(shù)字溫度傳感器ds18b20,采集溫度信號(hào)時(shí)直接由傳感器采集,不需要信號(hào)放大和a/d轉(zhuǎn)換,這樣做可以大大簡(jiǎn)化電路連接減少誤差,并且使用fpga芯片可以利用其自身具有的可編程修改的特點(diǎn)避免了在設(shè)計(jì)過程中的麻煩,采用這種方法既可以為設(shè)計(jì)過程帶來便利,又可以增加市場(chǎng)競(jìng)爭(zhēng)力。綜上所述,
17、本次設(shè)計(jì)采用fpga作為核心器件以及選用ds18b20溫度傳感器實(shí)現(xiàn)其功能,且實(shí)現(xiàn)結(jié)果是基于quartus ii仿真軟件進(jìn)行驗(yàn)證。2.3 quartus ii介紹max+ plus ii作為altera的上一代pld設(shè)計(jì)軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前altera已經(jīng)停止了對(duì)max+ plus ii 的更新支持。quartus ii 是altera公司繼 max+ plus ii之后開發(fā)的一種針對(duì)其公司生產(chǎn)的系列cpld/pgfa器件的綜合性開發(fā)軟件,具有從設(shè)計(jì)輸入到器件編程的所有功能,并且為用戶提供了一整套設(shè)計(jì)解決方案,能夠完成可編程片上系統(tǒng)的整個(gè)開發(fā)流程,在使用界面上更友好
18、和人性化3。它的版本不斷升級(jí),從4.0版本已經(jīng)更新到13.0版本,本次課題就是使用工具軟件quartus ii11.0。該軟件有如下幾個(gè)顯著的特點(diǎn): 2.3.1 quartus ii 的優(yōu)點(diǎn) 該軟件界面友好,使用便捷,功能強(qiáng)大,是一個(gè)完全集成化的可編程邏輯設(shè)計(jì)環(huán)境,是先進(jìn)的eda工具軟件。該軟件具有開放性、與結(jié)構(gòu)無關(guān)、多平臺(tái)、完全集成化、豐富的設(shè)計(jì)庫(kù)、模塊化工具等特點(diǎn),支持原理圖、vhdl、verilog hdl以及ahdl(altera hardware description language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整pld設(shè)計(jì)流程
19、。quartus ii 可以在 xp、linux 以及 unix上使用,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。最重要的是quartus ii 11.0還特別容易學(xué)習(xí)與操作,所以,深受開發(fā)者的歡迎。2.3.2 quartus ii 對(duì)器件的支持quartus ii 支持 altera公司的 max 3000a 系列、max 7000 系列、 max 9000 系列、 acex 1k 系列、apex 20k 系列、apex ii 系列、flex 6000 系列、flex 10k 系列,支持 max7000/max3000 等乘積項(xiàng)器件。 支持 max
20、 ii cpld 系列、cyclone 系列、cyclone ii、stratix ii 系列、stratix gx 系列等。支持 ip核,包含了lpm/megafunction 宏功能模 塊庫(kù),用戶可以充分利用成熟的模塊,簡(jiǎn)化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。此外,quartus ii 通過和 dsp builder 工具與 matlab/simulink 相結(jié)合, 可以方便地實(shí)現(xiàn)各種 dsp 應(yīng)用系統(tǒng);支持 altera 的片上可編程系統(tǒng)(sopc)開發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。 2.3.3 quartus ii 對(duì)第三方 eda 工具的支
21、持 對(duì)第三方eda工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方eda工具。altera的quartus ii可編程邏輯軟件屬于第四代 pld開發(fā)平臺(tái)。 該平臺(tái)支持一個(gè)工作組環(huán)境下的設(shè)計(jì)要求,其中包括支持基于internet的協(xié)作設(shè)計(jì)。quartus平臺(tái)與 cadence、exemplarlogic、 mentorgraphics、synopsys 和 synplicity等eda供應(yīng)商的開發(fā)工具相兼容。改進(jìn)了軟件的 logiclock 模塊設(shè)計(jì)功能,增添了fastfit 編譯選項(xiàng),推進(jìn)了網(wǎng)絡(luò)編輯性能,而且提升了調(diào)試能力。quartus ii設(shè)計(jì)流程如圖2.3所示。圖2.3 q
22、uartus ii設(shè)計(jì)流程 3. 系統(tǒng)的硬件設(shè)計(jì)3.1 系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì)本次設(shè)計(jì)的數(shù)字溫度計(jì)主要3部分構(gòu)成,溫度采集模塊(ds18b20),數(shù)據(jù)處理模塊(fpga),數(shù)碼管顯示模塊。系統(tǒng)硬件結(jié)構(gòu)框圖如圖3.1。圖3.1 系統(tǒng)硬件結(jié)構(gòu)框圖3.1.1 溫度采集模塊鑒于要測(cè)量溫度,而開發(fā)板沒有測(cè)量溫度的設(shè)備,所以最基本是要添加外設(shè)數(shù)字溫度傳感器ds18b20。ds18b20外形與三極管一樣,一只腳傳輸數(shù)據(jù),另外兩只腳分別接地與高電平使之工作。ds18b20實(shí)時(shí)測(cè)得的室溫將轉(zhuǎn)化成9到12位的串行數(shù)據(jù),對(duì)串行數(shù)據(jù)進(jìn)行“翻譯”就可以得出實(shí)時(shí)室溫。ds18b20主要由七部分組成:高速暫存器、8位crc發(fā)生
23、器、64位光刻rom、寄生電源、溫度傳感器、高溫觸發(fā)器th和低溫觸發(fā)器tl。64位光刻rom是溫度敏感元件,其中包含了ds18b20唯一的序列號(hào)(唯一的名字)。 ds18b20共有3個(gè)引腳:gnd、dq和vdd4。其測(cè)得的數(shù)據(jù)與溫度關(guān)系如表3.1所示。表3.1 溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)溫度()數(shù)據(jù)輸出 (二進(jìn)制)數(shù)據(jù)輸出(十六進(jìn)制)+125 +85 +25. 0625+10.125 +0.5 0 -0.5 -10.125 -25.0625 -55 0000 0111 1101 00000000 0101 0101 00000000 0001 1001 00010000 0000 1010 0
24、0100000 0000 0000 10000000 0000 0000 00001111 1111 1111 10001111 1111 0101 11101111 1110 0110 11111111 1100 1001 000007d0h0550h0191h00a2h0008h0000hfff8hff5ehfe6ehfc90h圖3.2是ds18b20的測(cè)溫原理。從圖中可以看出隨著溫度的變化,低溫度系數(shù)晶振的振蕩頻率基本不會(huì)發(fā)生變化,減法計(jì)數(shù)器1接收到的信號(hào)是用于產(chǎn)生固定頻率的脈沖信號(hào);溫度對(duì)高溫度系數(shù)晶振的振蕩頻率的影響很大,因此,減法計(jì)數(shù)器2的脈沖輸入就是其所產(chǎn)生的信號(hào)。圖中實(shí)際上還隱
25、含了一個(gè)計(jì)數(shù)門,ds18b20隨著計(jì)數(shù)門的開啟,對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖計(jì)數(shù),最終完成溫度測(cè)量。實(shí)際上,高溫度系數(shù)振蕩器決定了計(jì)數(shù)門的開啟時(shí)間。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)振蕩器產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),如果這個(gè)計(jì)數(shù)器1的預(yù)置數(shù)為0,那么溫度寄存器的值將會(huì)在此基礎(chǔ)上加1,同時(shí)減法計(jì)數(shù)器1重新裝入預(yù)置數(shù),并對(duì)低溫度系數(shù)振蕩器產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),當(dāng)減法計(jì)數(shù)器2計(jì)數(shù)變到0后,溫度寄存器的值便停止累加,在這種情況下,所測(cè)溫度值與溫度寄存器中的數(shù)值一致。其中,斜率累加器的作用是修正預(yù)置值,只要計(jì)數(shù)器一直沒有被關(guān)閉,那么就重復(fù)以上的過程,直到溫度寄存器與被測(cè)溫度值一致5。圖3.2 ds18b20
26、測(cè)溫原理由于 ds18b20 是采用一根 i/ o 總線讀寫數(shù)據(jù),因此ds18b20 對(duì)讀寫數(shù)據(jù)位有嚴(yán)格的時(shí)序要求。ds18b20 遵循相應(yīng)的通信協(xié)議從而保證數(shù)據(jù)傳輸?shù)恼_性和完整性。該通信協(xié)議定義了多種信號(hào)時(shí)序:初始化時(shí)序、 寫時(shí)序、 讀時(shí)序。 3.1.1.1初始化時(shí)序初始化時(shí)序中,控制器發(fā)送一個(gè)480us-960us的低電平的復(fù)位信號(hào),然后釋放總線,也就是總線為高電平,此時(shí),控制器準(zhǔn)備接收ds18b20的反應(yīng)信號(hào),當(dāng)總線釋放后,如果存在ds18b20,那么ds18b20將在15-60us內(nèi)發(fā)送一個(gè)持續(xù)60-240us的反應(yīng)信號(hào),如圖3.3所示。圖3.3 初始化時(shí)序原理圖3.1.1.2寫時(shí)序
27、因?yàn)楸驹O(shè)計(jì)總線上只掛了一個(gè)ds18b20,所以不用讀取64位序列號(hào),直接發(fā)送忽略rom命令skin rom,如圖3.4所示。圖3.4 寫時(shí)序原理圖寫時(shí)序有寫1和寫2時(shí)序,首先將總線拉低電平,拉低后15us之內(nèi)必須把所要向ds18b20寫的數(shù)據(jù)傳到總線上,ds18b20將在15us-60us內(nèi)采樣總線上的數(shù)據(jù),如果為高則寫1,為低則寫0;寫完一次后釋放總線。每?jī)纱螌憯?shù)據(jù)之間時(shí)隙要大于1us。3.1.1.3讀時(shí)序 讀時(shí)序時(shí),總線拉低電平大于1us后,然后釋放總線準(zhǔn)備接收ds18b20傳來的數(shù)據(jù),ds18b20將在總線拉低后15us之內(nèi)將數(shù)據(jù)傳到總線上,因此,控制器必須在拉低電平然后釋放總線15us
28、之內(nèi)采樣總線上的數(shù)據(jù)。每次讀取一位數(shù)據(jù)不小于60us,如圖3.5所示。圖3.5 讀時(shí)序原理圖3.1.1.4 電源連接ds18b20可使用寄生電源,可以在 i/o引腳處于高電平時(shí)獲取些能量,儲(chǔ)存在電容中供正常使用,但進(jìn)行精確轉(zhuǎn)換時(shí)需要 i/o引腳保持大電流供電,這樣對(duì) fpga 芯片引腳造成很大壓力,所以使用 vdd 引腳接外部電源。ds18b20 進(jìn)行溫度轉(zhuǎn)換需要很大電流,工作最大電流可達(dá) 1 ma。使用 vdd 引腳接外部電源供電的優(yōu)點(diǎn)在于i/o 線上不需要在溫度變換期間保持高電平。這樣就可以有效的保護(hù) fpga 芯片,也可在單總線上放置多數(shù)目的ds18b20。使用外部電源,通過發(fā)出 ski
29、p rom 跳過命令,然后發(fā)出 convert t變換命令,可以完成溫度變換。3.1.1.5 數(shù)據(jù)輸出控制器從ds18b20接收的16位溫度值為12位,精度為0.0625, ds18b20用12位存貯溫值度。最高位為符號(hào)位,正溫度 s=0 如0550h為+85度,0191h為25.0625度,fc90h為-55 度,如圖3.6所示。圖3.6 溫度寄存器格式表本次試驗(yàn)顯示忽略了小數(shù)位,只取整數(shù)位,那么只取data10:4這7位,便是溫度的整數(shù)值。3.2 數(shù)據(jù)處理模塊數(shù)據(jù)處理是在fpga內(nèi)部進(jìn)行的。用fpga對(duì)ds18b20進(jìn)行驅(qū)動(dòng)從而得到溫度數(shù)據(jù),fpga需要完成ds18b20的初始化、讀取ds
30、18b20的48位id號(hào)、啟動(dòng)ds18b20溫度轉(zhuǎn)換、讀取溫度轉(zhuǎn)化結(jié)果。讀取48位id號(hào)和讀取溫度轉(zhuǎn)換結(jié)果過程中,fpga還要實(shí)現(xiàn)crc校驗(yàn)碼的計(jì)算,保證通信數(shù)據(jù)的可靠性。這就需要對(duì)fpga進(jìn)行一定的了解。fpga的基本單元是可編程邏輯器件(pld),pld的可編程特性使得它能夠在ic設(shè)計(jì)中提供電路仿真和驗(yàn)證,從而大大提高了產(chǎn)品的生產(chǎn)效率和生產(chǎn)速率。如今,pld在經(jīng)歷了幾個(gè)階段后終于發(fā)展成了fpga和cpld。在此發(fā)展過程中,pld強(qiáng)大的功能使得它被廣泛應(yīng)用于生活之中。20世紀(jì)70年代初期,可編程邏輯器件prom和pla的出現(xiàn)替代了高成本的掩膜編程rom,接著amd公司又研制出了可編程陣列邏輯
31、器件(programmable array logic,pal)。3.2.1 可編程邏輯器件的發(fā)展歷程工程師們發(fā)明的prom解決了rom很難存儲(chǔ)代碼的問題。工程師通過prom提供的一個(gè)簡(jiǎn)單且與芯片有關(guān)的編程器,將代碼寫入芯片中。燒入后的prom在斷電后可以保存數(shù)據(jù)。但是prom的缺點(diǎn)是它的速度與輸入端受到一定的限制。為了解決這個(gè)問題就出現(xiàn)了programmable logic array(pla),許多和“與”陣列相連接的輸入端構(gòu)成了pla,同時(shí)還將“與”陣列的輸出連接到“或”陣列,最后產(chǎn)生輸出。pla結(jié)構(gòu)示意圖如3.7所示。 圖3.7 pla的結(jié)構(gòu)示意圖pal是在pla的基礎(chǔ)上發(fā)展起來的一個(gè)
32、新版本,它們的共同點(diǎn)是都含有“與”陣列。不同的地方在于“或”陣列是否可以編程,其中pla是可編程的,而pal是固定的不可以編程的。很明顯,這樣的設(shè)計(jì)限制了參與“或”運(yùn)算的個(gè)數(shù),但是由于輸入和輸出端都加了反相器,工程師想實(shí)現(xiàn)邏輯函數(shù)的話,可以選擇執(zhí)行“與”和“或”陣列兩種不同的方案,這種做法還是可以使得pal能夠?qū)崿F(xiàn)很多布爾表達(dá)式。另外,pal具有簡(jiǎn)化編程算法、運(yùn)算速度提高等優(yōu)點(diǎn)被適用于中小規(guī)模可編程電路中6。3.2.2 可編程邏輯器件的分類由于可編程邏輯器件供應(yīng)廠家非常多,而且名稱也不盡相同,因此有不同的分類方法。按pld結(jié)構(gòu)和復(fù)雜度可以將可編程邏輯器件分為簡(jiǎn)單pld和復(fù)雜pld(cpld)兩
33、種,通常,它們又被稱為低密度pld和高密度pld(hpld)。低密度pld具有集成度高、開發(fā)周期短、速度快等優(yōu)點(diǎn)。然而,由于自身的局限性,設(shè)計(jì)功能較復(fù)雜的用戶不適合使用此器件。其具體的劃分如圖3.8所示。 圖3.8 pld結(jié)構(gòu)圖根據(jù)pld可編程特性可將其分為兩種類型:一次可編程、重復(fù)可編程。一次可編程器件的代表器件主要有熔絲型fpga、pal和prom。對(duì)于重復(fù)可編程器件來說,該器件采用電擦除的器件壽命會(huì)比使用紫外線方式好些,因?yàn)橛米贤饩€擦除的器件只能使用幾十次。如今,靜態(tài)隨機(jī)存取存儲(chǔ)器結(jié)構(gòu)(sram)被應(yīng)用于大部分產(chǎn)品中,所以重復(fù)可編程器件能夠?qū)崿F(xiàn)無限次編程。按編程元器件可以分為熔絲型開關(guān)、
34、eprom、sram、可編程低阻電路和eeprom五種類型。若按內(nèi)部互聯(lián)結(jié)構(gòu)可以將可編程邏輯器件分為fpga和cpld兩種類型。cpld屬于確定型結(jié)構(gòu),其內(nèi)部的互聯(lián)資源由長(zhǎng)度固定的連線組成。邏輯單元的主體是由“與或陣列”組成的,我們可以通過“與或陣列”來實(shí)現(xiàn)所需要的功能。fpga屬于統(tǒng)計(jì)型結(jié)構(gòu),其內(nèi)部的互聯(lián)資源要比cpld復(fù)雜的多,它包括很多不同長(zhǎng)度的連線資源, 每次布線的數(shù)據(jù)通路延時(shí)可能不同。fpga的內(nèi)部邏輯單元是由sram組成,通過查找表fpga可以實(shí)現(xiàn)任何邏輯函數(shù)7。3.2.3 cpld/fpga的基本結(jié)構(gòu)隨著半導(dǎo)體技術(shù)的不斷發(fā)展,用戶對(duì)集成度的要求不斷提高,復(fù)雜可編程邏輯器件(cpl
35、d)也開始逐漸發(fā)展起來。原先,cpld具有可擦除、可編程的功能,其結(jié)構(gòu)和pal/gal相似,但是cpld的集成度比它們要高很多。如今,驚人的工藝進(jìn)步速度使得cpld百萬門級(jí)的規(guī)模取代了pal和gal中1000門以下的芯片系列,同時(shí),為了合理利用芯片使其利用率和工作頻率得到提高,因此改進(jìn)了cpld的內(nèi)部結(jié)構(gòu),從而使得其應(yīng)用領(lǐng)域不斷擴(kuò)大。目前,有許多著名的公司生產(chǎn)cpld,雖然種類繁多,但是我們可以根據(jù)其共同之處將其概括為三個(gè)部分:互聯(lián)資源、可編程邏輯陣列塊、輸入/出塊。圖3.9為乘積項(xiàng)陣列型cpld的基本結(jié)構(gòu)。 圖3.9 基于乘積項(xiàng)陣列型cpld的基本結(jié)構(gòu)示意圖20世紀(jì)80年代中期,美國(guó)xili
36、nx公司創(chuàng)建了高密度可編程器件fpga。與低密度pld相比,它通過內(nèi)部邏輯單元之間的連接來完成所有復(fù)雜邏輯電路功能。目前,單片fpga的工作速度已經(jīng)大于500mhz,在結(jié)構(gòu)上已經(jīng)能夠完成復(fù)雜系統(tǒng)所需要的主要功能。fpga根據(jù)編程技術(shù)被劃分為兩類:基于sram編程的fpga和基于反熔絲編程的fpga。 可編程布線資源(pi)、可配置邏輯模塊(clb)、可編程輸入輸出模塊(iob)三部分構(gòu)成了基于sram編程的fpga。此器件具有反復(fù)編程,開發(fā)設(shè)計(jì)不需要專門的編程器,與cmos工藝的存儲(chǔ)器兼容,價(jià)格較低等特點(diǎn)。其中,用戶指定的邏輯功能是通過clb實(shí)現(xiàn)的;內(nèi)部邏輯陣列和外部引腳之間的一個(gè)可編程接口是
37、由iob提供的;clb與clb和clb與iob之間的連線是由pi提供的,以此來傳遞信息。 采用反熔絲編程的fpga具有抗輻射、集成度高、功耗低等特點(diǎn),由于反熔絲開關(guān)是一種一次性編程器件,所以此器件也屬于一次性可編程fpga,由于該器件修改和系統(tǒng)升級(jí)比較困難,因此,這種器件適合于設(shè)計(jì)定型后的批量生產(chǎn)8。3.2.4 可編程邏輯器件的應(yīng)用隨著電子技術(shù)的迅猛發(fā)展,目前的fpga和cpld器件在可靠性、集成度、速度以及功能等方面能夠滿足許多場(chǎng)合的要求。因此,傳統(tǒng)的電路將被大規(guī)模集成電路替代已經(jīng)成為了技術(shù)領(lǐng)域的必然趨勢(shì)。 (1)pld在電子技術(shù)領(lǐng)域中的應(yīng)用在通信領(lǐng)域中,cpld和fpga在集成度、功能和性
38、能上的優(yōu)勢(shì)可以滿足通信系統(tǒng)功能更強(qiáng)、體積更小、速度更快和功耗更低等要求。因此,大規(guī)模邏輯器件被廣泛應(yīng)用在民用和軍用方面。如移動(dòng)電話、調(diào)制解調(diào)器、雷達(dá)等設(shè)備。在數(shù)字信號(hào)處理技術(shù)領(lǐng)域(dsp)中,fpga/cpld和dsp技術(shù)相結(jié)合,能夠彌補(bǔ)由于dsp實(shí)時(shí)性和靈活性不強(qiáng)所帶來的缺陷。因此,使用fpga/cpld設(shè)計(jì)dsp系統(tǒng),既可以縮小系統(tǒng)體積又可以提高系統(tǒng)的工作速度。 (2)pld在asic設(shè)計(jì)中的應(yīng)用asic是可編程邏輯器件發(fā)展的基礎(chǔ),以前采用的是全定制和半定制電路的方法設(shè)計(jì)asic。如果在設(shè)計(jì)完成后不能滿足設(shè)計(jì)要求,那么就必須進(jìn)行重新設(shè)計(jì)和驗(yàn)證,這樣做不僅會(huì)使得產(chǎn)品開發(fā)時(shí)間變長(zhǎng),還會(huì)極大增加
39、產(chǎn)品的開發(fā)費(fèi)用。fpga/cpld芯片除了具有asic的特點(diǎn)外,還具有接入內(nèi)核的引腳數(shù)目不是有限的這一特點(diǎn)。因此,采用可編程邏輯器件能夠使得開發(fā)成本降低同時(shí)能夠縮短研制時(shí)間。 (3)pld在數(shù)字電路實(shí)驗(yàn)中的應(yīng)用目前,在數(shù)字電路實(shí)驗(yàn)中會(huì)用到大量的門電路、觸發(fā)器等,如果每次實(shí)驗(yàn)課程都大量購(gòu)置邏輯集成芯片,將會(huì)使得大量芯片(尤其是有的邏輯芯片)被閑置,增加經(jīng)費(fèi)開支。由于pld幾乎能夠構(gòu)成所有的中規(guī)模組合集成電路,因此,把pld應(yīng)用在數(shù)字電路實(shí)驗(yàn)中,可以大大減少器材選購(gòu)和經(jīng)費(fèi)開支,把實(shí)驗(yàn)操作變得簡(jiǎn)單化。3.2.5 eda技術(shù)在過去幾十年里,eda技術(shù)隨著電子設(shè)計(jì)技術(shù)和計(jì)算機(jī)的不斷發(fā)展也取得了很大的進(jìn)展
40、。所謂eda技術(shù),簡(jiǎn)單的說,它的發(fā)展是以計(jì)算機(jī)為平臺(tái),用來發(fā)展的工具是eda軟件,并且設(shè)計(jì)硬件描述語言,最后由計(jì)算機(jī)自動(dòng)完成編譯、布局、仿真測(cè)試等一連串的步驟,最終設(shè)計(jì)出電子產(chǎn)品的自動(dòng)化設(shè)計(jì)過程。使用軟件設(shè)計(jì)的方法設(shè)計(jì)硬件部分是eda技術(shù)的一大特色,換句話說,利用hdl語言和eda軟件的組合就可以實(shí)現(xiàn)硬件功能。整個(gè)系統(tǒng)可以集成在一片芯片上,因此,它具有功耗低、可靠性高和體積小等特點(diǎn)。由于eda技術(shù)的性價(jià)比不斷提高且向著深度與廣度兩個(gè)方面的發(fā)展,在實(shí)際生活中,eda技術(shù)被更廣泛的應(yīng)用于3個(gè)領(lǐng)域中:電類專業(yè)的高等院校實(shí)踐與科研,專業(yè)從事集成電路和新產(chǎn)品的開發(fā)以及傳統(tǒng)機(jī)電設(shè)備的技術(shù)革新和升級(jí)換代???/p>
41、之,不論被應(yīng)用在什么領(lǐng)域,使用eda技術(shù)都能為人們帶來很多方便9。3.2.6 verilog hdl在eda中的應(yīng)用如今,幾乎所有eda開發(fā)環(huán)境都支持verilog hdl語言。verilog hdl最初的目的是為了設(shè)計(jì)大規(guī)模及超大規(guī)模集成電路,在工程應(yīng)用上,verilog hdl語言需要eda工具的支持。verilog hdl工程設(shè)計(jì)的流程主要包括設(shè)計(jì)輸入、仿真、下載以及調(diào)試等步驟。如圖3.10是verilog hdl工程設(shè)計(jì)流程。圖3.10 verilog hdl工程設(shè)計(jì)流程3.3數(shù)碼管顯示模塊本次課題測(cè)得的數(shù)據(jù)需要用數(shù)碼管顯示出來,數(shù)碼管有動(dòng)態(tài)靜態(tài)之分,靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度
42、高,缺點(diǎn)是占用i/o端口多,實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性,因此我們選擇的是8段共陽動(dòng)態(tài)數(shù)碼管來顯示此次測(cè)量的數(shù)據(jù)。數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(com)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到+5v,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有
43、發(fā)光二極管的陰極接到一起形成公共陰極(com)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到地線gnd上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。 led數(shù)碼管是由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個(gè)筆劃,公共電極。led數(shù)碼管常用段數(shù)一般為7段有的另加一個(gè)小數(shù)點(diǎn),還有一種是類似于3位“+1”型。位數(shù)有半位,1,2,3,4,5,6,8,10位等等.,led數(shù)碼管根據(jù)led的接法不同分為共陰和共陽兩類,了解led的這些特性,對(duì)編程是很重要的,因?yàn)椴煌愋偷臄?shù)碼管,除了它們的硬件電路有差異
44、外,編程方法也是不同的。共陰和共陽極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。顏色有紅,綠,藍(lán),黃等幾種。led數(shù)碼管廣泛用于儀表,時(shí)鐘,車站,家電等場(chǎng)合。選用時(shí)要注意產(chǎn)品尺寸顏色,功耗,亮度,波長(zhǎng)等。下面將介紹常用led數(shù)碼管內(nèi)部引腳圖片。圖3.11 led數(shù)碼管 圖3.11 這是一個(gè)7段帶小數(shù)點(diǎn)的數(shù)碼管,每一筆劃都是對(duì)應(yīng)一個(gè)字母表示,dp是小數(shù)點(diǎn)。4 系統(tǒng)總體模塊設(shè)計(jì)傳統(tǒng)的硬件電路設(shè)計(jì)方法已經(jīng)隨著verilog hdl語言的出現(xiàn),被其新生的自上而下設(shè)計(jì)方法所替代,自上而下的設(shè)計(jì)方法是先將需要設(shè)計(jì)的內(nèi)容細(xì)化,分成各個(gè)小模塊,設(shè)計(jì)完各個(gè)小模塊后再對(duì)系統(tǒng)硬件進(jìn)行整體設(shè)
45、計(jì)。4.1 verilog hdl語言介紹verilog hdl是一種硬件描述語言,用于從算法級(jí)、門級(jí)到開關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對(duì)象的復(fù)雜性可以介于簡(jiǎn)單的門和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進(jìn)行時(shí)序建模。verilog hdl 語言具有下述描述能力:設(shè)計(jì)的行為特性、設(shè)計(jì)的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制。所有這些都使用同一種建模語言。此外,verilog hdl語言提供了編程語言接口,通過該接口可以在模擬、驗(yàn)證期間從設(shè)計(jì)外部訪問設(shè)計(jì),包括模擬的具體控制和運(yùn)行。verilog hdl
46、語言不僅定義了語法,而且對(duì)每個(gè)語法結(jié)構(gòu)都定義了清晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用verilog仿真器進(jìn)行驗(yàn)證。verilog hdl提供了擴(kuò)展的建模能力,其中許多擴(kuò)展最初很難理解。但是,verilog hdl語言的核心子集非常易于學(xué)習(xí)和使用,這對(duì)大多數(shù)建模應(yīng)用來說已經(jīng)足夠。當(dāng)然 ,完整的硬件描述語言足以對(duì)從最復(fù)雜的芯片到完整的電子系統(tǒng)進(jìn)行描述。verilog hdl語言最初是于1983年由gateway design automation 公司為其模擬器產(chǎn)品開發(fā)的硬件建模語言。那時(shí)它只是一種專用語言。由于他們的模擬、仿真器產(chǎn)品的廣泛使用,verilog hdl 作為一種便
47、于使用且實(shí)用的語言逐漸為眾多設(shè)計(jì)者所接受。在一次努力增加語言普及性的活動(dòng)中, verilog hdl語言于1990年被推向公眾領(lǐng)域。open verilog international(ovi)是促進(jìn)verilog發(fā)展的國(guó)際性組織。1992年, ovi決定致力于推廣verilog ovi標(biāo)準(zhǔn)成為ieee標(biāo)準(zhǔn)。這一努力最后獲得成功, verilog 語言于1995年成為ieee標(biāo)準(zhǔn),稱為ieee std1 3641995。完整的標(biāo)準(zhǔn)在verilog硬描述語言參考手冊(cè)中有詳細(xì)描述。verilog的設(shè)計(jì)初衷是成為一種基本語法與c語言相近的硬件描述語言。這是因?yàn)閏語言在verilog設(shè)計(jì)之初,已經(jīng)在許
48、多領(lǐng)域得到廣泛應(yīng)用,c語言的許多語言要素已經(jīng)被許多人習(xí)慣。一種與c語言相似的硬件描述語言,可以讓電路設(shè)計(jì)人員更容易學(xué)習(xí)和接受。不過,verilog與c語言還是存在許多差別。另外,作為一種與普通計(jì)算機(jī)編程語言不同的硬件描述語言,它還具有一些獨(dú)特的語言要素,例如向量形式的線網(wǎng)和寄存器、過程中的非阻塞賦值等??偟膩碚f,具備c語言的設(shè)計(jì)人員將能夠很快掌握verilog硬件描述語言。4.2 軟件程序設(shè)計(jì) 根據(jù)系統(tǒng)的設(shè)計(jì)要求,將程序部分設(shè)計(jì)分為4個(gè)模塊,包括分頻模塊、ds18b20驅(qū)動(dòng)模塊、數(shù)制轉(zhuǎn)換模塊、顯示模塊,如圖4.1所示。利用verilog語言在quartusii開發(fā)平臺(tái)上完成程序設(shè)計(jì)。圖4.1
49、系統(tǒng)的總框圖4.2.1 ds18b20驅(qū)動(dòng)模塊ds18b20驅(qū)動(dòng)模塊是總程序,調(diào)用三個(gè)子程序,從而達(dá)到溫度的顯示。 ds18b20采用一根io總線讀寫數(shù)據(jù),因此它對(duì)讀寫數(shù)據(jù)位有嚴(yán)格的時(shí)序要求。ds18b20 遵循相應(yīng)的通信協(xié)議從而保證數(shù)據(jù)傳輸?shù)恼_性和完整性。該通信協(xié)議定義了多種信號(hào)時(shí)序:初始化時(shí)序、 寫時(shí)序、 讀時(shí)序。從分頻模塊的clk_1m輸出1mhz到通信模塊的clk作為時(shí)鐘信號(hào);根據(jù)ds18b20所遵循的初始化時(shí)序、讀時(shí)序、寫時(shí)序等通信協(xié)議將程序完成;將獲取的12位的溫度信號(hào)傳送給下一個(gè)模塊10。4.2.2分頻模塊 分頻模塊是fpga設(shè)計(jì)項(xiàng)目中的基本模塊之一。針對(duì)50mhz的時(shí)鐘頻率進(jìn)
50、行分頻產(chǎn)生1mhz頻率控制信號(hào)和1khz頻率掃描信號(hào),分頻模塊如圖4.2所示。圖4.2 分頻模塊1端口說明clk:輸入50m時(shí)鐘;rst:復(fù)位信號(hào);clk_1k:分頻后輸出的時(shí)鐘clk_1m:分頻后輸出的時(shí)鐘。2 原理分析系統(tǒng)時(shí)鐘信號(hào)進(jìn)入分頻模塊clk引腳,經(jīng)過分頻后得到信號(hào)clk_1m和clk_1k輸出。輸出的clk_1k的頻率信號(hào)用于掃描數(shù)碼管做動(dòng)態(tài)顯示,使人不會(huì)看到數(shù)碼管的閃爍感;輸出的clk_1m的頻率信號(hào)用于產(chǎn)生1us 時(shí)鐘,用于控制傳感器讀寫時(shí)序。分頻模塊用verilog hdl語言描述,見附錄b。4.2.3 數(shù)制轉(zhuǎn)換模塊 利用數(shù)制轉(zhuǎn)換模塊將輸入的16位二進(jìn)制的溫度數(shù)據(jù)轉(zhuǎn)換為bcd
51、碼,如圖4.3所示。圖4.3 數(shù)制轉(zhuǎn)換模塊1 端口說明data15.0:輸入16位數(shù)據(jù)bcd_out11.0:輸出12位數(shù)據(jù)2 原理分析 圖4.3中,data15.0表示從ds18b20獲取的16位數(shù)據(jù),前4位表示溫度的正負(fù)號(hào),后12位表示數(shù)據(jù),本次試驗(yàn)顯示忽略了小數(shù)位和負(fù)號(hào),只取整數(shù)位,那么只取data10:4這7位,便是溫度的整數(shù)值。bcd_out11.0的每四位儲(chǔ)存一個(gè)數(shù)據(jù),一共有3個(gè)數(shù)據(jù),這三個(gè)數(shù)據(jù)分別代表著溫度的個(gè)位、十位、百位,便于在下一個(gè)模塊中便于將其轉(zhuǎn)換成十進(jìn)制顯示出來。數(shù)制轉(zhuǎn)換模塊用verilog hdl語言描述,見附錄b。4.2.4顯示模塊本次顯示采用的動(dòng)態(tài)顯示。數(shù)碼管動(dòng)態(tài)
52、顯示接口是應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極com增加位選通控制電路,位選通由各自獨(dú)立的i/o線控制,當(dāng)fpga輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于fpga對(duì)位選通com端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的com端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝
53、效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,缺點(diǎn)就是亮度稍低,但是它能夠節(jié)省大量的i/o端口,而且功耗更低。從數(shù)制轉(zhuǎn)換模塊輸出的bcd碼轉(zhuǎn)換成十進(jìn)制數(shù)接入到顯示模塊中,將其譯碼為七段值,輸出到共陽數(shù)碼管上顯示,模塊如圖4.4所示。 圖4.4 顯示模塊1 端口說明clk:輸入clk_1k的時(shí)鐘信號(hào);rst:復(fù)位信號(hào)data11.0:進(jìn)制轉(zhuǎn)換出的12位數(shù)據(jù)seg7.0:段選信號(hào);en1.0:位選信號(hào)。2 原理分析本次設(shè)計(jì)采集的溫度忽略了百位,所以只需要顯示溫度的十位跟個(gè)位就可以了,調(diào)用兩個(gè)數(shù)碼管,
54、其中一個(gè)數(shù)碼管當(dāng)作十位,另一個(gè)數(shù)碼管則是個(gè)位,當(dāng)十位的數(shù)碼譯碼為“00100101”時(shí),則說明十位數(shù)碼管將顯示數(shù)值“2”,當(dāng)個(gè)位的數(shù)碼管譯碼為“00001101”時(shí),則說明個(gè)位顯示“3”。因此個(gè)位和十位都是按照八段譯碼的原則將 09之間的數(shù)字顯示出來。該模塊用verilog hdl語言描述,見附錄b。 5整體編譯結(jié)果與分析設(shè)計(jì)采用fpga器件和ds18b20實(shí)現(xiàn)溫度測(cè)量?jī)x,fpga電路板主要由fpga器件、時(shí)鐘電路、下載電路、電源電路、顯示電路、指示燈和按鍵等構(gòu)成。核心芯片采用altera公司生產(chǎn)的cyclone ii系列ep2c5t144c8芯片。在設(shè)計(jì)溫度傳感器部分時(shí),由于ds18b20進(jìn)
55、行精確轉(zhuǎn)換時(shí)需要i/o引腳保持大電流供電,這樣對(duì)fpga芯片引腳造成很大壓力,所以要使ds18b20的vdd引腳接外部電源。5.1 整體編譯使用quartus ii進(jìn)行課題驗(yàn)證時(shí),首先要?jiǎng)?chuàng)建工程和編輯設(shè)計(jì)文件,做好編譯前設(shè)計(jì),最后再進(jìn)行全程編譯。 編譯成功后的界面如圖5.1所示。 圖5.1 編譯完成后quartus ii的界面此界面左上角為工程管理界面,顯示了工程的層次結(jié)構(gòu)和其中結(jié)構(gòu)模塊耗用的邏輯宏單元;此欄下面是編譯處理流程,包括數(shù)據(jù)網(wǎng)表建立、邏輯綜合、適配、配置文件裝配和時(shí)序分析;右欄是編譯報(bào)告項(xiàng)目選項(xiàng)菜單,單擊其中各項(xiàng)可以詳細(xì)了解編譯與分析結(jié)果;最下欄是編譯處理信息。如果工程中的文件有錯(cuò)
56、誤,錯(cuò)誤提示將在processing欄里顯示,只要雙擊錯(cuò)誤提示,就可以在對(duì)應(yīng)的verilog hdl文件中看到錯(cuò)誤,修改至完全正確即可。5.2 程序的下載調(diào)試選擇下載fpga芯片為ep2c5t144c8,在菜單中選擇pins項(xiàng)設(shè)定引腳,在彈出的窗口中設(shè)置好各個(gè)輸入輸出端與硬件相對(duì)應(yīng)的引腳,如圖5.2,并編譯通過。 將fpga的下載數(shù)據(jù)線一端連接fpga電路板,一端接計(jì)算機(jī)usb口,在命令欄里programmer項(xiàng),在彈出的窗口中選擇hardware setup,確認(rèn)計(jì)算機(jī)已與開發(fā)板連接好后,點(diǎn)擊start開始下載運(yùn)行。圖5.2 輸出端與fpga對(duì)應(yīng)的引腳 連接好ds18b20溫度傳感器電路,即可測(cè)量室內(nèi)溫度,實(shí)物電路圖如圖5.3所示。由實(shí)測(cè)知,當(dāng)前室溫為28。6 設(shè)計(jì)中遇到的問題問題:下載時(shí)出現(xiàn)錯(cuò)誤,由于器件選擇與試驗(yàn)箱不符,導(dǎo)致下載失敗。解決:重新選擇正確的器件并全部編譯后再下載。問題:連接數(shù)碼管后8段數(shù)碼管溫度顯示時(shí)常亮,不能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 自動(dòng)駕駛技術(shù)測(cè)試合作協(xié)議
- 《創(chuàng)新課程設(shè)計(jì):物理游戲化教學(xué)法教案》
- 八年級(jí)英語語法知識(shí)總結(jié)與提升教學(xué)教案
- 鋼筋綁扎承包合同
- 阿甘正傳節(jié)選與人生哲學(xué)的思考:英語文學(xué)賞析教學(xué)教案
- 網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估及防御合作協(xié)議
- 裝修工程區(qū)域消防安全協(xié)議書
- 航空航天材料科技知識(shí)重點(diǎn)梳理
- 數(shù)據(jù)空間發(fā)展戰(zhàn)略藍(lán)皮書內(nèi)容
- 知識(shí)產(chǎn)權(quán)授權(quán)轉(zhuǎn)讓與使用協(xié)議
- 集裝箱碼頭的主要單證及其流轉(zhuǎn)概述課件
- 2022暖通空調(diào)第三版課后題答案
- HUW工法在深基坑圍護(hù)工程中的應(yīng)用
- DB37-T 4383-2021 混凝土結(jié)構(gòu)硅烷浸漬技術(shù)規(guī)程
- 甘肅省平?jīng)鍪懈骺h區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 2022年大夢(mèng)杯福建省初中數(shù)學(xué)競(jìng)賽試題參考答案及評(píng)分標(biāo)準(zhǔn)
- 邊坡開挖施工要求
- 部編版六年級(jí)下冊(cè)語文教案(全冊(cè))
- 2022年湖北成人學(xué)士學(xué)位英語真題及答案
- 公共場(chǎng)所健康證體檢表
- 普通高等學(xué)校獨(dú)立學(xué)院教育工作合格評(píng)估指標(biāo)體系(第六稿)
評(píng)論
0/150
提交評(píng)論