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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

清华大学-曾鸣-《ARM微控制器与嵌入式系统》I2C总线(二)

發布時間:2023/12/10 windows 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 清华大学-曾鸣-《ARM微控制器与嵌入式系统》I2C总线(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

I2C(Inter IC Bus)的通訊數據幀:

SCL線無方向區分,SDA線上有數據的流動方向。上圖中灰色的代表的是主機向從機發送數據,此時SDA線的電平控制權由主機掌控,從機只能監聽該線上的電平狀態。白色代表的是從機向主機發送數據,SDA線電平的控制權由從機掌控,主機只能進行監聽。

I2C總線上的任何一次通訊都是由主機發起的,主機在SCL為高電平時將SDA線從高電平拉低產生起始信號,再通過對SDA線電平的控制發送從機地址從而選擇需要通訊的從機,發送完地址后由主機發送一位讀寫標志位決定是需要給從機寫數據還是需要從從機讀取數據。在I2C總線上掛載的所有從機都會收到主機發送的地址信息,只有當主機發送的地址和從機自身的地址相同時才會將SDA線拉低表示產生應答信號。?

主機在發送完起始信號、從機地址和讀寫標志位后主機會釋放SDA線,但主機仍在控制SCL線。這時候主機等待從機接管SDA線給它回饋,在正常情況下總線上的從機地址應該是唯一的,因此最多只有一個從機和主機所呼叫的地址是相匹配的。這時候這個地址匹配的從機會將SDA信號線拉低,即在SDA線上給出一個bit寬的低電平給主機回饋,表示我收到主機的呼叫了。從灰色部分向白色部分的切換過程,意味著主機并未放棄對SCL線的控制仍然按照節拍一個一個周期的走,但釋放掉了對SDA線的控制權一個bit寬的時間,在這個時間里主機等待從機的應答。一次通訊的截止有兩種可能,一種是主機主動發送P通訊終止信號,表示主機不再對從設備進行讀寫操作。另一種是在通訊的過程中,接收方返回了NACK信號,表示從機無法響應這個數據了,可能是從機不存在了,也可能是從機的buffer滿了,總之當接收方不對某一次通訊給出ACK信號時,主機則應該主動發送P通訊終止信號表示本幀數據通訊完成。

I2C是一個完整規范的協議,因此不像SPI協議那樣靈活。I2C協議總是高位先發送MSB,即當需發送的數據位0x83時,反應到SDA數據線上的高低電平序列為10000011。因此如果兩個設備符合I2C協議,它們的電平標準互相匹配之后(3.3V或5V,主機和從機之間電平標準需一致),只需要很簡單的配置,通過這種標準的數據幀格式即可實現通訊。

主機給地址給方向,并且需要判斷從機是否給了ACK信號,因此I2C通訊不再是一種只管往寄存器寫數據,寫完不管,過一會再進行接收的通訊方式。而是一種有交互的、對數據幀進行管控的通訊方式,因此就有了通訊協議的存在。USB通訊和以太網通訊中也是有數據幀、通訊協議的,因此在理解I2C通訊后會對這些復雜協議的理解有很大的幫助。

?

實際上在SDA數據線上看到的信號,是從主機視角看到的邏輯和從機視角產生的邏輯之間“與”以后的結果。SDA線上的電平狀態是主機和從機共同作用的結果,只是需要注意的是同一時刻主機和從機只有一方對SDA數據線具有控制權,因此就有控制權在主機和從機之間的切換。當主機和從機都釋放對SDA數據線的控制權時,SDA數據線為邏輯1。

I2C(Inter IC Bus)的重復起始和子地址:

主機產生的起始信號是通訊必須的,但主機產生的終止信號并不是必須的。

子地址是當從機內部有多個寄存器,因此主機不但要發送從機的地址進行尋址,還需要指定對從機的內部哪個寄存器進行讀或寫操作,內部存儲器對應的地址即為子地址。

從機有子地址的讀操作比寫操作要麻煩一些,需要從上圖中仔細對比理解。

?

?

?

總結

以上是生活随笔為你收集整理的清华大学-曾鸣-《ARM微控制器与嵌入式系统》I2C总线(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

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