精品国产成人一区二区三区-女子十八毛片-欧洲性猛交-无码不卡一区二区三区在线观看-www.四虎在线-伊人网国产-国精产品自偷自偷综合下载-不卡av网站-俄罗斯黄色大片-一本久久知道综合久久-国产精品日韩一区二区-日韩精品色-免费人成网ww555kkk在线-黄色在线观看免费-日韩在线免费-久久久久99人妻一区二区三区-十八禁真人啪啪免费网站

當(dāng)前位置:機(jī)電之家首頁 >> PLC技術(shù)>> PLC文案資料 >> PLC論文 >> ARM和DS18B20的數(shù)字測溫系統(tǒng)
ARM和DS18B20的數(shù)字測溫系統(tǒng)

摘 要: 本文介紹了一種新型的嵌入式數(shù)字測溫系統(tǒng),系統(tǒng)采用SAMSUNG公司的32位ARM微控制器S3C44BOX,利用單總線數(shù)字溫度傳感器DS18B20作為分布式測溫元件。該系統(tǒng)具有電路簡單,可靠性高,易于安裝和擴(kuò)展維護(hù)的特點(diǎn),可作為一種新型的數(shù)控機(jī)床測溫系統(tǒng)設(shè)計(jì)方案。
關(guān)鍵詞:ARM,S3C44BOX,數(shù)字溫度傳感器,DS18B20

0 前言
    熱誤差是數(shù)控機(jī)床的最大誤差源,數(shù)控機(jī)床的溫度測試為機(jī)床熱誤差的補(bǔ)償提供依據(jù)。傳統(tǒng)的測溫方案是將模擬信號(hào)通過電纜遠(yuǎn)距離傳輸至數(shù)據(jù)采集卡進(jìn)行A/D轉(zhuǎn)換并處理,實(shí)用中必須解決長線傳輸和模擬量傳感器布線等問題。本文介紹了一種新型的設(shè)計(jì)方案,控制器采用SAMSUNG公司的32位ARM微控制器S3C44BOX,溫度傳感器采用單總線數(shù)字溫度傳感器DS18B20。采用數(shù)字溫度傳感器即在測試點(diǎn)完成了信號(hào)的數(shù)字化,提高了傳輸?shù)目煽啃?,同時(shí)簡化了外圍電路,也便于傳感器在機(jī)床上的布置安裝。ARM處理器控制數(shù)字溫度信號(hào)的采集,并與上位PC機(jī)通訊,同時(shí)其他硬件資源提供熱補(bǔ)償系統(tǒng)其他功能。本文在介紹數(shù)字溫度傳感器DS18B20的基礎(chǔ)上,給出了系統(tǒng)的軟硬件設(shè)計(jì)方案,對軟件實(shí)現(xiàn)中的關(guān)鍵點(diǎn)做了詳盡的注釋說明。
1 數(shù)字溫度傳感器DS18B20介紹
    1.1 DS18B20的結(jié)構(gòu)
    DS18B20是美國DALLAS公司推出的一種可組網(wǎng)數(shù)字溫度傳感器。DS18B20只有一個(gè)數(shù)據(jù)輸入/輸出口,是單總線專用芯片。DS18B20工作時(shí),被測溫度值直接以單總線的數(shù)字方式傳輸。
    DS18B20體積小,電壓適用范圍寬(3V-5V),可以通過編程實(shí)現(xiàn)9~12位的溫度讀數(shù),即有可調(diào)的溫度分辨率。測溫范圍-55℃~+125℃,在-10℃~+85℃時(shí),精度為±0.5℃。其可選封裝有TO-92、SOIC及CSP封裝。
    每個(gè)DS18B20出廠時(shí)都有一個(gè)唯一的64位序列號(hào),因此一條總線上可以同時(shí)掛接多個(gè)DS18B20而不會(huì)出現(xiàn)混亂。DS18B20包括一個(gè)暫存RAM和一個(gè)E2RAM。暫存存儲(chǔ)器RAM用于存放工作參數(shù)和測量值,其作用是保證在單線通訊時(shí)的完整性,包括8個(gè)字節(jié)。E2RAM用于設(shè)定非易失性溫度報(bào)警上下限值TH和TL(調(diào)電后依然保存)。內(nèi)部結(jié)構(gòu)如圖1所示。
 
               
頭兩個(gè)字節(jié)表示測得的溫度讀數(shù),數(shù)據(jù)格式如圖2所示:
               
    S=1時(shí)表示溫度為負(fù),S=0時(shí)表示溫度為正,其余低位以二進(jìn)制補(bǔ)碼形式表示,最低位為1,表示0.0625℃
    內(nèi)部存儲(chǔ)器的第五個(gè)字節(jié)是結(jié)構(gòu)寄存器,主要用于溫度值的數(shù)字轉(zhuǎn)換分辨率。
    1.2 DS18B20的工作時(shí)序
    DS18B20嚴(yán)格遵循單總線協(xié)議,工作時(shí),主機(jī)先發(fā)一復(fù)位脈沖,使總線上的所有DS18B20都被復(fù)位,接著發(fā)送ROM操作指令,使序列號(hào)編碼匹配的DS18B20被激活,準(zhǔn)備接受下面的RAM訪問指令。RAM訪問指令控制選中的DS18B20工作狀態(tài),完成整個(gè)溫度轉(zhuǎn)換,讀取等工作。在ROM命令發(fā)送之前,RAM命令命令不起作用。表1列出了所有操作命令。

                
    整個(gè)操作主要包括三個(gè)關(guān)鍵過程:主機(jī)搜索DS18B20序列號(hào)、啟動(dòng)在線DS18B20做溫度轉(zhuǎn)換、讀取溫度值。
其工作流程如圖3:

               
    DS18B20對時(shí)序及電特性參數(shù)要求較高,必須嚴(yán)格按照DS18B20的時(shí)序要求去操作。它的數(shù)據(jù)讀寫主要由主機(jī)讀寫特定的時(shí)間片來完成,包括復(fù)位(初始化)、讀時(shí)間片和寫時(shí)間片。
    (1) 復(fù)位時(shí)序
    使用DS18B20時(shí),首先需將其復(fù)位,然后才能執(zhí)行其它命令。復(fù)位時(shí),主機(jī)將數(shù)據(jù)線拉為低電平并保持480μs~960μs,然后釋放數(shù)據(jù)線,再由上拉電阻將數(shù)據(jù)線拉高15~60μs,等待DS18B20發(fā)出存在脈沖,存在脈沖有效時(shí)間為60~240μs,這樣,就完成了復(fù)位操作。其復(fù)位時(shí)序如圖4所示。

        
    (2) “寫”時(shí)序 
    在主機(jī)對DS18B20寫數(shù)據(jù)時(shí),先將數(shù)據(jù)線置為高電平,再變?yōu)榈碗娖?該低電平應(yīng)大于1μs。在數(shù)據(jù)線變?yōu)榈碗娖胶?5μs內(nèi),根據(jù)寫“1”或?qū)憽?”使數(shù)據(jù)線變高或繼續(xù)為低。DS18B20將在數(shù)據(jù)線變成低電平后15μs~60μs內(nèi)對數(shù)據(jù)線進(jìn)行采樣。要求寫入DS18B20的數(shù)據(jù)持續(xù)時(shí)間應(yīng)大于60μs而小于120μs,兩次寫數(shù)據(jù)之間的時(shí)間間隔應(yīng)大于1μs。寫時(shí)隙的時(shí)序如圖5所示。“讀”時(shí)序機(jī)理類似,不再贅述。

    
2 系統(tǒng)軟硬件設(shè)計(jì)
    2.1 硬件設(shè)計(jì)
    我們采用的控制器是SAMSUNG公司的32位ARM微控制器S3C44BOX,是三星公司為一般應(yīng)用提供的高性價(jià)比和高性能的微控制器的解決方案,功耗小,可靠性高。它使用ARM7TDMI核,工作在66MHz。采用的該ARM控制器將服務(wù)于整個(gè)熱誤差補(bǔ)償系統(tǒng),完成包括數(shù)據(jù)處理與通訊、控制等多任務(wù)的實(shí)現(xiàn)。機(jī)床測溫系統(tǒng)只使用小部分片上資源。
    我們主要通過對I/O引腳的電平讀寫來完成單總線的通訊,采用ARM內(nèi)部的定時(shí)器產(chǎn)生中斷來完成有時(shí)隙要求的工作。由于我們通過預(yù)分頻后產(chǎn)生的計(jì)時(shí)值單位達(dá)到1μs,完全能夠滿足時(shí)序工作的需要。
    DS18B20與控制器的接口及其簡單,只需將DS18B20的信號(hào)線與控制器的一位雙向端口連接即可。系統(tǒng)連接如圖8所示:

    
2.2 軟件設(shè)計(jì)
    遵循DS18B20單總線通訊協(xié)議,溫度轉(zhuǎn)換與讀取工作的軟件流程可表示為圖9(該流程是在已經(jīng)選中激活某個(gè)選中的DS18B20以后,選中激活流程軟件原理類似,此處省略)。
                   
    可見,與DS18B20進(jìn)行通訊主要完成以下三個(gè)基本子程序:初始化程序(復(fù)位程序)、‘讀’子程序,‘寫’子程序。系統(tǒng)采用 C語言進(jìn)行設(shè)計(jì),以下是初始化(復(fù)位)子程序,設(shè)計(jì)如下:

U8 resetpulse(void) //復(fù)位函數(shù)定義
{
U8 RX=1; //函數(shù)返回值設(shè)置
rPCONF=0x01; //PF0輸出口
rPDATF=0x0; //PF0輸出0,拉低 
rTCNTB1=0x1f4; //定時(shí)緩沖器設(shè)定,延時(shí)500us
rTCON=0x0200; //定時(shí)控制器設(shè)定,將定時(shí)器1手動(dòng)更新
rTCON=0x0100; //定時(shí)器開啟,手動(dòng)更新關(guān)閉 
while(TIME); //在定時(shí)中斷產(chǎn)生以前踏步等待(我們在中斷中改變這個(gè)標(biāo)志值)
rPDATF=0x01; //低脈沖時(shí)間500us已過,PF0置高
TIME=1; //將TIME值恢復(fù)
rTCON=0x0; //關(guān)閉定時(shí)器
rTCNTB1=60; //延時(shí)60us
rTCON=0x0200;
rTCON=0x0100;
while(TIME);
TIME=1; 
rTCON=0x0; 
rPCONF=0x0; //改為輸入口,進(jìn)行讀值 
if((rPDATF & 0x01)==0) //讀到PF0口為低時(shí)說明存在脈沖收到
{RX=0;}
rTCNTB1=0x0190; //延時(shí)400us
rTCON=0x0200;
rTCON=0x0100;
while(TIME); 
TIME=1;
rTCON=0x0;
return(RX); //函數(shù)返回RX值,在收到存在脈沖時(shí)RX為零
}
    調(diào)用該初始化程序就可以實(shí)現(xiàn)復(fù)位要求?!白x”子程序、“寫”子程序?qū)崿F(xiàn)機(jī)制類似,代碼不再贅述。在單總線協(xié)議下,通過調(diào)用這幾個(gè)子程序進(jìn)行相應(yīng)的控制,就能完成主機(jī)與DS18B20的通訊,實(shí)現(xiàn)溫度的采集。
3 結(jié)論
    本系統(tǒng)接口電路簡單,通訊可靠,集成后的系統(tǒng)運(yùn)行良好,測試精度高,試驗(yàn)證明能完成預(yù)定測試任務(wù)。

作者:未知 點(diǎn)擊:1187次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:ARM和DS18B20的數(shù)字測溫系統(tǒng)
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請《ARM和DS18B20的數(shù)字測溫系統(tǒng)》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個(gè)人求購

陳蓮 【求購】  日本住友閥  2025-12-24
 【求購】  氣動(dòng)扳手  2025-12-24
倪高純 【求購】  超聲波液位...  2025-12-24
戴先生 【求購】  美孚s-2...  2025-12-23
李先生 【求購】  一體化消防...  2025-12-22
何經(jīng)理 【求購】  亨通電纜  2025-12-22
肖先生 【求購】  氣缸LCR...  2025-12-22
王嘉文 【求購】  減速機(jī)  2025-12-22
VIP公司推薦

咸丰县| 怀远县| 沿河| 金昌市| 榕江县| 连云港市| 靖远县| 平潭县| 久治县| 海盐县| 西林县| 陵水| 泗洪县| 岑溪市| 牙克石市| 乐至县| 双柏县| 水城县| 永丰县| 柳林县| 大理市| 科技| 丹棱县| 府谷县| 保定市| 麻栗坡县| 浦北县| 库尔勒市| 林州市| 怀化市| 兰西县| 徐州市| 武川县| 乌鲁木齐县| 肥东县| 怀宁县| 黑河市| 绥中县| 宜兴市| 乌拉特后旗| 吉首市|