1. 串口是什麼?
串行接口簡稱串口,也稱串行通信接口(通常指COM口),是採用串行通信方式的擴展接口。
2. 通信:串行通信、並行通信
數字信號是8位二進制數,可以用信號線傳輸,一種方案是使用一條數據線按照次序一個位一個位的傳送,每傳送完8位爲一個字節,叫串行通信。另一種方法是使用8條數據線分別傳送8位,一次傳送一個字節,叫並行通信。
串行通信和並行通信的區別
並行通信傳輸中有多個數據位,同時在兩個設備之間傳輸。發送設備將這些數據位通過對應的數據線傳送給接收設備,還可附加一位數據校驗位。接收設備可同時接收到這些數據,不需要做任何變換就可直接使用。並行方式主要用於近距離通信。計算機內的總線結構就是並行通信的例子。這種方法的優點是傳輸速度快,處理簡單。
串行數據傳輸時,數據是一位一位地在通信線上傳輸的,先由具有幾位總線的計算機內的發送設備,將幾位並行數據經並--串轉換硬件轉換成串行方式,再逐位經傳輸線到達接收站的設備中,並在接收端將數據從串行方式重新轉換成並行方式,以供接收方使用。串行數據傳輸的速度要比並行傳輸慢得多,但對於覆蓋面極其廣闊的公用電話系統來說具有更大的現實意義。
3. 串行通信的三種方式
4. 串口通信的兩種最基本的方式:同步串行通信方式和異步串行通信方式。
同步串行是指SPI(Serial Peripheral interface)的縮寫,顧名思義就是串行外圍設備接口。
所謂同步通信,是指數據傳送是以數據塊(一組字符)爲單位,字符與字符之間、字符內部的位與位之間都同步,因爲一次傳輸的數據塊中包含的數據較多,所以接收時鐘與發送進鍾嚴格同步,通常要有同步時鐘。
異步串行是指UART(Universal Asynchronous Receiver/Transmitter),通用異步接收/發送。UART是一個並行輸入成爲串行輸出的芯片,通常集成在主板上。
所謂異步通信,是指數據傳送以字符爲單位,字符與字符間的傳送是完全異步的,位與位之間的傳送基本上是同步的。
5. 學習目的
掌握串行異步通信方式、上位機控制下位機
6. 通信
6.1 通信的概念
不同芯片/設備之間數據交換
6.2 通信分類
1) 並行通信
① 概念:將數據字節各位用多條數據線同時傳送
② 特點:傳輸速度快,接口多,適合短距離傳送
2) 串行通信
① 概念:將數據字節在一條數據線上一位一位的傳輸
② 特點:所用接口少,傳輸距離遠,但傳輸數據相對較慢
③ 串行通信方式
a. 同步通信:發送方的時鐘對接收方的時鐘直接控制,使雙方達到完全同步
b. 異步通信:發送和接收設備使用各自的時鐘控制數據的發送和接收過程
④ 串行通信設備
a. 單工通信:設備只能作爲接收器或者發送器. ---收音機
b. 半雙工通信: 同一時刻,設備只能作爲發送器或者接收器 ---對講機
c. 全雙工通信:同一時刻,設備既能作爲發送器也能作爲接收器 ---手機
7. UART通信
7.1 特點:串行異步全雙工通信
7.2 通信協議
① 協議概念
相互通信的設備之間進行數據傳輸的一種規定:規定了物理層和數據鏈路層
② 物理層鏈接
③ 數據鏈路層(R232協議)
RS-232、RS-422與RS-485標準只對接口的電氣特性做出規定,而不涉及接插件、電纜或協議,在此基礎上用戶可以建立自己的高層通信協議。
RS-232採取不平衡傳輸方式,即所謂單端通訊。缺點:通信距離短、速率低。
RS-422定義了一種平衡通信接口,將傳輸速率提高到10Mb/s,傳輸距離延長到4000英尺(速率低於100kb/s時),並允許在一條平衡總線上連接最多10個接收器。RS-422是一種單機發送、多機接收的單向、平衡傳輸規範。
RS-485標準,增加了多點、雙向通信能力,即允許多個發送器連接到同一條總線上,同時增加了發送器的驅動能力和衝突保護特性,擴展了總線共模範圍
a. 數據位傳輸過程的規定
b. 數據幀格式
8. STM32的USART
發送數據--TX管腳
發送移位寄存器:按位發送數據,一位一位發送--波特率
從發送數據寄存器得到數據---一幀數據
數據總線通過寫操作,往發送數據寄存器發送數據
關鍵點:數據是一幀一幀的發送,如何去判斷上一幀數據發送完成?
判斷TDR或者是發送移位寄存器中是否還有數據。。。
接收數據--RX引腳
接收移位寄存器:按位接收
接收數據寄存器:要判斷接收數據寄存器裏面是否接收到數據;
數據總線通過讀操作,讀取接收數據寄存器的數據;
關鍵點:如何判斷是否要接收數據?
判斷接收數據寄存器中是否有數據...沒有數據,說明沒有接收到,或者是上一次數據已經被讀出;