999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于DS18B20和nRF2401的庫區(qū)測(cè)溫網(wǎng)絡(luò)無線傳輸系統(tǒng)

2015-04-29 00:00:00劉寧陳煒
電子產(chǎn)品世界 2015年10期

摘要:為解決庫區(qū)溫度測(cè)量布線難度大、材料成本高、維護(hù)檢修難的問題,論文提出了一種用單片機(jī)作為控制核心,用DS18820搭建多點(diǎn)測(cè)溫網(wǎng)絡(luò),nRF2401作為傳輸器件的庫區(qū)溫度數(shù)據(jù)無線傳輸系統(tǒng)。經(jīng)實(shí)際測(cè)試,該系統(tǒng)測(cè)量準(zhǔn)確度高、傳輸距離遠(yuǎn)、性能可靠,具有較好的應(yīng)用前景。本文網(wǎng)絡(luò)版地址:http://www.eepw.com.cn/article/280695 _htm

關(guān)鍵詞:?jiǎn)纹瑱C(jī);nRF2401;DS18820;測(cè)溫網(wǎng)絡(luò);無線傳輸

DOI:10.3969/j.issn.1005-5517.2015.9.018

引言 庫區(qū)溫度直接關(guān)系到庫存物資的安全與性能,目前庫區(qū)溫度數(shù)據(jù)的傳輸大多采用有線方式,存在布線難度大、材料成本高、維護(hù)檢修不便等不足,并且數(shù)據(jù)線纜還易受雨雪、潮濕、鼠害等破壞。為克服此類弊端,本文采用nRF2401無線傳輸模塊,結(jié)合l-Wire器件DS18820,設(shè)計(jì)開發(fā)一款庫區(qū)溫度數(shù)據(jù)無線傳輸系統(tǒng)。

1 總體方案

系統(tǒng)分為上位機(jī)與下位機(jī)兩大部分,二者之間的通信通過nRF2401實(shí)現(xiàn),如圖l所示。上位機(jī)主要包括PC機(jī)和上位單片機(jī),奠功能是負(fù)責(zé)接收下位機(jī)傳送的溫度數(shù)據(jù)和應(yīng)用程序的運(yùn)行,這一部分技術(shù)較為成熟,可借鑒的資料較多,不作為本文的重點(diǎn):下位機(jī)采用51系列單片機(jī)AT89S51作為控制器,主要負(fù)責(zé)溫度數(shù)據(jù)的采集、處理和傳輸,圖l僅畫出兩組溫度傳感器和繼電器,實(shí)際連接10組。本文將著重介紹其硬件電路和軟件設(shè)計(jì)。

2 電路設(shè)計(jì)

下位機(jī)電路設(shè)計(jì)的重點(diǎn)是測(cè)溫網(wǎng)絡(luò)和無線傳輸模塊的搭建,為實(shí)現(xiàn)多點(diǎn)測(cè)溫,選用Dallas公司出品的DS18820,構(gòu)建一個(gè)l-Wire總線的測(cè)溫網(wǎng)絡(luò)。DS18820是l-Wire總線的數(shù)字溫度傳感器,可直接將被測(cè)溫度轉(zhuǎn)化成串行數(shù)字信號(hào)供單片機(jī)處理,適用于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量:無線傳輸模塊選用新型單片射頻收發(fā)器件nRF2401,該器件工作于2.4 GHz~2.5GHzISM頻段,輸出功率和通信頻道可通過編程進(jìn)行配置,同時(shí),nRF2401功耗低,在以-6dBm的功率發(fā)射時(shí),工作電流僅9mA,接收信號(hào)時(shí),工作電流也僅12.3 mA,特別適合單片機(jī)應(yīng)用場(chǎng)合。

圖2是市售nRF2401無線模塊,設(shè)計(jì)上位機(jī)、下位機(jī)電路時(shí),只需留出相應(yīng)接口即可。

圖3是設(shè)計(jì)的電路原理圖,單片機(jī)P12口連接10個(gè)測(cè)溫器件(圖中僅畫出3個(gè)),從而構(gòu)建一個(gè)小型l-Wire總線測(cè)溫網(wǎng)絡(luò),可實(shí)現(xiàn)10個(gè)庫區(qū)的溫度測(cè)量:?jiǎn)纹瑱C(jī)其他口線連接有10個(gè)繼電器(圖中畫出2個(gè)),用來控制10個(gè)庫區(qū)散熱風(fēng)扇的運(yùn)轉(zhuǎn):無線模塊nRF2401通過接口端子與單片機(jī)連接,此處注意nRF2401工作電壓是3.3V,需增加電壓轉(zhuǎn)換芯片,為節(jié)省篇幅圖中并未畫出。

上位機(jī)接收部分的電路主要由上位單片機(jī)、無線模塊接口和電平轉(zhuǎn)換部分組成,這是由于nRF2401輸出數(shù)據(jù)格式是TTL電平,而PC機(jī)串口是MAX232電平,為此需要增加一個(gè)電平轉(zhuǎn)換電路進(jìn)行匹配。

3 軟件編程

下位機(jī)編程重點(diǎn)在于溫度數(shù)據(jù)的采集與傳送,也就是DS18820和nRF2401的軟件設(shè)計(jì)。

3.1 1-wire總線的基本原理和操作

軟件設(shè)計(jì)之前,首先要了解l-wire總線的原理。l-wire總線的特點(diǎn)是用一條數(shù)據(jù)線同時(shí)傳輸時(shí)鐘信號(hào)和數(shù)據(jù),總線上每一個(gè)器件都有一個(gè)唯一的地址,包括48位的序列號(hào)、8位的家族碼和8位的CRC碼,主機(jī)對(duì)各器件的尋址依據(jù)這64位的ID碼來進(jìn)行。

為保證在一條數(shù)據(jù)線上實(shí)現(xiàn)雙向通信,對(duì)DS18820的操作必須遵循嚴(yán)格的讀寫時(shí)序。以下介紹基于l-wire總線的幾種典型操作,其余的l-wire總線命令都是由這些典型操作而來。

3.1.1 復(fù)位子函數(shù)

在復(fù)位與應(yīng)答時(shí)序中,主機(jī)發(fā)出復(fù)位信號(hào),要求l-wire器件在規(guī)定的時(shí)間內(nèi)送回應(yīng)答信號(hào)。

首先主機(jī)將總線拉低480 μs,發(fā)出復(fù)位脈沖,然后產(chǎn)生一個(gè)上升沿的跳變,并延時(shí)60 μs等待l-wire器件的應(yīng)答;l-wire器件將總線拉低240μs,發(fā)出應(yīng)答,主機(jī)收到應(yīng)答后,再對(duì)DS18820進(jìn)行ROM命令。

3.1.2 讀寫操作

所有的讀寫時(shí)序至少需要60μs,在位讀和位寫時(shí)序中,主機(jī)要在規(guī)定的時(shí)間內(nèi)讀回或?qū)懗鰯?shù)據(jù)。

寫時(shí)序時(shí),主機(jī)在拉低總線15μs之內(nèi)釋放總線,并向l-wire器件寫l;讀時(shí)序時(shí),主機(jī)發(fā)出讀數(shù)據(jù)命令,產(chǎn)生讀時(shí)序,l-wire器件隨即向主機(jī)傳輸數(shù)據(jù)。

3.2 DS18820的溫度轉(zhuǎn)換

DS18820網(wǎng)絡(luò)溫度測(cè)量的步驟一般是:器件初始化、復(fù)位、ROM操作、溫度轉(zhuǎn)換。初始化及復(fù)位完成后,要對(duì)網(wǎng)絡(luò)中的器件進(jìn)行ROM識(shí)別,然后再讀取溫度數(shù)據(jù)。

3.2.1 利用二叉樹遍歷算法進(jìn)行器件識(shí)別

二叉樹遍歷算法是搜索識(shí)別網(wǎng)絡(luò)中l(wèi)-Wire器件的編程首選,二叉樹遍歷算法的要點(diǎn)可歸納為“讀2位,寫l位”。

首先主機(jī)向從機(jī)發(fā)出搜索命令,等待從機(jī)向主機(jī)發(fā)回當(dāng)前位之后,再讀從機(jī)發(fā)回當(dāng)前位的反碼,這兩個(gè)位數(shù)據(jù)的編碼存在4種可能:00、0l、10和11。

00表示從機(jī)在當(dāng)前位上有位分叉,即0和l兩個(gè)分支;

Ol表示從機(jī)的當(dāng)前位均為O:

10表示從機(jī)的當(dāng)前位均為l:

11表示總線上無器件響應(yīng)。

顯然,出現(xiàn)11時(shí)搜索應(yīng)退出。

對(duì)于前3種情況,根據(jù)搜索策略,主機(jī)向從機(jī)寫l位數(shù)據(jù),決定繼續(xù)搜索哪一分支。第2和第3種情況下,搜索僅有一個(gè)方向,如果是第1種情況即出現(xiàn)00時(shí),需要選擇下一步搜索路徑,方法是比較搜索位所在位置和最后一次發(fā)生位差異的所在位置,若二者相等,搜索1分支,若前者>后者,搜索O分支,若前者<后者,則采用上一次的搜索路徑。

在此需要注意兩點(diǎn):一是網(wǎng)絡(luò)上DS18820發(fā)回的位數(shù)據(jù)呈“線與”關(guān)系:二是DS18820中64位ID碼標(biāo)記為第1-64位,而不是0-63位,空出來的O用來表示差異位位置記錄的初始狀態(tài)。

3.2.2 溫度數(shù)據(jù)的讀取

轉(zhuǎn)換完成后的溫度數(shù)據(jù)由低8位和高8位組成,且低8位在前,需將其轉(zhuǎn)換為1個(gè)16位的數(shù)、高5位代表符號(hào),低11位是溫度值。11位的溫度值中高7位是溫度整數(shù),低4位是溫度小數(shù),如果是負(fù)溫度,則從溫度寄存器讀出的是補(bǔ)碼,應(yīng)將補(bǔ)碼取反加l得到原碼。

需要注意,單片機(jī)發(fā)出讀取溫度寄存器命令后,DS18820會(huì)返回9組數(shù)據(jù),其中第一組數(shù)據(jù)的低4位代表溫度的小數(shù)值,因此溫度小數(shù)部分的精度為1/16=0.0625。另外程序中應(yīng)增加延時(shí)函數(shù),確保溫度轉(zhuǎn)換完成。

3.3 nRF2401程序設(shè)計(jì)要點(diǎn)

溫度轉(zhuǎn)換完成后,由nRF2401將數(shù)據(jù)發(fā)送給上位機(jī),并接收上位機(jī)發(fā)出的指令,實(shí)現(xiàn)雙向通信。

3.3.1 初始化配置與數(shù)據(jù)收發(fā)

nRF2401初始化配置包括設(shè)置待機(jī)模式、CRC校驗(yàn)、收發(fā)完成后中斷響應(yīng)、選擇射頻通道、設(shè)置數(shù)據(jù)傳輸率和發(fā)射功率。

nRF2401的CE管腳為O時(shí)處于待機(jī)模式,為l時(shí)處于收發(fā)模式,收發(fā)模式有ShockBurst模式和直接模式兩種,本文選擇速度較快、功耗較低的ShockBurst模式。

發(fā)送過程為:設(shè)置Config寄存器使器件處于發(fā)送模式,當(dāng)測(cè)溫節(jié)點(diǎn)有數(shù)據(jù)需要發(fā)送時(shí),溫度和地址數(shù)據(jù)送到nRF2401中,單片機(jī)將CE管腳置高,激活ShockBurst發(fā)送模式,完成數(shù)據(jù)打包并高速發(fā)送,然后等待中斷。

接收過程為:設(shè)置Config寄存器使器件處于接收模式,單片機(jī)將CE管腳置高,激活ShockBurst接收模式,延時(shí)130 μs后檢測(cè)空中信息,若接收到有效的數(shù)據(jù)包,則發(fā)送確認(rèn)信號(hào),產(chǎn)生中斷,同時(shí)讀出有效數(shù)據(jù)并發(fā)送給單片機(jī),單片機(jī)通過串口將數(shù)據(jù)發(fā)給PC機(jī)。

3.3.2 收發(fā)模式的自動(dòng)識(shí)別設(shè)計(jì)

為簡(jiǎn)化編程,增強(qiáng)代碼通用性,本文為上位單片機(jī)和下位單片機(jī)設(shè)計(jì)了完全相同的同一套程序代碼,系統(tǒng)自動(dòng)識(shí)別并設(shè)置工作模式,無需人為區(qū)分單片機(jī)是接收還是發(fā)送。實(shí)現(xiàn)接收和發(fā)送模式自動(dòng)切換的代碼如下:

void Switch_RT(uchar SW, uchar mode)

{ //收發(fā)模式切換子函數(shù)

CE=O,

//待機(jī)

if(SW)

//為l

SPI_WR_Reg(CONFIG, SPI_RD(CONFIG) Oxfe);

//發(fā)射模式

else

//為O

SPI_WR_Reg(CONFIG, SPI_RD(CONFIG)| Ox01);//接收模式if(mode)

CE=1;

//拉高CE啟動(dòng)收發(fā)

程序默認(rèn)無線模塊處于接收模式,下位單片機(jī)測(cè)得溫度數(shù)據(jù)后,將Config寄存器的PRIM_RX位置O,控制nRF2401工作于發(fā)送模式,將數(shù)據(jù)打包發(fā)出,隨即將PRIM RX位置l,處于接收模式:上位機(jī)端nRF2401接收到數(shù)據(jù)包后,即由上位單片機(jī)將其讀出并通過串口傳給上位PC機(jī)。

PC機(jī)向下位機(jī)發(fā)送指令時(shí),首先將指令發(fā)給上位單片機(jī),上位單片機(jī)一旦接到指令,即將PRIM RX位置O,控制nRF2401工作于發(fā)送模式,發(fā)出數(shù)據(jù)包:下位單片機(jī)通過nRF2401接收后將數(shù)據(jù)包讀出執(zhí)行。

4 系統(tǒng)運(yùn)行情況

PC機(jī)應(yīng)用程序采用Vis ualStudl02010 VB.net編寫,上位單片機(jī)與PC機(jī)應(yīng)用程序之間的通信通過串口控件實(shí)現(xiàn),二者之間的參數(shù)設(shè)置需一致。

程序運(yùn)行界面如圖4所示,各庫區(qū)溫度正常時(shí),溫度值字體顏色正常,某庫區(qū)溫度超過正常值時(shí),相應(yīng)溫度值字體以紅色顯示并閃爍,下位單片機(jī)自動(dòng)接通對(duì)應(yīng)庫區(qū)繼電器,啟動(dòng)散熱風(fēng)扇進(jìn)行降溫:當(dāng)溫度下降至正常值后,單片機(jī)控制繼電器關(guān)斷散熱風(fēng)扇,同時(shí)溫度值字體顏色恢復(fù)正常。溫度值右側(cè)標(biāo)簽顯示的數(shù)據(jù)是設(shè)定的正常溫度范圍。

“庫區(qū)選擇”組合框中有10個(gè)復(fù)選框,對(duì)應(yīng)10個(gè)庫區(qū);按下“啟動(dòng)風(fēng)扇”按鈕可對(duì)所選庫區(qū)進(jìn)行強(qiáng)制通風(fēng):按下“關(guān)閉風(fēng)扇”按鈕可強(qiáng)制關(guān)閉散熱風(fēng)扇;“溫度范圍設(shè)定”按鈕可對(duì)所選庫區(qū)報(bào)警溫度閾值進(jìn)行設(shè)置:按下“保存數(shù)據(jù)”按鈕可將庫區(qū)編號(hào)、溫度值、時(shí)間信息等保存至指定位置,便于查看分析。

5 結(jié)論

利用本文設(shè)計(jì)的無線傳輸系統(tǒng),可以采集10個(gè)重要庫所的溫度數(shù)據(jù),經(jīng)過單片機(jī)的處理,將數(shù)據(jù)通過nRF2401傳輸給PC機(jī)顯示。經(jīng)實(shí)測(cè)證明,此無線傳輸方案能準(zhǔn)確采集并傳送溫度數(shù)據(jù),傳送距離可達(dá)60米,空曠地帶接近100米,既避免了繁瑣的布線,又可有效防止惡劣天候的影響,采用元件少、簡(jiǎn)單易行、成本低廉、性能可靠、便于檢修,是一種新穎實(shí)用的庫區(qū)溫度監(jiān)控系統(tǒng)。

主站蜘蛛池模板: 国产尤物在线播放| 在线观看91精品国产剧情免费| www精品久久| 色视频国产| 国产又色又刺激高潮免费看| 啪啪免费视频一区二区| 中文无码精品A∨在线观看不卡| 国产欧美精品一区aⅴ影院| 国产99热| 国产h视频在线观看视频| 久久这里只有精品免费| 欧美午夜在线视频| 一本综合久久| 国产自产视频一区二区三区| 91麻豆精品视频| 亚洲黄色高清| 国产福利一区二区在线观看| 久久青草免费91线频观看不卡| 亚洲精品天堂在线观看| 毛片a级毛片免费观看免下载| 伊人色综合久久天天| 国产成人你懂的在线观看| 国产成人av大片在线播放| 亚洲视频四区| 精品丝袜美腿国产一区| 国产在线精品人成导航| 国产Av无码精品色午夜| 美女无遮挡拍拍拍免费视频| 亚洲欧州色色免费AV| 无码 在线 在线| 亚洲无码37.| 亚洲狠狠婷婷综合久久久久| 国产又粗又猛又爽视频| 国产高潮流白浆视频| 国产成人三级| 欧亚日韩Av| 欧美成人精品高清在线下载| 亚洲国产成人久久精品软件| 国产新AV天堂| 四虎国产永久在线观看| 国产黄在线免费观看| 性欧美精品xxxx| 女人毛片a级大学毛片免费| 国产波多野结衣中文在线播放| 色噜噜在线观看| 91免费国产高清观看| 真人免费一级毛片一区二区 | 国产在线专区| 欧美区国产区| 亚洲bt欧美bt精品| 一级毛片在线免费视频| 国产精品漂亮美女在线观看| 直接黄91麻豆网站| 性激烈欧美三级在线播放| 蝴蝶伊人久久中文娱乐网| 人人爽人人爽人人片| 日本免费a视频| 成人免费午夜视频| 日韩 欧美 小说 综合网 另类| 久久中文字幕2021精品| 伊在人亚洲香蕉精品播放 | 亚洲国产高清精品线久久| 久久天天躁狠狠躁夜夜躁| 国产欧美日韩另类精彩视频| 99re视频在线| 内射人妻无套中出无码| 亚洲av无码成人专区| 国产一级一级毛片永久| 国产成人精品2021欧美日韩| 亚洲AV永久无码精品古装片| 久久久久88色偷偷| 欧美国产视频| 精品无码一区二区三区电影| 国产成人精品高清不卡在线| 欧美在线视频不卡第一页| 亚洲综合一区国产精品| 中文字幕丝袜一区二区| 91亚洲免费视频| 国产免费羞羞视频| 成年午夜精品久久精品| 欧美啪啪网| 狠狠色丁香婷婷|