<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > I2C總線(xiàn)協(xié)議及其應用

I2C總線(xiàn)協(xié)議及其應用

作者: 時(shí)間:2013-01-06 來(lái)源:網(wǎng)絡(luò ) 收藏
一、總線(xiàn)介紹:
由于大規模集成電路技術(shù)的發(fā)展,在單個(gè)芯片集成CPU以及組成一個(gè)單獨工作系統所必須的ROM、RAM、I/O端口、A/D、D/A等外圍電路和已經(jīng)實(shí)現,這就是常說(shuō)的單片機或微控制器。目前,世界上許多公司生產(chǎn)單片機,品種很多:包括各種字長(cháng)的CPU,各種容量和品種的ROM、RAM,以及功能各異的I/O等等。但是,單片機品種規格有限,所以只能選用某種單片機再進(jìn)行擴展。擴展的方法有兩種:一種是并行總線(xiàn),另一種是串行總線(xiàn)。由于串行總線(xiàn)連線(xiàn)少,結構簡(jiǎn)單,往往不用專(zhuān)用的母板和插座而直接用導線(xiàn)連接各個(gè)設備即可。因此,采用串行總線(xiàn)大大簡(jiǎn)化了系統硬件設計。PHILIPS公司早在十幾年就前推出了串行總線(xiàn),它是具備多主機系統所需的包括裁決和高低速設備同步等功能的高性能串行總線(xiàn)。
1. 總線(xiàn)硬件結構和術(shù)語(yǔ)
I2C串行總線(xiàn)有兩根信號線(xiàn):一根雙向的數據線(xiàn)SDA;另一根是時(shí)鐘線(xiàn)SCL。所有接到I2C總線(xiàn)上的設備的串行數據都接到總線(xiàn)的SDA線(xiàn),各設備的時(shí)鐘線(xiàn)SCL接到總線(xiàn)的SCL。典型的I2C總線(xiàn)結構如圖1。


圖1:PC總線(xiàn)結構

為了避免總線(xiàn)信號的混亂,要求各設備連接到總線(xiàn)的輸出端必須是開(kāi)漏輸出或集電極開(kāi)路輸出的結構。設備與總線(xiàn)的接口電路如圖2所示。設備上的串行數據線(xiàn)SDA接口電路應該是雙向的,輸出電路用于向總線(xiàn)上發(fā)數據,輸入電路用于接收總線(xiàn)上的數據。串行時(shí)鐘線(xiàn)也應是雙向的,作為控制總線(xiàn)數據傳送的主機要通過(guò)SCL輸出電路發(fā)送,同時(shí)要檢測總線(xiàn)上SCL上的電平以決定什么時(shí)候發(fā)下一個(gè)時(shí)鐘脈沖電平;作為接受主機命令的從機,要按總線(xiàn)上的SCL的信號發(fā)出或接收SDA上的信號,也可以向SCL線(xiàn)發(fā)出低電平信號以延長(cháng)總線(xiàn)周期??偩€(xiàn)空閑時(shí),因各設備都是開(kāi)漏輸出,上拉電阻RP使ADA和SCL線(xiàn)都保持高電平。任一設備輸出的低電平都使相應的總線(xiàn)信號線(xiàn)變低,也就是說(shuō)各設備的SDA是“與”關(guān)系,SCL也是“與”關(guān)系。

圖2:設備和PC總線(xiàn)接口電路

總線(xiàn)對設備接口電路的制造工藝和電平都沒(méi)有特殊的要求(NMOS、CMOS都可以兼容)。數據傳送率按I2C總線(xiàn)可高達每秒十萬(wàn)位,高速方式可高達每秒四十萬(wàn)位??偩€(xiàn)上允許連接的設備數以總線(xiàn)上的電容量不超過(guò)400pF為限。

總線(xiàn)的運行(數據傳輸)由主機控制。所謂主機即啟動(dòng)數據的傳送(發(fā)出啟動(dòng)信號),發(fā)出,傳送結束時(shí)發(fā)出停止信號的設備,通常主機是微處理器。被主機尋訪(fǎng)的設備都稱(chēng)為從機。為了進(jìn)行通訊,每個(gè)接到I2C總線(xiàn)的設備都有一個(gè)唯一的地址,以便于主機尋訪(fǎng)。主機和從機的數據傳送,可以由主機發(fā)送數據到從機,也可以是從機發(fā)到主機。凡是發(fā)送數據到總線(xiàn)的設備稱(chēng)為發(fā)送器,從總線(xiàn)上接收數據的設備被稱(chēng)為接受器。

I2C總線(xiàn)上允許連接多個(gè)微處理器及各種外圍設備,如存儲器、LED及LCD驅動(dòng)器、A/D及D/A轉換器等。為了保證數據可靠地傳送,任一時(shí)刻總線(xiàn)只能有由某一臺主機控制一個(gè)微處理器應該在總線(xiàn)空閑時(shí)發(fā)啟動(dòng)數據,為了妥善解決多臺微處理器同時(shí)發(fā)啟數據傳送(總線(xiàn)控制權)的沖突,并決定由哪一臺微處理器控制總線(xiàn)。I2C總線(xiàn)允許連接不同傳送速率的設備,多臺設備之間時(shí)鐘信號的同步過(guò)程稱(chēng)為同步化。

2. I2C數據傳輸
在I2C總線(xiàn)傳輸過(guò)程中,將兩種特定的情況定義為開(kāi)始和停止條件(如圖3):當SCL保持“高”,SDA由“高”變?yōu)椤暗汀睍r(shí)為開(kāi)始條件;SCL保持“高”,SDA由“低”變?yōu)椤案摺笔菫橥V箺l件。開(kāi)始和停止條件由主控器產(chǎn)生。使用硬件接口可以很容易地檢測開(kāi)始和停止條件,沒(méi)有這種接口的微機必須以每時(shí)鐘周期至少兩次對SDA取樣以使檢測這種變化。

圖3:總線(xiàn)開(kāi)始/停止

上拉電阻相關(guān)文章:上拉電阻原理

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>