环球电气之家-午夜精彩视频-中国专业电气电子产品行业服务网站!

產(chǎn)品分類(lèi)

當(dāng)前位置: 首頁(yè) > 工業(yè)電子產(chǎn)品 > 集成電路(ICs) > IC傳感器

類(lèi)型分類(lèi):
科普知識(shí)
數(shù)據(jù)分類(lèi):
IC傳感器

分布式測(cè)溫中傳感器時(shí)序與溫度讀取研究

發(fā)布日期:2022-05-11 點(diǎn)擊率:49

                   摘  要:在分布式測(cè)溫系統(tǒng)中應(yīng)用了大量的新型傳感器DS18B20,DS18B20是單總線數(shù)字溫度傳感器網(wǎng)" href="http://www.dltyjz.cn/jscontent.asp?id=56&categoryid=67" target="_blank">溫度傳感器其硬件接線簡(jiǎn)單,但時(shí)序非常復(fù)雜。正確使用單總線數(shù)字溫度傳感器,分析其時(shí)序關(guān)系,基于時(shí)序編制正確程序具有及其重要意義。文中結(jié)合時(shí)序圖對(duì)初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序進(jìn)行了詳細(xì)闡述,并給出了實(shí)現(xiàn)各種時(shí)序的軟件程序。應(yīng)用初始化時(shí)序和讀寫(xiě)時(shí)序?qū)崿F(xiàn)了溫度采集,并以傳感器64位序列號(hào)讀取程序的設(shè)計(jì)說(shuō)明了時(shí)序的綜合應(yīng)用。說(shuō)明了溫度采集程序的設(shè)計(jì)思路。并給出了分布式測(cè)溫系統(tǒng)中的溫度顯示。文中基于時(shí)序進(jìn)行溫度的正確讀取與顯示已經(jīng)應(yīng)用于分布式測(cè)溫系統(tǒng)中。

關(guān)鍵詞:寫(xiě)時(shí)序;讀時(shí)序;溫度傳感器;溫度采集

Abstract: A lot of new temperature sensors DS18B20 are used in distributed temperature measurement system. DS18B20 is a single bus digital temperature sensor. The hardware connection of temperature sensor is simple and time slots are very complex. Using the single bus temperature correctly, analyzing time slots and designing the program based on correct time slots have an important meaning. Initialization timing, writing time slots and reading slots are expounded in this paper in detail. Software program of realizing each time slots is provided. The temperature sampling is realized by use of initialization timing, writing time slots and reading slots. The design of 64-bit serial number reading program illustrates synthetical application of time slots. The design method of temperature sampling is illustrated. The temperature display is given out for distributed temperature measurement system. The accurate temperature reading and display based on time slots have been applied in distributed temperature measurement system.

Key words: Writing Time Slots; Reading Time Slots; Temperature Sensor; Temperature Sampling

1.引言

  在分布式測(cè)溫系統(tǒng)中應(yīng)用了大量的新型傳感器DS18B20,DS18B20是單總線數(shù)字溫度傳感器其硬件接線簡(jiǎn)單,但時(shí)序非常復(fù)雜。要實(shí)現(xiàn)溫度的正確讀取,既要有對(duì)DS18B20的ROM操作命令,又有一些功能命令。這些命令的執(zhí)行,既有一定順序,又有特定含義。都需要基于數(shù)字溫度傳感器初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序,按照嚴(yán)格的時(shí)序配合才能完成溫度正確采集與讀取。因此要想正確使用單總線數(shù)字溫度傳感器,必須分析其時(shí)序關(guān)系,并且基于時(shí)序編制正確程序。單總線數(shù)字溫度傳感器時(shí)序分析與應(yīng)用研究具有及其重要意義。

2.數(shù)字溫度傳感器時(shí)序

  DS18B20與單片機(jī)只通過(guò)一條數(shù)據(jù)線連接,所以其數(shù)據(jù)的傳輸方式為串行方式。為了正確讀取溫度值,必須嚴(yán)格按照時(shí)序配合關(guān)系,進(jìn)行程序編制。 DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證數(shù)據(jù)傳輸?shù)恼_性和完整性。通信協(xié)議規(guī)定了總線上的多種信號(hào)的時(shí)序。如:復(fù)位脈沖、響應(yīng)脈沖、寫(xiě)0、寫(xiě)1、讀0和讀 1等信號(hào)的時(shí)序。DS18B20是在嚴(yán)格的時(shí)序控制下進(jìn)行正常操作的。換句話講,就是用較為復(fù)雜的軟件來(lái)?yè)Q取簡(jiǎn)單的硬件接口。因此要正確使用 DS18B20,就必須了解其初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序。

  2.1 數(shù)字溫度傳感器初始化時(shí)序

  初始化時(shí)序有時(shí)也稱(chēng)復(fù)位時(shí)序,它是數(shù)據(jù)線上所有傳輸過(guò)程的開(kāi)始。整個(gè)初始化過(guò)程由主設(shè)備發(fā)出的復(fù)位脈沖和DS18B20的響應(yīng)脈沖組成。在主設(shè)備初始化的過(guò)程中,主設(shè)備通過(guò)拉低數(shù)據(jù)線至少480μS ,DS18B20即認(rèn)為是接收到一個(gè)初始化脈沖,接著主設(shè)備釋放數(shù)據(jù)線,在數(shù)據(jù)線上上拉電阻的作用下,數(shù)據(jù)線電平被拉高,并且主設(shè)備進(jìn)入接收模式。在DS18B20檢測(cè)到上升沿后,延時(shí)15~60μS ,接著通過(guò)拉低總線60~240μS以產(chǎn)生應(yīng)答脈沖。初始化時(shí)序如圖2所示。圖1是圖2、圖3和圖4的線型示意圖。



圖1 線型示意圖

圖2 初始化時(shí)序

  在分布式測(cè)溫系統(tǒng)中CPU采用AT89S52,溫度讀取的初始化程序如下所示:

  DAT BIT P1.0

  INI10: SETB DAT

  MOV R2, #185

  INI11: CLR DAT

  DJNZ R2, INI11 ; 復(fù)位脈沖時(shí)間600us

  SETB DAT ; 釋放數(shù)據(jù)線

  MOV R2, #28

  INI12: DJNZ R2, INI12 ; 等待60us

  CLR C

  ORL C, DAT ; 有無(wú)應(yīng)答低電平

  JC INI10 ; 若無(wú)應(yīng)答,初始化失敗

  MOV R6, #40

  INI13: ORL C, DAT

  JC INI14 ; 數(shù)據(jù)線變高。初始化成功

  DJNZ R6, INI13 ; 低電平最多240us

  SJMP INI10 ; 低電平持續(xù)大于240us,失敗

  INI14: MOV R2, #222

  INI15: DJNZ R2, INI15 ; 應(yīng)答信號(hào)至少要持續(xù)480us

  RET

  2.2 數(shù)字溫度傳感器寫(xiě)時(shí)序

  寫(xiě)時(shí)序包括寫(xiě)“0”時(shí)序和寫(xiě)“1”時(shí)序。寫(xiě)“1”時(shí)序用于主設(shè)備向DS18B20寫(xiě)入1,寫(xiě)“0”時(shí)序用于主設(shè)備向DS18B20寫(xiě)入0。無(wú)論是哪種寫(xiě)時(shí)序都至少需要60μS ,且在兩次獨(dú)立的寫(xiě)時(shí)序之間至少需要1μS的恢復(fù)時(shí)間。兩種寫(xiě)時(shí)序均起始于主設(shè)備拉低數(shù)據(jù)線電平。對(duì)于寫(xiě)“1”時(shí)序,主設(shè)備在拉低數(shù)據(jù)線之后,緊接著必須在15μS之內(nèi)釋放數(shù)據(jù)線,由上拉電阻將數(shù)據(jù)線拉至高電平;而對(duì)于寫(xiě)“0”時(shí)序,在主設(shè)備拉低數(shù)據(jù)線后,只需在整個(gè)時(shí)序內(nèi)保持低電平即可至少60μS。在寫(xiě)時(shí)序開(kāi)始后的15~60μS期間內(nèi),DS18B20讀取數(shù)據(jù)線電平狀態(tài)。如果此期間數(shù)據(jù)線為高電平 ,則對(duì)器件寫(xiě)入邏輯1,否則寫(xiě)入邏輯0。寫(xiě)時(shí)序如圖3所示。



圖3 數(shù)字溫度傳感器寫(xiě)時(shí)序

  寫(xiě)一位程序如下所示。程序中DAT為I/O口P1.0。

  WIR11: SETB DAT ; 拉高電平

  MOV R4, #5

  NOP

  CLR DAT ; 高電平持續(xù)2us后拉低

  WIR12: DJNZ R4, WIR12 ; 等待10微秒

  MOV DAT, C ; 發(fā)送1位

  MOV R4, #23

  WIR13: DJNZ R4, WIR13 ; 保證寫(xiě)時(shí)間大于60us

  SETB DAT

  RET

  2.3 溫度傳感器讀時(shí)序

  DS18B20只有在檢測(cè)到主設(shè)備啟動(dòng)讀時(shí)序后才向主設(shè)備傳輸數(shù)據(jù)。所以一般在主設(shè)備發(fā)送了讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時(shí)序,以便DS18B20能夠傳輸數(shù)據(jù)。所有的讀時(shí)序都至少需要60μS,且在兩次獨(dú)立的讀時(shí)序之間至少需要1μS的恢復(fù)時(shí)間。每個(gè)讀時(shí)序都由主設(shè)備發(fā)起,先使數(shù)據(jù)線為高電平,然后拉低數(shù)據(jù)線至少1μS,再釋放數(shù)據(jù)線。在主設(shè)備發(fā)出讀時(shí)序之后,DS18B20開(kāi)始在數(shù)據(jù)線上發(fā)送數(shù)據(jù)0或1。若其發(fā)送1,則保持?jǐn)?shù)據(jù)線為高電平。若發(fā)送 0,則DS18B20拉低數(shù)據(jù)線,在該時(shí)序結(jié)束后釋放數(shù)據(jù)線。DS18B20發(fā)出的數(shù)據(jù)在起始時(shí)序之后15μS內(nèi)保證可靠有效。因而主設(shè)備在讀時(shí)序期間必須釋放數(shù)據(jù)線,并且要在時(shí)序開(kāi)始后的15μS之內(nèi)讀取數(shù)據(jù)線狀態(tài)。寫(xiě)時(shí)序如圖4所示。



圖4 數(shù)字溫度傳感器讀時(shí)序

  讀一位程序如下所示:

  RE11: SETB DAT ; 使數(shù)據(jù)線為高電平

  NOP

  NOP

  CLR DAT ; 高電平持續(xù)2us后拉低數(shù)據(jù)線

  MOV R4, #4

  NOP ; 持續(xù)低電平2us

  SETB DAT ; 釋放數(shù)據(jù)線

  RE12: DJNZ R4, RE12 ; 等待8us

  MOV C, DAT ; 讀入一位

  MOV R5, #28

  RE13: DJNZ R5, RE13 ; 保證一個(gè)讀周期持續(xù)60us

  SETB DAT ; 使數(shù)據(jù)線為高電平

  RET

3.初始化以及讀寫(xiě)時(shí)序應(yīng)用

  3.1 溫度采集程序設(shè)計(jì)

  單總線數(shù)字溫度傳感器DS18B20要完成溫度的采集需要按順序完成如下幾個(gè)步驟:初始化、跳過(guò)ROM匹配、啟動(dòng)轉(zhuǎn)換、等待轉(zhuǎn)換完成、初始化、匹配 ROM、讀便箋式存儲(chǔ)器、CRC校驗(yàn)、溫度格式轉(zhuǎn)換、保存溫度值以及顯示等其他處理。按照此步驟,程序設(shè)計(jì)時(shí)首先就要按照初始化時(shí)序執(zhí)行2.1所介紹的初始化程序INI10,其次要將跳過(guò)ROM匹配命令(代碼為CCH)寫(xiě)入到DS18B20中,此時(shí)需根據(jù)2.2所介紹的數(shù)字溫度傳感器寫(xiě)時(shí)序編寫(xiě)對(duì) DS18B20一個(gè)寫(xiě)入字節(jié)程序WRITE,將跳過(guò)ROM匹配命令寫(xiě)入DS18B20。為了完成溫度啟動(dòng)轉(zhuǎn)換,需要將啟動(dòng)轉(zhuǎn)換命令寫(xiě)入DS18B20中。用延時(shí)750ms等待轉(zhuǎn)換完成。隨后再按照初始化時(shí)序執(zhí)行本文中2.1所介紹的初始化程序INI10,用寫(xiě)入一個(gè)字節(jié)程序?qū)⑵ヅ銻OM命令(代碼為 55H)寫(xiě)入到DS18B20中。為了完成讀便箋式存儲(chǔ)器操作,需要先結(jié)合數(shù)字溫度傳感器寫(xiě)時(shí)序?qū)⒆x便箋式存儲(chǔ)器命令(代碼為BEH)寫(xiě)入到 DS18B20中,再用溫度傳感器讀時(shí)序編寫(xiě)的讀一個(gè)字節(jié)程序READ,連續(xù)讀取DS18B20便箋式存儲(chǔ)器中9個(gè)字節(jié)的內(nèi)容。由此可見(jiàn),要想實(shí)現(xiàn)溫度正確采集,需要結(jié)合上述所介紹的初始化時(shí)序、溫度傳感器寫(xiě)時(shí)序和溫度傳感器讀時(shí)序,才可以將所需的命令寫(xiě)入與讀出。完成溫度的正確讀取。

  3.2 溫度傳感器序列號(hào)讀取程序設(shè)計(jì)

  每個(gè)單總線數(shù)字溫度傳感器DS18B20出廠時(shí)都有唯一的一個(gè)64位序列號(hào),在使用溫度傳感器之前,需事先將每個(gè)溫度傳感器逐一掛接在I/O口如 P1.0上,再讀取溫度傳感器的序列號(hào)。當(dāng)I/O口上掛接一個(gè)溫度傳感器DS18B20時(shí),可以用讀ROM命令完成64位序列號(hào)的讀取。程序設(shè)計(jì)思路是首先將讀ROM命令(代碼為33H)送入累加器A中,隨后調(diào)用寫(xiě)入一個(gè)字節(jié)程序WRITE,然后調(diào)用讀64位序列號(hào)程序DXLH。在寫(xiě)入一個(gè)字節(jié)程序 WRITE中,置循環(huán)次數(shù)為8,再調(diào)用寫(xiě)入一位子程序,嚴(yán)格按照時(shí)序關(guān)系,執(zhí)行傳感器寫(xiě)時(shí)序,循環(huán)8次寫(xiě)完一個(gè)字節(jié)。在讀64位序列號(hào)程序DXLH中,置內(nèi)部RAM首地址為30H,置循環(huán)次數(shù)為8,調(diào)用讀一個(gè)字節(jié)程序READ,將讀取數(shù)據(jù)存放在內(nèi)部RAM中。循環(huán)8次讀完8個(gè)字節(jié)即64位序列號(hào)。讀出的 64位序列號(hào)將存放到內(nèi)部RAM 30H ~ 37H單元中。讀一個(gè)字節(jié)程序READ如下所示。

  READ: MOV R6, #8 ; 循環(huán)次數(shù)為8

  SETB DAT ; 讀出一位程序,執(zhí)行傳感器讀時(shí)序

  NOP

  NOP

  RD11: CLR DAT

  MOV R4, #4

  NOP ; 持續(xù)低電平2us

  SETB DAT ; 釋放數(shù)據(jù)線

  RD12: DJNZ R4, RD12 ; 等待8us

  MOV C, DAT ; 讀入一位

  RRC A ; 將讀入數(shù)據(jù)移入累加器A

  MOV R5, #28

  RD13: DJNZ R5, RD13 ; 保證一個(gè)讀周期持續(xù)60us

  DJNZ R6, RD11 ; 循環(huán)8次讀一個(gè)字節(jié)

  SETB DAT

  RET

  上述程序執(zhí)行完畢,可將溫度傳感器的64位序列號(hào)存放在單片機(jī)內(nèi)部RAM 30H ~ 37H單元中。

4.分布式測(cè)溫系統(tǒng)中溫度顯示

  分布式測(cè)溫系統(tǒng)中,采用液晶顯示可以實(shí)現(xiàn)房間號(hào)的顯示,實(shí)際溫度的顯示,報(bào)警上限值的顯示以及報(bào)警發(fā)生時(shí)的時(shí)間。還可以循環(huán)顯示多個(gè)房間的實(shí)際溫度和上限值。如圖5所示。



圖5 分布式測(cè)溫系統(tǒng)中對(duì)應(yīng)房間溫度以及報(bào)警上限顯示

5.結(jié)束語(yǔ)

  正確讀取多個(gè)單總線數(shù)字溫度傳感器DS18B20的溫度在分布式測(cè)溫系統(tǒng)中是非常重要的。由于在程序設(shè)計(jì)時(shí)必須根據(jù)嚴(yán)格的時(shí)序關(guān)系,因此本文作者創(chuàng)新點(diǎn)是詳細(xì)闡述了初始化時(shí)序、讀寫(xiě)時(shí)序等復(fù)雜邏輯關(guān)系,設(shè)計(jì)了正確的溫度序列號(hào)讀取程序和溫度讀寫(xiě)程序并能夠進(jìn)行液晶顯示。由于單總線數(shù)字溫度傳感器 DS18B20各個(gè)功能的實(shí)現(xiàn)是通過(guò)各種ROM命令與操作功能命令實(shí)現(xiàn)的,這些命令一環(huán)扣著一環(huán),每個(gè)環(huán)都是一個(gè)時(shí)序的集合。在進(jìn)行程序調(diào)試時(shí),不能像調(diào)試其它程序一樣用單步執(zhí)行來(lái)進(jìn)行跟蹤,因此對(duì)錯(cuò)誤查找和程序優(yōu)化帶來(lái)了很大的難度。在遇到程序運(yùn)行出錯(cuò)時(shí),只能夠根據(jù)錯(cuò)誤現(xiàn)象來(lái)分析、推測(cè)、修改和再運(yùn)行來(lái)解決,而不能直接定位。文中所介紹的單總線數(shù)字溫度傳感器DS18B20程序設(shè)計(jì)思路與方法,目前已較好地應(yīng)用于分布式測(cè)溫系統(tǒng)中,并且滿足一定精度要求。

參考文獻(xiàn)

  [1] 沙占友,智能化集成溫度傳感器原理與應(yīng)用[M],機(jī)械工業(yè)出版社,2002

  [2] 周月霞,孫傳友,DS18B20硬件連接及軟件編程 [J],傳感器世界,2001.12

  [3] Dallas Semiconductor. DS18B20 1-Wire Digital Thermometer [Z]. Dallas Semiconductor Co, 2002

  [4] 徐維濤,郝曉弘,OCXO恒溫槽溫度控制系統(tǒng)控制方法研究[J],微計(jì)算機(jī)信息,2006年第 3 期

下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

推薦產(chǎn)品

更多
主站蜘蛛池模板: 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 烟台金蝶财务软件,烟台网站建设,烟台网络推广 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 基本型顶空进样器-全自动热脱附解吸仪价格-AutoHS全模式-成都科林分析技术有限公司 | 北京公司注册_代理记账_代办商标注册工商执照-企力宝 | 品牌广告服务平台,好排名,好流量,好生意。 | 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 混合反应量热仪-高温高压量热仪-微机差热分析仪DTA|凯璞百科 | 禹城彩钢厂_钢结构板房_彩钢复合板-禹城泰瑞彩钢复合板加工厂 | 北京易通慧公司从事北京网站优化,北京网络推广、网站建设一站式服务商-北京网站优化公司 | 北京发电机出租_发电机租赁_北京发电机维修 - 河北腾伦发电机出租 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 成都租车_成都租车公司_成都租车网_众行宝 | 风化石头制砂机_方解石制砂机_瓷砖石子制砂机_华盛铭厂家 | 步入式高低温测试箱|海向仪器 | 翰香原枣子坊加盟费多少钱-正宗枣核糕配方培训利润高飘香 | 北京包装设计_标志设计公司_包装设计公司-北京思逸品牌设计 | 艾乐贝拉细胞研究中心 | 国家组织工程种子细胞库华南分库 | 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | 菲希尔X射线测厚仪-菲希尔库伦法测厚仪-无锡骏展仪器有限责任公司 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | 无锡网站建设_小程序制作_网站设计公司_无锡网络公司_网站制作 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 南京雕塑制作厂家-不锈钢雕塑制作-玻璃钢雕塑制作-先登雕塑厂 | 聚丙烯酰胺_阴离子_阳离子「用量少」巩义亿腾厂家直销,售后无忧 聚合甘油__盐城市飞龙油脂有限公司 | 动物麻醉机-数显脑立体定位仪-北京易则佳科技有限公司 | 广东成考网-广东成人高考网| 浙江自考_浙江自学考试网 | 100国际学校招生 - 专业国际学校择校升学规划 | 杭州ROHS检测仪-XRF测试仪价格-百科 | 选宝石船-陆地水上开采「精选」色选机械设备-青州冠诚重工机械有限公司 | 胶辊硫化罐_胶鞋硫化罐_硫化罐厂家-山东鑫泰鑫智能装备有限公司 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 喷码机,激光喷码打码机,鸡蛋打码机,手持打码机,自动喷码机,一物一码防伪溯源-恒欣瑞达有限公司 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 蒸压釜-陶粒板隔墙板蒸压釜-山东鑫泰鑫智能装备有限公司 | 质构仪_鱼糜弹性仪-上海腾拔仪器科技有限公司 |