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