該電路提供直接I2電腦 USB 端口的 C 接口。USB轉1線加密狗為PC提供1-Wire主控器,用于控制1-WireI/O擴展器。此 I/O 擴展器具有兩個雙向開漏端口,PC 可以寫入和讀取這些端口。通過在這兩個端口上生成正確的邏輯信號,PC可以模擬I?2C 主控。
當您需要直接 I 時2C接口到您的PC,有幾個選項可用。例如,PC的并行端口可以模擬I2C主機。然而,新PC通常缺少此端口,并且Windows的現代變體(Windows XP和Windows Vista)不允許輕松訪問它。
更好的方法是使用USB端口,但該技術需要復雜的驅動程序,并且通常還需要微控制器,而微控制器又需要固件。不是你能在一個下午建造的東西!有許多商業版本可用,但它們并不便宜。另一方面,圖1的電路可以快速構建,并且可以與LabVIEW和Visual Basic等多種編程語言一起運行。
圖1.該電路提供I2計算機 USB 端口的 C 接口。
U1 (DS9490R)是一款USB轉1線橋接器,為PC增加了一個1線主機。連接至1-Wire網絡的1-WireI/O擴展器(U2、DS2413P)提供兩個雙向漏極開路端口,可通過U1由PC控制。這就是創建 I 所需的所有硬件2C 主控。
軟件
對于缺少硬件的微控制器,I2C master,“位敲擊”是實現軟件 I 的行之有效的方法2C 主控。這是用于啟用軟件 I 的技術2此平臺的 C 母版。
軟件生成 I2通過控制 U2 的 PIOA 和 PIOB(引腳 6 和 4)的邏輯電平來發出 C 信號。例如,要創建起始條件,SDA 必須在 SCL 為高時從高過渡到低。將 SCL (PIOA) 驅動為高電平,然后將 SDA (PIOB) 驅動到高電平,然后將 SDA 拉低。因此,軟件實現了 I2C 通過控制 PIOA 和 PIOB 來控制。DS2413數據資料中的流程圖顯示了這種PIO功能(圖2)。
圖2.PIO功能流程圖,取自DS2413數據資料。
要更改PIO輸出,必須首先通過ROM功能對器件進行尋址。該系統僅包含一個1-Wire從機,因此您可以使用“skip ROM”命令跳過復雜的尋址過程。然后,通過發送“5A”命令寫入 PIO 輸出鎖存器。1-Wire I/O擴展器(U2)包括一個8位寄存器,其兩個LSB連接到PIOA和PIOB。(其他六位不在乎。
為了更改邏輯狀態,新數據將發送兩次:一次按原樣發送,一次反轉。從機(U2)通過向主站返回“AA”命令來確認無差錯接收,并通過發送新的輸出狀態來結束。整個序列現在可以重新開始,也可以通過1-Wire主機的復位中止。因此,您必須為每個輸出更改傳輸四個字節(不包括跳過ROM和5A命令)。例如,您必須執行以下序列來生成 I2C 啟動命令:
主模式 | 數據 | 評論 |
TX | (重置) | 重置總線 |
RX | (存在) | DS2413 存在 |
TX | 0xCC | 跳過只讀存儲器 |
TX | 0x5A | 寫入 PIO 寄存器 |
TX | 0xFF | SCL=1 & SDA=1 |
TX | 0x00 | 倒置數據 |
RX | 0xAA | 接收數據 |
RX | 0x0F | 返回輸出狀態 |
TX | 0xFD | SCL=1 & SDA=0 |
TX | 0x02 | 倒置數據 |
RX | 0xAA | 收到的數據 |
RX | 0x2D | 返回輸出狀態 |
類似的序列實現其他事件,如發送字節、確認和停止。
Maxim為DS9490提供軟件驅動程序,以及支持Microsoft .NET平臺的Windows1-Wire軟件開發套件(SDK)。為了說明,我們可以實現一個 I2LabVIEW 中的 C master,使用 其 .NET 支持。這僅在安裝支持.NET的1-Wire驅動程序時才有效。另一個先決條件是安裝 Microsoft .NET 框架和 Visual J# 可再發行組件包。
為防止其他應用訪問1-Wire網絡,VI“I2C 初始化“(其中 VI 是 LabVIEW 術語,意思是 虛擬 儀器),初始化 U1 并 使 LabVIEW 獨占 訪問 1-Wire 網絡 (圖 3)。然后發出1-Wire復位,然后發出跳脈沖命令(CC),最后發出PIO寫入命令(5A)。
圖3.六“我2“C 初始化”初始化DS2413,之后即可接收I/O數據。
從站(U2)現在已準備好接受PIO的數據。六“I2C 時鐘“將 SCL 線從低電平切換到高電平(圖 4)。SDA可以設置高或低,VI返回SDA狀態。您可以通過連續調用此函數 8 次(傳輸的每個位一個)來寫入完整的字節。如果從站返回數據,則SDA由主站驅動高電平。為了傳輸“0”,從機可以將SDA拉低(這是可以的,因為PIOB是漏極開路輸出)。由于U2會自動返回更新的輸出狀態,因此不需要特殊的讀取操作(參見VI“Send I2C 字節“和”Get I2C 字節“)。
圖4.六“I2C 時鐘“將 SCL 從低切換到高。SDA可以設置為“I2C 寫入“操作并讀取”I2C 讀取“操作。
VIs“I2C開始“,”I2C停止“和”I2C acknowledge“使用相同的結構來生成適當的SDA和SCL信號。通過組合這些VI,您可以對完整的I2C 讀取或寫入會話。為了說明通信會話(圖5),我們讀取實時時鐘的寄存器0(DS1337)。然后,該設備以0x39應答,這是計算秒數的寄存器的內容。寄存器地址設置為0x00,從地址設置為0xD0,要讀取的字節數設置為1。示波器圖像(圖6)顯示了電路針對這些設置產生的信號。
圖5.如何使用圖1電路讀取寄存器的示例。
圖6.讀取DS1337的寄存器0。S=開始,A=確認,Sr=重復啟動,P=停止。從主到從是陰影;從奴隸到主人是白人。
由于軟件開銷很大,該電路產生信號的速率被限制在大約20bps。但是,這個想法可以用不同的編程語言實現。
審核編輯:郭婷
-
微控制器
+關注
關注
48文章
7924瀏覽量
153846 -
usb
+關注
關注
60文章
8151瀏覽量
271260 -
1-Wire
+關注
關注
0文章
70瀏覽量
21562
發布評論請先 登錄
Silicon Labs推出業界首款USB轉I2S音訊橋接晶片
用于USB-I2C橋接的Matlab應用程序如何開發
CY3240 USB轉I2C橋接套件中使用的u***toiic .hex文件有下載鏈接嗎
CANBooBooLoad和I2C-CAN可以橋接嗎?
PCI Express交換及橋接芯片的展望

富士通推出USB 3.0 SATA橋接芯片MB86C30A
富士通USB 3.0-SATA橋接芯片獲超速USB合格證書
AN1941 - Microchip USB 2.0集線器的USB轉I2C橋接功能

PL230 USB到串行RS232橋接控制器的數據手冊免費下載

PL2303 USB到串行橋接芯片系列Windows驅動程序安裝程序用戶手冊

PL2303 USB到串行橋接芯片Windows驅動程序用戶手冊和最新驅動

評論