IIC有兩個種線構成:1.資料線SDA 2.時鐘線SCL,資料線要配合時鐘線上的時鐘來轉輸資料,一個脈沖周期可以傳輸1bit的資料,當時鐘處于高電平時,資料線不能夠發生改變,處于低電平時,可以任意改變,
使用MSB的資料傳輸方式,先傳高位,
注意:在電路設計時時鐘線和資料線都必須都要分別接上拉電阻,為電路提供高點平使用,
IIC的幾個基本概念:
1、開始信號:當時鐘線為高電平時,資料線發生下降沿跳變,該信號就被認為是資料傳輸開始信號,說明開始傳輸資料,也就是說發送方開始向接收方發出資料時,由發送方開始發出的信號,發送方此后開始占有IIC總線,
2、結束信號:當時鐘線為高電平時,資料線發生上升沿跳變,該信號就被認為是資料傳輸結束信號,說明停止傳輸資料,也就是說發送方不想再向接收方發資料了,由發送方發出的信號,此后IIC總線處于空閑狀態,
3、應答信號:應答信號是在每次資料發送完的第9個時鐘脈沖由接收方回應發送方的一種信號,該信號為0時為應答信號,表示資料傳輸成功;為1時為非應答信號,
注意:這里所說的非應答信號并不是說接收方不應答發送方,
什么時候回應應答什么時候回應非應答,你得看芯片的具體時序圖,不同芯片時序圖不一樣通常情況請,正常接收到了,正常寫入,回應應答信號,出現例外或者是希望提前結束本次通信,通常回應非應答
每個具有IIC總線的設備中都有唯一的一個地址,該地址稱之為器件地址,一般由是7bit和10bit,但是10bit不常用,因為10bit的地址我們想處理時,要用2位元組來處理,比較麻煩,當然也可以使用,但是一般使用的是7bit器件地址+1bit讀寫位剛好為1個位元組,方便處理,
IIC的仲裁機制:
簡單的說就是在多個主機中由哪一個主機來作為IIC總線的控制者的一種選擇機制,
1.競爭仲裁機制之所以能夠實施,是因為IIC 內部開漏結構
2.每一個主機,往時鐘線送電平的時候,它能夠實時的感知到當前時鐘線上呈現的電平狀態
比如說在一個IIC網路中有3個設備A,B,C,這三個設備都可以作為主從機,在某一時刻,三個設備都發出低電平的信號0,在發送程序中C->0突然發生跳變至高電平C->1,此時C發現線路中仍然是有低電平存在,說明現在不只是有C想要通過IIC總線進行通訊,因此C設備將被設定為接收狀態(浮空輸入);一段時間后,B->0也突然跳變為B->1高電平,此時B發現線路中仍然是有低電平存在,說明現在還有其他主機想要通過IIC總線進行通訊,則B設備將被設定為接收狀態(浮空輸入);再一段時間后,A->0也突然跳變為A->1高電平,此時A發現線路中是有高電平存在,說明現在IIC總線上除了主機A想要控制外,沒有其它的主機想控制IIC總線,則此時認定A為IIC總線的擁有者,直到A發出結束信號,使IIC總線為空閑狀態為止,其它主機才能擁有,
注意:一個IIC網路中可以有多個主機和從機,但是某一時刻只能有一臺主機來發送資料,由他來控制IIC總線,
IIC通訊建立連接:
每一次通信時候,都是由主機發起的,首先是主機發出起始信號,然后起始信號之后必須緊跟 要進行廣播接下來通信的目標設備的器件地址7bit或10bit+讀寫位1bit,當芯片網路里其他的設備收到這個地址和自身器件地址進行比對,如果不相同,就不激活,不參與接下來的通信,如果某一個設備發現和剛剛主機廣播出來的地址相同,它就激活,然后要回應一個bit 的應答信號(低電平 數字信號0),之后的通訊由具體芯片具體設定,最后有主機發出停止信號,
發出起始信號------->器件地址(7bit)-------->讀寫位(1bit)------>應答信號----->資料傳輸連接------>應答信號----->發出結束信號
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/173932.html
標籤:嵌入式
上一篇:初級模擬電路:8-4 受控源電路
