①IIC總線簡介
②IIC總線協(xié)議與讀寫操作
③STM32 IIC控制器介紹
①IIC總線簡介
IIC是inter integrated circuit的簡稱,IIC是由PHILIPS公司開發(fā)的兩線式串行總線;該總線具有接口線少、易于控制、通訊速率高等有點,在微電子控制領域被廣泛使用。
IIC總線具備以下特征:
1、同步通信,半雙工,以字節(jié)為傳輸單位;
2、兩條線路、SDA和SCL;
3、掛載在IIC總線上的設備均可為主設備、亦可為從設備;
4、具有3種傳輸速率,最高可達3.4Mbit/s;可通過總線時鐘的頻率和總線上拉電阻來配置傳輸速率;
5、多主機功能、7位和10位地址模式、可以軟件復位、1字節(jié)緩沖帶DMA功能;
IIC總線的物理連接如下圖:

SDA和SCL總線上會有上拉電阻,總線上可以掛在一定數量的設備通過總線進行通訊、當總線空閑時總線上處于高電平。
②IIC總線協(xié)議與讀寫操作

IIC總線協(xié)議包括:起始信號、終止信號、數據、應答部分;
起始信號:當總線處于空閑狀態(tài)時SDA SCL兩根線上是高電平,若此時SDA由高變低、則定義為起始信號;
終止信號:當SCL處于高電平時,若此時SDA由低變高、則定義為終止信號;
起始信號、終止信號顧名思義是通信的開始和終止,這兩個信號都有主設備發(fā)起;
數據:可分為地址數據、和真實意義上的地址內存儲的數據;
應答:應答可以有應答信號和非應答信號,該信號是跟在數據后面;
若主設備向從設備寫1個數據會有以下過程:
起始信號>從機地址+寫位ACK>寫入地址ACK>寫入數據ACK>終止信號

若主設備向從設備讀1個數據會有以下過程:
起始信號>從機地址+寫位ACK>要讀的地址ACK>起始信號>從機地址+讀位ACK>地址內的數據NACK>終止信號

若讀多個數據就是“從機地址+讀位ACK>地址內的數據NACK”重復幾次
③STM32 IIC控制器介紹
STM32這種芯片是具有IIC控制器的,這樣可以通過硬件產生IIC時序;但有些簡單的單片機就可能沒有IIC控制器,那我們如何與IIC設備通訊呢?答案就是軟件模擬IIC時序,軟件模擬IIC時序相比更加操作繁瑣、效率低。
STM32的IIC片上外設是用來專門實現IIC通訊協(xié)議的,我們只要配置好該外設,就可以產生通訊信號、收發(fā)數據并緩存起來,CPU檢測外設的狀態(tài)和訪問數據寄存器就能完成數據的收發(fā),這樣減輕了CPU的工作負擔、使得軟件設計的效率提高。
以下是STM32 IIC控制器的框圖:

引腳對應表:

-
控制器
+關注
關注
114文章
17621瀏覽量
190046 -
STM32
+關注
關注
2305文章
11118瀏覽量
370888 -
IIC總線
+關注
關注
1文章
67瀏覽量
22317 -
通信原理
+關注
關注
10文章
125瀏覽量
32731 -
總線協(xié)議
+關注
關注
0文章
153瀏覽量
15555
發(fā)布評論請先 登錄
基于hbirdv2-sdk的iic 0.96寸lcd調試
iic中只設置了時鐘和數據引腳沒有配置那個端口,rtt是怎么知道在那個端口上進行iic通信的?
STM32項目分享:智能廚房安全系統(tǒng)(機智云)
求助,關于STM32F030的iic主收問題求解
STM32U3 IIC通信后,SPI+GPDMA 進入循環(huán)發(fā)送,DMA無法使能寄存器USEF=1怎么解決?
STM32U3 IIC通信后,SPI+GPDMA 進入循環(huán)發(fā)送,DMA無法使能寄存器USEF=1怎么辦?
用IIC接口的IIC_SCL和IIC_SDA引腳做普通GPIO,程序啟動不起來怎么解決?
STM32U3 IIC通信后,SPI+GPDMA 進入循環(huán)發(fā)送,DMA無法使能寄存器USEF=1怎么解決?
DLPC3435 IIC通信時候會干擾到DLPC3435正常工作,導致顯示花屏或者畫面不動怎么解決?
STM32項目分享:機智云智慧農業(yè)系統(tǒng)

STM32的IIC通信原理詳解
評論