在國(guó)民經(jīng)濟(jì)各部門,如電力、化工、機(jī)械、冶金、農(nóng)業(yè)、醫(yī)學(xué)以及人們的日常生活中,溫度采集是十分重要的。在許多模擬量控制和監(jiān)視應(yīng)用中,溫度測(cè)控通常是基于 -55℃~125℃溫度范圍內(nèi)的應(yīng)用,如環(huán)境監(jiān)測(cè)、蔬菜大棚、糧庫、熱電偶冷端溫度補(bǔ)償、設(shè)備運(yùn)行的可靠性等應(yīng)用。實(shí)時(shí)采集溫度信息,及時(shí)發(fā)現(xiàn)潛在故障,并采取相應(yīng)的處理措施,對(duì)確保設(shè)備良好運(yùn)行具有重要意義。
本文介紹了一個(gè)基于AVR單片機(jī)的溫度控制系統(tǒng),該系統(tǒng)可以方便地實(shí)現(xiàn)溫度采集、溫度顯示等功能。本系統(tǒng)的溫度控制部分采用ATmega16單片機(jī)完成。該單片機(jī)有著體積小、功耗低、功能強(qiáng)、性能價(jià)格比高、使用電子元件較少、內(nèi)部配線少、制造調(diào)試方便等顯著優(yōu)點(diǎn),將其用于溫度檢測(cè)和控制系統(tǒng)中可大大地提高控制質(zhì)量和自動(dòng)化水平,具有良好的經(jīng)濟(jì)效益和推廣價(jià)值。利用單片機(jī)對(duì)溫度進(jìn)行測(cè)控的技術(shù),日益得到廣泛應(yīng)用。
在眾多的溫度控制系統(tǒng)中,測(cè)溫元件常常選用熱敏電阻、半導(dǎo)體測(cè)溫二極管、三極管、集成溫度傳感器等。相比而言,集成溫度傳感器具有線性好、穩(wěn)定度高、互換性強(qiáng)、易處理等突出優(yōu)點(diǎn),故在許多場(chǎng)所得到了廣泛應(yīng)用。本系統(tǒng)中單片機(jī)作為下位機(jī),完成測(cè)溫任務(wù)。另外本系統(tǒng)還可以連接相應(yīng)的外圍加熱電路,當(dāng)環(huán)境溫度低于設(shè)定下限溫度時(shí),單片機(jī)發(fā)出的指令,加熱器起動(dòng)對(duì)環(huán)境進(jìn)行加熱,當(dāng)溫度回升到下限溫度時(shí)加熱器停止加熱。
系統(tǒng)軟件主要由初始化程序、主程序、監(jiān)控顯示程序等組成。其中初始化程序是對(duì)單片機(jī)的接口工作方式,A/D轉(zhuǎn)換方式等進(jìn)行設(shè)置;顯示程序包括對(duì)顯示模塊的初始化、顯示方式設(shè)定及輸出顯示;主程序則完成對(duì)采集數(shù)據(jù)進(jìn)行處理。
該系統(tǒng)應(yīng)用范圍相當(dāng)廣泛,同時(shí)采用單片機(jī)技術(shù), 由于單片機(jī)自身功能強(qiáng)大,因而系統(tǒng)設(shè)計(jì)簡(jiǎn)單,工作可靠,抗干擾能力強(qiáng),也可在此基礎(chǔ)上加入通信接口電路,實(shí)現(xiàn)與上位機(jī)之間的通信。
目前,隨著現(xiàn)代信息技術(shù)的飛速發(fā)展,溫度測(cè)量采集系統(tǒng)在工業(yè)、農(nóng)業(yè)及人們的日常生活中扮演著一個(gè)越來越重要的角色,它對(duì)人們的生活具有很大的影響,所以溫度采集系統(tǒng)的設(shè)計(jì)與研究有十分重要的意義。
任何一個(gè)物體或者環(huán)境都有其溫度屬性,只有對(duì)其溫度進(jìn)行采集,才能更好的了解物體或者環(huán)境的特點(diǎn),所以這就強(qiáng)調(diào)了溫度采集的重要性。在工業(yè)發(fā)展初期,人們通過各種簡(jiǎn)單的工具來采集溫度,包括溫度計(jì)等,但這種采集方式也存在著許多的漏洞,包括數(shù)據(jù)不精確和不能及時(shí)得反映溫度的數(shù)據(jù)。后來隨著工業(yè)技術(shù)的迅猛發(fā)展,傳感器和單片機(jī)技術(shù)的出現(xiàn)改變了溫度采集系統(tǒng)的方式,溫度采集系統(tǒng)也得到了長(zhǎng)足的進(jìn)步,已經(jīng)變得數(shù)字化和電子化,現(xiàn)今在工業(yè)中通過數(shù)字化的溫度采集模塊,溫度可以迅速得通過單片機(jī)進(jìn)行處理,并傳輸?shù)絇C機(jī)中,用來進(jìn)行進(jìn)一步的處理。
畢業(yè)設(shè)計(jì)強(qiáng)調(diào)綜合應(yīng)用所學(xué)知識(shí)能力的鍛煉與培養(yǎng),這是畢業(yè)設(shè)計(jì)有別于課程設(shè)計(jì)等其他實(shí)踐環(huán)節(jié)的重要方面,對(duì)大學(xué)生有著很重要的意義。本次課題的目的在于學(xué)習(xí)基于AVR單片機(jī)的溫度采集系統(tǒng)設(shè)計(jì)的基本原理及基本流程。本設(shè)計(jì)采用單片機(jī)作為數(shù)據(jù)處理與控制單元,為了進(jìn)行數(shù)據(jù)處理,單片機(jī)控制數(shù)字溫度傳感器,把溫度信號(hào)通過單總線從數(shù)字溫度傳感器傳遞單片機(jī)上。單片機(jī)數(shù)據(jù)處理之后,在通過串口連接至PC機(jī),顯示及進(jìn)一步處理。
1.2 AVR單片機(jī)簡(jiǎn)介ATMEL公司研發(fā)的AVR單片機(jī),為滿足不同的需求和應(yīng)用,分為Tiny系列、AT90系列和ATmega系列。這三個(gè)系列的所有型號(hào)的AVR單片機(jī),指令系統(tǒng)兼容,內(nèi)核相同,只是存儲(chǔ)器容量、片內(nèi)集成的外圍接口的數(shù)量和功能存在一些差異。用戶可以根據(jù)AVR單片機(jī)不同的引腳數(shù)目和價(jià)格各異進(jìn)行選擇,來滿足不同的應(yīng)用水平。
ATmega是AVR單片機(jī)的系列之一,ATmega系列單片機(jī)屬于AVR中的高檔產(chǎn)品。
ATmega系列AVR單片機(jī)主要有ATmega8/16/32/64/128以及ATmega8515/8535等。
該系列單片機(jī)兼容了AT90所具有的特點(diǎn),并在AT90的基礎(chǔ)上進(jìn)行了較大的改善,新增許多接口功能,在系統(tǒng)的省電特性、穩(wěn)定性、抗干擾性、靈活性等方面有所提高。
1.3 ATmega16單片機(jī)系統(tǒng)結(jié)構(gòu)ATmega16是一種基于增強(qiáng)型的AVR RISC結(jié)構(gòu)的低功耗、CMOS技術(shù)的8位微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,ATmega16的數(shù)據(jù)吞吐率高達(dá)1MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。是具有高可靠性、高速度、低功耗等特點(diǎn),是一種高性價(jià)比的單片機(jī)。
ATmega16采用精簡(jiǎn)指令集(RISC),一條指令可以在一個(gè)時(shí)鐘周期內(nèi)同時(shí)對(duì)兩個(gè)獨(dú)立的寄存器進(jìn)行訪問,是以字作為指令長(zhǎng)度單位,同時(shí)具有取值周期短、可預(yù)取指令等特點(diǎn),運(yùn)行處理能力可達(dá)到1MIPS/MHz。
ATmega16單片機(jī)具有Flash程序存儲(chǔ)器、看門狗、EEPROM、同/異步串行口、TWI、SPI、A/D模擬轉(zhuǎn)換器、定時(shí)器/計(jì)數(shù)器等多種器件和增強(qiáng)可靠性的復(fù)位系統(tǒng)。同時(shí)有降低功耗抗干擾的休眠模式、中斷系統(tǒng)、輸入捕獲、比較匹配輸出、多樣化功能的定時(shí)器/計(jì)數(shù)器以及具有替換功能的I/O端口。
1.3.2 ATmega16的總體結(jié)構(gòu)ATmega128單片機(jī)性能十分強(qiáng)大,內(nèi)部結(jié)構(gòu)相對(duì)比較復(fù)雜,其總體結(jié)構(gòu)包括以下幾個(gè)部分,分別介紹如下。
快速存取RISC寄存器是由AVR的內(nèi)核中的32個(gè)通用工作寄存器構(gòu)成的,在一個(gè)時(shí)鐘周期內(nèi)可執(zhí)行一個(gè)完整的ALU操作。
在32個(gè)通用工作寄存器中,有6個(gè)可以用作3個(gè)16位的間接地址寄存器指針,以尋址數(shù)據(jù)空間,實(shí)現(xiàn)高效的地址運(yùn)算。他們分別為X寄存器、Y寄存器、Z寄存器。
AVR單片機(jī)采用CMOS技術(shù),具有高速度、低功耗的特點(diǎn),同時(shí)還具有休眠功能。為了最大限度的提高并行處理的運(yùn)行效率,它采用了Harvard結(jié)構(gòu),即程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器使用不同的存儲(chǔ)空間和總結(jié),可直接訪問全部的數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器,寄存器文件被雙向映射并能被訪問。算術(shù)邏輯單元(ALU)在執(zhí)行某一指令時(shí),下一個(gè)指令被預(yù)先從程序存儲(chǔ)器中被提取處理,提高了MCU的運(yùn)行效率。
算術(shù)邏輯單元(ALU)支持寄存器之間以及寄存器和常數(shù)之間的算術(shù)和邏輯運(yùn)算,以及單一寄存器操作,每一次的運(yùn)算結(jié)果都通過狀態(tài)寄存器(SREG)反映出來。
AVR的程序存儲(chǔ)器空間由引導(dǎo)程序區(qū)和應(yīng)用程序區(qū)組成。他們的讀和讀/寫保護(hù)由對(duì)應(yīng)的鎖定位來實(shí)現(xiàn)。
I/O存儲(chǔ)器空間包含64個(gè)I/O寄存器空間,它們用來控制MCU的各個(gè)外圍功能。
多種獨(dú)立的時(shí)鐘分頻器為串行異步通信(URAT)、SPI提供傳輸。8/16位定時(shí)器/計(jì)數(shù)器可用作比較器、計(jì)數(shù)器外部中斷和PWM的控制輸出。AVR單片機(jī)定時(shí)器/計(jì)數(shù)器(單)雙向技術(shù)形成三角波和輸出比較匹配寄存器配合,可以生成占空比、頻率、相位可變的方波信號(hào)。
AVR單片機(jī)有自動(dòng)上電復(fù)位電路(POR),獨(dú)立的看門狗電路(WDT)、低電壓檢測(cè)電路,多個(gè)復(fù)位源,只需在復(fù)位源接一個(gè)上拉電阻即可實(shí)現(xiàn)復(fù)位,不需要另加外部復(fù)位器件。
1.4 溫度傳感器人們?yōu)榱藦耐饨绔@取信息,必須借助于感覺器官。而單靠人們自身的感覺器官,在研究自然現(xiàn)象和規(guī)律以及生產(chǎn)活動(dòng)中它們的功能就遠(yuǎn)遠(yuǎn)不夠了。為適應(yīng)這種情況,就需要傳感器。因此可以說,傳感器是人類五官的延長(zhǎng),又稱之為電五官。
新技術(shù)革命的到來,世界開始進(jìn)入信息時(shí)代。在利用信息的過程中,首先要解決的就是要獲取準(zhǔn)確可靠的信息,而傳感器是獲取自然和生產(chǎn)領(lǐng)域中信息的主要途徑與手段。
在現(xiàn)代工業(yè)生產(chǎn)尤其是自動(dòng)化生產(chǎn)過程中,要用各種傳感器來監(jiān)視和控制生產(chǎn)過程中的各個(gè)參數(shù),使設(shè)備工作在正常狀態(tài)或最佳狀態(tài),并使產(chǎn)品達(dá)到最好的質(zhì)量。因此可以說,沒有眾多的優(yōu)良的傳感器,現(xiàn)代化生產(chǎn)也就失去了基礎(chǔ)。
在基礎(chǔ)學(xué)科研究中,傳感器更具有突出的地位。傳感器早已滲透到諸如工業(yè)生產(chǎn)、宇宙開發(fā)、海洋探測(cè)、環(huán)境保護(hù)、資源調(diào)查、醫(yī)學(xué)診斷、生物工程、甚至文物保護(hù)等等極其之泛的領(lǐng)域。可以毫不夸張地說,從茫茫的太空,到浩瀚的海洋,以至各種復(fù)雜的工程系統(tǒng),幾乎每一個(gè)現(xiàn)代化項(xiàng)目,都離不開各種各樣的傳感器。
由此可見,傳感器技術(shù)在發(fā)展經(jīng)濟(jì)、推動(dòng)社會(huì)進(jìn)步方面的重要作用,是十分明顯的。世界各國(guó)都十分重視這一領(lǐng)域的發(fā)展。相信不久的將來,傳感器技術(shù)將會(huì)出現(xiàn)一個(gè)飛躍,達(dá)到與其重要地位相稱的新水平。
1.4.1 數(shù)字式溫度傳感器數(shù)字式溫度傳感器:就是能把溫度物理量,通過溫度敏感元件和相應(yīng)電路轉(zhuǎn)換成方便計(jì)算機(jī)、plc、智能儀表等數(shù)據(jù)采集設(shè)備直接讀取得數(shù)字量的傳感器。
1.5 串口概述1.5.1 串口介紹串行接口簡(jiǎn)稱串口,也稱串行通信接口(通常指COM接口),是采用串行通信方式的擴(kuò)展接口。
串行接口Serial Interface是指數(shù)據(jù)一位一位地順序傳送,其特點(diǎn)是通信線路簡(jiǎn)單,只要一對(duì)傳輸線就可以實(shí)現(xiàn)雙向通信,并可以利用電話線,從而大大降低了成本,特別適用于遠(yuǎn)距離通信,但傳送速度較慢。一條信息的各位數(shù)據(jù)被逐位按順序傳送的通訊方式稱為串行通訊。串行通訊的特點(diǎn)是:數(shù)據(jù)位傳送,傳按位順序進(jìn)行,最少只需一根傳輸線即可完成;成本低但傳送速度慢。串行通訊的距離可以從幾米到幾千米;根據(jù)信息的傳送方向,串行通訊可以進(jìn)一步分為單工、半雙工和全雙工三種。
串口的出現(xiàn)是在1980年前后,數(shù)據(jù)傳輸率是115kbps~230kbps。串口出現(xiàn)的初期是為了實(shí)現(xiàn)連接計(jì)算機(jī)外設(shè)的目的,初期串口一般用來連接鼠標(biāo)和外置Modem以及老式攝像頭和寫字板等設(shè)備。串口也可以應(yīng)用于由于兩臺(tái)計(jì)算機(jī)(或設(shè)備)之間的互聯(lián)及數(shù)據(jù)傳輸。由于串口(COM)不支持熱插拔及傳輸速率較低目前部分新主板和大部分便攜電腦已開始取消該接口,目前串口多用于工控和測(cè)量設(shè)備以及部分通信設(shè)備中。
1.5.2 串口分類串口通信的兩種最基本的方式:同步串行通信方式和異步串行通信方式。
串行接口按電氣標(biāo)準(zhǔn)及協(xié)議來分,包括RS-232-C、RS-422、RS485等。RS-232-C、RS-422與RS-485標(biāo)準(zhǔn)只對(duì)接口的電氣特性做出規(guī)定,不涉及接插件、電纜或協(xié)議。
也稱標(biāo)準(zhǔn)串口,最常用的一種串行通訊接口。它是在1970年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”。傳統(tǒng)的RS-232-C接口標(biāo)準(zhǔn)有22根線,采用標(biāo)準(zhǔn)25芯D型插頭座(DB25),后來使用簡(jiǎn)化為9芯D型插座(DB9),現(xiàn)在應(yīng)用中25芯插頭座已很少采用。
RS-232采取不平衡傳輸方式,即所謂單端通訊。由于其發(fā)送電平與接收電平的差僅為2V至3V左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約15米,最高速率為20kb/s。RS-232是為點(diǎn)對(duì)點(diǎn)(即只用一對(duì)收、發(fā)設(shè)備)通訊而設(shè)計(jì)的,其驅(qū)動(dòng)器負(fù)載為3~7kΩ。所以RS-232適合本地設(shè)備之間的通信。
標(biāo)準(zhǔn)全稱是“平衡電壓數(shù)字接口電路的電氣特性”,它定義了接口電路的特性。典型的RS-422是四線接口。實(shí)際上還有一根信號(hào)地線,共5根線。其DB9連接器引腳定義。由于接收器采用高輸入阻抗和發(fā)送驅(qū)動(dòng)器比RS232更強(qiáng)的驅(qū)動(dòng)能力,故允許在相同傳輸線上連接多個(gè)接收節(jié)點(diǎn),最多可接10個(gè)節(jié)點(diǎn)。即一個(gè)主設(shè)備(Master),其余為從設(shè)備(Slave),從設(shè)備之間不能通信,所以RS-422支持點(diǎn)對(duì)多的雙向通信。接收器輸入阻抗為4k,故發(fā)端最大負(fù)載能力是10×4k+100Ω(終接電阻)。RS-422四線接口由于采用單獨(dú)的發(fā)送和接收通道,因此不必控制數(shù)據(jù)方向,各裝置之間任何必須的信號(hào)交換均可以按軟件方式(XON/XOFF握手)或硬件方式(一對(duì)單獨(dú)的雙絞線)實(shí)現(xiàn)。
RS-422的最大傳輸距離為1219米,最大傳輸速率為10Mb/s。其平衡雙絞線的長(zhǎng)度與傳輸速率成反比,在100kb/s速率以下,才可能達(dá)到最大傳輸距離。只有在很短的距離下才能獲得最高速率傳輸。一般100米長(zhǎng)的雙絞線上所能獲得的最大傳輸速率僅為1Mb/s。
是從RS-422基礎(chǔ)上發(fā)展而來的,所以RS-485許多電氣規(guī)定與RS-422相仿。如都采用平衡傳輸方式、都需要在傳輸線上接終接電阻等。RS-485可以采用二線與四線方式,二線制可實(shí)現(xiàn)真正的多點(diǎn)雙向通信,而采用四線連接時(shí),與RS-422一樣只能實(shí)現(xiàn)點(diǎn)對(duì)多的通信,即只能有一個(gè)主(Master)設(shè)備,其余為從設(shè)備,但它比RS-422有改進(jìn),無論四線還是二線連接方式總線上可多接到32個(gè)設(shè)備。
RS-485與RS-422的不同還在于其共模輸出電壓是不同的,RS-485是-7V至+12V之間,而RS-422在-7V至+7V之間,RS-485接收器最小輸入阻抗為12kΩ、RS-422是4kΩ;由于RS-485滿足所有RS-422的規(guī)范,所以RS-485的驅(qū)動(dòng)器可以用在RS-422網(wǎng)絡(luò)中應(yīng)用。
RS-485與RS-422一樣,其最大傳輸距離約為1219米,最大傳輸速率為10Mb/s。平衡雙絞線的長(zhǎng)度與傳輸速率成反比,在100kb/s速率以下,才可能使用規(guī)定最長(zhǎng)的電纜長(zhǎng)度。只有在很短的距離下才能獲得最高速率傳輸。一般100米長(zhǎng)雙絞線最大傳輸速率僅為1Mb/s
1.6 protel DXP2004軟件基本概念以及使用Altium公司作為EDA領(lǐng)域里的一個(gè)領(lǐng)先公司,在原來Protel 99SE的基礎(chǔ)上,應(yīng)用最先進(jìn)的軟件設(shè)計(jì)方法,率先推出了一款基于Windows2000和Windows XP操作系統(tǒng)的EDA設(shè)計(jì)軟件Protel DXP。
Protel DXP2004是Altium公司于2004年推出的最新版本的電路設(shè)計(jì)軟件,該軟件能實(shí)現(xiàn)從概念設(shè)計(jì),頂層設(shè)計(jì)直到輸出生產(chǎn)數(shù)據(jù)以及這之間的所有分析驗(yàn)證和設(shè)計(jì)數(shù)據(jù)的管理。當(dāng)前比較流行的Protel 98、Protel 99 SE,就是它的前期版本。
Protel DXP 2004已不是單純的PCB(印制電路板)設(shè)計(jì)工具,而是由多個(gè)模塊組成的系統(tǒng)工具,分別是SCH(原理圖)設(shè)計(jì)、SCH(原理圖)仿真、PCB(印制電路板)設(shè)計(jì)、Auto Router(自動(dòng)布線器)和FPGA設(shè)計(jì)等,覆蓋了以PCB為核心的整個(gè)物理設(shè)計(jì)。該軟件將項(xiàng)目管理方式、原理圖和PCB圖的雙向同步技術(shù)、多通道設(shè)計(jì)、拓樸自動(dòng)布線以及電路仿真等技術(shù)結(jié)合在一起,為電路設(shè)計(jì)提供了強(qiáng)大的支持。如圖1-1,圖1-2所示為該軟件的工作界面及電路圖。

圖1-1 protel dxp2004 工作窗口

圖1-2 protel dxp2004 電路圖
與較早的版本——Protel99相比,Protel DXP 2004不僅在外觀上顯得更加豪華、人性化,而且極大地強(qiáng)化了電路設(shè)計(jì)的同步化,同時(shí)整合了VHDL和FPGA設(shè)計(jì)系統(tǒng),其功能大大加強(qiáng)了。
1.7 系統(tǒng)方案設(shè)計(jì)系統(tǒng)方案設(shè)計(jì)由硬件設(shè)計(jì)方案和軟件設(shè)計(jì)方案組成,如圖1-3所示。
本系統(tǒng)的硬件包括溫度傳感器、AVR單片機(jī)以及PC機(jī)。其中AVR單片機(jī)和PC機(jī)通過串口連接。



![]()
![]()
圖1-3 系統(tǒng)設(shè)計(jì)示意圖
1.7.1 軟件設(shè)計(jì)方案系統(tǒng)以DS18B20為傳感器用以將溫度模擬量轉(zhuǎn)化為電壓數(shù)字量以總線傳入單片機(jī),以ATmega16為主芯片,在主芯片對(duì)DS18B20傳入的溫度值進(jìn)行處理,由單片機(jī)程序控制,將經(jīng)處理后的溫度由LCD數(shù)碼管顯示出來。
本系統(tǒng)具有電路簡(jiǎn)潔,性能可靠等特點(diǎn),易于實(shí)現(xiàn)。
根據(jù)系統(tǒng)設(shè)定環(huán)境,我選擇DS18B20作為溫度采集系統(tǒng)的數(shù)字式溫度傳感器。
DS18B20 是美國(guó) Dallas 半導(dǎo)體公司的新一代數(shù)字式溫度傳感器,它具有獨(dú)特的單總線接口方式,即允許在一條信號(hào)線上掛接數(shù)十甚至上百個(gè)數(shù)字式傳感器,從而使測(cè)溫裝置與各傳感器的接口變得十分簡(jiǎn)單,克服了模擬式傳感器與微機(jī)接口時(shí)需要的A/D轉(zhuǎn)換器及其它復(fù)雜外圍電路的缺點(diǎn),由它組成的溫度測(cè)控系統(tǒng)非常方便,而且成本低、體積小、可靠性高等優(yōu)點(diǎn)。
2.1 DS18B20 數(shù)字式溫度傳感器基本特性DS18B20數(shù)字式溫度傳感器的外部形狀、內(nèi)部芯片如圖2-1所示。它使用一根總線接口實(shí)現(xiàn)和外部微處理器的通信。溫度的測(cè)量范圍為-55~ + 125°C,測(cè)量精度為 0. 5°C。傳感器的供電寄生在通信的總線上 ,可以從一根總線通信中的高電平中取得,這樣可以不需要外部的供電電源。作為替代也可直接用供電端 (VDD)供電。當(dāng)使用總線寄生供電時(shí) ,供電端必須接地,同時(shí)總線口在空閑的時(shí)候必須保持高電平,以便對(duì)傳感器充電。每一個(gè) DS18B20 溫度傳感器都有一個(gè)自己特有的芯片序列號(hào),我們可以將多個(gè)這樣的溫度傳感器掛接在一根總線上,實(shí)現(xiàn)多點(diǎn)溫度的檢測(cè)。


圖2-1 DS18B20外部形狀、管腳圖及接入圖
DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如圖2-2所示。

圖2-2 DS18B20內(nèi)部結(jié)構(gòu)
DS18B20的特性:
(1)適應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5V,寄生電源方式下可由數(shù)據(jù)線供電。
(2)獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。
(3)DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫。
(4)DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。
(5)溫范圍-55℃~+125℃,在-10~+85℃時(shí)精度為±0.5℃。
(6)可編程的分辨率為9~12位,對(duì)應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實(shí)現(xiàn)高精度測(cè)溫。
(7)在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快。
(8)測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以“一線總線”串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。
(9)負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。
DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖3所示。頭2個(gè)字節(jié)包含測(cè)得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時(shí)寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如圖3所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式,DS18B20出廠時(shí)該位被設(shè)置為0,用戶要去改動(dòng),R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。
DS18B20的測(cè)溫原理是這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將-55℃所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測(cè)溫度值。
2.2 DS18B20測(cè)溫模塊2.2.1 DS18B20工作方式根據(jù)DS18B20的協(xié)議規(guī)定,單片機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過以下4個(gè)步驟:

圖2-3 總線讀寫時(shí)序圖

DS18B20傳感器的內(nèi)部數(shù)據(jù)存儲(chǔ)器由9個(gè)字節(jié)組成。第一、二個(gè)字節(jié)是溫度數(shù)據(jù)字節(jié)(MSB、LSB),可以在系統(tǒng)配置寄存器中自行設(shè)置數(shù)據(jù)位數(shù)(9~12位),數(shù)據(jù)位越多溫度分辨率越高,9位數(shù)據(jù)溫度分辨率 為0.5°C,12位數(shù)據(jù)溫度分辨率0. 0625°C,多余的高位是溫度數(shù)據(jù)的符號(hào)擴(kuò)展位,溫度數(shù)據(jù)格式如表2-1所列。第三、四字節(jié)是溫度上下限報(bào)警值(TH、TL)。第五字節(jié)是系統(tǒng)置寄存器,寄存器各位定義如下:第八位是設(shè)置用來表示傳感器的工作狀態(tài),是測(cè)試狀態(tài)(設(shè)置為“1”)還是操作功能狀態(tài)(設(shè)置為“0”) ,出廠設(shè)置為操作功能狀態(tài),用戶不能修改;第七、六兩位是溫度轉(zhuǎn)換數(shù)據(jù)位的設(shè)置(00、01、10、11分別對(duì)應(yīng)9、10、11、12位溫度數(shù)據(jù)),出廠設(shè)置為 12 位溫度數(shù)據(jù)位,用戶可根據(jù)需要進(jìn)行修改;其余位無效。第六、七、八字節(jié)保留未用。第9個(gè)字節(jié)是CRC校驗(yàn)碼,是前面8個(gè)字節(jié)的循環(huán)校驗(yàn)碼,用在通信中,檢驗(yàn)數(shù)據(jù)傳送的正確性。
表2-1 DS18B20溫度數(shù)據(jù)

我們采用ATmega16單片機(jī)作為微處理器,DS18B20數(shù)字式溫度傳感器提供的9位溫度數(shù),指示器件的溫度信息經(jīng)過單接口由DS18B20送出,從DS18B20到單片機(jī)只需一條線,因此稱為單線。
我所設(shè)計(jì)的溫度采集系統(tǒng)主要有兩部分組成,一部分是溫度采集部分,一部分是溫度顯示部分。DS18B20數(shù)據(jù)線接AVR單片機(jī)PA7數(shù)據(jù)線和Vcc間接一4.7k上拉電阻。
其測(cè)溫程序流程如圖2-3。

圖2-3 測(cè)溫程序流程圖
3 ATmega16單片機(jī)軟硬件設(shè)計(jì)3.1 ATmega16引腳說明根據(jù)AVR單片機(jī)特點(diǎn)及課題所設(shè)定環(huán)境,故選用ATmega16作為單片機(jī)。
圖3-1所示ATmega16單片機(jī)引腳圖。

圖3-1 ATmega16引腳圖
針對(duì)這次的課題設(shè)計(jì)內(nèi)容,我所設(shè)計(jì)的基本ATmega16硬件線路,包括以下幾部分:
1。復(fù)位線路
2。晶振線路
3。AD轉(zhuǎn)換濾波線路
4。ISP下載接口
5。JTAG仿真接口
6。電源
3.2.1 復(fù)位線路的設(shè)計(jì)
圖3-2 復(fù)位線路設(shè)計(jì)圖
ATmega16已經(jīng)內(nèi)置了上電復(fù)位設(shè)計(jì)。并且在熔絲位里,可以控制復(fù)位時(shí)的額外時(shí)間,故AVR外部的復(fù)位線路在上電時(shí),可以設(shè)計(jì)得很簡(jiǎn)單:直接拉一只10K的電阻到VCC即可(R0),如圖3-2所示。
為了可靠,再加上一只0.1uF的電容(C0)以消除干擾、雜波。
D3(1N4148)的作用有兩個(gè):作用一是將復(fù)位輸入的最高電壓鉗在Vcc+0.5V 左右,另一作用是系統(tǒng)斷電時(shí),將R0(10K)電阻短路,讓C0快速放電,讓下一次來電時(shí),能產(chǎn)生有效的復(fù)位。
當(dāng)AVR在工作時(shí),按下S0開關(guān)時(shí),復(fù)位腳變成低電平,觸發(fā)AVR芯片復(fù)位。
重要說明:實(shí)際應(yīng)用時(shí),如果不需要復(fù)位按鈕,復(fù)位腳可以不接任何的零件,AVR芯片也能穩(wěn)定工作。即這部分不需要任何的外圍零件。
3.2.2 晶振電路的設(shè)計(jì)
圖3-3 晶振電路設(shè)計(jì)圖
ATmega16已經(jīng)內(nèi)置RC振蕩線路,可以產(chǎn)生1M、2M、4M、8M的振蕩頻率。不過,內(nèi)置的畢竟是RC振蕩,在一些要求較高的場(chǎng)合,比如要與RS232通信需要比較精確的波特率時(shí),建議使用外部的晶振線路,如圖3-3所示。
早期的90S系列,晶振兩端均需要接22pF左右的電容。ATmega系列實(shí)際使用時(shí),這兩只小電容不接也能正常工作。不過為了線路的規(guī)范化,仍建議接上。
重要說明:實(shí)際應(yīng)用時(shí),如果不需要太高精度的頻率,可以使用內(nèi)部RC振蕩。即這部分不需要任何的外圍零件。
3.2.3 AD轉(zhuǎn)換濾波線路的設(shè)計(jì)為減小AD轉(zhuǎn)換的電源干擾,ATmega16芯片有獨(dú)立的AD電源供電。官方文檔推薦在VCC串上一只10uH的電感(L1),然后接一只0.1uF的電容到地(C3),如圖3-4所示。ATmega16內(nèi)帶2.56V標(biāo)準(zhǔn)參考電壓。也可以從外面輸入?yún)⒖茧妷海热缭谕饷媸褂肨L431基準(zhǔn)電壓源。不過一般的應(yīng)用使用內(nèi)部自帶的參考電壓已經(jīng)足夠。習(xí)慣上在AREF腳接一只0.1uF的電容到地(C4)。
重要說明:實(shí)際應(yīng)用時(shí),如果想簡(jiǎn)化線路,可以將AVCC直接接到VCC,AREF懸空。即這部分不需要任何的外圍零件。

圖3-4 AD轉(zhuǎn)換濾波線路設(shè)計(jì)圖
3.2.4 ISP下載接口設(shè)計(jì)
圖3-5 ISP下載接口設(shè)計(jì)圖
ISP下載接口,不需要任何的外圍零件。使用雙排2*5插座。由于沒有外圍零件,故PB5(MOSI)、PB6(MISO)、PB7(SCK)、復(fù)位腳仍可以正常使用,不受ISP的干擾,如圖3-5所示。
重要說明:實(shí)際應(yīng)用時(shí),如果想簡(jiǎn)化零件,可以不焊接2*5座。但在PCB設(shè)計(jì)時(shí)最好保留這個(gè)空位,以便以后升級(jí)AVR內(nèi)的軟件。
3.2.5 JTAG仿真接口設(shè)計(jì)

圖3-6 JTAG仿真接口設(shè)計(jì)圖
仿真接口也是使用雙排2*5插座。需要四只10K的上拉電阻。
重要說明:實(shí)際應(yīng)用時(shí),如果不想使用JTAG仿真,并且不想受四只10K的上拉電阻的影響,可以將JP1-JP4斷開,如圖3-6所示。
3.2.6 電源設(shè)計(jì)
圖3-7 電源設(shè)計(jì)圖
AVR單片機(jī)最常用的是5V與3.3V兩種電壓。本線路以開關(guān)切換兩種電壓,并且以雙色二極管指示(5V時(shí)為綠燈,3.3V時(shí)為紅燈),如圖3-7所示。
二極管D1防止用戶插錯(cuò)電源極性。D2可以允許用戶將電壓倒灌入此電路內(nèi),不會(huì)損壞1117-ADJ。
1117-ADJ的特性為1腳會(huì)有50uA的電流輸出,1-2腳會(huì)有1.25V電壓。利用這個(gè)特點(diǎn),可以計(jì)算出輸出電壓:
當(dāng)SW開關(guān)打向左邊時(shí),R6上的電流為 1.25/0.33 = 3.78ma 。R8上的電流為1117-ADJ 1腳電流加上R6上的電流,即0.05+3.78=3.83ma. 可以計(jì)算得R8上的電壓為3.84V。 于是得出VCC=1.25+3.83=5.08V。誤差在2%以內(nèi)。
當(dāng)SW開關(guān)打向右邊時(shí),R6上的電流為 1.25/0.62 = 2.02ma 。R8上的電流為1117-ADJ 1腳電流加上R6上的電流,即0.05+2.02=2.07ma. 可以計(jì)算得R8上的電壓為2.07V。 于是得出VCC=1.25+2.07=3.32V。誤差在1%以內(nèi)。
使用1%精度的電阻,可以控制整個(gè)輸出電壓誤差在3%以內(nèi)。
重要說明:實(shí)際應(yīng)用時(shí),根據(jù)使用1117-ADJ的品牌,輸入電壓可以低至7伏甚至更低。(也可以同時(shí)使用低壓降的二極管代替1N4007)。
3.2.7總設(shè)計(jì)圖
圖3-8 ATmega16硬件總設(shè)計(jì)圖
今將此設(shè)計(jì)圖,如圖3-8所示,制作成了以下的ATmega16功能小板。
正面圖:晶振可以使用螺絲固定的方法更換,方便做實(shí)驗(yàn),并達(dá)到一定的可靠性。VCC,GND均有一測(cè)試針,如圖3-9所示。

圖3-9 ATmega16功能板正面圖
底部圖:為了方便實(shí)驗(yàn),將這塊小板的輸出腳,按直插ATmega16的管腳排列定義。為防止不小心掉到地上導(dǎo)致插針折斷,加裝了一只40腳的圓孔IC座做保護(hù)。如果不小心折斷,可以方便地更換圓孔IC座,如圖3-10所示。

圖3-10 ATmega16功能板背面圖
3.3 軟件系統(tǒng)設(shè)計(jì)ATmega16單片機(jī)軟件設(shè)計(jì)分為兩部分,第一部分為與數(shù)字溫度傳感器的軟件設(shè)計(jì)部分,第二部分為與串口相連的軟件設(shè)計(jì)。
3.3.1 溫度采集軟件設(shè)計(jì)溫度采集軟件系統(tǒng)包括初始化程序、讀出溫度子程序、讀寫時(shí)序子程序組成。
1.初始化程序
系統(tǒng)啟動(dòng)前,需要進(jìn)行初始化,其初始化流程圖如圖3-11所示。


圖3-11 初始化程序流程圖
2.讀出溫度子程序
讀出溫度子程序的主要功能是讀出RAM中的2字節(jié),讀出溫度的低八位和高八位,在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖3-12示

圖3-12 讀溫度程序流程圖
3.讀寫時(shí)序子程序
系統(tǒng)的讀寫時(shí)序的子程序如圖3-13、圖3-14、圖3-15所示。


圖3-13 讀時(shí)序圖(寫1、0時(shí)序、讀0、1時(shí)序)


圖3-14 寫時(shí)序子程序流程圖 圖3-15 讀時(shí)序子程序流程圖
3.3.2 串口軟件設(shè)計(jì)
圖3-16 UDR地址圖
USART 發(fā)送數(shù)據(jù)緩沖寄存器和USART 接收數(shù)據(jù)緩沖寄存器共享相同的I/O 地址,稱為USART 數(shù)據(jù)寄存器或UDR(如圖3-16)。將數(shù)據(jù)寫入U(xiǎn)DR 時(shí)實(shí)際操作的是發(fā)送數(shù)據(jù)緩沖器存器(TXB),讀UDR 時(shí)實(shí)際返回的是接收數(shù)據(jù)緩沖寄存器(RXB) 的內(nèi)容。在5、6、7 比特字長(zhǎng)模式下,未使用的高位被發(fā)送器忽略,而接收器則將它們?cè)O(shè)置為0。只有當(dāng)UCSRA寄存器的UDRE標(biāo)志置位后才可以對(duì)發(fā)送緩沖器進(jìn)行寫操作。如果UDRE沒有置位,那么寫入U(xiǎn)DR 的數(shù)據(jù)會(huì)被USART 發(fā)送器忽略。當(dāng)數(shù)據(jù)寫入發(fā)送緩沖器后,若移位寄存器為空,發(fā)送器將把數(shù)據(jù)加載到發(fā)送移位寄存器。然后數(shù)據(jù)串行地從TxD 引腳輸出。接收緩沖器包括一個(gè)兩級(jí)FIFO,一旦接收緩沖器被尋址FIFO 就會(huì)改變它的狀態(tài)。因此不要對(duì)這一存儲(chǔ)單元使用讀- 修改- 寫指令(SBI 和CBI)。使用位查詢指令(SBIC 和SBIS)時(shí)也要小心,因?yàn)檫@也有可能改變FIFO 的狀態(tài)。

圖3-17 UCSRA地址圖
UCSRA地址如圖3-17所示。各地址意義如下:
? Bit 7 – RXC: USART 接收結(jié)束
接收緩沖器中有未讀出的數(shù)據(jù)時(shí)RXC 置位,否則清零。接收器禁止時(shí),接收緩沖器被刷新,導(dǎo)致RXC 清零。RXC 標(biāo)志可用來產(chǎn)生接收結(jié)束中斷。
? Bit 6 – TXC: USART 發(fā)送結(jié)束
發(fā)送移位緩沖器中的數(shù)據(jù)被送出,且當(dāng)發(fā)送緩沖器 (UDR) 為空時(shí)TXC 置位。執(zhí)行發(fā)送結(jié)束中斷時(shí)TXC 標(biāo)志自動(dòng)清零,也可以通過寫1 進(jìn)行清除操作。TXC 標(biāo)志可用來產(chǎn)生發(fā)送結(jié)束中斷( 見對(duì)TXCIE 位的描述)。
? Bit 5 – UDRE: USART 數(shù)據(jù)寄存器空
UDRE標(biāo)志指出發(fā)送緩沖器(UDR)是否準(zhǔn)備好接收新數(shù)據(jù)。UDRE為1說明緩沖器為空,已準(zhǔn)備好進(jìn)行數(shù)據(jù)接收。UDRE標(biāo)志可用來產(chǎn)生數(shù)據(jù)寄存器空中斷(見對(duì)UDRIE位的描述)。復(fù)位后UDRE 置位,表明發(fā)送器已經(jīng)就緒。
? Bit 4 – FE: 幀錯(cuò)誤
如果接收緩沖器接收到的下一個(gè)字符有幀錯(cuò)誤,即接收緩沖器中的下一個(gè)字符的第一個(gè)停止位為0,那么FE 置位。這一位一直有效直到接收緩沖器(UDR) 被讀取。當(dāng)接收到的停止位為1 時(shí), FE 標(biāo)志為0。對(duì)UCSRA 進(jìn)行寫入時(shí),這一位要寫0。
? Bit 3 – DOR: 數(shù)據(jù)溢出
數(shù)據(jù)溢出時(shí)DOR 置位。當(dāng)接收緩沖器滿( 包含了兩個(gè)數(shù)據(jù)),接收移位寄存器又有數(shù)據(jù),若此時(shí)檢測(cè)到一個(gè)新的起始位,數(shù)據(jù)溢出就產(chǎn)生了。這一位一直有效直到接收緩沖器(UDR) 被讀取。對(duì)UCSRA 進(jìn)行寫入時(shí),這一位要寫0。
? Bit 2 – PE: 奇偶校驗(yàn)錯(cuò)誤
當(dāng)奇偶校驗(yàn)使能(UPM1 = 1),且接收緩沖器中所接收到的下一個(gè)字符有奇偶校驗(yàn)錯(cuò)誤時(shí)UPE 置位。這一位一直有效直到接收緩沖器 (UDR) 被讀取。對(duì)UCSRA 進(jìn)行寫入時(shí),這一位要寫0。
? Bit 1 – U2X: 倍速發(fā)送
這一位僅對(duì)異步操作有影響。使用同步操作時(shí)將此位清零。此位置1 可將波特率分頻因子從16 降到8,從而有效的將異步通信模式的傳輸速率加倍。
? Bit 0 – MPCM: 多處理器通信模式
設(shè)置此位將啟動(dòng)多處理器通信模式。MPCM 置位后, USART 接收器接收到的那些不包含地址信息的輸入幀都將被忽略。發(fā)送器不受MPCM設(shè)置的影響。詳細(xì)信息請(qǐng)參考 P150“多處理器通訊模式” 。

圖3-18 UCSRB地址圖
UCSRB地址如圖3-18所示。各地址意義如下:
? Bit 7 – RXCIE: 接收結(jié)束中斷使能
置位后使能RXC 中斷。當(dāng)RXCIE 為1,全局中斷標(biāo)志位SREG 置位, UCSRA 寄存器的RXC 亦為1 時(shí)可以產(chǎn)生USART 接收結(jié)束中斷。
? Bit 6 – TXCIE: 發(fā)送結(jié)束中斷使能
置位后使能TXC 中斷。當(dāng)TXCIE 為1,全局中斷標(biāo)志位SREG 置位,UCSRA 寄存器的TXC 亦為1 時(shí)可以產(chǎn)生USART 發(fā)送結(jié)束中斷。
? Bit 5 – UDRIE: USART 數(shù)據(jù)寄存器空中斷使能
置位后使能UDRE 中斷。當(dāng)UDRIE 為1,全局中斷標(biāo)志位SREG 置位,UCSRA 寄存器的UDRE 亦為1 時(shí)可以產(chǎn)生USART 數(shù)據(jù)寄存器空中斷。
? Bit 4 – RXEN: 接收使能
置位后將啟動(dòng)USART 接收器。RxD 引腳的通用端口功能被USART 功能所取代。禁止接收器將刷新接收緩沖器,并使 FE、DOR 及PE 標(biāo)志無效。
? Bit 3 – TXEN: 發(fā)送使能
置位后將啟動(dòng)將啟動(dòng)USART 發(fā)送器。TxD 引腳的通用端口功能被USART 功能所取代。TXEN 清零后,只有等到所有的數(shù)據(jù)發(fā)送完成后發(fā)送器才能夠真正禁止,即發(fā)送移位寄存器與發(fā)送緩沖寄存器中沒有要傳送的數(shù)據(jù)。發(fā)送器禁止后,TxD引腳恢復(fù)其通用I/O功能。
? Bit 2 – UCSZ2: 字符長(zhǎng)度
UCSZ2與UCSRC寄存器的UCSZ1:0結(jié)合在一起可以設(shè)置數(shù)據(jù)幀所包含的數(shù)據(jù)位數(shù)(字符長(zhǎng)度)。
? Bit 1 – RXB8: 接收數(shù)據(jù)位 8
對(duì)9 位串行幀進(jìn)行操作時(shí),RXB8 是第9 個(gè)數(shù)據(jù)位。讀取UDR 包含的低位數(shù)據(jù)之前首先要讀取RXB8。
? Bit 0 – TXB8: 發(fā)送數(shù)據(jù)位8
對(duì)9 位串行幀進(jìn)行操作時(shí),TXB8 是第9 個(gè)數(shù)據(jù)位。寫UDR 之前首先要對(duì)它進(jìn)行寫操作。
UCSRC寄存器與UBRRH寄存器共用相同的I/O地址。
? Bit 15 – URSEL: 寄存器選擇
通過該位選擇訪問UCSRC 寄存器或UBRRH 寄存器。當(dāng)讀UBRRH 時(shí),該位為0 ;當(dāng)寫UBRRH 時(shí), URSEL 為0。
? Bit 14:12 – 保留位
這些位是為以后的使用而保留的。為了與以后的器件兼容,寫UBRRH 時(shí)將這些位清零。
? Bit 11:0 – UBRR11:0: USART 波特率寄存器
這個(gè)12 位的寄存器包含了USART 的波特率信息。其中UBRRH 包含了USART 波特率高4 位,UBRRL 包含了低8 位。波特率的改變將造成正在進(jìn)行的數(shù)據(jù)傳輸受到破壞。寫UBRRL 將立即更新波特率分頻器。
3.3.3 程序由于程序內(nèi)容眾多,故指選取主要部分。
⑴初始化程序(部分):
ATmega16 單片機(jī)帶有一個(gè)全雙工的通用同步/異步串行收發(fā)模塊USART,該接口是一個(gè)高度靈活的串行通訊設(shè)備。其主要特點(diǎn)如下:
相關(guān)寄存器:
串口由陰陽兩種接口組成。最常使用的信號(hào)引腳是TD、RD 和SG,因此最簡(jiǎn)單的串口調(diào)試只需要包含3條引線就可以了。在RS232標(biāo)準(zhǔn)中,利用RD、TD作為接收、發(fā)送信號(hào)線,加入地線,約定好通訊的波特率,實(shí)現(xiàn)串行信號(hào)傳輸。
RS-232作為個(gè)人計(jì)算機(jī)上的通訊接口之一,由電子工業(yè)協(xié)會(huì)(Electronic Industries Association,EIA)所制定的異步傳輸標(biāo)準(zhǔn)接口。通常 RS-232 接口以9個(gè)引腳 (DB-9) 或是25個(gè)引腳 (DB-25) 的型態(tài)出現(xiàn),一般個(gè)人計(jì)算機(jī)上會(huì)有兩組RS-232接口,分別稱為COM1和COM2。
RS-232標(biāo)準(zhǔn)最初是為遠(yuǎn)程通信連接數(shù)據(jù)終端設(shè)備DTE(Data Terminal Equipment)與數(shù)據(jù)通信設(shè)備DCE(Data Communication Equipment)而制定的。典型的RS-232信號(hào)在正負(fù)電平之間擺動(dòng),在發(fā)送數(shù)據(jù)時(shí),發(fā)送端驅(qū)動(dòng)器輸出正電平在+5~+15V,負(fù)電平在-5~-15V之間。當(dāng)無數(shù)據(jù)傳輸時(shí),線上為TTL,從開始傳送數(shù)據(jù)到結(jié)束,線上電平從TTL電平到RS-232電平再返回TTL電平。接收器典型的工作電平在+3~+12V與-3~-12V之間。RS-232是為點(diǎn)對(duì)點(diǎn)通訊而設(shè)計(jì)的,其驅(qū)動(dòng)器負(fù)載為3~7kΩ。所以RS-232適合本地設(shè)備之間的通信。
4.3 串口電平轉(zhuǎn)換電路MAX232PC 的串口工作TTL 信號(hào)是12V 的,而在我們一般使用的電路板上,電源信號(hào)電平是5V 的(在低功耗電路中是3.3V 的),為了將信號(hào)轉(zhuǎn)化為可用,需要做串口的電平轉(zhuǎn)換。這一部分電路已經(jīng)有相應(yīng)的生產(chǎn)廠商做出了各種集成芯片,例如MAXIM 公司的MAX232 芯片,如圖4-1所示。就是實(shí)現(xiàn)5V 電路中和PC 實(shí)現(xiàn)串口通信的電平轉(zhuǎn)換芯片,而MAX323可以實(shí)現(xiàn)3.3V 的電平轉(zhuǎn)換。

圖4-1 MAX232電路圖
常用的RS-232C接口有DB-25和DB-9兩種類型,其引腳的定義也各不相同。PC采用的是DB-9型連接器,只提供異步通信的9個(gè)信號(hào)。DB-9型連接器的引腳分配如表 4?1和圖4-2所示。
表 4?1 DB9的常用信號(hào)腳說明
9針串口(DB9) | ||
針號(hào) | 功能說明 | 縮寫 |
1 | 數(shù)據(jù)載波檢測(cè) | DCD |
2 | 接收數(shù)據(jù) | RXD |
3 | 發(fā)送數(shù)據(jù) | TXD |
4 | 數(shù)據(jù)終端準(zhǔn)備 | DTR |
5 | 信號(hào)地 | GND |
6 | 數(shù)據(jù)設(shè)備準(zhǔn)備好 | DSR |
7 | 請(qǐng)求發(fā)送 | RTS |
8 | 清除發(fā)送 | CTS |
9 | 振鈴指示 | DELL |
最為常用的是三線制接法,即地、接收數(shù)據(jù)和發(fā)送數(shù)據(jù)三腳連接。本文中的串口的電路如圖 4?3所示。

圖 4?2 DB9的引腳定義圖 圖 4?3 串口的連接電路
5 研究總結(jié)本論文描述了基于單片機(jī)的溫度采集系統(tǒng)設(shè)計(jì),描述了采集信號(hào)到單片機(jī)處理最終到微機(jī)接收數(shù)據(jù)的實(shí)現(xiàn)過程,著力研究了實(shí)現(xiàn)的方法及其電路,并設(shè)計(jì)了過程的硬件電路。
(1)介紹了課題中數(shù)字式溫度傳感器和單片機(jī)的研究背景及其歷史發(fā)展,以及其基本構(gòu)造和原理。
(2)電路的結(jié)構(gòu)由數(shù)字式溫度傳感器、單片機(jī)等組成,有效的將它們結(jié)合是此次設(shè)計(jì)的難處及重點(diǎn)。
(3)在系統(tǒng)中,微機(jī)的接收程序主要是串口通信的設(shè)計(jì)。
本課題的研究中,我查閱了各種資料,在導(dǎo)師的幫助下,努力提高了數(shù)據(jù)采集的精度。但由于時(shí)間及本人能力經(jīng)驗(yàn)所限,本課題的研究存在不足之處在所難免,在今后的工作中需進(jìn)一步改進(jìn)和完善。而且在以后的工作中我將會(huì)對(duì)單片機(jī)和輸入輸出接口進(jìn)行更近一步的研究,從而完善這個(gè)設(shè)計(jì)方案。
畢業(yè)設(shè)計(jì)終于完成了,雖然說,過程比較累,但我發(fā)現(xiàn)它對(duì)自己還是很有幫助的,比如說人比較懶,不愿意動(dòng),平時(shí)知識(shí)也不扎實(shí),但在設(shè)計(jì)過程中碰到自己不懂的問題卻只有耐心下來,查書或在網(wǎng)上弄清楚答案。
通過這次畢業(yè)設(shè)計(jì)使我明白了自己原來知識(shí)還比較欠缺。自己要學(xué)習(xí)的東西還太多,以前老是覺得自己什么東西都會(huì),什么東西都懂,有點(diǎn)眼高手低。通過這次畢業(yè)設(shè)計(jì),我才明白學(xué)習(xí)是一個(gè)長(zhǎng)期積累的過程,在以后的工作、生活中都應(yīng)該不斷的學(xué)習(xí),努力提高自己知識(shí)和綜合素質(zhì)。
總之,不管學(xué)會(huì)的還是學(xué)不會(huì)的的確覺得困難比較多,真是萬事開頭難,不知道如何入手。最后終于做完了有種如釋重負(fù)的感覺。此外,還得出一個(gè)結(jié)論:知識(shí)必須通過應(yīng)用才能實(shí)現(xiàn)其價(jià)值!有些東西以為學(xué)會(huì)了,但真正到用的時(shí)候才發(fā)現(xiàn)是兩回事,所以我認(rèn)為只有到真正會(huì)用的時(shí)候才是真的學(xué)會(huì)了。
基于ARM單片機(jī)關(guān)于圖像采集在現(xiàn)場(chǎng)可編程門陣列的設(shè)計(jì)
摘要
這篇論文全面的展示了ARM7單片機(jī)在自行開發(fā)的現(xiàn)場(chǎng)可編程門陣列工作板上是如何設(shè)計(jì)重復(fù)添加組態(tài)指令和系統(tǒng)驗(yàn)證的,當(dāng)時(shí)這ARM7與互補(bǔ)金屬氧化物半導(dǎo)體連接進(jìn)行圖像采集和圖像處理單元(IPU)實(shí)施在其他現(xiàn)場(chǎng)可編程門陣列工作板上,現(xiàn)在ARM7在這成為一個(gè)圖像處理單元的單片機(jī),圖像處理單元集合了圖像采集、卷積和排序在現(xiàn)場(chǎng)可編程門陣列上執(zhí)行3階流水線操作能加快系統(tǒng)運(yùn)行,卷積和排序有助于進(jìn)一步過濾掉固定圖像噪聲和暗電流噪聲在互補(bǔ)金屬氧化物半導(dǎo)體圖像傳感器,并導(dǎo)致更好的圖像質(zhì)量,有ARM7單片機(jī)的現(xiàn)場(chǎng)可編程門陣列板和圖像處理單元可以用于教學(xué)中央處理器設(shè)計(jì)、控制器設(shè)計(jì)及系統(tǒng)單晶片設(shè)計(jì),自從所有的電路在一個(gè)單一的現(xiàn)場(chǎng)可編程門整列芯片
1、原理簡(jiǎn)介
這篇論文顯示了一個(gè)ARM7[1,2,3,4]的中央處理器在現(xiàn)場(chǎng)可編程門陣列工作板上是如何被設(shè)計(jì)成可添加重復(fù)組態(tài)指令和被測(cè)試的,然后ARM7單片機(jī)與互補(bǔ)金屬氧化物半導(dǎo)體鏈接在其他現(xiàn)場(chǎng)可編程門陣列工作板上進(jìn)行圖像采集和設(shè)備實(shí)施過程,現(xiàn)在ARM7已經(jīng)成為一個(gè)有圖像采集和運(yùn)行單元的單片機(jī),有時(shí)候我們形象稱其為高速運(yùn)轉(zhuǎn)的加速器。ARM7可以包含超過5個(gè)的指令組,即進(jìn)行數(shù)據(jù)處理、數(shù)據(jù)分支、數(shù)據(jù)轉(zhuǎn)移和協(xié)作處理器,前三個(gè)指令組的設(shè)計(jì)和驗(yàn)證系統(tǒng)是用來描述在2-4部分,現(xiàn)場(chǎng)可編程門陣列圖像加速器包含的圖像采集算法通常是在8051系列CPU中完成,部分5描述系統(tǒng)單晶體建設(shè)和驗(yàn)證導(dǎo)致ARM7作為一個(gè)圖像加速的界面控制器,最后的結(jié)論將被描述在部分6。
人們通常熟悉運(yùn)用的中央處理器,像8051.80*86、ARM、MIPS系列等,但是很少人想到去描述他們,部分2和3描述成重復(fù)添加更多的組態(tài)指令包含在ARM7的中央處理器中的方式。
自從中央處理器電路可以被添加,他也可以拿走一些無用的組態(tài)來縮小現(xiàn)場(chǎng)可編程門陣列的設(shè)計(jì)。所以構(gòu)建特制的ARM單片機(jī)在現(xiàn)場(chǎng)可編程門陣列的中央處理器里為了某項(xiàng)具體的應(yīng)用是完全可能的。
2、ARM7系統(tǒng)配置
圖1顯示在ARM7系統(tǒng)包括一個(gè)寄存器(REG)含有16-32位寄存器、內(nèi)存(MEM)、數(shù)據(jù)處理單元(DTU)、控制單元(CON)為組織和系統(tǒng)的操作序列。圖1同樣也顯示數(shù)據(jù)通道這四個(gè)單位之間的執(zhí)行指令28個(gè)中央處理器,不包括4位設(shè)計(jì)條件碼條件。如果條件極值是二進(jìn)制的指令數(shù)就可能包括4*28=112。為了簡(jiǎn)單比較詳細(xì)的中央處理器就沒有顯示,這是一個(gè)普通的組合電路組成的一個(gè)算術(shù)與邏輯控制單元包含一個(gè)移位器和一個(gè)累加器。
圖1:ARM7系統(tǒng)配置的28個(gè)中央處理器指令
3、補(bǔ)充分支和數(shù)據(jù)轉(zhuǎn)移指令和控制單元
3.1、分支和數(shù)據(jù)傳輸電路
圖2顯示原理框圖中數(shù)據(jù)通道和控制數(shù)據(jù)為增加分支和數(shù)據(jù)轉(zhuǎn)移指令組,圖2和圖1相比,不斷提升的復(fù)雜性可以發(fā)現(xiàn)數(shù)據(jù)通道結(jié)構(gòu)、多路輸入中央處理器的間接尋址和控制單元(CON)。圖2中4比特的總線rd2和m2是輸出兩個(gè)乘法器用來連接rd和rn的尋址寄存器,輸入的兩個(gè)多路轉(zhuǎn)換器為了簡(jiǎn)單沒有顯示。
分支指令用于改變程序的執(zhí)行序列,通常是通過改變程序計(jì)數(shù)器的值來完成的,數(shù)據(jù)傳送指令涉及到單個(gè)和多個(gè)之間的數(shù)據(jù)傳輸和存儲(chǔ)為寄存器如圖2所示。這個(gè)圖2中灰點(diǎn)的DO總線從存儲(chǔ)器到寄存器的D端口和其他點(diǎn)的R總線從寄存器塊到分配信息的D端口是為了數(shù)據(jù)傳輸?shù)哪康亩惶砑拥摹?/p>
圖2:ARM7框圖包含分支、數(shù)據(jù)轉(zhuǎn)移和中央處理器指令
3.2、控制單元
當(dāng)更多的指令被添加進(jìn)系統(tǒng),控制單元就變得越來越龐大和復(fù)雜,在圖2右下角落的控制單元有比圖1更多的輸入和輸出端,控制單元實(shí)際上是一種有限狀態(tài)機(jī),實(shí)現(xiàn)形式顯示在圖3的狀態(tài)圖中,大部分在ARM7中的指令在執(zhí)行過程中只有三個(gè)狀態(tài),也就是取碼F、解碼D和執(zhí)行E,長(zhǎng)乘法(64位的產(chǎn)品)和分支連接(bl)指令都各自的需要額外的E1和E2狀態(tài)。數(shù)據(jù)傳輸包括加載和儲(chǔ)存體系結(jié)構(gòu)(ls)、多加載和儲(chǔ)存體系結(jié)構(gòu)(mls)都需要額外的狀態(tài)F1和F2,所以控制單元的輸入塊是解碼指令信號(hào):l、bl、ls、mls,如上所述,ct代表多個(gè)過戶計(jì)數(shù),輸出塊的狀態(tài)是F、F1、F2、D、E、E1和E2如圖3放大圖便于閱讀。
圖3:控制單元圖和從圖2框圖擴(kuò)大的控制單元模塊
4、工作板展示平臺(tái)
圖4顯示了自主開發(fā)的現(xiàn)場(chǎng)可編程門陣列工作板提供了80萬門數(shù)賽靈思公司現(xiàn)場(chǎng)可編程門陣列芯片(xcv800)在中心中,ARM7中每36個(gè)指示就被驗(yàn)證了在工作,幾個(gè)程序如分類揀選、算術(shù)運(yùn)算和計(jì)數(shù)器被鍵入進(jìn)行驗(yàn)證,圖5顯示了工作板在運(yùn)行一個(gè)通過鍵盤輸入的24小時(shí)時(shí)間程序在右下角落和全部24小時(shí)時(shí)鐘電路通過并行接口都裝進(jìn)現(xiàn)場(chǎng)可編程門陣列芯片,這7段顯示的030903是單幀采集在3小時(shí)9分鐘3秒時(shí)這個(gè)24小時(shí)時(shí)鐘程序開始運(yùn)行。
圖4:自制工作平臺(tái) 圖5:自制工作平臺(tái)單幀采集03:09:03在程序運(yùn)行中
第二部分到第四部分簡(jiǎn)要介紹了通過增加組態(tài)指令的設(shè)計(jì)方法和驗(yàn)證我們的ARM7處理器,到目前為止,這個(gè)方法很管用,可以繼續(xù)添加越來越多的指令組。但是在接下來的段落里,重點(diǎn)是在ARM7處理器接口的應(yīng)用在圖像采集和處理單元(IPU)[5],執(zhí)行于300K計(jì)數(shù)的現(xiàn)場(chǎng)可編程門陣列芯片(xc2s300e)。
5、基于ARM7單片機(jī)或作為SoC設(shè)計(jì)
圖像處理單元(IPU)包括圖像采集、二維卷積和二維排序,影像采集是一個(gè)自行開發(fā)的基于現(xiàn)場(chǎng)可編程門陣列的8051軟件程序,二維卷積和二維排序是基于現(xiàn)場(chǎng)可編程門陣列版本的圖像處理算法,分別從Crookes到Maheshwari。
圖6:a.ARM7和IPU在不同的現(xiàn)場(chǎng)可編程門陣列工作板上。
b.ARM7和IPU合并在一個(gè)單一的現(xiàn)場(chǎng)可編程門陣列芯片。

圖7:莉娜的照片通過這個(gè)實(shí)驗(yàn)
采集、卷積和排序是通常做成系列形式,現(xiàn)在將他們整合在一個(gè)單一的現(xiàn)場(chǎng)可編程門陣列芯片中。圖像處理單元現(xiàn)在能夠被連接到自行開發(fā)的ARM7單片機(jī)中,顯示如圖6a。圖7顯示實(shí)驗(yàn)結(jié)果利用莉娜的照片作為原始圖像,在使用圖6a中ARM7單片機(jī)執(zhí)行600k計(jì)數(shù)用一個(gè)總數(shù)是800K的計(jì)數(shù)現(xiàn)場(chǎng)可編程門陣列-2芯片,IPU使用一個(gè)300K計(jì)數(shù)的現(xiàn)場(chǎng)可編程門陣列-1芯片來執(zhí)行70K計(jì)數(shù)。可以合并這兩個(gè)正在執(zhí)行的現(xiàn)場(chǎng)可編程門陣列芯片在同一個(gè)IPU800K芯片,如圖6A所示。這種設(shè)計(jì)模式將成為一種片上系統(tǒng)設(shè)計(jì)的現(xiàn)場(chǎng)可編程門陣列的版本。
6、結(jié)束語
因?yàn)楝F(xiàn)場(chǎng)可編程門陣列是可以重新構(gòu)造里面的結(jié)構(gòu)單片機(jī)是為了給中央處理器可以量身定做,以滿足適合特定的用途,假如,假定一個(gè)800k現(xiàn)場(chǎng)可編程門陣列芯片電路完全被ARM7包括以致沒有足夠空間,則可以向另一個(gè)70k技術(shù)的加速器移動(dòng)。因?yàn)樗杏?jì)算在圖像處理完成圖像加速器電路,然后它可以是取出閑置的32*32乘數(shù)(占空間可以達(dá)到150k左右的計(jì)數(shù))同時(shí)保證空間可以得到70k計(jì)數(shù)圖像加速器能被包括在里面。
嵌入式ARM7與許多設(shè)備控制器在現(xiàn)場(chǎng)可編程門陣列芯片上,顯示如圖6B的虛線區(qū)域內(nèi)就是演示了一種片上系統(tǒng)的系統(tǒng)建筑設(shè)計(jì),它可能會(huì)逐漸成為一種平臺(tái)能夠增加中央處理器設(shè)計(jì)的控制器的控制特別加速器或連接設(shè)備,如圖想處理、機(jī)電一體化、納米光學(xué)等各種技術(shù)。
原文說明的內(nèi)容是: 譯文的外文原文
題名:ARM Based Microcontroller for Image Capturing in FPGA Design
作者:Chi-Jeng Chang, Wu-Ting Wu, Hui-Ching Su, Zen-Yi Huang, and Hsin-Yen Li
來源:ISVC 2005, LNCS 3804, PP. 672-677, 2005.
全部資料51hei下載地址(word格式論文):
基于單片機(jī)的溫度采集系統(tǒng)設(shè)計(jì).zip
(2.22 MB, 下載次數(shù): 22)
| 歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |