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

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

QQ登錄

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

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

理解一下單片機(jī)的I2C和SPI通信

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:91350 發(fā)表于 2015-10-29 23:21 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
應(yīng)某位網(wǎng)友要求,今天說(shuō)一下單片機(jī)的I2C SPI通信,可能說(shuō)不清楚,因?yàn)檫@畢竟要做實(shí)驗(yàn)才可完全理解。
I2C和SPI是兩種不同的通信協(xié)議。
聽(tīng)到協(xié)議,似乎高不可攀,其實(shí)協(xié)議就是人們定義的一個(gè)標(biāo)準(zhǔn)而已,我們只要遵照這個(gè)標(biāo)準(zhǔn)去做事,就可以。比如公司規(guī)定早上9點(diǎn)上班,我們就9點(diǎn)上班,不然就會(huì)扣薪水,這就是個(gè)協(xié)議。
用I2C通信的芯片最常用的就是EEPROM芯片,如Atmel的AT24CXX系列,此外,還有一些其它功能的芯片。用SPI通信的芯片有外置FLASH芯片,同樣,還有其他功能的一些芯片。
I2C通信需要用到兩個(gè)引腳:SDA SCL。SCL是時(shí)鐘引腳,SDA是數(shù)據(jù)引腳。

(這是EEPROM芯片)

(這是時(shí)鐘芯片)
SPI通信需要3個(gè)引腳或者4個(gè)引腳:CS SCK MOSI MISO。SPI通信芯片的引腳名稱不一定都是這幾個(gè)名稱,可能還有會(huì)別的名稱,但是意思是一樣的,例如MOSI引腳的意思是“主機(jī)輸出從機(jī)輸入”,某個(gè)SPI接口的芯片就有可能會(huì)寫成SDI,因?yàn)檫@個(gè)SPI器件是作為從機(jī)的,所以它的SDI的意思就是“從機(jī)數(shù)據(jù)輸入引腳”。
SPI通信過(guò)程為:把CS引腳拉低,然后SCK輸出時(shí)鐘,然后就可以在MOSI引腳上輸出數(shù)據(jù),同時(shí)可以在MISO上獲得數(shù)據(jù)了。

(這是一個(gè)SPI FLASH芯片,DO是MISO,DI是MOSI,CLK是SCK,功能一樣,叫法不一樣而已)

(這是一個(gè)SPI接口的ADC芯片,Dout是MISO,DCLOCK就是SCK,這個(gè)芯片有3個(gè)SPI引腳)
大部分單片機(jī)上面都會(huì)帶有I2C口和SPI口,有可能還會(huì)有好幾個(gè)I2C口和SPI口。不過(guò),不帶I2C口和SPI口的單片機(jī),也可以通過(guò)普通引腳的模擬他們的時(shí)序來(lái)進(jìn)行通信。
而且,如果是初學(xué)者的話,一定要學(xué)習(xí)一下用普通引腳模擬,對(duì)他們的通信本質(zhì)理解更深刻。
通信全程,其實(shí)就是控制引腳高低電平和檢測(cè)引腳高低電平的過(guò)程,話說(shuō),控制單片機(jī)的引腳高低電平和檢測(cè)引腳的高低電平,第一天學(xué)單片機(jī)就會(huì)了,所以,I2C通信和SPI通信也沒(méi)什么難的地方。
給大家講一個(gè)最簡(jiǎn)單的通信過(guò)程,例如我們稱下面的通信名稱為KJLWT,名字是不是看起來(lái)很吊,其實(shí)是“科技老頑童”的拼音首字母,因?yàn)榻酉聛?lái)的協(xié)議是我剛剛發(fā)明的,所以以此命名^_^。主要是讓大家理解,名稱就是用來(lái)嚇唬人的。
我們用兩條線來(lái)通信,一條時(shí)鐘線,一條數(shù)據(jù)線。時(shí)鐘線,其實(shí)就是用來(lái)產(chǎn)生一個(gè)脈沖波形,再說(shuō)的直接一點(diǎn),就是把引腳變高變低的信號(hào),如下圖:

(這就是個(gè)時(shí)鐘信號(hào))
例如我們規(guī)定,在時(shí)鐘引腳為高電平的時(shí)候,讀取數(shù)據(jù)引腳的電平,連續(xù)8個(gè)時(shí)鐘,就可以讀到一個(gè)字節(jié)了。那給數(shù)據(jù)的那一端,要怎么給數(shù)據(jù)呢?也很簡(jiǎn)單,給數(shù)據(jù)的那一端,在檢測(cè)到低電平的時(shí)候,就把要發(fā)送的數(shù)據(jù)按照位體現(xiàn)在數(shù)據(jù)引腳上面。例如一個(gè)數(shù)據(jù):0x88,寫成二進(jìn)制以后就是1000 1000。我們來(lái)看一下傳輸這個(gè)數(shù)據(jù)的過(guò)程:從機(jī)檢測(cè)時(shí)鐘引腳,檢測(cè)到一個(gè)下降沿(就是從高電平落到了低電平),就把要發(fā)送的數(shù)據(jù)的bit7體現(xiàn)在數(shù)據(jù)引腳上,例如1000 1000的bit7是1,就把數(shù)據(jù)引腳變高電平,主機(jī)在時(shí)鐘引腳的高電平,檢測(cè)這個(gè)數(shù)據(jù)引腳,把這個(gè)位記錄下來(lái),從機(jī)再次發(fā)現(xiàn)時(shí)鐘引腳的下降沿后,再把數(shù)據(jù)的bit6體現(xiàn)在數(shù)據(jù)引腳上,由于1000 1000 的bit6是0,所以從機(jī)把數(shù)據(jù)引腳拉低,然后當(dāng)時(shí)鐘引腳為高電平的時(shí)候,主機(jī)檢測(cè)數(shù)據(jù)引腳的高低電平,再把bit6記錄下來(lái),……以此8次,就可以把一個(gè)字節(jié)由從機(jī)傳輸?shù)街鳈C(jī)了。是不是很簡(jiǎn)單呢?
時(shí)鐘的速率,就是傳輸數(shù)據(jù)的快慢,以上面講的為例,如果脈沖的周期為1秒鐘,也就是1Hz,那么傳輸一個(gè)字節(jié)就需要8秒鐘;如果脈沖的周期為1毫秒,也就是1KHz,那么輸出一個(gè)字節(jié)只需要8毫秒。這下你就理解通信的速率是什么意思了吧?
I2C通信,SPI通信,只不過(guò)是在我剛才講的例子上面,又多了一些協(xié)議內(nèi)容。具體的協(xié)議,你們隨便找一個(gè)I2C和SPI通信接口的芯片看一下時(shí)序圖就可以了。我們要做的,就是用單片機(jī)的引腳,把它的時(shí)序做出來(lái)。

我是瑞生,毫無(wú)保留的給大家透露電子設(shè)計(jì)經(jīng)驗(yàn),不定時(shí)分享實(shí)用的落地的電子設(shè)計(jì)技巧,希望能夠幫助到大家。

評(píng)分

參與人數(shù) 3黑幣 +26 收起 理由
湖南一霸 + 10 贊一個(gè)!
Eli_ + 6 很給力的講解,瞬間明了,謝謝你!
菜用雞 + 10 很給力!

查看全部評(píng)分

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

使用道具 舉報(bào)

來(lái)自 2#
ID:26275 發(fā)表于 2018-6-7 21:22 | 只看該作者
看到你還是15年底發(fā)的帖子,還沒(méi)什么回帖,現(xiàn)在學(xué)單片機(jī)的,很少有人學(xué)原理和底層基礎(chǔ)了,都是看個(gè)大概的教程, 然后照搬教程例程里寫好的程序做修改而已,99%的人估計(jì)連那語(yǔ)句都理解不通
      這不禁讓我想起了學(xué)加減法,學(xué)單片機(jī)無(wú)非就是學(xué)加減乘除的公式,剩下的,就是自己在做東西時(shí)的應(yīng)用運(yùn)算了,我學(xué)i2c的時(shí)候,曾經(jīng)有過(guò)這樣一個(gè)認(rèn)為,不曉得對(duì)不對(duì), i2c,和SPI一樣,是不是可以理解為就是單片機(jī)與其他芯片之間的通信?

評(píng)分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:250287 發(fā)表于 2018-6-25 20:08 | 只看該作者
哇 剛接觸I2C  很有用!可惜真沒(méi)人回帖。
回復(fù)

使用道具 舉報(bào)

地板
ID:205182 發(fā)表于 2018-6-25 23:43 | 只看該作者
頂一頂樓主
回復(fù)

使用道具 舉報(bào)

5#
ID:643751 發(fā)表于 2020-2-18 20:31 | 只看該作者
支持 寫的很底層 耐心看完 排除了對(duì)協(xié)議的恐懼 對(duì)I2C和SPI有了一定的認(rèn)識(shí)。
回復(fù)

使用道具 舉報(bào)

6#
ID:535242 發(fā)表于 2020-2-22 13:50 | 只看該作者
現(xiàn)在正在學(xué)習(xí) 贊一個(gè)
回復(fù)

使用道具 舉報(bào)

7#
ID:195690 發(fā)表于 2020-3-23 17:14 | 只看該作者
學(xué)習(xí)了,贊一個(gè)
回復(fù)

使用道具 舉報(bào)

8#
ID:233015 發(fā)表于 2020-3-23 23:04 來(lái)自手機(jī) | 只看該作者
確實(shí)寫的好,贊一個(gè)。
回復(fù)

使用道具 舉報(bào)

9#
ID:705423 發(fā)表于 2020-4-9 23:57 | 只看該作者
很棒學(xué)到了
回復(fù)

使用道具 舉報(bào)

10#
ID:66287 發(fā)表于 2020-4-10 08:15 | 只看該作者
樓主不容易,頂一個(gè)
回復(fù)

使用道具 舉報(bào)

11#
ID:725710 發(fā)表于 2020-4-10 09:32 來(lái)自手機(jī) | 只看該作者
寫得通俗易懂。
回復(fù)

使用道具 舉報(bào)

12#
ID:726052 發(fā)表于 2020-4-10 10:10 | 只看該作者
能不能下載?
回復(fù)

使用道具 舉報(bào)

13#
ID:733743 發(fā)表于 2020-4-25 17:56 | 只看該作者
踩踩,學(xué)到了
回復(fù)

使用道具 舉報(bào)

14#
ID:868042 發(fā)表于 2021-1-20 21:30 | 只看該作者
確實(shí)寫的好,
回復(fù)

使用道具 舉報(bào)

15#
ID:582255 發(fā)表于 2021-1-22 20:43 | 只看該作者
很少有人有耐心寫這些啊,頂
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩亚洲国产 | 2023亚洲天堂 | 狠狠躁躁夜夜躁波多野结依 | 91精品久久久久 | 日韩免费| 欧美日韩综合一区 | 黄色毛片网站在线观看 | 色小姐综合网 | 一本色道久久综合亚洲精品高清 | 超碰精品在线 | 一区二区三区在线 | 国产在线观看 | 亚洲色图综合 | 最近免费日本视频在线 | 婷婷中文在线 | 午夜看电影在线观看 | 亚洲一区二区三区高清 | 精品乱人伦一区二区三区 | 欧美mv日韩mv国产网站91进入 | 久久久久久免费观看 | 亚洲一区二区三区在线视频 | 中文字幕免费视频 | 久久久91精品国产一区二区三区 | 涩涩视频在线观看免费 | 国产精品99久久久久久久久久久久 | 亚洲最色网站 | 日本精品视频在线观看 | 国产在线精品一区二区三区 | 国产精品99久久久久久久久 | 成人片免费看 | 欧美一区免费 | 久久精品在线免费视频 | 亚洲综合国产精品 | 日本人爽p大片免费看 | 日韩欧美中文字幕在线观看 | 中文字幕一区二区三区四区五区 | 国产精品久久久久久高潮 | 国产欧美一区二区三区在线看 | 久久久久久久综合 | 性xxxxx| 国产精品一区一区 |