DS1820單總線(xiàn)(1-wire)數(shù)字溫度傳感器
DS1820是美國(guó)DALLAS公司生產(chǎn)的一種單總線(xiàn)(1-wire)數(shù)字溫度傳感器,采用1-wire總線(xiàn)通信協(xié)議。具有獨(dú)特的單總線(xiàn)通信方式以及較高的測(cè)量精度,從而獲得了廣泛應(yīng)用。參考文獻(xiàn)[1]詳細(xì)介紹了DS1820的基本原理和通信時(shí)序,提出由單片機(jī)的I/O端口模擬單總線(xiàn)時(shí)序來(lái)控制DS1820的方法[1]。參考文獻(xiàn)[2]更進(jìn)一步地將DS1820測(cè)量溫度的分辨率由0.5 ℃提高到了0.1 ℃。將DS1820應(yīng)用于不同領(lǐng)域,同樣取得了較好的效果[3-5]。上述文獻(xiàn)在使用DS1820時(shí)均采用微處理器作為總線(xiàn)主機(jī),利用微處理器的I/O端口,用軟件模擬單總線(xiàn)時(shí)序,實(shí)現(xiàn)與DS1820的通信。因?yàn)?-wire器件對(duì)總線(xiàn)時(shí)序要求嚴(yán)格,因此,為了保證與DS1820的可靠通信,微處理器需要采用關(guān)閉中斷的辦法,以防止操作時(shí)序被中斷服務(wù)所破壞。這種方法增加了軟件的設(shè)計(jì)難度,影響了系統(tǒng)的實(shí)時(shí)性[6]。
VHDL作為電子設(shè)計(jì)主流硬件描述語(yǔ)言,采用了層次化設(shè)計(jì)方式,具有電路行為描述能力強(qiáng)、靈活、通用、運(yùn)算速度快的特點(diǎn),能夠較容易地實(shí)現(xiàn)時(shí)序邏輯控制[7]。以數(shù)字溫度傳感器DS1820為例,設(shè)計(jì)一個(gè)基于VHDL的單總線(xiàn)控制器,實(shí)現(xiàn)與DS1820的通信。本文介紹的單總線(xiàn)控制器,有較強(qiáng)的可擴(kuò)展性,可以連接多種單總線(xiàn)器件,且微處理器可以不用被迫關(guān)閉中斷,滿(mǎn)足實(shí)時(shí)性嚴(yán)格要求的應(yīng)用。
1 DS1820簡(jiǎn)介
1.1 DS1820內(nèi)部結(jié)構(gòu)
DS1820主要由4部分組成:64 bit光刻ROM、溫度敏感器件、高速暫存存儲(chǔ)器和溫度報(bào)警觸發(fā)器TH、TL。64 bit光刻ROM保存DS1820的唯一64 bit的ROM編碼。高速暫存存儲(chǔ)器包含9個(gè)連續(xù)的字節(jié),存放測(cè)得的溫度(補(bǔ)碼)、TH和TL的拷貝、計(jì)數(shù)器余值和CRC校驗(yàn)等數(shù)據(jù),其結(jié)構(gòu)如圖1所示。所有數(shù)據(jù)均以最低有效位在前的方式讀寫(xiě)。
DS1820可以采用寄生電源的方式供電,在信號(hào)線(xiàn)為高電平的時(shí)間周期內(nèi),把能量?jī)?chǔ)存在內(nèi)部電容器中,在信號(hào)線(xiàn)為低電平期間,由存儲(chǔ)在電容器內(nèi)的電荷供電。DS1820工作時(shí)信號(hào)線(xiàn)須接4.7 kΩ的上拉電阻,以保證信號(hào)線(xiàn)有足夠的驅(qū)動(dòng)能力。
1.2 DS1820時(shí)序及工作方式
DS1820時(shí)序如圖2所示,時(shí)序波形的電平分為3種類(lèi)型:主機(jī)作用的高低電平、DS1820輸出的高低電平和由上拉電阻拉起的高電平(后2種情況主機(jī)釋放信號(hào)線(xiàn))。DS1820閑置時(shí)信號(hào)線(xiàn)應(yīng)保持高電平。對(duì)DS1820的任何操作(讀、寫(xiě)、復(fù)位等)都是由主機(jī)對(duì)信號(hào)線(xiàn)由邏輯高電平拉至低電平開(kāi)始。
由時(shí)序圖可知,單總線(xiàn)的通信協(xié)議由6種信號(hào)類(lèi)別組成:復(fù)位脈沖、存在脈沖、寫(xiě)0、寫(xiě)1、讀0、讀1。所有這些信號(hào)除了存在脈沖之外,均由總線(xiàn)主機(jī)產(chǎn)生。
主機(jī)通過(guò)單總線(xiàn)對(duì)DS1820的操作必須首先由ROM操作命令之一開(kāi)始。現(xiàn)以單總線(xiàn)只掛接一個(gè)DS1820,讀取溫度數(shù)據(jù)為例,其工作過(guò)程如下:
(1)主機(jī)產(chǎn)生復(fù)位脈沖,DS1820返回響應(yīng)脈沖;
(2)主機(jī)寫(xiě)入Skip ROM(CCH,跳過(guò)ROM)命令,該命令為5種ROM操作命令之一;
(3)主機(jī)寫(xiě)入溫度轉(zhuǎn)換(44H)命令;
(4)主機(jī)再次產(chǎn)生復(fù)位脈沖,DS1820返回響應(yīng)脈沖;
(5)主機(jī)寫(xiě)入Skip ROM(CCH,跳過(guò)ROM)命令;
評(píng)論