協議理解之I2C協議

2021-07-12 06:26:45 字數 2694 閱讀 4767

協議我們參考|eeprom 24c64的datasheet

速度 標準模式下可以達到100kbit/s

快速模式下可以達到400kbit/s

高速模式下可以達到3.4mbit/s

i2c匯流排術語

傳送器: 傳送資料到匯流排的器件

接收器: 從匯流排接收資料的器件

主機: 初始化傳送 產生時鐘訊號和終止傳送的器件

從機: 被主機定址的器件

多主機: 同時有多於乙個主機嘗試控制匯流排 但不破壞報文

仲裁: 是乙個在有多個主機同時嘗試控制匯流排 但只允許其中乙個控制匯流排並使報文不被破壞

的過程

同步: 兩個或多個器件同步時鐘訊號的過程

void i2c_delay(void)

void i2c_start(void)

void i2c_stop(void)

unsigned

char read_i2c_onebyte(bit ack_or_nak)

i2c_clk = 1;

if(i2c_sda)

read_data |= 0x01;

i2c_delay();

i2c_clk = 0;

set_sda_outputmode; //sda output

i2c_delay();

if(ack_or_nak)

i2c_sda = 1;

else

i2c_sda = 0;

i2c_clk = 1;

i2c_delay();

i2c_clk = 0;

i2c_delay();

i2c_sda = 0;

return read_data;

}bit write_i2c_onebyte(char w_buf)

set_sda_inputmode;

i2c_delay();

i2c_clk = 1;

i2c_delay();

ack_or_nak = 0;

if(i2c_sda)

ack_or_nak = 1;

i2c_clk = 0;

i2c_sda = 0;

set_sda_outputmode; //sda output

return ack_or_nak;

}

時序分析:

1、開始訊號;

2、寫從裝置位址,位址最低位r/w=0,表示為寫操作,從裝置收到資料後會自動返回ack,判斷裝置存不存在可以根據ack訊號;

3、寫儲存位址高八位(寫完位址後從裝置會返回ack),(有的裝置是10bit的位址,24c64是8bit位址)

4、寫儲存位址低八位(寫完位址後從裝置會返回ack)

5、寫8bit資料(1byte)

6、寫停止位

void 24cxx_write(unsigned short addr, unsigned char dat)

int

24cxx_write_page(unsigned

short addr, unsigned

short len, unsigned

char* idata buf)

i2c_stop();

delay_ms(12);

return0;}

//用於拷貝晶元的資料

- 隨機讀操作

時序分析:

1、開始訊號;

2、寫從裝置位址,位址最低位r/w=1,表示為讀操作,從裝置收到資料後會自動返回ack,判斷裝置存不存在可以根據ack訊號;

3、讀儲存位址高八位(寫完位址後從裝置會返回ack),(有的裝置是10bit的位址,24c64是8bit位址)

4、讀儲存位址低八位(寫完位址後從裝置會返回ack)

5、寫停止位

6、寫開始訊號

7、寫從裝置位址

8、讀取資料,並告訴從裝置這次不用回ack

9、寫停止位

臨時儲存i2c邏輯取樣,msb在前

mipi協議 I2C匯流排協議

本文為系列文件第二篇 暫定 spi匯流排協議 2.i2c匯流排協議 3.mipi協議 狀態 更新ing i2c匯流排簡介 i2c匯流排的硬體設定 i2c匯流排特點 i2c匯流排的協議內容與資料傳輸 i2c匯流排常用場景 電子通訊等硬體相關,基帶與電效能領域 計算機硬體相關,系統介面等。i2c是一種常...

I2C協議解析

1 基本概念 主機 初始化傳送,產生時鐘訊號和終止傳送的器件 從機 被主機定址的器件 傳送器 傳送資料到匯流排的器件 接收器 從匯流排接收資料的器件 多主機 同時有多於乙個主機嘗試控制匯流排 但不破壞報文 仲裁 是乙個在有多個主機同時嘗試控制匯流排,但只允許其中乙個控制匯流排並使報文不被破壞的過程 ...

i2c 協議解析

1 基本概念 主機 初始化傳送,產生時鐘訊號和終止傳送的器件 從機 被主機定址的器件 傳送器 傳送資料到匯流排的器件 接收器 從匯流排接收資料的器件 多主機 同時有多於乙個主機嘗試控制匯流排 但不破壞報文 仲裁 是乙個在有多個主機同時嘗試控制匯流排,但只允許其中乙個控制匯流排並使報文不被破壞的過程 ...