一、操作
1.1、系統(tǒng)的概述
I2C系統(tǒng)使用串行數(shù)據(jù)線(xiàn)(SDA)和串行時(shí)鐘線(xiàn)(SCL)進(jìn)行數(shù)據(jù)傳輸。連接到這兩個(gè)信號(hào)的所有設(shè)備必須具有漏極開(kāi)路或集電極開(kāi)路輸出。這兩條線(xiàn)上的邏輯“與”功能都通過(guò)外部上拉電阻器來(lái)實(shí)現(xiàn)。
數(shù)據(jù)在主機(jī)和從機(jī)之間以字節(jié)為單位同步傳輸?shù)絊DA線(xiàn)上。每個(gè)數(shù)據(jù)字節(jié)為8位長(zhǎng)。每個(gè)數(shù)據(jù)位都有一個(gè)SCL時(shí)鐘脈沖,并且首先發(fā)送MSB。每個(gè)傳送的字節(jié)后都有一個(gè)應(yīng)答位。在SCL的高電平期間對(duì)每個(gè)位進(jìn)行采樣;因此,只能在SCL的低電平期間更改SDA線(xiàn)路電平,并且必須在SCL的高電平期間保持穩(wěn)定。若SCL為高電平時(shí),SDA線(xiàn)上存在跳變則被解釋為命令(請(qǐng)參見(jiàn)START和STOP信號(hào))。
1.2、IIC協(xié)議
從宏觀的角度講,IIC協(xié)議可以包含以下四個(gè)部分:
1、開(kāi)始信號(hào)的產(chǎn)生(START)
2、從機(jī)地址傳輸
3、數(shù)據(jù)傳輸
4、停止信號(hào)產(chǎn)生(STOP)
1.2.1 開(kāi)始信號(hào)(START)
當(dāng)總線(xiàn)空閑/就緒時(shí),這意味著沒(méi)有主機(jī)設(shè)備正在使用總線(xiàn)(SCL和SDA線(xiàn)均為高電平),主機(jī)可以通過(guò)發(fā)送START信號(hào)來(lái)啟動(dòng)傳輸。START信號(hào)(通常稱(chēng)為STA-bit)定義為:SCL為高電平時(shí),SDA從高到低的跳變。START信號(hào)表示新數(shù)據(jù)傳輸?shù)拈_(kāi)始。Repeated START是一種啟動(dòng)信號(hào),但沒(méi)有先產(chǎn)生一個(gè)停止信號(hào)。主機(jī)使用這種方法在不釋放總線(xiàn)的情況下,以不同的傳輸方式(例如,從寫(xiě)入設(shè)備到從設(shè)備讀取)與另一個(gè)從機(jī)或同一從機(jī)通信。
當(dāng)命令寄存器中的STA-bit置1且RD或WR位置1時(shí),內(nèi)核產(chǎn)生一個(gè)START信號(hào)。根據(jù)SCL線(xiàn)的當(dāng)前狀態(tài),將生成START或Repeated START。
1.2.2 地址線(xiàn)傳輸
在START信號(hào)之后,主機(jī)立即傳送的數(shù)據(jù)的第一個(gè)字節(jié)是從機(jī)地址。這是一個(gè)7位的調(diào)用地址,后跟RW位(7address+1RW)。RW位向從機(jī)發(fā)送數(shù)據(jù)傳輸方向信號(hào)。一個(gè)系統(tǒng)中的兩個(gè)從機(jī)不能具有相同的地址。只有地址與主機(jī)發(fā)送的地址匹配的從機(jī)會(huì)通過(guò)在第9個(gè)SCL時(shí)鐘周期將SDA拉為低電平來(lái)返回一個(gè)應(yīng)答位來(lái)做出響應(yīng)。(從機(jī)拉低SDA作為ACK)
內(nèi)核將從地址傳輸視為寫(xiě)操作。將從設(shè)備的地址存儲(chǔ)在發(fā)送寄存器中,并將WR位置1。然后,內(nèi)核將在總線(xiàn)上傳輸從機(jī)地址。
1.2.3 數(shù)據(jù)傳輸
一旦成功完成從機(jī)尋址,就可以按照主機(jī)發(fā)送的RW位指定的方向逐字節(jié)進(jìn)行數(shù)據(jù)傳輸。在第9個(gè)SCL時(shí)鐘周期中,每個(gè)傳輸?shù)淖止?jié)后都有一個(gè)應(yīng)答位。如果從機(jī)發(fā)出“無(wú)應(yīng)答”信號(hào),則主機(jī)可以產(chǎn)生一個(gè)STOP信號(hào)來(lái)中止數(shù)據(jù)傳輸,或者產(chǎn)生一個(gè)Repeated START信號(hào)并開(kāi)始一個(gè)新的傳輸周期。
如果作為接收設(shè)備的主機(jī)未應(yīng)答從機(jī),則從機(jī)釋放SDA線(xiàn)供主機(jī)產(chǎn)生STOP或Repeated START信號(hào)。
要將數(shù)據(jù)寫(xiě)入從機(jī),將要發(fā)送的數(shù)據(jù)存儲(chǔ)在發(fā)送寄存器中,并將WR位置1。要從從機(jī)讀取數(shù)據(jù),請(qǐng)將RD位置1。在傳輸過(guò)程中,核心設(shè)置了TIP標(biāo)志(Transfer in progress),指示正在進(jìn)行傳輸。傳輸完成后,將重置TIP標(biāo)志,設(shè)置IF標(biāo)志(Interrupt Flag),并在使能時(shí)產(chǎn)生中斷。設(shè)置IF標(biāo)志后,接收寄存器包含有效數(shù)據(jù)。當(dāng)TIP標(biāo)志復(fù)位時(shí),用戶(hù)可以發(fā)出新的寫(xiě)或讀命令。
1.2.4 停止信號(hào)
主機(jī)可以通過(guò)產(chǎn)生一個(gè)STOP信號(hào)來(lái)終止通信。STOP信號(hào)(通常稱(chēng)為P位)定義為SCL為邏輯1時(shí)SDA從低到高的跳變。
1.3、仲裁過(guò)程
1.3.1 時(shí)鐘同步化
I2C總線(xiàn)是真正的多主機(jī)總線(xiàn),可以在其上連接多個(gè)主機(jī)。如果兩個(gè)或多個(gè)主機(jī)同時(shí)嘗試控制總線(xiàn),則時(shí)鐘同步過(guò)程將確定總線(xiàn)時(shí)鐘。由于I2C信號(hào)采用“線(xiàn)與”連接,從高到低的跳變會(huì)影響連接到總線(xiàn)的所有設(shè)備。因此,SCL線(xiàn)上從高電平到低電平的轉(zhuǎn)換會(huì)導(dǎo)致所有相關(guān)設(shè)備都將其低電平周期計(jì)算在內(nèi)。一旦設(shè)備時(shí)鐘變低,它將使SCL線(xiàn)保持在該狀態(tài),直到達(dá)到時(shí)鐘高狀態(tài)為止。由于采用“線(xiàn)與”連接,因此SCL線(xiàn)將由具有最短低電平周期的設(shè)備保持低電平,并由具有最短高電平周期的設(shè)備保持高電平。
1.3.2 時(shí)鐘伸展
從設(shè)備可以使用時(shí)鐘同步機(jī)制來(lái)降低傳輸比特率。主機(jī)將SCL拉低后,從機(jī)可以拉低SCL為所需的時(shí)間,然后釋放它。如果從機(jī)的SCL低電平周期大于主機(jī)的SCL低電平周期,則將延長(zhǎng)所得到的SCL總線(xiàn)信號(hào)低電平周期,從而插入等待狀態(tài)。
編輯;jq
-
IIC
+關(guān)注
關(guān)注
11文章
304瀏覽量
39004 -
SDA
+關(guān)注
關(guān)注
0文章
124瀏覽量
28628 -
SCL
+關(guān)注
關(guān)注
1文章
240瀏覽量
17397 -
MSB
+關(guān)注
關(guān)注
0文章
13瀏覽量
8331
原文標(biāo)題:IIC專(zhuān)題原理及應(yīng)用篇(一)
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
為什么IIC總線(xiàn)會(huì)難住這么多人?

研華與昆山數(shù)字化創(chuàng)新協(xié)會(huì)聯(lián)合舉辦AI Agent專(zhuān)題論壇
一文解析工業(yè)互聯(lián)網(wǎng)
天合光能榮獲光伏組件回收專(zhuān)題賽一等獎(jiǎng)
一文搞懂軟核的固化、啟動(dòng)和MultiBoot實(shí)現(xiàn)

愛(ài)芯元智亮相IIC Shenzhen 2024
MCU通過(guò)IIC口控制TLV320AIC3204,請(qǐng)問(wèn)MCU的IIC接口和TLV320AIC3204的IIC接口對(duì)接時(shí)需要電平轉(zhuǎn)換嗎?
使用TAS5805M作為音頻功放,但是初始化的IIC驅(qū)動(dòng)一直不成功,求助一份IIC的底層驅(qū)動(dòng)代碼
IIC信號(hào)線(xiàn)需要增加上拉電阻,是因?yàn)?b class='flag-5'>IIC的IO是什么
IIC通訊協(xié)議解析
人工智能專(zhuān)題課System+for+AI.part1
示波器如何捕獲和分析IIC波形?
電壓敏學(xué)術(shù)研討委員會(huì)暨學(xué)習(xí)交流專(zhuān)題會(huì)議圓滿(mǎn)召開(kāi)

評(píng)論