久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實(shí)例 >> 瀏覽文章

淺談I2C總線

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2014年08月16日   【字體:

I2C總線概述

I2C(InterIntegrated Circuit)總線是一種由PHILIPS公司在80年代開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。I2C總線最主要的優(yōu)點(diǎn)是其簡單性和有效性。由于接口直接在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本。總線的長度可高達(dá)25英尺,并且能夠以10Kbps的最大傳輸速率支持40個組件。I2C總線的另一個優(yōu)點(diǎn)是,它支持多主控(multimastering),其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線。一個主控能夠控制信號的傳輸和時鐘頻率。當(dāng)然,在任何時間點(diǎn)上只能有一個主控。

I2C總線的構(gòu)成及信號類型
I2C總線是由數(shù)據(jù)線SDA和時鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在ICIC之間進(jìn)行雙向傳送,最高傳送速率100kbps。對于并聯(lián)在一條總線上的每個IC都有唯一的地址。
I2C總線有兩根信號線,一根為SDA(數(shù)據(jù)線),一根為SCL(時鐘線)時鐘信號是由主控器件產(chǎn)生。I2C總線在傳送數(shù)據(jù)過程中共有三種類型信號,它們分別是:開始信號、結(jié)束信號和應(yīng)答信號。
開始信號:SCL為高電平時,SDA由高電平轉(zhuǎn)變?yōu)榈碗娖教儯硎鹃_始通信。
結(jié)束信號:SCL為高電平時,SDA由低電平轉(zhuǎn)變?yōu)楦唠娖教儯Y(jié)束結(jié)束通信。
  應(yīng)答信號:接收數(shù)據(jù)的IC在接收到一個字節(jié)數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。
  開始和結(jié)束信號都是由主機(jī)發(fā)出的,應(yīng)答信號是由從機(jī)發(fā)出的,開始和結(jié)束通信過程的時序如圖1所示。
 


1
  這些信號中,起始信號是必需的,結(jié)束信號和應(yīng)答信號,都可以不要。

I2C總線操作時序
I2C總線必須由主機(jī)(通常為微控制器)控制,主機(jī)產(chǎn)生串行時鐘(SCL)控制總線的傳輸方向,并產(chǎn)生起始和停止條件。SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來表示起始和停止條件。
控制字節(jié)
  在通信開始信號之后,發(fā)送的必須是器件的控制字節(jié),其中高四位為器件類型識別符,接著三位為片選,最后一位為讀寫位,當(dāng)為1時為讀操作,為0時為寫操作。該字節(jié)前七位表示器件的地址。


2
(注:SCL線上1~7位為7位接收器件地址,第8位為讀寫位,第9位為ACK應(yīng)答位,緊接著的為第一個數(shù)據(jù)字節(jié),然后是一位應(yīng)答位,后面繼續(xù)第2個數(shù)據(jù)字節(jié)。)

I2C總線的數(shù)據(jù)傳送
A、主機(jī)向從機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在整個傳送過程中不變。
 


有陰影部分表示數(shù)據(jù)由主機(jī)向從機(jī)傳送,無陰影部分則表示數(shù)據(jù)由從機(jī)向主機(jī)傳送。
A表示應(yīng)答,/A表示非應(yīng)答(高電平)。S表示起始信號,P表示終止信號。
B、主機(jī)在第一個字節(jié)(尋址字節(jié))后,立即由從機(jī)讀數(shù)據(jù)。


在從機(jī)產(chǎn)生響應(yīng)時,主機(jī)從發(fā)送變成接收,從機(jī)從接收變成發(fā)送。之后,數(shù)據(jù)由從機(jī)發(fā)送,主機(jī)接收,每個應(yīng)答由主機(jī)產(chǎn)生,時鐘信號仍由主機(jī)產(chǎn)生。若主機(jī)要終止本次傳輸,則發(fā)送一個非應(yīng)答信號
(A),接著主機(jī)產(chǎn)生停止條件。
C、在傳送過程中,當(dāng)需要改變傳送方向時,起始信號和從機(jī)地址都被重復(fù)產(chǎn)生一次,但兩次讀/寫方向位正好反相
 


I2C
總線仲裁與時鐘發(fā)生
在多主的通信系統(tǒng)中。總線上有多個節(jié)點(diǎn),它們都有自己的尋址地址,可以作為從節(jié)點(diǎn)被別的節(jié)點(diǎn)訪問,同時它們都可以作為主節(jié)點(diǎn)向其它的節(jié)點(diǎn)發(fā)送控制字節(jié)和傳送數(shù)據(jù)。但是如果有兩個或兩個以上的節(jié)點(diǎn)都向總線上發(fā)送啟動信號并開始傳送數(shù)據(jù),這樣就形成了沖突。要解決這種沖突,就要進(jìn)行仲裁的判決,這就是I2C總線上的仲裁。
I2C總線上的仲裁分兩部分:SCL線的同步和SDA線的仲裁。
A、SCL線的同步(時鐘同步)
SCL同步是由于總線具有線“與”的邏輯功能,即只要有一個節(jié)點(diǎn)發(fā)送低電平時,總線上就表現(xiàn)為低電平。當(dāng)所有的節(jié)點(diǎn)都發(fā)送高電平時,總線才能表現(xiàn)為高電平。
 


3

由于線“與”邏輯功能的原理,當(dāng)多個節(jié)點(diǎn)同時發(fā)送時鐘信號時,在總線上表現(xiàn)的是統(tǒng)一的時鐘信號。這就是SCL的同步原理。
B、SDA仲裁
SDA線的仲裁也是建立在總線具有線“與”邏輯功能的原理上的。
節(jié)點(diǎn)在發(fā)送1位數(shù)據(jù)后,比較總線上所呈現(xiàn)的數(shù)據(jù)與自己發(fā)送的是否一致。是,繼續(xù)發(fā)送;否則,退出競爭。
SDA線的仲裁可以保證I2C總線系統(tǒng)在多個主節(jié)點(diǎn)同時企圖控制總線時通信正常進(jìn)行并且數(shù)據(jù)不丟失。總線系統(tǒng)通過仲裁只允許一個主節(jié)點(diǎn)可以繼續(xù)占據(jù)總線。
C、仲裁過程
 


4

DATA1DATA2分別是主節(jié)點(diǎn)向總線所發(fā)送的數(shù)據(jù)信號;
SDA為總線上所呈現(xiàn)的數(shù)據(jù)信號,SCL是總線上所呈現(xiàn)的時鐘信號。
當(dāng)主節(jié)點(diǎn)12同時發(fā)送起始信號時,兩個主節(jié)點(diǎn)都發(fā)送了高電平信號。這時總線上呈現(xiàn)的信號為高電平,兩個主節(jié)點(diǎn)都檢測到總線上的信號與自己發(fā)送的信號相同,繼續(xù)發(fā)送數(shù)據(jù)。
2個時鐘周期,2個主節(jié)點(diǎn)都發(fā)送低電平信號,在總線上呈現(xiàn)的信號為低電平,仍繼續(xù)發(fā)送數(shù)據(jù)。
在第3個時鐘周期,主節(jié)點(diǎn)1發(fā)送高電平信號,而主節(jié)點(diǎn)2發(fā)送低電平信號。根據(jù)總線的線“與”的邏輯功能,總線上的信號為低電平,這時主節(jié)點(diǎn)1檢測到總線上的數(shù)據(jù)和自己所發(fā)送的數(shù)據(jù)不一樣,就斷開數(shù)據(jù)的輸出級,轉(zhuǎn)為從機(jī)接收狀態(tài)。
這樣主節(jié)點(diǎn)2就贏得了總線,而且數(shù)據(jù)沒有丟失,即總線的數(shù)據(jù)與主節(jié)點(diǎn)2所發(fā)送的數(shù)據(jù)一樣,而主節(jié)點(diǎn)1在轉(zhuǎn)為從節(jié)點(diǎn)后繼續(xù)接收數(shù)據(jù),同樣也沒有丟掉SDA線上的數(shù)據(jù)。因此在仲裁過程中數(shù)據(jù)沒有丟失。

I2C總線注意點(diǎn)
1.進(jìn)行數(shù)據(jù)傳送時,在SCL為高電平期間,SDA線上電平必須保持穩(wěn)定,只有SCL為低時,才允許SDA線上電平改變狀態(tài)。并且每個字節(jié)傳送時都是高位在前。
2.對于應(yīng)答信號,ACK=0時為有效應(yīng)答位,說明從機(jī)已經(jīng)成功接收到該字節(jié),若為1則說明接受不成功。
3.如果從機(jī)需要延遲下一個數(shù)據(jù)字節(jié)開始傳送的時間,可以通過把SCL電平拉低并保持來強(qiáng)制主機(jī)進(jìn)入等待狀態(tài)。
4.機(jī)完成一次通信后還想繼續(xù)占用總線在進(jìn)行一次通信,而又不釋放總線,就要利用重啟動信號Sr。它既作為前一次數(shù)據(jù)傳輸?shù)慕Y(jié)束,又作為后一次傳輸?shù)拈_始。
5.總線沖突時,按“低電平優(yōu)先”的仲裁原則,把總線判給在數(shù)據(jù)線上先發(fā)送低電平的主器件。
6.在特殊情況下,若需禁止所有發(fā)生在I2C總線上的通信,可采用封鎖或關(guān)閉總線,具體操作為在總線上的任一器件將SCL鎖定在低電平即可。
7.SDA仲裁和SCL時鐘同步處理過程沒有先后關(guān)系,而是同時進(jìn)行的。
關(guān)閉窗口
主站蜘蛛池模板: 久久新 | 久操av在线 | 亚洲二区在线观看 | 91在线视频播放 | 精品伦精品一区二区三区视频 | 亚洲一区在线免费观看 | 999re5这里只有精品 | 精品日本中文字幕 | 久久久久久久一级 | 国产真实乱全部视频 | 精品国产色 | 色伊人网 | 91偷拍精品一区二区三区 | 欧美日韩综合一区 | 91久色 | 日韩精品一区二区久久 | 精品美女 | 妖精视频一区二区三区 | 日本不卡免费新一二三区 | 免费精品视频在线观看 | 久久99精品久久久久久 | 精品国产色 | 福利视频三区 | 欧美xxxx黑人又粗又长 | 日韩亚洲一区二区 | 国产xxxx在线 | 中文字幕av免费 | a黄在线观看 | 亚洲精品99 | 中日韩av| 日日摸夜夜添夜夜添特色大片 | www亚洲精品| 中文字幕日韩在线观看 | 久久久久久国产精品 | 精品一区二区三区四区五区 | 天天草天天干天天 | 91免费在线视频 | 国产一区二区三区视频 | 久久久久久久久久久久久九 | 久99久视频| 91精产国品一二三区 |