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

圖1-1 protel dxp2004 工作窗口

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



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


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

圖2-3 總線讀寫時序圖

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

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

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

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

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

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

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

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


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

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


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


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

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

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

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

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

圖7:莉娜的照片通過這個實驗
采集、卷積和排序是通常做成系列形式,現(xiàn)在將他們整合在一個單一的現(xiàn)場可編程門陣列芯片中。圖像處理單元現(xiàn)在能夠被連接到自行開發(fā)的ARM7單片機中,顯示如圖6a。圖7顯示實驗結(jié)果利用莉娜的照片作為原始圖像,在使用圖6a中ARM7單片機執(zhí)行600k計數(shù)用一個總數(shù)是800K的計數(shù)現(xiàn)場可編程門陣列-2芯片,IPU使用一個300K計數(shù)的現(xiàn)場可編程門陣列-1芯片來執(zhí)行70K計數(shù)。可以合并這兩個正在執(zhí)行的現(xiàn)場可編程門陣列芯片在同一個IPU800K芯片,如圖6A所示。這種設(shè)計模式將成為一種片上系統(tǒng)設(shè)計的現(xiàn)場可編程門陣列的版本。
6、結(jié)束語
因為現(xiàn)場可編程門陣列是可以重新構(gòu)造里面的結(jié)構(gòu)單片機是為了給中央處理器可以量身定做,以滿足適合特定的用途,假如,假定一個800k現(xiàn)場可編程門陣列芯片電路完全被ARM7包括以致沒有足夠空間,則可以向另一個70k技術(shù)的加速器移動。因為所有計算在圖像處理完成圖像加速器電路,然后它可以是取出閑置的32*32乘數(shù)(占空間可以達到150k左右的計數(shù))同時保證空間可以得到70k計數(shù)圖像加速器能被包括在里面。
嵌入式ARM7與許多設(shè)備控制器在現(xiàn)場可編程門陣列芯片上,顯示如圖6B的虛線區(qū)域內(nèi)就是演示了一種片上系統(tǒng)的系統(tǒng)建筑設(shè)計,它可能會逐漸成為一種平臺能夠增加中央處理器設(shè)計的控制器的控制特別加速器或連接設(shè)備,如圖想處理、機電一體化、納米光學等各種技術(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格式論文):
基于單片機的溫度采集系統(tǒng)設(shè)計.zip
(2.22 MB, 下載次數(shù): 22)
| 歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |