當(dāng)前位置:首頁(yè) > 技術(shù)學(xué)院 > 技術(shù)前線
[導(dǎo)讀]2C(Inter-Integrated Circuit)總線是由 PHILIPS 公司開發(fā)的兩線式串行總線,是一種具有多端控制能力向串行數(shù)據(jù)總線系統(tǒng),用于連接微控制器及其外圍設(shè)備。

準(zhǔn)確的讀法應(yīng)該是I的平方C,即I^2C。以后就簡(jiǎn)寫成I2C模塊。

I2C模塊通過I2C總線為DSP和其他符合PHILIPS半導(dǎo)體內(nèi)部集成電路總線規(guī)格(PHILIPS半導(dǎo)體I2C總線規(guī)范)的設(shè)備提供了接口。I2C總線是一種兩線制串行總線,與其相連的外部器件可以發(fā)送1~8位數(shù)據(jù)到DSP,或者從DSP接收1~8位數(shù)據(jù)。通過I2C模塊傳輸或接收到的一個(gè)單位的數(shù)據(jù)可以少于8位。

I2C模塊支持任何主/從I2C兼容設(shè)備,多個(gè)I2C模塊連接在總線上實(shí)現(xiàn)多個(gè)器件間的數(shù)據(jù)雙向傳輸。

一.I2C模塊的主要特征

1.與PHILIPS半導(dǎo)體I2C總線規(guī)范兼容(2.1版)

支持8位格式數(shù)據(jù)傳送;

7位和10位尋址模式,分別最多可以帶128個(gè)和1024個(gè)設(shè)備;

支持多個(gè)主發(fā)送器和多個(gè)從接收器;

支持多個(gè)從發(fā)送器和多個(gè)主接收器;

具有主發(fā)送/接收和主接收/發(fā)送模式;

數(shù)據(jù)傳輸速率可從10Kbit/s到400Kbit/s

*支持通用呼叫功能;

*支持啟動(dòng)字節(jié)(START)模式

2.一個(gè)16位接收FIFO和一個(gè)16位發(fā)送FIFO

3.一個(gè)可以隨時(shí)被CPU使用的中斷

4.在FIFO模式下可被CPU使用的附加中斷

5.有自有數(shù)據(jù)格式模式

6.不支持以下功能:

高速模式

CBUS-兼容模式

二.I2C模塊的性能與功能

I2C是多主控總線,所以任何一個(gè)設(shè)備都能像主控器一樣工作,并控制總線??偩€上每一個(gè)設(shè)備都有一個(gè)獨(dú)一無(wú)二的地址,根據(jù)設(shè)備它們自己的能力,它們可以作為發(fā)射器或接收器工作。I2C模塊允許一個(gè)或多個(gè)支持I2C總線功能的器件連接在同一條總線上。

對(duì)于數(shù)據(jù)通信,I2C模塊有一個(gè)串行數(shù)據(jù)引腳SDA和一個(gè)串行時(shí)鐘引腳SCL。這兩個(gè)引腳在280x器件和連接到I2C總線上的其他器件之間傳送信息。SDA和SCL兩個(gè)引腳均是雙向的。它們必須通過上拉電阻接到正電壓。當(dāng)總線空閑時(shí),兩個(gè)引腳均為高電平。

(1)兩種主要的傳輸模式

標(biāo)準(zhǔn)模式:發(fā)送n個(gè)數(shù)值,n是在I2C模塊寄存器中所設(shè)置的傳輸數(shù)據(jù)個(gè)數(shù)。

重復(fù)模式:一直發(fā)送數(shù)據(jù),直到軟件產(chǎn)生一個(gè)停止條件或一個(gè)新的開始條件。

(2)I2C模塊的主要組成

I2C模塊結(jié)構(gòu)框圖如上圖,主要包含:

一個(gè)SDA串行數(shù)據(jù)引腳和一個(gè)SCL串行時(shí)鐘引腳;

數(shù)據(jù)寄存器和FIFO:暫時(shí)保存SDA引腳和CPU之間傳遞的接收數(shù)據(jù)和發(fā)送數(shù)據(jù);

*控制和狀態(tài)寄存器;

外圍總線接口:用于CPU訪問I2C模塊寄存器和FIFO;

時(shí)鐘同步器:用來(lái)使I2C輸入時(shí)鐘(由DSP時(shí)鐘源產(chǎn)生)和SCL引腳的時(shí)鐘同步,并且使數(shù)據(jù)發(fā)送器與不同的主機(jī)時(shí)鐘速度同步;

*預(yù)定標(biāo)器:將輸入到I2C模塊的時(shí)鐘進(jìn)行分頻;

噪聲濾波器:SDA和SCL引腳的;

*總線仲裁器:用來(lái)處理I2C模塊和其它主器件的仲裁問題;

中斷產(chǎn)生邏輯I2CINT:向CPU發(fā)送中斷信號(hào);

FIFO中斷產(chǎn)生邏輯:以便在I2C模塊中接收數(shù)據(jù)或發(fā)送數(shù)據(jù)時(shí)能夠同步訪問FIFO。(FIFO模式)

上圖也給出了非FIFO模式下數(shù)據(jù)發(fā)送和接收的操作方式。CPU將需要發(fā)送的數(shù)據(jù)寫入到I2CDXR,并從I2CDRR中讀取接收到的數(shù)據(jù)。當(dāng)I2C模塊配置成發(fā)送器時(shí),寫入到I2CDXR的數(shù)據(jù)被復(fù)制到I2CXSR中,并逐位地移出到SDA引腳上;當(dāng)I2C模塊配置成接收器時(shí),接收到的數(shù)據(jù)先移入到I2CRSR,再?gòu)?fù)制到I2CDRR中。

三.時(shí)鐘產(chǎn)生源

如圖所示:

DSP時(shí)鐘產(chǎn)生器從外部時(shí)鐘源接收信號(hào),產(chǎn)生一個(gè)頻率可編程的I2C輸入時(shí)鐘。I2C輸入時(shí)鐘為CPU時(shí)鐘,在I2C內(nèi)部經(jīng)過兩倍以上分頻后產(chǎn)生I2C模塊時(shí)鐘和主機(jī)時(shí)鐘。

模塊時(shí)鐘決定了I2C模塊以什么頻率工作。I2C模塊的可編程分頻器通過對(duì)輸入時(shí)鐘分頻得到模塊時(shí)鐘。配置分頻器寄存器的IPSC位可確定分頻器的值。模塊時(shí)鐘頻率的計(jì)算公式如下:

主時(shí)鐘頻率=模塊時(shí)鐘頻率 X [(ICCL+d)+(ICCH+d)]

為了與所有I2C協(xié)議時(shí)鐘頻率匹配,模塊時(shí)鐘必須配置在7~12MHz之間,分頻器必須在I2C模塊被復(fù)位時(shí)(即I2CMDR的IR=0)配置。當(dāng)IRS由0變成1時(shí)所分頻的頻率才有效,當(dāng)IRS=1時(shí)改變IPSC的值不起作用。

當(dāng)I2C總線的I2C模塊被配置成主器件時(shí),在SCL引腳出現(xiàn)主時(shí)鐘。該時(shí)鐘控制I2C模塊同其他從器件之間通信的時(shí)序。I2CCLKL的ICCL位和I2CCLKH的ICCH位的值分別表示分頻值的低字節(jié)部分和高字節(jié)部分。

四.I2C模塊操作

1.數(shù)據(jù)狀態(tài)

下圖描述了I2C總線傳送數(shù)據(jù)時(shí)數(shù)據(jù)線SDA和時(shí)鐘線SCL的電平狀態(tài)。

在時(shí)鐘為高電平時(shí)SDA引腳上的數(shù)據(jù)必須穩(wěn)定。只有在SCL上時(shí)鐘信號(hào)變低時(shí),數(shù)據(jù)線SDA引腳的數(shù)據(jù)才可以改變。

2.操作模式

I2C模塊有四種基本操作模式用以支持?jǐn)?shù)據(jù)傳送。

具體工作如下:

1)如果I2C模塊工作在主模式下,當(dāng)向從模塊發(fā)送數(shù)據(jù)時(shí),I2C模塊必須保持主發(fā)送器模式;接收從模塊的數(shù)據(jù)時(shí),則其必須變?yōu)橹鹘邮掌髂J健?

2)如果I2C模塊是從機(jī),通常是當(dāng)其識(shí)別來(lái)自主機(jī)的從地址時(shí)發(fā)送一個(gè)應(yīng)答信號(hào)。如果主機(jī)將要發(fā)送數(shù)據(jù)給I2C模塊,那么模塊必須保持從接收器模式。如果主機(jī)要求I2C模塊發(fā)送數(shù)據(jù),那么模塊必須變成從發(fā)送器模式。

五.I2C模塊的起始和停止條件

當(dāng)I2C總線上的I2C模塊被配置成主機(jī)時(shí),可以由該模塊產(chǎn)生起始(START)和停止(STOP)條件。如圖所示,當(dāng)SCL為高電平時(shí),SDA數(shù)據(jù)線產(chǎn)生由高到低跳變時(shí),表示起始條件開始。主機(jī)通過產(chǎn)生這樣的條件來(lái)表明數(shù)據(jù)傳送開始;當(dāng)SCL為高電平,SDA數(shù)據(jù)線產(chǎn)生由低到高跳變時(shí),表明停止條件產(chǎn)生。主機(jī)通過產(chǎn)生該條件表明數(shù)據(jù)傳送停止結(jié)束。

起始條件開始后且停止條件產(chǎn)生之前,認(rèn)為此時(shí)的I2C總線是處于忙狀態(tài)的,此時(shí)I2CSTR的總線忙位BB=1;在停止條件產(chǎn)生后與下個(gè)起始條件產(chǎn)生前,這段期間認(rèn)為I2C總線是處于空閑的,此時(shí)BB=0.。

為了使I2C模塊使用起始條件開始數(shù)據(jù)傳送,I2CMDR的主機(jī)模式位(MST)和起始條件位(STT)都必須為1.為了使I2C模塊使用停止條件終止數(shù)據(jù)的傳送,則停止條件位(STP)必須置1。當(dāng)RM位和STT位都置1時(shí),產(chǎn)生重復(fù)的起始條件。

六.串行數(shù)據(jù)格式

上圖是傳輸8位數(shù)據(jù)。SDA數(shù)據(jù)線上每一位的維持時(shí)間相當(dāng)于SCL一個(gè)脈沖。傳輸數(shù)據(jù)時(shí),總是高有效位字節(jié)(MSB)開始傳送。發(fā)送和接收數(shù)據(jù)的個(gè)數(shù)沒有限制。

1)7位地址格式

要使用7位地址格式,需向I2CMDR的擴(kuò)展地址使能位(XA)寫0,并且要確保自由數(shù)據(jù)格式關(guān)閉(即I2CMDR的FDF=0)

起始位后第一個(gè)字節(jié)包括7位的從機(jī)地址和1位讀寫選擇位。決定數(shù)據(jù)傳送的方向,當(dāng)=0,代表主機(jī)向所尋址的從機(jī)寫數(shù)據(jù);當(dāng)=1,主機(jī)讀來(lái)自從機(jī)的數(shù)據(jù)。

每個(gè)字節(jié)傳輸完成后,必須插入一個(gè)額外的時(shí)鐘周期應(yīng)答位(ACK)。如果在主機(jī)傳送第一個(gè)字節(jié)后,從機(jī)產(chǎn)生應(yīng)答位,則發(fā)送器就會(huì)發(fā)送n位數(shù)據(jù)。n是由I2CMDR的BC位來(lái)確定的1~8位數(shù)。當(dāng)數(shù)據(jù)傳送完成后,接收器產(chǎn)生一個(gè)應(yīng)答位ACK。

2)10位地址格式

要使用10位地址格式,需向I2CMDR的擴(kuò)展地址使能位(XA)寫1,并且要確保自由數(shù)據(jù)格式關(guān)閉(即I2CMDR的FDF=0)

起始位后第一個(gè)字節(jié)包括11110和從機(jī)地址的2個(gè)最高位MSBs以及一個(gè)讀寫選擇位,第二個(gè)字節(jié)為剩下的8位地址。主機(jī)一旦向從機(jī)發(fā)送了第二個(gè)字節(jié),就可以寫數(shù)據(jù),或者通過重復(fù)使用開始位(START)來(lái)改變數(shù)據(jù)傳送方向。

七.I2C協(xié)議總線信號(hào)時(shí)序分析

1.總線空閑狀態(tài)

SDA和SCL兩條信號(hào)線都處于高電平,即總線上器件都處于釋放狀態(tài)。

2.應(yīng)答信號(hào)ACK

I2C總線的數(shù)據(jù)都是以8位進(jìn)行傳送,發(fā)送器每發(fā)送一個(gè)字節(jié)后,在SCL第9個(gè)時(shí)鐘脈沖期間釋放數(shù)據(jù)總線,由接收器發(fā)送一個(gè)ACK(把數(shù)據(jù)總線電平拉低)來(lái)表示數(shù)據(jù)成功接收。

3.無(wú)應(yīng)答信號(hào)NACK

在SCL第9個(gè)時(shí)鐘脈沖期間釋放數(shù)據(jù)總線,接收器不拉低數(shù)據(jù)總線表示一個(gè)NACK,NACK有兩種用途:

a.表示接收器未成功接收數(shù)據(jù)字節(jié);

b.當(dāng)接收器是主控器時(shí),它收到最后一個(gè)字節(jié)后,應(yīng)發(fā)送一個(gè)NACK信號(hào),以通知被控發(fā)送器結(jié)束數(shù)據(jù)發(fā)送,并釋放總線,以便主控接收器發(fā)送一個(gè)停止信號(hào)STOP。

八.寫通訊過程(便于加深理解)

主控在檢測(cè)到總線空閑的狀況下,首先發(fā)送一個(gè)START信號(hào)掌管總線;

發(fā)送一個(gè)地址字節(jié),包括7位地址碼和一位=0;

當(dāng)被控器件檢測(cè)到主控發(fā)送的地址與自己的地址相同時(shí)發(fā)送一個(gè)應(yīng)答信號(hào)ACK;

主控收到ACK信號(hào)后,開始發(fā)送第一個(gè)數(shù)據(jù)字節(jié);

被控器件收到數(shù)據(jù)字節(jié)后發(fā)送一個(gè)ACK表示繼續(xù)傳送數(shù)據(jù),,發(fā)送NACK表示數(shù)據(jù)傳送結(jié)束;

主控發(fā)送完全部數(shù)據(jù)后,發(fā)送一個(gè)停止信號(hào)STOP,結(jié)束整個(gè)通訊并釋放總線。

九.讀通訊過程

主控在檢測(cè)到總線空閑的狀況下,首先發(fā)送一個(gè)START信號(hào)掌管總線;

發(fā)送一個(gè)地址字節(jié),包括7位地址碼和一位=1;

當(dāng)被控器件檢測(cè)到主控發(fā)送的地址與自己的地址相同時(shí)發(fā)送一個(gè)應(yīng)答信號(hào)ACK;

主控收到ACK信號(hào)后釋放數(shù)據(jù)總線,開始接收第一個(gè)數(shù)據(jù)字節(jié);

主控器件收到數(shù)據(jù)字節(jié)后發(fā)送一個(gè)ACK表示繼續(xù)傳送數(shù)據(jù),,發(fā)送NACK表示數(shù)據(jù)傳送結(jié)束;

主控接收完全部數(shù)據(jù)后,發(fā)送一個(gè)停止信號(hào)STOP,結(jié)束整個(gè)通訊并釋放總線。

十.I2C協(xié)議尋址約定

地址的分配方法有兩種:

1.含CPU的智能器件,地址由軟件初始化時(shí)定義,但不能與其它器件有沖突;

2.不含CPU的非智能硬件,由廠家在器件內(nèi)固化,不可改變。

高7位為地址碼,其分為兩部分:

1.高4位屬于固定地址不可改變,由廠家固化的統(tǒng)一地址;

2.第三位為引腳設(shè)定地址,可以由外部引腳來(lái)設(shè)定(并非所有器件都可以設(shè)定,也并非所有器件都是引腳設(shè)定)。

*****************************************************************************************************************這部分內(nèi)容比較多,全是理論為主,以上只是講了一些經(jīng)常用到的知識(shí)點(diǎn),還有一些沒有在此寫出來(lái),如果有需要可以查閱開發(fā)板產(chǎn)品中關(guān)于【I2C模塊部分手冊(cè)】。

好啦,這部分暫時(shí)沒有軟件實(shí)驗(yàn)部分,這一講結(jié)束。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉