IIC、SPI、UART串行通信以及同步/異步通信學習

一、IIC

連接線:VCC、GND、SDA、SCL。

半雙工同步通信。MSB。

速率:100Kbps、400Kbps、3.4Mbps。

數據採集:SCL爲高電平期間採集,因此SDA必須在SCL爲低期間跳變。

空閒狀態:SCL、SDA同爲高。因此電路設計一般加上拉電阻。

起始信號:SCL爲高時SDA上出現下降沿。

停止信號:SCL爲高時SDA上出現上升沿。

讀寫位    :1爲讀,0爲寫。

應答信號:發送方發送完畢會將SDA拉高,然後等待接收方發送ACK或者NACK,如果下一個SCL爲高的時候接收方已經將SDA拉低表示ACK,爲高則爲NACK。

讀數據:起始信號+7位地址|寫+WACK+讀地址+WACK+起始信號+7位地址|讀+讀數據0+ACK+讀取數據1+ACK......+讀取數據N+NACK+停止信號。(AT24C02)如果讀取一個數據就直接返回NACK。

寫數據:起始信號+7位地址|寫+WACK+寫地址+WACK+寫數據+WACK+停止信號。

 

二、SPI

連接線:VCC、GND、MOSI、MISO、SCLK、SSN 。

全雙工同步通信。MSB。

速率:從機限制。最大50Mbps。

數據採集與輸出與極性和相位配置有關:

CPOL表示空閒時SCLK電平狀態0爲低1爲高。

CPHA表示數據採集在什麼邊沿,0爲時鐘前沿,1爲後邊沿。數據輸出則爲另外一個邊沿。具體是上升還是下降沿需要結合CPOL確定。因此可以以CPOL爲第1位,CPHA爲第0位組成4總模式。

模式0:CPOL = 0 CPHA = 0;

模式1:CPOL = 0 CPHA = 1;

模式2:CPOL = 1 CPHA = 0;

模式3:CPOL = 1 CPHA = 1;

當數據從在時鐘前沿採集時,第0位沒有數據輸出邊沿,在片選信號SSN使能時輸出。

 

三、U(S)ART

連接線:VCC、GND、TX、RX(RTC、CTS、DTR、DSR在TTL中不常用)。

UART:全雙工異步通信。USART:全雙工同步/異步通信。LSB。

數據包描述:起始位+數據位+(奇偶檢驗)+停止位+空閒位,

起始位(低電平,時長爲1個bit長度);

數據位(LSB,可配置爲4-9個bit);

奇偶檢驗(使得加上該位後數據位中的1爲奇數或者偶數,也可沒有該位);

停止位(可配置時長爲1、1.5、2個bit,高電平);

空閒位(高電平)。

bit時長爲1/比特率。

比特率 = 波特率 *log2(N);N爲一個碼元可以表示的狀態。在uart通信中一個碼元就是一個bit爲0或者1,N=2,波特率等於比特率。

四、同步/異步通信

同步通信wiki百科如下:

異步通信wiki百科如下:

同步通信特徵:

1、發送端以一個恆定的速率把數據以連續的數據流發送出去。

2、發送端使用與接收端採集速率相同的速率發送數據。

3、隨着時間推移時鐘可能變得不同步,在傳輸數據時需要重新同步。

4、沒有起始位、停止位。

異步通信特徵:

1、不需要額外的時鐘信號。

2、數據可以間歇性傳輸,而不是一個恆定的數據流。

3、數據發送時不需要以一個恆定的間隔(regular interval)去發送,因此不需要一個額外的時鐘同步信號並且可以變比特率通信。

4、每個字節都需要加上起始位、停止位來傳輸。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章