亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 335|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

第12章 I2C總線與EEPROM 12.1

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
前邊學(xué)習(xí)了一種通信協(xié)議叫做UART異步串行通信,本章要學(xué)習(xí)第二種常用的通信協(xié)議I2C重要且常用)。I2C總線是由PHILIPS公司開(kāi)發(fā)的兩線式串行總線,多用于連接微處理器及其外圍芯片。I2C總線的主要特點(diǎn)是接口方式簡(jiǎn)單,兩條線可以掛多個(gè)參與通信的器件,即多機(jī)模式,而且任何一個(gè)器件都可以作為主機(jī),當(dāng)然同一時(shí)刻只能有一個(gè)主機(jī)。
從原理上來(lái)講,UART屬于異步通信,比如電腦發(fā)送給單片機(jī),電腦只負(fù)責(zé)把數(shù)據(jù)通過(guò)TXD發(fā)送出來(lái)即可,接收數(shù)據(jù)是單片機(jī)自己的事情。而I2C屬于同步通信,SCL時(shí)鐘線負(fù)責(zé)收發(fā)雙方的時(shí)鐘節(jié)拍,SDA數(shù)據(jù)線負(fù)責(zé)傳輸數(shù)據(jù)。I2C的發(fā)送方和接收方都以SCL這個(gè)時(shí)鐘節(jié)拍為基準(zhǔn)進(jìn)行數(shù)據(jù)的發(fā)送和接收。
從應(yīng)用上來(lái)講,UART通信多用于板間通信,比如單片機(jī)和電腦,這個(gè)設(shè)備和另外一個(gè)設(shè)備之間的通信。而I2C多用于板內(nèi)通信,比如單片機(jī)和本章要學(xué)的EEPROM之間的通信。
12.1  I2C時(shí)序初步認(rèn)識(shí)
在硬件上,I2C總線是由時(shí)鐘總線SCL和數(shù)據(jù)總線SDA兩條線構(gòu)成,連接到總線上的所有器件的SCL都連到一起,所有SDA都連到一起。I2C總線是開(kāi)漏引腳并聯(lián)的結(jié)構(gòu),因此外部要添加上拉電阻。開(kāi)漏電路外部加上拉電阻,就組成了線“與”的關(guān)系。總線上線“與”的關(guān)系就是說(shuō),所有接入的器件保持高電平,這條線才是高電平,而任何一個(gè)器件輸出一個(gè)低電平,那這條線就會(huì)保持低電平,因此可以做到任何一個(gè)器件都可以拉低電平,也就是任何一個(gè)器件都可以作為主機(jī),如圖12-1所示,添加了R63R64兩個(gè)上拉電阻。

12-1  I2C總線的上拉電阻
雖然說(shuō)任何一個(gè)設(shè)備都可以作為主機(jī),但絕大多數(shù)情況下都是用單片機(jī)來(lái)做主機(jī),而總線上掛的多個(gè)器件,每一個(gè)都像電話機(jī)一樣有自己唯一的地址,在信息傳輸?shù)倪^(guò)程中,通過(guò)這唯一的地址就可以正常識(shí)別到屬于自己的信息。
學(xué)習(xí)UART串行通信的時(shí)候,知道了通信流程分為起始位、數(shù)據(jù)位、停止位這三部分,同理在I2C中也有起始信號(hào)、數(shù)據(jù)傳輸和停止信號(hào),如圖12-2所示。

12-2  I2C時(shí)序流程圖
從圖上可以看出來(lái),I2CUART時(shí)序流程有相似性,也有一定的區(qū)別。UART每個(gè)字節(jié),都有一起始位、8數(shù)據(jù)位、1位停止位。而I2C分為起始信號(hào)、數(shù)據(jù)傳輸部分、停止信號(hào)。其中數(shù)據(jù)傳輸部分,可以一次傳輸很多個(gè)字節(jié),字節(jié)數(shù)是不受限制的,而每個(gè)字節(jié)的數(shù)據(jù)最后額外跟了一位,這一位叫做應(yīng)答位,通常用ACK表示,類(lèi)似于UART的停止位。
下面通過(guò)和UART通信做比較的方式I2C通信時(shí)序進(jìn)行剖析。首先要理解,UART通信雖然用了TXDRXD兩根線,但是實(shí)際一次通信中,1條線就可以完成,2條線是把發(fā)送和接收分開(kāi)而已。而I2C每次通信,不管是發(fā)送還是接收,必須2條線都參與工作才能完成,為了更方便的看出來(lái)每一位的傳輸流程,把圖12-2改進(jìn)成圖12-3

12-3  I2C通信流程解析
1起始信號(hào):UART通信是從一直持續(xù)的高電平出現(xiàn)一個(gè)低電平標(biāo)志起始位;而I2C通信的起始信號(hào)的定義是SCL為高電平期間,SDA由高電平向低電平變化產(chǎn)生一個(gè)下降沿,表示起始信號(hào),如圖12-3中的Start部分所示。
2數(shù)據(jù)傳輸:首先,UART是低位在前,高位在后;而I2C通信是高位在前,低位在后。其次,UART通信數(shù)據(jù)位是固定長(zhǎng)度,波特率分之一,一位一位固定時(shí)間發(fā)送完畢就可以了。而I2C沒(méi)有固定波特率,但是有時(shí)序的要求,要求當(dāng)SCL在低電平的時(shí)候,SDA允許變化,也就是說(shuō),發(fā)送方必須先保持SCL是低電平,才可以改變數(shù)據(jù)線SDA,輸出要發(fā)送的當(dāng)前數(shù)據(jù)的一位;而當(dāng)SCL在高電平的時(shí)候,SDA絕對(duì)不可以變化,因?yàn)檫@個(gè)時(shí)候,接收方要來(lái)讀取當(dāng)前SDA的電平信號(hào)是0還是1,要保證SDA的穩(wěn)定,如圖12-3中的每一位數(shù)據(jù)的變化,都是在SCL的低電平位置。8位數(shù)據(jù)位后邊跟著的是一位應(yīng)答位,應(yīng)答位后邊還要具體介紹。
3停止信號(hào):UART通信的停止位是一位固定的高電平信號(hào);而I2C通信停止信號(hào)的定義是SCL為高電平期間,SDA由低電平向高電平變化產(chǎn)生一個(gè)上升沿,表示結(jié)束信號(hào),如圖12-3中的Stop部分所示。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1064915 發(fā)表于 2026-4-28 08:09 | 只看該作者
復(fù)制粘貼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表