遠距離串口服務(wù)器( 適配器)UART 轉(zhuǎn) 1-Wire 應(yīng)用
遠距離串口服務(wù)器( 適配器)UART 轉(zhuǎn) 1-Wire 應(yīng)用

PS304 有 4 個通道的 1Wire 接口,每個接口上可同時連接多個 1Wire 芯片(或設(shè)備)。具有 64 位 ID 搜索功能;具有遠距離線路的自適應(yīng)功能。

ID 搜索與線纜適應(yīng)檢測
向模塊發(fā)送[WIRE1][FIND],模塊返回搜索線路上掛載的所有 1Wire 芯片 ID 并輸出,每個 ID占用 8 字節(jié)。舉例:搜索通道 1 上所有 1Wire 芯片,模塊返回信息如下:S2SREC 28 AA 32 B9 21 20 03 94 2D 85 00 10 20 00 00 7A共返回 16 個字節(jié)數(shù)據(jù),每個 ID8 字節(jié),故通道 1 上有兩個 1Wire 芯片
芯片 1ID: 28 AA 32 B9 21 20 03 94
芯片 2ID: 2D 85 00 10 20 00 00 7A
在搜索過程中,模塊會檢測線纜參數(shù),自動完成線纜適應(yīng)校正。當對 1Wire 芯片操作發(fā)生錯誤時,或者改變線路長度,或者更換線纜時,應(yīng)重新進行上述搜索操作,以獲得實時的芯片數(shù)量和芯片 ID 以及模塊對線纜性能的自適應(yīng)。注:一般而言,線纜越長時搜索過程消耗的時間越長。
DS18B20 溫度傳感器
DS18B20 是 1Wire 接口的溫度傳感器,可實現(xiàn) 12 位精度的溫度轉(zhuǎn)換和輸出功能。 使用方法簡要說明如下。
(1)開始一次溫度轉(zhuǎn)換
向芯片發(fā)送 0xCC 0x44, S2S 協(xié)議為: [WIRE1][START][WT2H]CC 44
(2)讀取溫度
向芯片發(fā)送 0xCC 0xBE,然后讀取 2 個字節(jié)。S2S 協(xié)議為: [WIRE][START][WT2H]CC BE[RD2N]
模塊返回: S2SREC C8 010x01C8 轉(zhuǎn)換為 10 進制為 456,根據(jù) DS18B20 數(shù)據(jù)手冊說明,這個數(shù)*0.0625=28.5℃。
(3)讀取溫度(使用芯片唯一 ID)
[WIRE][START][WT10H]55 28 AA 32 B9 21 20 03 94 BE[RD2N](下劃線部分為已知的芯片 ID)
模塊返回: S2SREC C8 01
0x01C8 轉(zhuǎn)換為 10 進制為 456,根據(jù) DS18B20 數(shù)據(jù)手冊說明,這個數(shù)*0.0625=28.5℃。
DS2431 存儲芯片
DS2431 是一款 1024 位 1-Wire EEPROM 芯片,由 四個存儲器頁組成,每頁 256 位。 數(shù)據(jù)先被寫入一個 8 字節(jié)暫存器中,經(jīng)校驗無誤后復制到 EEPROM 存儲器。其特點在于,四個存儲器頁相互獨立,可以單獨設(shè)置寫保護或 EPROM 仿真模式。對 2431 芯片的讀寫訪問必須以 8 字節(jié)為單位并且起始地址必須為 8 的倍數(shù)。
(1)讀取 EEPROM
向芯片發(fā)送 0xCC 0xF0+兩字節(jié)起始地址,然后讀取 8 字節(jié)數(shù)據(jù)。
例:讀取 EEPROM 的地址 0~8, [WIRE][START][WT4H]CC F0 00 00[RD8N]
模塊返回: S2SREC 31 32 33 34 35 36 37 38
(2)寫 EEPROM
2431 的寫操作分為寫暫存器和暫存器同步到 EEPROM 兩個大的步驟。寫暫存器:向芯片發(fā)送 0xCC 0x0F+兩字節(jié)起始地址+8 字節(jié)數(shù)據(jù)。[WIRE][START][WT4H]CC 0F 00 00[WT8H]31 32 33 34 35 36 37 38[RD2N]
模塊返回: S2SREC 52 D7(0x52D7 是對本次數(shù)據(jù)發(fā)送的 CRC 校驗數(shù)據(jù))
讀取暫存器:向芯片發(fā)送 0xCC 0xAA,讀 13 字節(jié)(3 個寄存器+8 字節(jié)暫存器數(shù)據(jù)+2 字節(jié) CRC)
[WIRE][START][WT2H]CC AA[RD3N][DELAY1][RD10N]
模塊返回: S2SREC 00 00 07 31 32 33 34 35 36 37 38 66 B2
暫存器同步到 EEPROM:向芯片發(fā)送 0xCC 0x55+兩字節(jié)起始地址+0x07
模塊返回: S2SREC AA(0xAA 表示同步成功)