日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IIC原理及简单流程

發布時間:2024/4/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IIC原理及简单流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

IIC 即 inter-integrated-circuit,又稱 I2C 一種總線結構,具體接受請度娘。

I2C串行總線一般有兩根信號線,一根是雙向的數據線SDA,另一根是時鐘線SCL。所有接到I2C總線設備上的串行數據SDA都接到總線的SDA上,各設備的時鐘線SCL接到總線的SCL上。

以下為mini2440的IIC設備:AT24C08

?

IIC遵從 主/從結構,通信由主機發起,并且由主機結束。

開始信號(s):當時鐘信號處于高電平,向數據信號線發送下降沿。

結束信號(p):當時鐘信號處于高電平,向數據信號線發送上升沿。

?

由于IIC總線上可能連有多個設備,因此我們應該在開始信號后進行設備選擇,也就是發送地址信號,當設備收到符合自己地址的信號后會返回響應。

一般地址位寬為7位,而發送的數據位為8位,除了7位地址,剩下的一位為讀寫位。

?

如果為寫,則在設備返回ack信號后,接著主機發送8位數據,當設備收到數據后,設備返回ack信號。

如果為讀,則在設備返回ack信號后,接著設備返回8位數據,當主機接收到信號后,接下來的ack信號就由主機發送。

Data Transferred段周而復始,直到數據傳輸完成。

?

而在主機發送(R)或者接受(W)到ack信號后,會產生中斷,我們可以在中斷處理程序中對數據進行進一步處理,或者在中斷處理程序內繼續發送/接收數據。

?

當傳輸完成后,

       如果主機作為數據發送方,可以發送停止信號,終止IIC傳輸過程。

       如果主機作為數據接收方,可以不發送響應信號ack,終止傳輸過程。

?

寄存器配置:

根據芯片手冊,IICCON用于初始化,其余用于數據傳輸的相關操作。

IICCON: ?IIC控制寄存器

IICDS:  IIC數據移位寄存器

IICSTAT: ?IIC狀態寄存器

IICADD: ? IIC地址寄存器

流程如下

主機發送流程:

?

主機接收流程:

?

設備發送流程:

?

設備接收流程:

?

另外,對于AT24C08,值得注意的是,該設備是先進行地址選擇(非IIC設備的地址選擇,而是AT24C08內部的地址選擇),然后進行數據讀寫。

因此,AT24C08來說,當該設備被選擇后(IIC地址匹配),然后對收到的第一個數據進行片內地址選擇(寫地址),然后:

?

如果需要寫數據,因為同為寫模式,所以可以直接進行

?

如果需要讀數據,因為要轉換為讀模式,所以需要重新發送開始信號,在當前地址讀數據

?

?

AT24C08是10位地址,所以8位的word address根本不夠進行地址選擇,因此以device address的最后兩位,加上word address 的8位,一共10位數據進行地址選擇。

轉載于:https://www.cnblogs.com/TaigaCon/archive/2012/11/22/2782584.html

總結

以上是生活随笔為你收集整理的IIC原理及简单流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。