結(jié)合單片機(jī)用匯編實(shí)現(xiàn)I2CBUS總線(xiàn)協(xié)議
I2C(Inter-Integrated Circuit)總線(xiàn)是由PHILIPS公司開(kāi)發(fā)的兩線(xiàn)式串行總線(xiàn),用于連接微控制器及其外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種總線(xiàn)標(biāo)準(zhǔn)。它是同步通信的一種特殊形式,具有接口線(xiàn)少,控制方式簡(jiǎn)單,器件封裝形式小,通信速率較高等優(yōu)點(diǎn)。PHILIPS公司早在十幾年前就推出了I2C串行總線(xiàn),用于連接微控制器及其外圍設(shè)備。它具備多主機(jī)系統(tǒng)所需的包括裁決和高低速設(shè)備同步等功能高性能串行總線(xiàn)。
I2C總線(xiàn)產(chǎn)生于在80年代,最初為音頻和視頻設(shè)備開(kāi)發(fā),如今主要在服務(wù)器管理中使用,其中包括單個(gè)組件狀態(tài)的通信。例如管理員可對(duì)各個(gè)組件進(jìn)行查詢(xún),以管理系統(tǒng)的配置或掌握組件的功能狀態(tài),如電源和系統(tǒng)風(fēng)扇??呻S時(shí)監(jiān)控內(nèi)存、硬盤(pán)、網(wǎng)絡(luò)、系統(tǒng)溫度等多個(gè)參數(shù),增加了系統(tǒng)的安全性,方便了管理。
I2C總線(xiàn)特征
1、只要求兩條總線(xiàn)線(xiàn)路:一條串行數(shù)據(jù)線(xiàn)SDA,一條串行時(shí)鐘線(xiàn)SCL;
2、每個(gè)連接到總線(xiàn)的器件都可以通過(guò)唯一的地址和一直存在的簡(jiǎn)單的主機(jī)/從機(jī)關(guān)系軟件設(shè)定地址,主機(jī)可以作為主機(jī)發(fā)送器或主機(jī)接收器;
3、它是一個(gè)真正的多主機(jī)總線(xiàn),如果兩個(gè)或更多主機(jī)同時(shí)初始化,數(shù)據(jù)傳輸可以通過(guò)沖突檢測(cè)和仲裁防止數(shù)據(jù)被破壞;
4、串行的8 位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s,快速模式下可達(dá)400kbit/s,高速模式下可達(dá)3.4Mbit/s;
5、連接到相同總線(xiàn)的IC 數(shù)量只受到總線(xiàn)的最大電容400pF 限制。
I2C總線(xiàn)硬件結(jié)構(gòu)
I2C串行總線(xiàn)有兩根信號(hào)線(xiàn),一根是雙向的數(shù)據(jù)線(xiàn)SDA,另一根是時(shí)鐘線(xiàn)SCL。所有接到I2C總線(xiàn)睥設(shè)備的串行數(shù)據(jù)SDA都接到總線(xiàn)的SDA線(xiàn),各設(shè)備的時(shí)鐘線(xiàn)SCL接到總線(xiàn)的SCL。典型的I2C總線(xiàn)結(jié)構(gòu)如圖1。
為了避免總線(xiàn)信號(hào)的混亂,要求各設(shè)備連接到總線(xiàn)的輸出端必須是開(kāi)漏輸出或集電極開(kāi)路輸出的電路結(jié)構(gòu)。設(shè)備與總線(xiàn)的接口電路如圖2所示。
I2C總線(xiàn)數(shù)據(jù)傳送率可達(dá)每秒十萬(wàn)位,高速方式可高達(dá)每秒四十萬(wàn)位??偩€(xiàn)上允許連接設(shè)備數(shù)以總線(xiàn)上的電容量不超過(guò)400pF為限。
評(píng)論