新聞中心

        EEPW首頁 > 模擬技術 > 單總線協議轉換器在分布式測控系統中的應用

        單總線協議轉換器在分布式測控系統中的應用

        ——
        作者:云南農業大學 張佳進 楊燕云 胡亞東 時間:2007-08-21 來源:單片機與嵌入式系統應用 收藏

          摘要:介紹DS2480B UART/RS232至的主要特性、工作原理、接口技術,并具體闡述DS2480B在農業溫室設計中的

            關鍵詞:DS2480B 單總線 RS232  分布式測控

          單總線技術是美國Dallas半導體公司近年推出的新技術。它將地址線、數據線、控制線合為1根信號線,允許在這根信號線上掛接數百個單總線器件芯片。基于單總線的每個芯片內部均有1個出廠前被光刻好的64位ROM序列號,它可以看作是該芯片的地址序列碼。開始8位是產品類型標號,如DSl8B20為28H,DS2450為20H等;接著的48位是該芯片自身的序列號,用以保證在同類芯片中的唯一性;最后8位是前面56位的循環冗余校驗碼,以確保數據傳輸的可靠性。光刻ROM的作用是使每個"單總線"器件的地址都各不相同,這是定位和尋址器件實現單總線測控功能的前提條件,并以此為依據實現1根總線上掛接多個"單總線"芯片。芯片內部集成有收發控制電路和電源存儲電路。與微處理器的接口非常簡單,可節省大量的引線和邏輯電路。芯片的耗電量很小,從總線上"偷"一點電(空閑時幾μW,工作時幾mW)存儲在片內的電容中就可正常工作,一般不用另附電源。最可貴的是這些芯片在檢測點已把被測信號數字化了,因此在單總線上傳送的是數字信號,這使得系統的抗干擾性能好、可靠性高、傳輸距離遠。

          單總線技術具有節省I/O口線資源、結構簡單、成本低廉、便于總線擴展和維護等優點,因此,在中有著廣泛

        1 DS2480B主要特性

          ◇ 串口UART/RS232至單總線通信協議的轉接橋,可直接連到UART和5V RS232系統中, 支持Dallas全系列單總線器件,如數字溫度傳感器DS18B20、A/D轉換器DS2450等;

          ◇ 將主機從單總線時序控制中解脫出來,提供規范的、靈活的和強驅動的單總線定時;

          ◇ 支持標準UART通信,支持9.6(默認)、 19.2、57.6和115.2 kbps速率;

          ◇ 具有較強的總線驅動能力,通信距離可達300 m;

          ◇ 可編程下拉擺率控制和有源上拉,工作范圍 5 V,-40 ~ +85 ℃,8引腳SOIC封裝。

        2 引腳說明及原理框圖

          DS2480B為8腳貼片式封裝,如圖1所示。引腳功能如表1所列。

        表1 引腳功能說明

        引腳號 引腳名稱 引腳功能
        1 GND 地線
        2 1-W 單總線輸入輸出端
        3 NC 懸空
        4 VDD 4.5~5.5V電壓
        5 VPP EPROM編程電壓
        6 POL RXD/TXD選擇端
        7 TXD 發送端
        8 RXD 接收端

          DS2480B工作原理框圖如圖2所示。

        3 DS2480B與RS232的接口技術

          電路了串口"竊電"技術,不用外加電源,同時有DS9502對單總線提供靜電保護,如圖3所示。

        4 基于DS2480B的單總線農業溫室設計

        4.1 核心器件介紹

          溫度信號的檢測選用單總線數字溫度計DSl8B20。它利用溫敏振蕩器的頻率隨溫度變化的關系,通過對振蕩周期的計數來實現溫度測量。DSl8B20采用3引腳TO-92小體積封裝形式;溫度測量范圍為 -55~+125 ℃,可編程為9~12位 A/D轉換精度,測溫分辨率可達 0.0625 ℃,典型轉換速度200 ms/次;被測溫度用符號擴展的16位二進制補碼數字量方式串行輸出;內部非揮發的溫度報警觸發器可由用戶設置高、低限報警值。

          濕度信號、二氧化碳濃度等信號的檢測,先由相應的傳感器和信號調理電路將其轉換成電壓信號,然后掛接到DS2450上。DS2450是單總線4通道逐次逼近式A/D轉換器,其輸入電壓范圍、轉換精度位數(2~6位)、報警門限電壓等均可編程;每個通道有各自的存儲器以存儲電壓范圍設置、轉換結果、門限電壓等參數;普通方式下串行通信速率達16.3 kbps;片內16位循環冗余校驗碼生成器可用于檢測通信的正確性;芯片正常工作時僅消耗2.5 mW功率,空閑情況下消耗25μW。

          溫室控制系統的執行機構采用開關量控制,選用可尋址的單總線控制開關DS2405,由它送出1位0或1作為控制碼信息,先觸發光電耦合器,經功率放大,驅動繼電器、晶閘管或固態繼電器,控制通風機、增濕器執行機構等的開啟與關閉。

          對于控制系統中所需要的數字輸入信號,可選用DS2401。DS2401是符合單總線協議的ROM硅片。當外圍電路接通DS2401后,通過條件搜索ROM命令,可以由計算機查詢到該輸入開關量的狀態。

        4.2 系統硬件組成框圖

          系統硬件組成框圖如圖4所示。

        4.3 軟件設計

          為了保證數據可靠地傳輸,任一時刻單總線上只能有一個控制信號或數據。進行數據通信時應符合單總線協議,計算機對某一測控對象操作時,一般有以下4個過程:① 初始化;② 傳送ROM命令;③ 傳送RAM命令;④ 數據交換。每次傳送的數據或命令是由一系列的時序信號組成,單總線上共有4種時序信號:① 初始化信號(復位信號);② 寫0信號;③ 寫1信號;④ 讀信號。軟件設計時要產生這四種時序信號波形。在單總線系統中,軟件設計是技術的關鍵。簡捷的硬件設計是靠復雜的軟件來支撐的。

          為了提高開發效率,我們采用了Dallas公司授權的軟件開發商(ASDB)提供的免費TMEX軟件開發工具套件。在TMEX中已包含上述4種時序信號波形程序,編程時可直接調用。TMEX實際上是一些動態鏈接庫,包括IBFS32.DLL 、IB97U32.DLL 等文件,提供了對單總線芯片進行訪問和控制的函數。它支持Windows及DOS操作平臺,可以采用C、C++、Delphi、VB等計算機語言開發用戶應用程序;它還支持基于DS2480B的串口轉換器DS9097U、DS1410D并行轉換口。因此,可以設計精美、生動的界面,既可以看到測控系統的總布局圖,又可查看某個測控現場的狀態數據和指示信號,達到了現代化、自動化的管理水平。

          下面是用VB6.0開發工具調用TMEX的API函數,驅動DS2480B進行單總線通信的程序。

          ......

          Dim dmmy,search, result as integer

          Dim Myhandle as long

          State-buffer(15360) as byte

          Private declare function TMExtendedStartSession lib "IBFS32.DLL"(Byval portnum as integer Byval portType as integer, Byval reserved as any) as long

          Private declare function TMsetup lib "IBFS32.DLL"(Byval session_handle as long ,state_buffer as byte) as integer

          Private declare function TMfirst lib "IBFS32.DLL" (Byval session_handle as long, state_buffer as byte) as integer

          Private declare function TMrom lib "IBFS32.DLL" (Byval session_handle as long, state_buffer as byte, rom as integer) as integer

          Private declare function TMendsession lib "IBFS32.DLL"(Byval session_handle as long) as integer

          ......

          Myhandle= TMExtendedStartSession(1,5,vbNullstring)

          '檢查DS2480B是否準備就緒,準備建立會話注意,針

          '對DS2480B,該函數第2個參數必須為5

          If (Myhandle>0) then '成功建立會話

          Dmmy=TMSetup(Myhandle) '初始化

          Search=TMFirst(Myhandle,state_buffer(0)) '查找設備,找

          '到第1個設備返回"1"

          If (search=1) then

          ROM[0] = 0; '表示讀數據

          result = TMRom(session_handle, state_buffer(0), ROM(0));

          if (result = 1) then

          '此時ROM中數據表示該設備的64位ROM序列號,其中

          ' ROM[0]為器件類型代碼,如ROM(0)=20H 表示找到

          ' DS2450, ROM[7] 存放的是 8 bit CRC

          ......         '對找到的設備進行相應操作

          ......

          end if

          dmmy= TMendsession(Myhandle) '結束會話,釋放單總線

          ......

        結束語

          基于DS2480B的單總線分布式測控系統,具有節省I/O口線資源、結構簡單、開發快捷、成本低廉、便于總線擴展和維護等優點,因此有廣闊的應用空間,具有較大的推廣價值。

         



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 昌宁县| 博乐市| 黎川县| 北安市| 乌兰县| 衡山县| 渝北区| 衡水市| 兖州市| 工布江达县| 汉阴县| 合肥市| 蕲春县| 高州市| 桂阳县| 苍溪县| 龙陵县| 灵山县| 醴陵市| 东海县| 弋阳县| 额尔古纳市| 雷州市| 福建省| 八宿县| 上饶市| 辽中县| 湄潭县| 乐陵市| 鄂托克前旗| 娱乐| 三亚市| 河东区| 岐山县| 通化市| 池州市| 平舆县| 元谋县| 河东区| 通州区| 兰坪|