㈠ 三種通信模式SPI、UART、I2C它們的工作原理
這三種通信模式都是串列匯流排。
SPI匯流排
MOTOROLA公司的SPI匯流排的基本信號線為3根傳輸線,即SI、SO、SCK。傳輸的速率由時鍾信號SCK決定,SI為數據輸入、SO為數據輸出。採用SPI匯流排的系統如圖8-27所示,它包含了一個主片和多個從片,主片通過發出片選信號-CS來控制對哪個從片進行通信,當某個從片的-CS信號有效時,能通過SI接收指令、數據,並通過SO發回數據。而未被選中的從片的SO端處於高阻狀態。主設備通過產生移位時鍾來發起通訊。通訊時,數據由SO 輸出,SI 輸入,數據在時鍾的上升或下降沿由SO 輸出,在緊接著的下降或上升沿由SI 讀入,這樣經過8/16 次時鍾的改變,完成8/16 位數據的傳輸。
I2C匯流排
I2C(Inter-Integrated Circuit)匯流排是由PHILIPS公司開發的兩線式串列匯流排,用於連接微控制器及其外圍設備。I2C串列匯流排有兩根信號線:一根雙向的數據線SDA;另一根是時鍾線SCL。所有接到I2C匯流排上的設備的串列數據都接到匯流排的SDA線,各設備的時鍾線SCL接到匯流排的SCL。 I2C匯流排按位元組傳輸,即每次傳輸8bits二進制數據,傳輸完畢後等待接收端的應答信號ACK,收到應答信號後再傳輸下一位元組。等不到ACK信號後,傳輸終止。空閑情況下,SCL和SDA都處於高電平狀態。
UART通信
UART:Universal Asynchronous Receiver/Transmitter,通用非同步接收/發送裝置。UART首先將並行數據轉換成串列數據來傳輸。消息幀從一個低位起始位開始,後面是5~8個數據位,一個可用的奇偶位和一個或幾個高位停止位。該匯流排雙向通信,可以實現全雙工傳輸和接收。在嵌入式設計中,UART用來與PC進行通信。