一、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、每個字節都需要加上起始位、停止位來傳輸。