亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        DS18B20在實時控制系統(tǒng)中的應用

        2012-07-03 02:11:54阮海蓉
        制造業(yè)自動化 2012年5期
        關鍵詞:單片機

        阮海蓉

        (襄樊學院 物理與電子工程學院,襄陽 441053)

        0 引言

        DS18B20是美國DALLAS推出的一種內部集成了A/D轉換的單總線數(shù)字溫度傳感器,測量范圍為-55℃~120℃,具有0.0625℃的分辨率,在-10℃~85℃內可獲得±0.5℃的精度。DS18B20使用時無須做任何標定,在一根信號線上實現(xiàn)了數(shù)據(jù)的雙向傳送,與單片機接口時幾乎不需要任何外圍元件。但是,DS18B20轉換時間較長(最大750ms),單總線傳送時序要求嚴格,限制了其在實時控制系統(tǒng)中的應用,一些設計者不得不仍然使用傳統(tǒng)的熱電阻、熱電偶和AD590等傳感元件,而這些方案都需要信號調理、A/D轉換電路,復雜性和使用成本都遠高于DS18B20方案。

        1 DS18B20的工作時序

        DS18B20有3種典型操作時序:初始化、讀和寫。

        初始化:控制器向DS18B20發(fā)出480μs低電平,然后釋放總線,15~60μS后DS18B20應答60~240μs低電平后釋放總線。全過程需時555~780μs。

        寫:控制器向DS18B20發(fā)出一個>1μs的低電平,然后輸出欲寫數(shù)據(jù)(1或0),15μs后DS18B20進入采樣,采樣過程最長達45μs,全過程需時60μs。

        讀:控制器向DS18B20發(fā)出一個>1μs的低電平,然后釋放總線,由DS18B20輸出數(shù)據(jù)(1或0),15μs內控制器完成采樣,45μs釋放總線,全過程需時60μs。

        使用DS18B20進行一次溫度轉換,其標準過程和所需要的時間如下:

        1)初始化:需時780μs。

        2)匹配或忽略ROM指令:控制器向DS18B20寫8位匹配ROM指令55H或忽略ROM指令CCH,需時480μs。

        3)匹配ROM:控制器向DS18B20寫64位ROM編碼,需時3840μs。若選擇忽略ROM,則無此項。

        4)啟動溫度轉換:控制器向DS18B20寫8位啟動命令44H,需時480μs。

        5)等待轉換完成:12位精度需時750ms,11位精度需時375ms,10位精度需時187.5ms,9位精度需時93.75ms。

        6)初始化:需時780μs。

        7)取轉換結果:控制器向DS18B20讀16位溫度數(shù)據(jù),需時960μs。

        這樣,使用12位精度時一次溫度轉換所需要的時間為750~760 ms,且在讀、寫過程中要嚴格遵循其時序規(guī)則,不能被中斷[1]。

        2 實時系統(tǒng)中使用DS18B20的問題

        實時系統(tǒng)對溫度采集的要求主要有兩個:1)有固定采樣周期,以方便進行運算和處理;2)不影響系統(tǒng)對其他任務的處理,即溫度的采樣過程很短或在過程中能夠允許中斷。至于溫度采集周期的長短,由于大多數(shù)實際環(huán)境中溫度的變化是比較緩慢的,每一秒甚至數(shù)秒采集一次是完全可以接受的,DS18B20的750~760ms可以滿足大多數(shù)環(huán)境的要求。

        實時系統(tǒng)程序結構,通常是有一個主程序和多個中斷服務程序,對周期性要求不高任務的可在主程序中進行處理,對周期性有嚴格要求的任務及隨機發(fā)生的事件則放在各中斷中服務程序中。為了保持對對象的有效控制,一般每幾毫秒~幾十毫秒須進行采樣和處理,也就是幾毫秒~幾十毫秒要中斷一次。

        在實時系統(tǒng)中使用DS18B20,常用的方法有以下兩種:

        方法一:將溫度采集放在一個定時中斷服務程序中,采集開始后禁止其他任務中斷,直到本次采集結束。這種方法可以實現(xiàn)采樣周期固定,但該處理將獨占CPU達750~760ms,些期間內不能處理其他任務,這對于一個實時控制系統(tǒng)是很難接受的。

        方法二:將溫度采樣放在主程序中,定時啟動采樣,在兩次讀、寫周期中間開放中斷,以開放系統(tǒng)中的其他任務的處理。這種處理方法的問題是:1)不能充分利用DS18B20的最小轉換周期,在控制任務比較繁重的實時系統(tǒng)中,由于溫度轉換過程不斷被各種其他任務所中斷,以致完成采集的時間大大超過750~760ms,最終確定的溫度采樣周期會比DS18B20的轉換周期延長很多;2)這種處理方法只能保證啟動溫度采樣的周期一定,但是從啟動采樣到轉換結果更新中間會被實時系統(tǒng)中的其他任務打斷,而其他任務所占用的時間不定,最后溫度數(shù)據(jù)更新的周期并不恒定。

        以上兩種是效果較好的方法,其他方法的效果比以上兩種更差,不再贅述。而這些方法的不足,為實時控制系統(tǒng)中使用DS18B20帶來了一定的困難。

        3 典型實時系統(tǒng)分析

        為了說明DS18B20在實時系統(tǒng)中的應用方法,構建了一個典型的應用方案,如圖1所示。

        在這個應用方案中,主要組成部分為STC5608AD單片機、被控對象(如電機速度、運動位置)、2個溫度測量點和LED數(shù)碼管顯示。這個方案是基于多用軟件、少用硬件的理念設計的,LED數(shù)碼管使用了動態(tài)驅動,硬件很少,成本很低,CPU負擔很重。在工作過程中,CPU除了要完成對被控對象的處理外,還要操作2個溫度測量點的DS18B20進行溫度監(jiān)測,而LED數(shù)碼管又必須每2ms進行一次刷新以得到穩(wěn)定的顯示效果。

        圖1 一個典型的實時控制方案

        在軟件設計中,主要有3個任務:LED數(shù)碼管動態(tài)驅動、DS18B20溫度采集和被控對象的處理。每個任務都不能占用CPU過長時間,如DS18B20溫度采集和被控對象的處理時間片最大不能超過2ms,否則顯示就會出現(xiàn)閃爍。

        為了滿足這些要求,一些設計者采用的方法是將動態(tài)驅動改為靜態(tài)驅動、多CPU分別完成不同的任務、將DS18B20更換為熱電偶或熱電阻等,這些都會使系統(tǒng)硬件復雜化,既增加了成本,又降低了系統(tǒng)的可靠性[2]。

        這個方案是一個對CPU極限運用的例子,如果在這個方案中能夠有效使用DS18B20,那么多數(shù)常見的實時控制方案中都可以解決。

        方案在設計硬件時,為兩只DS18B20的DQ單獨分配了接口,這樣可以省去匹配ROM的時間。

        4 分時讀寫DS18B20的程序設計方法

        在圖1所示實時控制系統(tǒng)中應用DS18B20的困難,在于LED數(shù)碼管動態(tài)驅動、被控對象的處理和DS18B20的操作都有嚴格的時序要求,不允許某一任務長時間占用CPU,這與DS18B20的使用特點發(fā)生了沖突。

        分析DS18B20的操作時序,發(fā)現(xiàn)其操作實質上就是通過讀、寫來實現(xiàn)的,如果將讀、寫8位作為一個基本單位,則連續(xù)占用CPU約480μs,這個時間占用程度系統(tǒng)是可以接受的。由此,程序設計中可以將DS18B20的操作拆開,以一個8位的讀、寫為基本單位,使得CPU可以兼顧各個任務。

        使用C51編寫這個系統(tǒng)的程序[3],其與DS18B20相關的部分如下:

        在這段程序中,因LED數(shù)碼管動態(tài)驅動的要求,每2ms由定時器0產生一次中斷,在中斷服務程序中對LED顯示進行掃描處理,掃描僅占用很少的時間,對其他任務的影響基本可忽略不計。

        DS18B20的操作被拆分成十二步:1)輸出低電平并保持2ms以使DS12B80復位;2)輸出高電平并保持2ms結束復位;3)寫0xcc以忽略ROM匹配;4)寫0x44啟動溫度轉換;5)延時750ms等待轉換結束;6)再次輸出2ms復位低電平;7)再次輸出2ms高電平結束復位;8)再寫0xcc以忽略ROM匹配;9)寫0xbe以啟動讀暫存器;10)讀溫度低字節(jié);11)讀溫度高字節(jié);12)本次溫度測量值更新。這12步處理位于77~100行,69~76行是對各計數(shù)器做減1運算和賦初值。這些處理放在時間間隔為2ms的定時中斷服務程序中,溫度測量周期為772ms,如果不需要12位的精度,測量周期可進一步縮短,使用9位精度時可壓縮至120ms以內。如果希望將測量周期設定為一個整數(shù)(如800 ms),可以修改74行中的750。

        在這12步處理中,耗時最多的是讀、寫,每次占用480μs(其間同時處理2個DS18B20)。由于定時器0的中斷周期是2ms,還有不少于1.5ms可以用來對被控對象進行處理,也即3/4的處理時間分配給了被控對象,系統(tǒng)有足夠的時間為被控對象服務。

        經過如此設計的程序,可以無沖突地完成LED數(shù)碼管動態(tài)驅動、被控對象的控制和DS18B20溫度采集。

        5 程序移植和使用

        以上給出的對DS18B20操作的程序(以下稱典型程序),可以方便地移植到某一實時控制軟件中使用。

        一般來說,實時控制軟件中總會有定時中斷的,只要把典型程序中定時中斷中的部分放到具體的實時控制軟件中的定時中斷中就可以了。典型程序對定時中斷周期有寬泛的適應性,1~20 ms都可以正常使用,但周期短會使留給被控對象的處理時間減少,周期長則會使溫度采集的周期延長。當然,如果有富裕的定時器,專門為溫度采集分配一個定時中斷是最好了。

        第3行是為25~31行中的精確延時函數(shù)設定DJNZ Rn指令的時鐘周期數(shù),經典的51系列單片機中該指令需24個時鐘周期,本方案中使用的STC12C5608AD需4個時鐘周期,用于其他方案中應依據(jù)CPU特性進行設置[4]。

        第7~14行用聯(lián)合設置了兩個溫度保存區(qū),該處理使采集到的溫度數(shù)據(jù)既可以作為一個完整的有符號整數(shù)(TW)使用,也可以作為兩個獨立的無符號字節(jié)(TB[1]和TB[0])使用,但要注意TB[1]是低字節(jié)而TB[0]是高字節(jié)。

        第24~62行的3個函數(shù)可以直接拷貝到控制軟件中使用,不需要做任何修改。第24行是為了禁止在這3個函數(shù)中以絕對地址方式使用寄存器的優(yōu)化項,以便使用不同寄存器組的中斷服務程序可以調用,第62行恢復這個優(yōu)化項。

        6 結束語

        分后在定時中斷服務程序中分時處理。使用此方法可以有效地解決DS18B20在實時控制系統(tǒng)中占用CPU處理時間過多的問題。給出的典型應用程序,具有很好的可移植性,將其嵌入實時控制軟件中的定時中斷服務程序中即可。對DS18B20的讀、寫函數(shù)做適當修改,可以實現(xiàn)對更多數(shù)量的DS18B20處理,并且占用的時間基本不變。

        [1] 金偉正.單線數(shù)字溫度感器的使用[J].電子技術應用,2000,26(6):66-68.

        [2] 劉鳴,車立新,陳新梧,等.溫度傳感器DS18B20的特性及程序設計方法[J].電測與儀表,2001,38(10):47-51.

        [3] 顧振宇,劉魯源,杜振輝.DS18B20接口的C語言程序設計[J].單片機與嵌入式系統(tǒng)應用,2002(7):346-348.

        [4] 方飛,薛世華.單片機C延時精度研究[J].單片機與嵌入式系統(tǒng)應用,2008(1):74-75.

        猜你喜歡
        單片機
        基于單片機的SPWM控制逆變器的設計與實現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機的多功能智能插排
        電子制作(2019年11期)2019-07-04 00:34:48
        基于單片機的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        小議PLC與單片機之間的串行通信及應用
        電子制作(2018年12期)2018-08-01 00:48:04
        MSP430單片機在仿真中要注意的幾點問題
        電子制作(2017年9期)2017-04-17 03:00:53
        基于單片機的平衡控制系統(tǒng)設計
        電子制作(2017年19期)2017-02-02 07:08:27
        基于單片機的三維LED點陣設計
        電子制作(2016年21期)2016-05-17 03:52:51
        Microchip推出兩個全新PIC單片機系列
        基于Proteus的單片機控制系統(tǒng)的仿真設計
        日韩精品一区二区三区四区视频| 18成人片黄网站www| 欧美亚洲日韩国产区| 丰满少妇人妻无码超清| 国产一区二区三免费视频| 国产精品无码久久综合网| 窝窝影院午夜看片| 26uuu欧美日本在线播放| 国产人妻久久精品二区三区老狼 | 亚洲麻豆av一区二区| av免费播放网站在线| 亚洲国产成人无码av在线影院| 最新国产在线精品91尤物| 有码中文字幕一区二区| 不卡一区二区黄色av| 国产麻豆成人精品av| 亚洲V在线激情| 在线观看中文字幕不卡二区| 精品无码国产自产在线观看水浒传| 色伦专区97中文字幕| 精品久久久久久午夜| 中文字幕日韩高清乱码| 日本19禁啪啪吃奶大尺度| 亚洲欧美国产日韩制服bt| 毛片av中文字幕一区二区| av素人中文字幕在线观看| 男男受被攻做哭娇喘声视频| 色欲AV无码久久精品有码| 美女被内射很爽的视频网站| 午夜精品久久久久久久无码| 亚洲av之男人的天堂| 日本最新一区二区三区视频 | 人人妻人人添人人爽日韩欧美| 蜜臀av一区二区三区人妻在线| 国产精品成人一区二区不卡| 少妇下蹲露大唇无遮挡| 国产成人一区二区三区免费观看| 中文字幕人妻被公喝醉在线| 国产精品久久成人网站| h国产视频| 91精品啪在线观看国产色|