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

圖1-1 protel dxp2004 工作窗口

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



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


圖2-1 DS18B20外部形狀、管腳圖及接入圖
DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其內部結構框圖如圖2-2所示。

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

圖2-3 總線讀寫時序圖

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

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

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

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

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

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

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

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


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

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


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


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

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

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

圖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 | 數據載波檢測 | DCD |
2 | 接收數據 | RXD |
3 | 發送數據 | TXD |
4 | 數據終端準備 | DTR |
5 | 信號地 | GND |
6 | 數據設備準備好 | DSR |
7 | 請求發送 | RTS |
8 | 清除發送 | CTS |
9 | 振鈴指示 | DELL |
最為常用的是三線制接法,即地、接收數據和發送數據三腳連接。本文中的串口的電路如圖 4?3所示。

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

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