前言隨著社會的進步和生產的需要,利用無線通信進行溫度數據采集的方式應用已經滲透到生活各個方面。
1.001.jpg (26.54 KB, 下載次數: 91)
下載附件
2017-5-8 23:02 上傳
圖1.1短距離無線通信的應用
在工業現場,由于生產環境惡劣,工作人員不能長時間停留在現場觀察設備是否運行正常,就需要采集數據并傳輸數據到一個環境相對好的操控室內,這樣就會產生數據傳輸問題。由于廠房大、需要傳輸數據多,使用傳統的有線數據傳輸方式就需要鋪設很多很長的通訊線,浪費資源,占用空間,可操作性差,出現錯誤換線困難。而且,當數據采集點處于運動狀態、所處的環境不允許或無法鋪設電纜時,數據甚至無法傳輸,此時便需要利用無線傳輸的方式進行數據采集。
在農業生產上,不論是溫室大棚的溫度監測,還是糧倉的管理,傳統上都是采取分區取樣的人工方法,工作量大,可靠性差。而且大棚和糧倉占地面積大,檢測目標分散,測點較多,傳統的方法已經不能滿足當前農業發展的需要。當前的科技水平下,無線通信技術的發展使得溫度采集測量精確,簡便易行。
在日常生活中,隨著人們生活水平的提高,居住條件也逐漸變得智能化。如今很多家庭都會安裝室內溫度采集控制系統,其原理就是利用無線通信技術采集室內溫度數據,并根據室內溫度情況進行遙控通風等操作,自動調節室內溫度濕度,可以更好地改善人們的居住環境。
以上只是簡單列舉幾個現實的例子,在現實生活中,這種無線溫度采集系統已經被成功應用于工農業、環境監測、軍事國防、機器人控制等許多重要領域,而且類似于這種溫度采集系統的無線通信網絡已經被廣泛的應用到民用和軍事領域。凡是布線繁雜或不允許布線的場合都希望能通過無線方案來解決。為此,需要設計相應的接口系統,控制這些射頻芯片工作,完成可靠穩定的無線數據通信,這樣的研究也變得更加有意義了。
本系統的設計采用了Nordic公司新推出的工作于2.4GHz頻段NRF24L01射頻芯片,由AT89S52單片機控制實現短距離無線數據通信。該接口設計具有成本低、傳輸速率高、軟件設計簡單以及通信穩定可靠等特點。整個系統有發送和接收二部分,通過NRF24L01無線數據通信收發模塊來實現無線數據傳輸。發送部分以單片機AT89S52為核心,使用溫度轉換芯片DS18B20實時采集溫度并通過nRF24l01將采集的溫度無線傳送給接收部分,然后在LCD1602上顯示,并通過串口發送到PC機上顯示,通過蜂鳴器實現對溫度過高或過低進行報警。
1 系統方案分析與選擇論證
1.1 系統方案設計
1.1.1 主控芯片方案
方案一:采用傳統的AT89S52單片機作為主控芯片。此芯片價格便宜、操作簡便,低功耗,比較經濟實惠。
方案二:采用TI公司生產的MSP430F149系列單片機作為主控芯片。此單片機是一款高性能的低功耗的16位單片機,具有非常強大的功能,且內置高速12位ADC。但其價格比較昂貴,而且是TPFQ貼片封裝,不利于焊接,需要PCB制板,大大增加了成本和開發周期。
方案三:采用宏晶科技有限公司的STC12C5A60S2增強型51單片機作為主控芯片。此芯片內置ADC和SPI總線接口,且內部時鐘不分頻,可達到1MPS。而且價格適中。
考慮到此系統需要不用到ADC,從性能和價格上綜合考慮我們選擇方案一,即用AT89S52作為本系統的主控芯片。
1.1.2 無線通信模塊方案
方案一:采用GSM模塊進行通信,GSM模塊需要借助移動衛星或者手機卡,雖說能夠遠距離傳輸,但是其成本較大、且需要內置SIM卡,通信過程中需要收費,后期成本較高。
方案二:采用TI公司CC2430無線通信模塊,此模塊采用Zigbee總線模式,傳輸速率可達250kbps,且內部集成高性能8051內核。但是此模塊價格較貴,且Zigbee協議相對較為復雜。
方案二:采用NRF24L01無線射頻模塊進行通信,NRF24L01是一款高速低功耗的無線通信模塊。他能傳輸上千米的距離(加PA),而且價格較便宜、,采用SPI總線通信模式電路簡單,操作方便。
考慮到系統的復雜性和程序的復雜度,我們采用方案三作為本系統的通信模塊。
1.1.3 溫度傳感方案
方案一:采用AD590是美國ANALO G DEV ICES 公司的單片集成兩端感溫電流源。AD590測量熱力學溫度、攝氏溫度、兩點溫度差、多點最低溫度、多點平均溫度的具體電路,廣泛應用于不同的溫度控制場合由于AD590精度高、價格低、不需輔助電源、線性好,常用于測溫和熱電偶的冷端補償。但其需要用到差分放大器放大和A/D轉換,需要原件多。
方案二:采用美國DALLAS公司生產的 DS18B20可組網數字溫度傳感器芯片,具有耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設備數字測溫和控制領域。經濟,方便。
使用DS18B20線路簡單,編程容易,但是比AD590精度低。AD590還需要其它輔助電路,線路復雜,編程難度大,但是溫度精確。考慮到電路的設計,成本,還有多點通信,我們選擇方案二,即用DS18B20作為本系統的溫度傳感器。
1.1.4 顯示模塊方案
方案一:選擇主控為ST7920的帶字庫的LCD12864來顯示信息。12864是一款通用的液晶顯示屏,能夠顯示多數常用的漢字及ASCII碼,而且能夠繪制圖片,描點畫線,設計成比較理想的結果。
方案二:采用字符液晶LCD1602顯示信息,1602是一款比較通用的字符液晶模塊,能顯示字符和數字等信息,且價格便宜,容易控制。
方案三:采用LED7段數碼顯示管顯示,其成本低,容易顯示控制,但不能顯示字符。
綜合以上方案,我們選擇了經濟實惠的字符液晶LCD1602來作為接收端的顯示。發送端用7段數碼管顯示。
1.1.5 單片機與PC機通信模塊
采用RS-232串口與PC機通信。
1.2 系統最終方案
發送端:
發送端由溫度傳感器DS18B20,AT89S52單片機,nRF24L01無線射頻模塊,數碼管顯示模塊和外設繼電器組成。
1.002.jpg (13.51 KB, 下載次數: 94)
下載附件
2017-5-8 23:02 上傳
圖1.2發送端系統方框圖
接收端:
接收端由AT89S52單片機,nRF24L01無線射頻模塊,LCD1602顯示模塊,報警電路和串口組成。
1.003.jpg (14.16 KB, 下載次數: 82)
下載附件
2017-5-8 23:02 上傳
圖1.3 接收端系統方框圖
2 主要芯片介紹和系統模塊硬件設計
2.1 AT89S52
單片機是一種集成的電路芯塊采用了超大規模技術把具有運算能力(如算術運算、邏輯運算、數據傳送、中斷處理)的微處理器(CPU),隨機存取數據存儲器(RAM),只讀程序存儲器(ROM),輸入輸出電路(I/O口),可能還包括定時計數器,串行通信口(SCI),顯示驅動電路(LCD或LED驅動電路),脈寬調制電路(PWM),模擬多路轉換及A/D轉換器等電路集成到一塊單片機上,構成一個最小然而很完善的計算機系統。這些電路能在軟件的控制下準確快速的完成程序設計者事先規定的任務。總的而言單片機的特點可以歸納為以下幾個方面:集成度高、存儲容量大、外部擴展能力強、控制功能強、低電壓、低功耗、性能價格比高、可靠性高這幾個方面。
單片機有著微處理器所不具備的功能,它可以獨立地完成現代工業控制所要求的智能化控制功能這就是單片機的最大特點。然而單片機又不同于單板機,芯片在沒有開發前,它只是具備功能極強的超大規模集成電路,如果賦予它特定的程序,它便是一個最小的、完整的微機控制系統。它與單板機或個人電腦有著本質的區別,單片機屬于芯片級應用,需要用戶了解單片機芯片的結構和指令系統以及其它集成電路應用技術和系統設計所需要的理論和技術,用這樣特定的芯片設計應用程序,從而使芯片具備特定的智能
AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術制造,與工業80C51 產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統可編程Flash,使得AT89S52在眾多嵌入式控制應用系統中得到廣泛應用。
AT89S51具有如下特點:40個引腳,8k Bytes Flash片內程序存儲器,256 bytes的隨機存取數據存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優先級2層中斷嵌套中斷,2個16位可編程定時計數器,2個 全雙工串行通信口,看門狗(WDT)電路,片內時鐘振蕩器。引腳圖如圖2.1
此外,AT89S51設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式。空閑模式下,CPU暫停工作,而RAM定時計數器,串行口,外中斷 系統可繼續工作,掉電模式凍結振蕩器而保存RAM的數據,停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有PDIP、TQFP和PLCC等三 種封裝形式,以適應不同產品的需求。
1.004.jpg (29.02 KB, 下載次數: 103)
下載附件
2017-5-8 23:02 上傳
圖2.1 單片機管腳圖
(1)主要功能特性:
· 兼容MCS-51指令系統
· 8k可反復擦寫(>1000次)ISP Flash ROM
· 32個雙向I/O口
· 4.5-5.5V工作電壓
· 2個16位可編程定時/計數器
· 時鐘頻率0-33MHz
· 全雙工UART串行中斷口線
· 256x8bit內部RAM
· 2個外部中斷源
· 低功耗空閑和省電模式
· 中斷喚醒省電模式
· 3級加密位
· 看門狗(WDT)電路
· 軟件設置空閑和省電功能
· 靈活的ISP字節和分頁編程
· 雙數據寄存器指針
(2)AT89S52單片機引腳介紹:
引腳如圖2.1所示,以下是各引腳的說明。
VCC:AT89S52 電源正端輸入,接+5V。
VSS:電源地端。
XTAL1:單芯片系統時鐘的反向放大器輸入端。
XTAL2:系統時鐘的反向放大器輸出端,一般在設計上只要在XTAL1和XTAL2上接上一只石英振蕩晶體系統皆可以工作了,此外可以在兩個引腳與地之間加入一20PF的小電容,可以使系統更穩定,避免噪聲干擾而死機。
RESET:AT89S52的重置引腳,高電平工作,當要對晶片重置時,只要對此引腳點評提升至高電平并保持兩個機器周期以上的時間,AT89S51便能完成系統重置的各項動作,使得內部特殊功能寄存器內容均被設成已知狀態,并且至地址0000H處開始讀入程序代碼而執行程序。
EA/Vpp:“EA”為英文“External Access”的縮寫,表示存取外部程序代碼之意,低電平動作,也就是說當引腳為低電平后,系統會調用外部的程序代碼(存于外部EPROM中)來執行程序。因此在8031及8032中,EA引腳必須接低電平,因為其內部無程序存儲器空間。如果使用8751內部程序空間時,引腳要接成高電平。此外,在將程序代碼燒錄至8751內部EPROM時,可以利用此引腳來輸入21 V的燒錄高壓(Vpp)。
PORT0(P0.0―P0.7):端口0是一個8位寬的開路電極(Open Drain)雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態,而是內部有一提升電路,P0在當做I/O用時可以推動8個LS的TTL負載。如果當EA引腳為低電平時(即取用外部程序代碼或數據存儲器),P0就以多工方式提供地址總線(A0―A7)及數據總線(D0―D7)。設計者必須外加一個鎖存器將端口0送出的地址鎖住成為A0―A7,再配合端口2所送出的A8―A15合成一個完整的16位地址總線,而定位地址到64K的外部存儲器空間。
PORT1(P1.0―P1.7):端口1也是具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LS TTL負載,若將端口1的輸出設為高電平,使是由此端口來輸入數據。如果是使用8052或是8032的話,P1.0又當作定時器2的外部緩沖輸入腳,而P。1可以有T2EX功能,可以做外部中斷輸入的觸發引腳。
PORT2(P2.0―P2.7):端口2是具有內部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負載,同樣地,若將端口2的輸出設為高電平時,此端口便能當成輸入端口來使用。P2除了當做一般I/O端口使用外,若是在AT89S51擴充外接程序存儲器或數據存儲器時,也提供地址總線的高字節A8―A15,這個時候P2便不能當做I/O來使用了。
PORT3(P3.0―P3.7):端口3也具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數控制及外部數據存儲器內容的讀取或寫入控制等功能。
其引腳分配如下:
P3.0:RXD,串行通信輸入。
P3.1:TXD,串行通信輸出。
P3.2:INT0,外部中斷0輸入。
P3.3:INT1,外部中斷1輸入。
P3.4:T0,計時計數器0輸入。
P3.5:T1,計時計數器1輸入。
P3.6:WR,外部數據存儲器的寫入信號。
P3.7:RD,外部數據存儲器的讀取信號。
2.1.1 單片機控制模塊
單片機控制模塊由AT89S52最小系統組成,其中包括單片機,晶振電路和復位電路。
(1)、晶振電路
晶振電路由兩個30pF電容和一個12MHz晶體振蕩器構成,接入單片機的X1、X2引腳。
(2)、復位電路
單片復位端低電平有效。
單片機最小系統如圖2.2:
1.005.jpg (29.88 KB, 下載次數: 85)
下載附件
2017-5-8 23:02 上傳
圖2.2 單片機最小系統
2.2 單片2.4GHz nRF24L01無線模塊
2.2.1 nRF24L01芯片概述
nRF24L01是一款新型單片射頻收發器件,工作于2.4 GHz~2.5 GHz ISM頻段。內置頻率合成器、功率放大器、晶體振蕩器、調制器等功能模塊,并融合了增強型ShockBurst技術,其中輸出功率和通信頻道可通過程序進行配置。nRF24L01功耗低,在以-6 dBm的功率發射時,工作電流也只有9 mA;接收時,工作電流只有12.3 mA,多種低功率工作模式(掉電模式和空閑模式)使節能設計更方便。
nRF24L01主要特性如下:
GFSK調制;
硬件集成OSI鏈路層;
具有自動應答和自動再發射功能;
片內自動生成報頭和CRC校驗碼;
數據傳輸率為l Mb/s或2Mb/s;
SPI速率為0 Mb/s~10 Mb/s;
125個頻道;
與其他nRF24系列射頻器件相兼容;
QFN20引腳4 mm×4 mm封裝;
供電電壓為1.9 V~3.6 V。
2.2.2 引腳功能及描述
nRF24L01的封裝及引腳排列如圖所示。各引腳功能如下:
1.006.jpg (18.26 KB, 下載次數: 88)
下載附件
2017-5-8 23:02 上傳
圖2.3 nRF24L01封裝圖
CE:使能發射或接收;
CSN,SCK,MOSI,MISO:SPI引腳端,微處理器可通過此引腳配置nRF24L01:
IRQ:中斷標志位;
VDD:電源輸入端;
VSS:電源地;
XC2,XC1:晶體振蕩器引腳;
VDD_PA:為功率放大器供電,輸出為1.8 V;
ANT1,ANT2:天線接口;
IREF:參考電流輸入。
2.2.3 工作模式
通過配置寄存器可將nRF241L01配置為發射、接收、空閑及掉電四種工作模式,如表所示。
待機模式1主要用于降低電流損耗,在該模式下晶體振蕩器仍然是工作的;
待機模式2則是在當FIFO寄存器為空且CE=1時進入此模式;
待機模式下,所有配置字仍然保留。
在掉電模式下電流損耗最小,同時nRF24L01也不工作,但其所有配置寄存器的值仍然保留。
表1:nRF24L01四種工作模式
模式 | PWR_UP | PRIM_RX | CE | FIFO寄存器狀態 |
接收模式 | 1 | 1 | 1 | - |
發射模式 | 1 | 0 | 1 | 數據在TX FIFO 寄存器中 |
發射模式 | 1 | 0 | 1→0 | 停留在發送模式,直至數據發送完 |
待機模式2 | 1 | 0 | 1 | TX FIFO 為空 |
待機模式1 | 1 | - | 0 | 無數據傳輸 |
掉電 | 0 | - | - | - |
2.2.4 工作原理
發射數據時,首先將nRF24L01配置為發射模式:接著把接收節點地址TX_ADDR和有效數據TX_PLD按照時序由SPI口寫入nRF24L01緩存區,TX_PLD必須在CSN為低時連續寫入,而TX_ADDR在發射時寫入一次即可,然后CE置為高電平并保持至少10μs,延遲130μs后發射數據;若自動應答開啟,那么nRF24L01在發射數據后立即進入接收模式,接收應答信號(自動應答接收地址應該與接收節點地址TX_ADDR一致)。如果收到應答,則認為此次通信成功,TX_DS置高,同時TX_PLD從TX FIFO中清除;若未收到應答,則自動重新發射該數據(自動重發已開啟),若重發次數(ARC)達到上限,MAX_RT置高,TX FIFO中數據保留以便在次重發;MAX_RT或TX_DS置高時,使IRQ變低,產生中斷,通知MCU。最后發射成功時,若CE為低則nRF24L01進入空閑模式1;若發送堆棧中有數據且CE為高,則進入下一次發射;若發送堆棧中無數據且CE為高,則進入空閑模式2。
接收數據時,首先將nRF24L01配置為接收模式,接著延遲130μs進入接收狀態等待數據的到來。當接收方檢測到有效的地址和CRC時,就將數據包存儲在RX FIFO中,同時中斷標志位RX_DR置高,IRQ變低,產生中斷,通知MCU去取數據。若此時自動應答開啟,接收方則同時進入發射狀態回傳應答信號。最后接收成功時,若CE變低,則nRF24L01進入空閑模式1。
在寫寄存器之前一定要進入待機模式或掉電模式。如下圖,給出SPI操作及時序圖:
1.007.jpg (10.93 KB, 下載次數: 75)
下載附件
2017-5-8 23:02 上傳
圖2.4 SPI讀操作
1.008.jpg (10.52 KB, 下載次數: 82)
下載附件
2017-5-8 23:02 上傳
圖2.5 SPI 寫操作
2.2.5 配置字
SPI口為同步串行通信接口,最大傳輸速率為10 Mb/s,傳輸時先傳送低位字節,再傳送高位字節。但針對單個字節而言,要先送高位再送低位。與SPI相關的指令共有8個,使用時這些控制指令由nRF24L01的MOSI輸入。相應的狀態和數據信息是從MISO輸出給MCU。
nRF24L0l所有的配置字都由配置寄存器定義,這些配置寄存器可通過SPI口訪問。nRF24L01 的配置寄存器共有25個,常用的配置寄存器如表2所示。
表2:常用配置寄存器
地址(H) | 寄存器名稱 | 功能 |
00 | CONFIG | 設置24L01工作模式 |
01 | EN_AA | 設置接收通道及自動應答 |
02 | EN_RXADDR | 使能接收通道地址 |
03 | SETUP_AW | 設置地址寬度 |
04 | SETUP_RETR | 設置自動重發數據時間和次數 |
07 | STATUS | 狀態寄存器,用來判定工作狀態 |
0A~0F | RX_ADDR_P0~P5 | 設置接收通道地址 |
10 | TX_ADDR | 設置接收接點地址 |
11~16 | RX_PW_P0~P5 | 設置接收通道的有效數據寬度 |
2.2.6 nRF24L01模塊原理圖
nRF24L01單端匹配網絡:晶振,偏置電阻,去耦電容。
1.009.jpg (31.56 KB, 下載次數: 85)
下載附件
2017-5-8 23:02 上傳
圖2.6 nRF24L01單端50Ω射頻輸出電路原理圖
2.3 溫度傳感器 DS18B20
DALLAS最新單線數字溫度傳感器DS18B20簡介新的"一線器件"體積更小、適用電壓更寬、更經濟 Dallas 半導體公司的數字化溫度傳感器DS1820是世界上第一片支持 "一線總線"接口的溫度傳感器。一線總線獨特而且經濟的特點,使用戶可輕松地組建傳感器網絡,為測量系統的構建引入全新概念。DS18B20、 DS1822 "一線總線"數字化溫度傳感器 同DS1820一樣,DS18B20也 支持"一線總線"接口,測量溫度范圍為-55°C~+125°C,在-10~+85°C范圍內,精度為±0.5°C。DS1822的精度較差為± 2°C 。現場溫度直接以"一線總線"的數字方式傳輸,大大提高了系統的抗干擾性。
2.3.1 DS18B20管腳配置和內部結構
DS18B20的管腳和封裝如下圖2.7:
1.010.jpg (29.29 KB, 下載次數: 83)
下載附件
2017-5-8 23:02 上傳
圖2.7 DS18B20引腳及封裝
引腳定義:
(1)DQ為單數據總線,是數字信號輸入/輸出端;
(2)GND為電源地;
(3)VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。
內部結構:
1.011.jpg (21.22 KB, 下載次數: 89)
下載附件
2017-5-8 23:02 上傳
圖2.8 DS18B20內部結構圖
(1)光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產品類型標號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現一根總線上掛接多個DS18B20的目的。
(2) DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉化為例:用16位符號擴展的二進制補碼讀數形式提供,以0.0625℃/LSB形式表達,其中S為符號位。
圖2.9 DS18B20溫度值格式表
這是12位轉化后得到的12位數據,存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625即可得到實際溫度。
例如+125℃的數字輸出為07D0H,+25.0625℃的數字輸出為0191H,-25.0625℃的數字輸出為FF6FH,-55℃的數字輸出為FC90H。
2.3.2 DS18B20的工作原理
DS18B20的溫度檢測與數字數據輸出全集成于一個芯片之上,從而抗干擾力更強。其一個工作周期可分為兩個部分,即溫度檢測和數據處理。在講解其工作流程之前我們有必要了解18B20的內部存儲器資源。18B20共有三種形態的存儲器資源,它們分別是:
- ROM 只讀存儲器,用于存放DS18B20ID編碼,其前8位是單線系列編碼(DS18B20的編碼是19H),后面48位是芯片唯一的序列號,最后8位是以上56的位的CRC碼(冗余校驗)。數據在出產時設置不由用戶更改。DS18B20共64位ROM。
- RAM 數據暫存器,用于內部計算和數據存取,數據在掉電后丟失,DS18B20共9個字節RAM,每個字節為8位。第1、2個字節是溫度轉換后的數據值信息,第3、4個字節是用戶EEPROM(常用于溫度報警值儲存)的鏡像。在上電復位時其值將被刷新。第5個字節則是用戶第3個EEPROM的鏡像。第6、7、8個字節為計數寄存器,是為了讓用戶得到更高的溫度分辨率而設計的,同樣也是內部溫度轉換、計算的暫存單元。第9個字節為前8個字節的CRC碼。EEPROM 非易失性記憶體,用于存放長期需要保存的數據,上下限溫度報警值和校驗數據,DS18B20共3位EEPROM,并在RAM都存在鏡像,以方便用戶操作。
控制器對18B20操作流程:
- 復位:首先我們必須對DS18B20芯片進行復位,復位就是由控制器(單片機)給DS18B20單總線至少480uS的低電平信號。當18B20接到此復位信號后則會在15~60uS后回發一個芯片的存在脈沖。
- 存在脈沖:在復位電平結束之后,控制器應該將數據單總線拉高,以便于在15~60uS后接收存在脈沖,存在脈沖為一個60~240uS的低電平信號。至此,通信雙方已經達成了基本的協議,接下來將會是控制器與18B20間的數據通信。如果復位低電平的時間不足或是單總線的電路斷路都不會接到存在脈沖,在設計時要注意意外情況的處理。
- 控制器發送ROM指令:雙方打完了招呼之后最要將進行交流了,ROM指令共有5條,每一個工作周期只能發一條,ROM指令分別是讀ROM數據、指定匹配芯片、跳躍ROM、芯片搜索、報警芯片搜索。ROM指令為8位長度,功能是對片內的64位光刻ROM進行操作。其主要目的是為了分辨一條總線上掛接的多個器件并作處理。誠然,單總線上可以同時掛接多個器件,并通過每個器件上所獨有的ID號來區別,一般只掛接單個18B20芯片時可以跳過ROM指令(注意:此處指的跳過ROM指令并非不發送ROM指令,而是用特有的一條“跳過指令”)。
- 控制器發送存儲器操作指令:在ROM指令發送給18B20之后,緊接著(不間斷)就是發送存儲器操作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM數據、讀RAM數據、將RAM數據復制到EEPROM、溫度轉換、將EEPROM中的報警值復制到RAM、工作方式切換。存儲器操作指令的功能是命令18B20作什么樣的工作,是芯片控制的關鍵。
- 執行或數據讀寫:一個存儲器操作指令結束后則將進行指令執行或數據的讀寫,這個操作要視存儲器操作指令而定。如執行溫度轉換指令則控制器(單片機)必須等待18B20執行其指令,一般轉換時間為500uS。如執行數據讀寫指令則需要嚴格遵循18B20的讀寫時序來操作。數據的讀寫方法將有下文有詳細介紹。
當主機收到DSl8B20的響應信號后,便可以發出ROM操作命令之一,這些命令如下:
指令代碼 代碼
Skip ROM(跳躍ROM指令)[CCH]
這條指令使芯片不對ROM編碼做出反應,在單總線的情況之下,為了節省時間則可以選用此指令。如果在多芯片掛接時使用此指令將會出現數據沖突,導致錯誤出現。
Read Scratchpad (從RAM中讀數據)[BEH]
此指令將從RAM中讀數據,讀地址從地址0開始,一直可以讀到地址9,完成整個RAM數據的讀出。芯片允許在讀過程中用復位信號中止讀取,即可以不讀后面不需要的字節以減少讀取時間。
Convert T(溫度轉換)[44H]
收到此指令后芯片將進行一次溫度轉換,將轉換的溫度值放入RAM的第1、2地址。此后由于芯片忙于溫度轉換處理,當控制器發一個讀時間隙時,總線上輸出“0”,當儲存工作完成時,總線將輸出“1”。在寄生工作方式時必須在發出此指令后立刻超用強上拉并至少保持500MS,來維持芯片工作。
與DS18B20的所有通訊都是由一個單片機的復位脈沖和一個DS18B20的應答脈沖開始的。單片機先發一個復位脈沖,保持低電平時間最少480μs,最多不能超過960μs。然后,單片機釋放總線,等待DS18B20的應答脈沖。DS18B20在接受到復位脈沖后等待15~60μs才發出應答脈沖。應答脈沖能保持60~240μs。單片機從發送完復位脈沖到再次控制總線至少要等待480 μs。
讀時隙需15~60 μs,且在2次獨立的讀時隙之間至少需要1 μs的恢復時間。讀時隙起始于單片機拉低總線至少1 μs。DSl8820在讀時隙開始15μs后開始采樣總線電平。
寫時隙需要15~75 μs,且在2次獨立的寫時隙之間至少需要1μs的恢復時間。寫時隙起始于單片機拉低總線。
2.3.3 DS18B20的硬件設計
DS18B20在本系統中與發送端單片機的P3.3連接。如圖:
1.012.jpg (10.28 KB, 下載次數: 89)
下載附件
2017-5-8 23:02 上傳
圖2.10的DS18B20硬件連接圖
2.4 顯示模塊
本系統顯示模塊分兩種:1、接收端顯示模塊用LCD1602液晶模塊。2、發送端使用數碼管顯示。
2.4.1 接收端顯示模塊
本設計在接收端部分采用LCD1602液晶顯示模塊來顯示溫度,,P0由上拉電阻提高驅動能力,作為數據輸出并作為LCD的驅動,P2口的P2.7-P2.6分別作為液晶顯示模塊的使能信號E,數據/命令選擇RS,R/W端則配置成寫。具體電路如圖2.11所示。
1.013.jpg (13.42 KB, 下載次數: 99)
下載附件
2017-5-8 23:02 上傳
圖2.11 LCD1602液晶顯示模塊電路圖
2.4.2 發送端顯示模塊
本設計在發送端部分采用數碼管顯示,P0由上拉電阻提高驅動能力,作為數據輸出。P2.7-P2.4分別作為數碼管位顯示S1-S4。
如圖2.12所示:
1.014.jpg (14.45 KB, 下載次數: 90)
下載附件
2017-5-8 23:02 上傳
圖2.12發送端數碼管顯示連接
2.5 報警電路
當外界溫度超過預設溫度上下限時,為更加有效的引起用戶的注意,及時關注溫度的變化,本系統設計了聲報警電路。該電路由蜂鳴器和NPN三極管組成,具體電路如圖2.13所示。
1.015.jpg (5.76 KB, 下載次數: 85)
下載附件
2017-5-8 23:02 上傳
圖2.13 接收端報警電路
2.6 接收端與PC機通信
本系統采用MAX232來完成TTL- EIA(美國電子工業聯合會)雙向電平轉換。MAX232內部有電壓倍增電路和轉換電路,僅需+5 V電源便可工作,使用十分方便,其與AT89S52連接時可以采用最簡單的方式連接(見圖2.14),MAX232的T1 IN引腳與89S52的串行輸入口線P3.1TXD相連,R1 OUT引腳與89S52的串行輸入口線P3.0RXD相連,MAX232的T1 OUT、R1 IN分別于與RS232的2、3引腳相連。MAX232泵電源引腳必須接0.1μf 電容,如圖中的C7、C8、C9、C10。
1.016.jpg (23.71 KB, 下載次數: 111)
下載附件
2017-5-8 23:02 上傳
圖2.14 單片機與PC機串口通信電路
2.7 電源電路設計
A、本系統單片機需要一組+5V電源,采用的電源電路如圖2.15所示。該電路是把市電220V交流電壓經電壓器降壓至8V,輸入進行全橋整流,成為脈動直流,經過,一級濾波后送至三端穩壓集成電路lm7805穩壓,再經二級濾波后即為+5V輸出,圖2.15的四個二極管組成了全橋整流電路,C1,C3是一級濾波電容,U1是穩壓管lm7805,C4是二級濾波電容。
1.017.jpg (40.2 KB, 下載次數: 93)
下載附件
2017-5-8 23:02 上傳
圖2.15 +5V電源電路
B、本系統無線模塊需要一+3.3V電源,采用電源電路如圖2.16所示。該電路把先前轉換得到的+5V電源經過低壓差電壓調節器lm1117轉換為+3.3V電源。
1.018.jpg (11.21 KB, 下載次數: 121)
下載附件
2017-5-8 23:02 上傳
圖2.16 無線模塊+3.3V電源供電電路
2.8 其他外圍電路
本系統需要在溫度過高的情況下驅動繼電器,打開通風系統。
繼電器連接發送端單片機P3.7口。
3 系統軟件設計
3.1 單片機軟件設計
3.1.1 發送端軟件設計
本系統發送端采用DS18B20溫度傳感器采集溫度,經AT89S52收集處理數據,溫度數據數碼管顯示,如果溫度過高,則單片機控制繼電器工作,再由nRF24L01模塊發送到接收端。其中包括DS18B20和nRF24L01模塊的初始化配置。軟件流程圖如3.1。
1.019.jpg (28.89 KB, 下載次數: 102)
下載附件
2017-5-8 23:02 上傳
圖3.1 發送端程序流程圖
3.1.2 接收端軟件設計
本系統接收端采用nRF24L01無線模塊接收發送端傳來的溫度數據,經單片機AT89S52在LCD1602液晶顯示器上顯示。溫度過高則報警電路工作。最后單片機把數據經串口傳輸給PC機。其中包括nRF24L01模塊和LCD1602液晶顯示器的初始化。流程圖如3.2 。
1.020.jpg (24.32 KB, 下載次數: 84)
下載附件
2017-5-8 23:02 上傳
圖3.2 接受端程序流程圖
4 系統仿真
4.1 電源電路的仿真
4.1.1 +5V電源電路仿真
使用multisim仿真,由家電220V經過變壓器轉換成7.6V交流電壓,再經過橋式整流,后經7805穩壓芯片得到直流5V電壓。如圖4.1
1.021.jpg (22.69 KB, 下載次數: 86)
下載附件
2017-5-8 23:02 上傳
圖4.1 +5V電源設計仿真
4.2 發送端溫度采集與顯示仿真
發送端溫度采集與顯示電路由Protues仿真軟件進行仿真。DS18B20接單片機P3.3口。P0口接4位數碼管段選端,P2.7-P2.4分別接數碼管位選段S4-S1。當前DS18B20顯示18.0,LCD1602顯示18.0 。顯示仿真成功。
1.022.jpg (26.94 KB, 下載次數: 91)
下載附件
2017-5-8 23:02 上傳
圖4.3 溫度采集及顯示仿真
4.3 接收端LCD1602顯示溫度仿真接收端接收到溫度數據后由單片機處理數據。由LCD1602液晶顯示器顯示。1602的數據端接單片機的P0口,RS,RW和E端分別接P2.0-P2.2口。用Protue顯示仿真結果如圖4.4 。
1.023.jpg (36.14 KB, 下載次數: 92)
下載附件
2017-5-8 23:02 上傳
圖4.4 接收端LCD1602液晶顯示仿真
5 硬件電路板設計
5.1 系統硬件原理圖
5.1.1 發送端原理圖
電源模塊:由VCC提供+5V高電平,Power接口接入,經過LM1117降壓為+3.3V電平,為nRF24L01模塊提供高電平。
顯示模塊:P1口接無線模塊的控制端口。P0.0—P0.7接數碼管段選端D0-D7。
無線模塊控制模塊:無線模塊由P2口控制。
溫度采集模塊:溫度采集由DS18B20 I/O端接入單片機P3.3口。
單片機最小系統:X1,X2接外部振蕩電路,RESET端接復位電路,EA端接高。
1.024.jpg (50.83 KB, 下載次數: 95)
下載附件
2017-5-8 23:02 上傳
圖5.1 發送端原理圖
5.1.2 接收端原理圖
接收端由單片機主控電路、USB電源+5V接入、串口通信電路、無線模塊供電電路、LCD1602液晶顯示接口和報警電路組成。
單片機主控電路由AT89S52最小系統組成。
+5V電源由USB接口提供給單片機和其他模塊。接入后發光二極管點亮。
串口通信模塊由DB9和RS232的外圍電路組成。串口通信一邊接單片機的RXD和TXD,一邊連接PC機。
LCD1602顯示模塊數據端接單片機P0口,RS,RW,E分別接單片機的P2.0-P2.2 。
報警電路接單片機的P2.7腳。由一個三極管和喇叭組成。
1.025.jpg (53.76 KB, 下載次數: 98)
下載附件
2017-5-8 23:02 上傳
圖5.2 接收端原理圖
5.2 系統PCB圖
5.2.1 發送端PCB圖
1.026.jpg (37.01 KB, 下載次數: 90)
下載附件
2017-5-8 23:02 上傳
圖5.3 發送端PCB圖
5.2.2 接收端PCB圖
1.027.jpg (36.26 KB, 下載次數: 99)
下載附件
2017-5-8 23:02 上傳
圖5.4 接收端PCB板圖
5.3 硬件制作
硬件的制作有印制電路板,打孔和焊接原件組成。
印制電路板用熱傳印紙打印電路圖,經過熱傳印機把紙上的電路圖轉印到電路銅板上,之后進行腐蝕銅板處理,把不需要的銅去掉,得到所要電路。經過印制打孔后的電路板如下圖。
1.028.jpg (13.12 KB, 下載次數: 100)
下載附件
2017-5-8 23:02 上傳
圖5.5 印制后的電路板
1.029.jpg (17.37 KB, 下載次數: 76)
下載附件
2017-5-8 23:02 上傳
焊接原件后如下圖。
圖5.6 焊接原件后的電路板
5.4 硬件調試在沒通電之前,先用萬用表檢查線路的正確性,并核對元器件的型號、規格是否符合要求。特別注意電源的正負極以及電源之間是否有短路,并重點檢查地址總線、數據總線、控制總線是否存在相互間的短路或其他信號線的短路。晶體振蕩器和電容應盡可能靠近單片機芯片安裝,以減少寄生電容,更好是保證振蕩器穩定和可靠地工作。在本系統中我們都進行了仔細的檢杏,所以此步驟不會發生故障,這一步如果檢查不細通電后可能會造成不可想象的后果,所以這一步也至關重要。
通電后檢查各器件引腳的電位,仔細測量各點電位是否正常,尤其應注意單片機的插座上的各點電位,若有高壓,將有可能損壞單片機仿真器。同樣,如果電壓過低就沒有能力驅動其負載。
在斷電的情況下,除單片機以外,用仿真插頭將所連接電路與單片機仿真器的仿真接口相連,為軟件調試做好準備。
其中遇到的問題很多,如印制電路線不合格,中間有些許斷路,造成調試的失敗。還有USB電源供電電壓不足的問題,電源電壓經過供電給負載,電壓下降0.5V,致使單片機不工作的問題。
5.5 硬件調試結果我們進行的是單點通信,傳輸溫度數據。發送端采集溫度,在4位LED數碼顯示管上顯示,并發送到接收端。其結果如圖。
1.030.jpg (18.55 KB, 下載次數: 100)
下載附件
2017-5-8 23:02 上傳
圖5.7 發送端采集到溫度顯示
接收端接收到溫度及顯示:
1.031.jpg (17.87 KB, 下載次數: 87)
下載附件
2017-5-8 23:02 上傳
圖5.8 接收端接收到數據并顯示在LCD1602上
6 nRF24L01應用于無線組網6.1 無線組網的意義及研究價值隨著GSM、WCDMA及3G商用,近距無線通信并能上網成了一種迫切需求:實現低功耗、低價位、可替代電纜的無線數據鏈路。人們希望通過一個小型的 短距離的無線網絡為移動和商業用戶提供各種服務。而目前幾乎所有的無線網絡都在某一點上連接到有線網絡中,以便訪問文件、數據庫和因特網。此時,點對多點無線通信的設計便顯得尤為重要。
6.2 通信模型及協議設計1、通信模型的建立
常見的點對多點通信系統多采用環型和星型兩種模式。
1.032.jpg (12.66 KB, 下載次數: 81)
下載附件
2017-5-8 23:02 上傳
它們的系統示意圖分別如圖6.1和圖6.2所示。
圖6.1 環形系統示意圖
圖6.2所示為星形系統示意圖。
1.033.jpg (17.96 KB, 下載次數: 78)
下載附件
2017-5-8 23:02 上傳
圖6.2 星形系統示意圖
其中,環型系統主要用于傳輸距離較遠且實時性要求不高的場合;而星型系統則特別適用于近距離條件下,數據量較大且實時性要求較高的場合。
總結
數據采集與處理是51單片機的常用領域,除了電信號以外,單片機還可以利用傳感器實現對非電信號的采集。本設計介紹的數字溫度計就是一個典型事例。本設計采用一種直接數字輸入式的溫度傳感芯片DS18B20實現了單片機控制的數字溫度計系統。基于DS18B20數字溫度傳感器構成的實時監控系統確實具有精度高、抗干擾能力強、電路簡單等諸多優點,溫度傳感器得到電纜長度達到幾十米都可以正常讀取溫度數據。相比之下,傳統的溫度檢測系統采用熱敏電阻等溫度敏感元件,熱敏電阻成本低,但需要后續信號調理、AD轉換處理電路才能將溫度信號轉換成數字信號,不但電路復雜,而且熱敏電阻的可靠性相對較差,測量溫度的精度差,很難保證熱敏電阻的一致性和線性,在應用中需要很好的解決引線誤差補償問題、共模干擾問題和放大電路零點漂移誤差等技術問題。
本設計內容重點:
NRF24L01無線傳輸模塊的操作。
DS18B20的各種操作命令。
單片機數碼管和LCD1602顯示。
單片機的串口通信。
研究展望:
進入21世紀后,智能溫度控制器正朝著高精度、多功能、總線標準化、高可靠性及安全性、開發虛擬溫度控制器和網絡溫度控制器、研制單片測溫控溫系統等高科技的方向迅速發展。
1.提高溫度控制器測溫精度和分辨力
在20世紀90年代中期最早推出的智能溫度控制器,采用的是8位A/D轉換器,其測溫精度較低,分辨力只能達到2°C。目前,國外已相繼推出多種高精度、高分辨力的智能溫度傳感器,所用的是9~12位A/D轉換器,分辨力一般可達0.5~0.0625°C。為了提高多通道智能溫控器的轉換速率,也有的芯片采用高速逐次逼近式A/D轉換器。
2.增加溫度控制器測試功能
新型智能溫度控制器的測試功能也在不斷增強。例如,采用DS1629型單線智能溫度傳感器增加了實時日歷時鐘(RTC),使其功能更加完善。DS1624還增加了存儲功能,利用芯片內部256字節的E2PROM存儲器,可存儲用戶的短信息。另外,智能溫度控制器正從單通道向多通道的方向發展,這就為研制和開發多路溫度測控系統創造了良好條件。
智能溫度控制器都具有多種工作模式可供選擇,主要包括單次轉換模式、連續轉換模式、待機模式,有的還增加了低溫極限擴展模式,操作非常簡便。對某些智能溫度控制器而言,主機(外部微處理器或單片機)還可通過相應的寄存器來設定其A/D轉換速率,分辨力及最大轉換時間。