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

標題: 理解一下單片機的I2C和SPI通信 [打印本頁]

作者: piaolin    時間: 2015-10-29 23:21
標題: 理解一下單片機的I2C和SPI通信
應某位網友要求,今天說一下單片機的I2C SPI通信,可能說不清楚,因為這畢竟要做實驗才可完全理解。
I2C和SPI是兩種不同的通信協議。
聽到協議,似乎高不可攀,其實協議就是人們定義的一個標準而已,我們只要遵照這個標準去做事,就可以。比如公司規定早上9點上班,我們就9點上班,不然就會扣薪水,這就是個協議。
用I2C通信的芯片最常用的就是EEPROM芯片,如Atmel的AT24CXX系列,此外,還有一些其它功能的芯片。用SPI通信的芯片有外置FLASH芯片,同樣,還有其他功能的一些芯片。
I2C通信需要用到兩個引腳:SDA SCL。SCL是時鐘引腳,SDA是數據引腳。

(這是EEPROM芯片)

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

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

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

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

我是瑞生,毫無保留的給大家透露電子設計經驗,不定時分享實用的落地的電子設計技巧,希望能夠幫助到大家。


作者: cqqwing    時間: 2018-6-7 21:22
看到你還是15年底發的帖子,還沒什么回帖,現在學單片機的,很少有人學原理和底層基礎了,都是看個大概的教程, 然后照搬教程例程里寫好的程序做修改而已,99%的人估計連那語句都理解不通
      這不禁讓我想起了學加減法,學單片機無非就是學加減乘除的公式,剩下的,就是自己在做東西時的應用運算了,我學i2c的時候,曾經有過這樣一個認為,不曉得對不對, i2c,和SPI一樣,是不是可以理解為就是單片機與其他芯片之間的通信?
作者: 15796245    時間: 2018-6-25 20:08
哇 剛接觸I2C  很有用!可惜真沒人回帖。
作者: chinarally@    時間: 2018-6-25 23:43
頂一頂樓主
作者: QQ572008555    時間: 2020-2-18 20:31
支持 寫的很底層 耐心看完 排除了對協議的恐懼 對I2C和SPI有了一定的認識。
作者: pull1121    時間: 2020-2-22 13:50
現在正在學習 贊一個
作者: 學習電子知識    時間: 2020-3-23 17:14
學習了,贊一個
作者: brave_ruan    時間: 2020-3-23 23:04
確實寫的好,贊一個。
作者: zhujabin    時間: 2020-4-9 23:57
很棒學到了

作者: bhjyqjs    時間: 2020-4-10 08:15
樓主不容易,頂一個
作者: stc_小白    時間: 2020-4-10 09:32
寫得通俗易懂。
作者: 380572536@qq.co    時間: 2020-4-10 10:10
能不能下載?
作者: nimengmeiwomeng    時間: 2020-4-25 17:56
踩踩,學到了
作者: room07    時間: 2021-1-20 21:30
確實寫的好,
作者: aktuan007    時間: 2021-1-22 20:43
很少有人有耐心寫這些啊,頂




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久久久国产精品午夜一区 | 欧美日韩久久久 | 粉嫩粉嫩芽的虎白女18在线视频 | 久久久久亚洲精品国产 | 久久久综合网 | 偷牌自拍 | 久久综合一区二区三区 | 欧美a在线| 81精品国产乱码久久久久久 | 91久久精品 | www.一区二区三区 | 亚洲一区二区av | 国产91丝袜在线播放 | 欧美视频日韩 | 午夜无码国产理论在线 | 亚洲日韩欧美一区二区在线 | av三级| 欧美性大战xxxxx久久久 | 亚洲精品国产偷自在线观看 | 亚洲色在线视频 | 一区二区免费看 | 综合另类 | 日韩免费av一区二区 | 亚洲国产成人精品女人 | 欧美成人免费在线视频 | 精品欧美一区二区在线观看欧美熟 | 久久四虎 | 欧美一区2区三区4区公司 | 日韩精品视频在线 | 日韩精品视频在线免费观看 | 国产精品伦一区二区三级视频 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 狠狠色综合网站久久久久久久 | 小川阿佐美pgd-606在线 | 亚洲在线一区 | 亚洲视频三 | h视频在线观看免费 | 国产精品1区2区3区 一区中文字幕 | 一区二区三区视频在线免费观看 | 国产成人精品午夜视频免费 | 一区二区免费在线视频 |