摘 要: 簡(jiǎn)介了DS2450 A/D轉(zhuǎn)換器的主要特性,、工作原理,、單總線協(xié)議及其設(shè)置方法,并具體介紹了DS2450在工程應(yīng)用中與計(jì)算機(jī)的接口技術(shù)和軟件編制特點(diǎn),。
關(guān)鍵詞: DS2450 A/D轉(zhuǎn)換器 單總線技術(shù) 接口技術(shù)
DS2450是美國達(dá)拉斯(Dallas)半導(dǎo)體公司1999年新推出的符合單總線協(xié)議的四路A/D轉(zhuǎn)換器,。每個(gè)輸入通道有各自的寄存器組來存儲(chǔ)輸入電壓的范圍,、分辨率和報(bào)警門限值以及當(dāng)輸入電壓偏離指定范圍時(shí)的使能標(biāo)志。DS2450可與單片機(jī)端口的一個(gè)引腳(如P1.0)直接相連,;也可與PC機(jī)的RS232串行口經(jīng)適配器轉(zhuǎn)換后相連,,且可掛上多個(gè)DS2450,使用很方便,。下面介紹DS2450的主要特性與工程應(yīng)用,。
1 DS2450主要特性
· 用戶可編程設(shè)置輸入范圍(2.56V,5.12V),、分辨率(1~16位)和報(bào)警門限,;
· 單電源工作(5V);
· 很低的功耗:工作時(shí)2.5mW,,空閑時(shí)2.5μW,;
· 內(nèi)置多點(diǎn)控制器允許在一條公共單總線上對(duì)多個(gè)DS2450識(shí)別和操作;
· 響應(yīng)模擬電壓超過報(bào)警門限時(shí)的條件查找,;
· 未用作模擬輸入的通道可用作閉環(huán)控制的漏極開路的數(shù)字輸出,;
· 直接與微處理器端口的一個(gè)引腳相連,并以16.3kbps的速率通信,;
· 超速模式下通信速率可達(dá)142kbps,;
· 片上16位CRC生成器能確保數(shù)據(jù)傳輸?shù)恼_性;
· 出廠前激光刻錄和經(jīng)過測(cè)試的64位唯一注冊(cè)號(hào)(8位族碼+48位序列號(hào)+8位CRC校驗(yàn)碼)能保證絕對(duì)的跟蹤能力,,因?yàn)闆]有兩個(gè)部分是相似的,;
· 8位族碼規(guī)定了器件與總線命令者通信的需求;
· 工作溫度范圍從-40°C~+85°C,;
· 緊湊,,低成本,8引腳SOIC表面安裝封裝。
2 引腳說明
DS2450為8腳貼片式封裝,,如圖1所示,。
3 DS2450工作原理與設(shè)置
3.1 原理框圖
DS2450單總線四路A/D轉(zhuǎn)換器是一個(gè)具有四選一多路轉(zhuǎn)換開關(guān)的逐次逼近A/D轉(zhuǎn)換器。其內(nèi)部組成原理框圖如圖2所示,。
圖2中上部是工作電源,。器件通過單總線或者從VCC引腳取得功率,。如果不用VCC供電,,器件在單總線為高期間把能量?jī)?chǔ)存在一個(gè)內(nèi)部電容器上,并且在單總線為低期間繼續(xù)以“寄生”功率為動(dòng)力工作,,直到單總線為高時(shí)才補(bǔ)充寄生(電容器上)能量,。這就提供了足夠的能量。要進(jìn)行A/D轉(zhuǎn)換,,需要將單總線強(qiáng)上拉到5V,,或者使用VCC供電。中部4個(gè)方框是單總線協(xié)議控制和CRC校驗(yàn),。每一個(gè) DS2450出廠前用激光刻錄注冊(cè)號(hào),,此注冊(cè)號(hào)包含一個(gè)唯一的48位序列號(hào)、一個(gè)8位CRC校驗(yàn)碼和一個(gè)8位族碼(20H),。DS2450的64位ROM部分不僅是器件絕對(duì)唯一的電子標(biāo)識(shí),,而且是定位和尋址器件以實(shí)現(xiàn)控制功能的一種手段。CRC(Cyclic Redundancy Check)稱為循環(huán)冗余碼檢測(cè),,是數(shù)據(jù)通信中校驗(yàn)數(shù)據(jù)傳輸是否正確的一種常用方法,。下部3個(gè)方框是A/D轉(zhuǎn)換器及選通和控制電路。
3.2 單總線協(xié)議
DS2450采用達(dá)拉斯公司數(shù)據(jù)傳輸?shù)膯慰偩€協(xié)議,。與DS2450的通信需要一根雙向線,,典型地可以是單片機(jī)端口的一個(gè)引腳。單總線協(xié)議的層次結(jié)構(gòu)如圖3所示,。單總線命令者首先必須發(fā)送七個(gè)ROM功能命令中的一個(gè)命令,。七個(gè)ROM功能命令分別是:①讀ROM(讀取64位注冊(cè)號(hào));②匹配ROM(總線上有多個(gè)DS2450時(shí),,尋址某個(gè)DS2450),;③查找ROM(系統(tǒng)首次啟動(dòng)后,需識(shí)別總線上各器件),;④條件查找ROM(只查找輸入電壓超過設(shè)置的報(bào)警門限值的DS2450),;⑤跳過ROM(總線上只有一個(gè)DS2450時(shí),跳過讀ROM命令直接向器件發(fā)送命令,,以節(jié)省時(shí)間),;⑥超速跳過ROM(超速模式下跳過讀ROM命令);⑦超速匹配ROM(超速模式下尋址某個(gè)DS2450)。在成功執(zhí)行上述命令之一后,,總線命令者可發(fā)送任何一個(gè)可使用的命令來訪問存儲(chǔ)和控制功能,。所有數(shù)據(jù)的讀寫都是從最低位開始的。
3.3 器件存儲(chǔ)器
DS2450所有的寄存器都映射到一個(gè)由相鄰24個(gè)字節(jié)組成的線性內(nèi)存范圍內(nèi),,分為3頁,,每頁8字節(jié)。第一頁叫做轉(zhuǎn)換讀出頁,,內(nèi)部邏輯將轉(zhuǎn)換結(jié)果放在此內(nèi)存區(qū)域以讓總線命令者讀取,。從通道A最低地址00開始,每個(gè)通道有一個(gè)16位的區(qū)域用來存放轉(zhuǎn)換結(jié)果,,如表1所示,。為節(jié)省篇幅,表1,、表2,、表3只列出了通道D。
上電時(shí)轉(zhuǎn)換讀出寄存器缺省為全零,。不管分辨率如何,,轉(zhuǎn)換結(jié)果的最高位總是在同一位置。如果分辨率小于16位,,轉(zhuǎn)換結(jié)果的低位將用零填充來產(chǎn)生一個(gè)16位結(jié)果,。對(duì)于不需要四路模擬輸入的應(yīng)用,應(yīng)當(dāng)將D作為第一個(gè)通道,,C作為第二個(gè)通道,,依次類推。這樣做的優(yōu)點(diǎn)是當(dāng)讀取轉(zhuǎn)換結(jié)果時(shí),,可以較快地到達(dá)頁尾和讀取CRC16,,并且可使單總線上的流量最小。
通道控制和狀態(tài)信息存于第二頁,,如表2所示,。其第一字節(jié)的低四位控制A/D轉(zhuǎn)換位數(shù),如1111為15位,。位5不起作用,,始終為0。位6為輸出控制,,OC為0該通道可以輸出,。位7是輸出使能,OE為1表示通道可控,。第二字節(jié)的位0選擇輸入電壓的范圍,。當(dāng)IR為0時(shí),,是2.55V。當(dāng)IR為1時(shí),,是5.10V,。位1不起作用,讀出總是0,,且不能置為1,。位2和位3分別是AEL(低限報(bào)警使能)和AEH(高限報(bào)警使能),控制器件是否將響應(yīng)條件查找(見ROM功能),。位4和位5分別是報(bào)警標(biāo)志AFL(低)和AFH(高),,告訴總線命令者在上次轉(zhuǎn)換中輸入電壓是否超過了最低或最高門限。如果新的轉(zhuǎn)換不產(chǎn)生報(bào)警,,那么這些標(biāo)志將自動(dòng)清除,,也可不通過轉(zhuǎn)換而由總線命令者寫為0,。位6讀出總是0,,且不能置為1。位7為器件上電復(fù)位狀態(tài),,當(dāng)器件執(zhí)行上電復(fù)位周期時(shí),,POR自動(dòng)置為1。如果該位為1,,器件將總是響應(yīng)條件查找命令,,以便通知命令者控制和門限數(shù)據(jù)不再有效,但不會(huì)產(chǎn)生一個(gè)復(fù)位周期,。上電完畢后,,總線命令者需將POR位置為1。該過程可與恢復(fù)控制和門限數(shù)據(jù)一起進(jìn)行,。因?yàn)镻OR位與器件而不是具體通道有關(guān),,因此使用的是最近一次的設(shè)置值。上電時(shí)每個(gè)通道的控制/狀態(tài)數(shù)據(jù)的第一個(gè)字節(jié)為08H,,第二個(gè)字節(jié)為8CH,。
每個(gè)通道的報(bào)警門限電壓存于第三頁,見表3,。低報(bào)警門限位于第一字節(jié),,低報(bào)警門限上電時(shí)缺省為00H,高報(bào)警門限為FFH,。報(bào)警設(shè)置總是8位,。當(dāng)分辨率大于或等于8位時(shí),如果轉(zhuǎn)換結(jié)果比存儲(chǔ)在高報(bào)警寄存器(AFH)中的值大,,或者比存儲(chǔ)在低報(bào)警寄存器(AFL)中的值小,,那么就會(huì)設(shè)置報(bào)警標(biāo)志。當(dāng)分辨率低于8位時(shí),忽略報(bào)警寄存器的最低位,。
地址18到1F為第四頁,,工廠校準(zhǔn)時(shí)使用該頁。用戶可以通過讀內(nèi)存和寫內(nèi)存命令來訪問該頁,,該頁數(shù)據(jù)的改變會(huì)使DS2450校準(zhǔn)失靈或者失去功能,。如果DS2450由VCC供電,那么必須在上電完畢后向地址1C寫入十六進(jìn)制40來使模擬電路永久地保持在工作狀態(tài),。
4 工程應(yīng)用
在單總線系統(tǒng)中,,掛上DS2450A/D轉(zhuǎn)換器后,則可通過傳感器把各種物理量變?yōu)閿?shù)字經(jīng)單總線送計(jì)算機(jī)進(jìn)行處理了,。圖4展示了以PC機(jī)作控制時(shí)的氣象監(jiān)測(cè)系統(tǒng)的部分示意圖,。圖5是以單片微機(jī)作控制時(shí)的環(huán)境測(cè)控系統(tǒng)的部分示意圖。
5 軟件設(shè)計(jì)
為保證數(shù)據(jù)可靠地傳送,,任一時(shí)刻單總線上只能有一個(gè)控制信號(hào)或數(shù)據(jù),。進(jìn)行數(shù)據(jù)通信時(shí)應(yīng)符合單總線協(xié)議,計(jì)算機(jī)對(duì)某一測(cè)控對(duì)象操作時(shí),,一般有以下四個(gè)過程:(1)初始化信號(hào),;(2)傳送ROM命令;(3)傳送RAM命令,;(4)數(shù)據(jù)交換,。每次傳送的數(shù)據(jù)或命令是由一系列的時(shí)序信號(hào)組成的,單總線上共有四種時(shí)序信號(hào):(1)初始化信號(hào)(復(fù)位信號(hào)),;(2)寫0信號(hào),;(3)寫1信號(hào);(4)讀信號(hào),。軟件設(shè)計(jì)時(shí)要產(chǎn)生這四種時(shí)序信號(hào)波形,。
在單總線系統(tǒng)中,軟件設(shè)計(jì)是技術(shù)的關(guān)鍵,。簡(jiǎn)潔的硬件配置是靠復(fù)雜的軟件來支撐的,。隨著主控計(jì)算機(jī)的不同,可分為PC機(jī)控制和單片機(jī)控制兩種情況,。
5.1 PC機(jī)控制
在這種情況下,,使用達(dá)拉斯公司授權(quán)軟件開發(fā)商(ASDs)的TMEX套裝軟件開發(fā)工具來進(jìn)行軟件設(shè)計(jì)。上述四種時(shí)序信號(hào)波形程序已包含在TMEX中,,編程時(shí)可直接調(diào)用,。TMEX其實(shí)是一些動(dòng)態(tài)鏈接庫,提供了對(duì)單總線芯片進(jìn)行訪問和控制的函數(shù),,它支持Microsoft Windows及DOS的各種軟件平臺(tái),,可采用C,、C++、Borland Delphi,、Microsoft Access和Visual Basic等可視化編程語言來開發(fā),;還支持DS9097U通用串行口轉(zhuǎn)換器、DS9097,、DS9087E及“真正”接地串行口轉(zhuǎn)換器和DS1410E,、DS1410D并行轉(zhuǎn)換口。因此,,可以設(shè)計(jì)精美,、生動(dòng)的界面,既可看到監(jiān)控系統(tǒng)的總布局圖,,又可查看某個(gè)監(jiān)控現(xiàn)場(chǎng)的狀態(tài)數(shù)據(jù)和指示信號(hào),,達(dá)到了現(xiàn)代化、自動(dòng)化的管理水平,。
5.2 單片機(jī)控制
在這種情況下,,要采用單片機(jī)的匯編語言編程。根據(jù)單總線協(xié)議的規(guī)定,,要編寫產(chǎn)生上述的四種時(shí)序信號(hào)波形的程序,,手冊(cè)中對(duì)這四種波形參數(shù)(如脈沖上升時(shí)間、寬度和間隙等)都作了具體的要求,,設(shè)計(jì)中應(yīng)保證指令執(zhí)行時(shí)間小于或等于時(shí)序信號(hào)中的最小時(shí)間。由于使用匯編語言編寫單總線的系統(tǒng)程序和具體的應(yīng)用程序,,相比之下,,要比使用PC機(jī)控制麻煩多了。
參考文獻(xiàn)
1 Dallas. Products Data Book,,1999(網(wǎng)絡(luò)版)
2 Dallas. Application Net Book,,1999(網(wǎng)絡(luò)版)
3 吳江,陳尚松. 單總線技術(shù)在測(cè)控系統(tǒng)中的應(yīng)用. 電測(cè)與儀表,,1999(9)