基于单片机USB接口的温度控制器
文末下載完整資料
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 摘 要
? ?USB(Universal Serial Bus)是一種新型的通用串行總線,它是快速的、雙向的、同步的、可以熱插撥的、動態連接且價格低廉的串行接口。正是基于這一特點,現在很多的計算機外設都有USB接口。本文正是利用這一新型USB接口來設計上位機與下位機系統之間的通信。利用新型的一線式數字溫度傳感器測量溫度,并通過USB接口和計算機端應用軟件進行通信。
? ?本文首先介紹了本系統相關的背景知識以及USB的通信協議,進而介紹溫度控制的基本意義,提出利用USB設備芯片CH372、一線式數字溫度傳感器DS18B20和單片機AT89C51來開發基于USB溫度控制系統。采集的溫度數據通過USB接口上傳到上位PC機上,并利用應用軟件對其進行處理。上位機應用軟件用C ++ builder 編寫,其運用CH372接口芯片的動態鏈接庫建立起上位機和下位機之間的通信機制。上位機將采集到的溫度數據在PC機上顯示出來,并且顯示實時溫度采集圖像。
此外,應用軟件可以對下位機進行溫度極限設置等簡單控制功能,當采集到的溫度超過某一設定極限溫度,則對系統進行報警。另外下位機還為今后的擴展保留一定的資源。
關鍵詞: AT89C51;USB協議; 溫度采集 ;一線式溫度傳感器 ;CH372
2 系統概述
? ?本章將對基于USB接口的溫度控制系統在工業上的應用進行分析,并介紹系統的特點、功能以及使用到的開發工具。
2.1 系統的特性
? ?由于該系統利用USB接口,所以具有USB的實時傳送數據,與上位機進行信息交流,而上位機又可以連接在互聯網上,所以遠程的PC機也可以利用互聯網對溫度檢測系統進行查看等各種操作。該系統利用先進的溫度傳感器,可以對溫度快速的進行反應,把溫度數據傳到下位機進行初步處理數據,進而與上位機通信??偟膩碚f,該系統有以下幾點特點:
? ?·工作人員可以遠離生產環境通過計算機對其進行查看處理;
? ?·多點溫度測量;
? ?·全天候檢測溫度,并可以在沒有工作人員的參與下對生產環境進行簡單處理;
? ?·對生產環境的溫度進行設計極限溫度,一旦超過極限溫度,系統將對起進行報警,并停止生產環境的工作;
? ?·測量溫度誤差比較精確,在0.5℃內;
2.2 系統的功能
? ?該系統主要有以下功能:
? ?? ?(1)對溫度進行檢測。利用該系統可以遠離惡劣生產環境的情況下,對其進行溫度測量;
? ?? ?(2)對現場溫度進行實時采集;并在PC機上顯示出來;
? ?? ?(3)在PC機上實時做出溫度圖像;工作人員在電腦上便可以直觀的得到系統溫度圖像;
? ?? ?(4)簡單的系統控制;通過計算機上的應用軟件可以對溫度設置,一旦超過極限溫度,發出報警,進而通知工作人員快速的對生產現場進行各種相應操作,這樣可以防止溫度超出極限溫度;
? ?? ?(5)在上位機端的應用軟件上提供系統使用幫助。用戶可以利用該功能幫助對系統進行操作。
2.3 系統開發平臺
? ?本次系統需要用到的開發工具為:keil C、 C++ builder、Protel、計算機、燒寫器。
Keil C是目前世界上最好的MC-51單片機的匯編和C語言的開發工具。支持匯編、c語言以及混合編程。同時具備功能強大的軟件仿真和硬件仿真。C++ builder 是計算機高級語言C++比較好用的編程工具,它是屬于一種可視化的計算機語言。 Protel是世界上最好的硬件電路圖制作的工具。
3 系統總體設計
3.1 系統整體方框圖
? ?根據前面的分析,知道系統要實現以上功能,必須由以下幾部分組成:溫度采集單元、下位機溫度初步處理單元、USB設備接口、上位機應用程序。
系統的結構原理圖如圖3.1:
? ?溫度傳感器單元對生產溫度環境進行測量,將測量溫度傳給下位機(單片機),單片機對采集到的溫度進行初步處理后,將處理了的數據通過USB接口上傳給PC機上位機,而上位機將實時的顯示采集到的溫度,如果要對現場環境進行處理,則上位機可以發送命令,經過USB接口傳送到下位機,下位機根據接受到的數據并對其進行分析,進而做出處理,如報警等各種操作。
3.2 系統方案比較
? ?對于本系統,方案的選擇是根據溫度傳感器來選擇。
? ?目前市場上有兩種傳感器:模擬傳感器和數字集成傳感器,對于選擇不同的傳感器將會有不同的方案。下面給出兩種不同的方案,并對其進行分析,最終選擇其中一種方案。
3.2.1系統兩種可行方案
? ?方案1:選擇模擬傳感器
? ?所謂模擬傳感器,簡單的說就是傳感器對被測量的物質感應,并隨著檢測的不同做出不同的反應,但這一反應是有規律的,而且有規律的輸出模擬信號。由于單片機是數字信號系統,只能識別數字信號,所以這種方案要想利用單片機對溫度信號進行處理,必須將對模擬輸出量數字化,也就是說要對其輸出的模擬電壓或電流轉換成數字信號,這么一來就系統要加入模擬信號轉換成數字信號的處理單元,通常,實現這一功能的是A/D轉換器,市場對于這一A/D轉換器有不少類型。所以選擇這一方案也是可以有效而快速的設計出本系統。
圖3.2給出使用模擬傳感器這一方案的設計原理圖。
? ?方案2:選擇數字傳感器
? ?今天隨著計算機的飛速發展以及單片機的日益普及,世界進入了數字時代,人們在處理被測信號時首先想到的是信息處理器(單片機或計算機)。具有輸出數字信號便于電腦處理的傳感器就是所謂的數字傳感器。
? ?數字傳感器是近幾年才出現的并得到廣泛的應在在實踐當中,所謂數字傳感器,進一步的講,就是將模擬傳感器產生的信號經過放大、A/D轉換、線性化及量綱處理后變成純粹的數字信號,是在模擬傳感器上加入數字處理單元,并將數字單元集成在一塊芯片上,所以輸出的是數字信號,便于數字處理機對其直接進行處理。圖3.3給出利用數字傳感器設計的方案圖:
4 系統硬件設計
4.1 中央處理器----AT89C51
? ?AT89C51由美國Atmel 公司生產的,是一種帶4K字節閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位單片機,該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。下文將對AT89C51單片機做簡單介紹。
? ?(1) AT89C51的特點
? ?? ?AT89C51具有以下幾個特點:
? ?? ?? ?①中央處理器CPU;
? ?? ?? ?②AT89C51與MCS-51系列的單片機在指令系統和引腳上完全兼容;
? ?? ?? ?③片內有4k字節在線可重復編程快擦寫程序存儲器;
? ?? ?? ?④全靜態工作,工作范圍:0Hz~24MHz;
? ?? ?? ?⑤三級程序存儲器加密;
? ?? ?? ?⑥128×8位內部RAM;
? ?? ?? ?⑦32位雙向輸入輸出線;
? ?? ?? ?⑧兩個十六位定時器/計數器
? ?? ?? ?⑨五個中斷源,兩級中斷優先級;
? ?? ?? ?⑩一個全雙工的異步串行口;
? ?(2)AT89C51的結構圖如圖4.1
4.2 溫度傳感器DS18B20
? ?溫度傳感器是該系統的測量器件,溫度傳感器的好壞直接影響到測量結果,所以本文將對溫度傳感器的選擇詳細介紹。根據本次設計論文的要求,包括精度要求等,經過分析,本文決定選擇數字溫度傳感器DSB8B20。下面將給予介紹。
? ?(1) DS18B20的概述
? ?? ?DS18B20是DALLAS公司生產的一線式數字溫度傳感器,具有3引腳TO-92小體積封裝形式;溫度測量范圍為-55℃~+125℃,可編程為9位~12位A/D轉換精度,測溫分辨率可達0.0625℃,被測環境的溫度用符號擴展的16位數字量方式串行輸出;其工作電源既可在遠端引入,也可采用寄生電源方式產生;多個DS18B20可以并聯到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節省大量的引線和邏輯電路。以上特點使DS18B20非常適用于遠距離多點溫度檢測系統。
? ?(2)DS18B20的內部結構
? ?? ?圖4.3是DS18B20的內部結構圖
??由圖可知,DS18B20主要由4部分組成:64位ROM、溫度傳感器、非揮發的溫
警觸發器TH和TL、配置寄存器。DS18B20的管腳排列如圖4.4所示,
DS18B20的3個管腳說明如下:
??DQ為數字信號輸入/輸出端。是漏極開路一線接口。也在寄生電源接線方式時,給設備提供電源。
??GND為電源地。
??VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。
??DS18B20的64位ROM保存了設備的唯一序列碼,是DS18B20的地址序列碼,每一個DS18B20的地址序列碼是不同的,這樣就可以實現一根總線上掛接多個DS18B20。高速閃存(scratchpad)包括2個字節的溫度寄存器。保存了溫度傳感器的數字輸出。該閃存還提供了對上限(TH)和下限(TL)的超標報警寄存器、配置寄存器(一個字節)的訪問。TH、TL和配置寄存器是??EEPROM,所以系統掉電時可以保存數據。
??DS18B20利用DALLAS的單總線控制協議,實現了利用單線控制信號在總線上進行通信。由于所有的設備通過漏極開路端(DQ腳)連在總線上,控制線需要一個大約5K上拉電阻。在這一總線控制系統中,微控制器通過唯一的64位地址序列碼識別和訪問總線上的器件。由于地址序列碼不同,所以連接在總線上的DS18B20可以說是無限的 。
(3)DS18B20的寄存器
??DS18B20存儲器組織結構如表4.2所示:
4.3 溫度采集模塊電路設計
?? 以上已經介紹了AT89C51和數字溫度傳感器DS18B20基本知識,下面將利用它們來設計本系統的溫度采集電路。DS18B20連接到單片機的方法很簡單,它有兩種方法連接到電路上,既外接電源方式和寄生電源方式,這里使用的是系統提供的外接電源方式,而不采用寄生電源,只要VCC、DQ、GND連接到單片機的電源正極、一個I/O端口、電源地就可以了。但是要注意的是在DQ數據線中要加一個4.7K的上拉電阻,這一個是必須要加的,無論它是接在P1口還是P0口,這點特別注意,特別提醒。之外在電源兩端之間加個0.01U的電容,這樣的作用主要是濾波。
??由圖4.7,知DS18B20工作在外部電源供電方式。單片機采用采用P1.1口與DS18B20通信。下面根據單片機的初始化時序和讀寫時序,寫出DS18B20和單片機之間的讀寫操作,這里只給了溫度的讀取,下位機部分程序在附錄中給出。
??這里特別提醒的是DS18B20對時序要求很高,精度要求很高,所以程序的延時對是否能讀起數據起到非常關鍵的作用。
??DS18B20讀寫數據程序如下:
4.4 系統接口模塊電路設計
??本系統的采集模塊采集到數據后,必須要經過CH372傳到上位機應用軟件才能實現控制下位機的各種操作。而CH372是USB接口芯片,下位機和上位機通信的要通過CH372接口芯片來完成,其和計算機的連接很簡單,所以這一部分主要的硬件實現是CH372和單片機AT89C51的連接問題。
4.4.1 USB簡介
??USB(Universal Serial Bus)是外圍設備與計算機進行連接的新型接口,既一種新型的通用串型總線接口,USB具有即插即用、熱插撥、接口體積小、節省系統資源、傳輸可靠、提供電源、良好的兼容性、共享試通信等優點。
??在USB產生之前,外部設備和計算機的通信主要是通過計算機主板所提供的各種接口,比如ISA接口、PCI接口、PS/2接口、串行接口,并行接口等,這些接口,存在這樣那樣的缺陷,比如接口規格不統一、不共享等為了克服上述外圍設備的缺陷,P制造商和用戶迫切需要一種新型的外設接口,??USB正是在這樣的環境下產生的,它是一種快速、雙向、同步、廉價、并支持熱插撥功能的串行接口。
??USB是一種新型的接口,那么它必定有它的通信標準,也就是我們所說的協議,下面簡單介紹USB的通信協議。
??一般的,對終端用戶來看,USB系統是USB設備連接到主機的簡單連接,但對開放人員來說,這中連接可分為三個層次:功能層、USB設備層、USB總線接口層,且每一層都由主機和USB設備的不同功能模塊組成??梢杂孟旅娴膱D型來形容。下圖4.8是這種分層通信機制的簡化。
??由圖,一個USB設備由三個功能模塊組成:USB總線接口、USB邏輯設備、功能單元。USB總線接口是USB設備中的串行引擎(SIE);USB邏輯單元被看作是一個端點的集合;功能單元客戶軟件被看作接口的集合。
??USB傳輸類型包括批量傳輸、同步傳輸、中斷傳輸和控制傳輸,每種傳輸類型的傳輸速度、可靠性以及應用范圍都不同??刂苽鬏斂煽啃允亲罡叩?#xff0c;但速度最慢;同步傳輸速度快,滿足實時性,但可靠性低。在具體應用中,端點傳輸類型可根據傳輸速度和可靠性選擇。
??在USB通信協議中,主機取得絕對主動權利,設備只能是“聽命令行事”,通過一定的命令格式(設備請求)完成通信。USB設備請求包括標準請求、廠商請求和設備類請求。設備的枚舉是標準請求命令完成的;廠商請求是用戶定義的請求;設備類請求是特定的USB設備類發出的請求,例如海量儲存類、打印機類和HID(人機接口)類。固件編程中設備請求必須遵循一定的格式,包括請求類型、設備請求、值、索引和長度。
4.4.2 USB芯片選擇
??USB的傳輸速度可分為低速(1.5Mbps)、全速(12Mbps)和高速(480Mb/s),按傳輸速度來分,供選擇的USB芯片類型主要有:低速(1.5Mbps)和全速(12Mbps),可選擇Philips公司的PDIUSBD12和Cypress公司的EZ-USB2100系列以及國產的CH372芯片; 高速(480Mbps)可選Philips公司的ISP1581和Cypress公司的USB接口芯片CY7C68013。
??本次系統要傳輸的速率比較少,可以所以選擇全速的USB接口芯片,由于國產的芯片已經有所好轉,再加上資料比較齊全,這次系統設計所選擇的USB接口芯片是國產芯片CH372。
芯片介紹:
??CH372是南京沁恒電子有限公司生產的新型USB接口芯片,具有8位數據總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機/DSP/MCU/MPU等控制器的系統總線上;它屏蔽了USB通信協議,用戶如果沒有涉及到底層開放,那么只要了解芯片的普通用法就可以快速的設計USB設備。利用CH372進行USB設備的通信設計可以如下的方框圖4.9
5 系統軟件設計
??本系統進行軟件設計包括下位機軟件設計和上位機軟件設計,下位機軟件設計可以使用匯編語言和單片機C語言,上位機設計可以采用的很多計算機高級語言,比如VC++、Delphi、C++ builder等,在這里選擇C++ builder來編寫上位機程序。至于下位機程序,主要有匯編語言、PL/M語言和C語言。匯編語言有執行效率高、速度快、與硬件結合緊密等特點,尤其在I/O端口管理時,使用匯編語言有快捷、直觀的優點。但是使用匯編語言相對于高級語言,比如單片機C語言來講,難度要大很多,而且匯編語言的呈現可讀性低、開放性差。所以下位機的程序設計選擇單片機C語言。下面簡單介紹本次軟件設計的編程工具。
全套資料免費下載:
關注v-x-公-眾-號:【嵌入式基地】
后-臺-回-復:【畢業設計】 即可獲資料
回復【編程】即可獲取
包括有:C、C++、C#、JAVA、Python、JavaScript、PHP、數據庫、微信小程序、人工智能、嵌入式、Linux、Unix、QT、物聯網、算法導論、大數據等資料
總結
以上是生活随笔為你收集整理的基于单片机USB接口的温度控制器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WebSocket介绍
- 下一篇: MES系统的功能详细以及应用价值介绍