嵌入式设备的通讯--秉火STM32学习笔记
首先非常感謝秉火團隊為我們提供學習STM32的豐富資料及詳細教程。
在計算機設備與設備之間或集成電路之間常常需要進行數據傳輸,數據傳輸的實現方式總結如下。
串行通訊與并行通訊
按數據傳送的方式,通訊可分為串行通訊與并行通訊,串行通訊是指設備之間通過少量數據信號線(一般是8 根以下),地線以及控制信號線,按數據位形式一位一位地傳輸數據的通訊方式。而并行通訊一般是指使用8、16、32 及64 根或更多的數據線進行傳輸的通訊方式,它們的通訊傳輸對比說明見圖并行通訊就像多個車道的公路,可以同時傳輸多個數據位的數據,而串行通訊,而串行通訊就像單個車道的公路,同一時刻只能傳輸
一個數據位的數據。
很明顯,因為一次可傳輸多個數據位的數據 ,在數據傳輸速率相同的情況下,并行通訊傳輸的數據量要大得多,而串行通訊則可以節省數據線的硬件成本(特別是遠距離時)以及PCB 的布線面積,串行通訊與并行通訊的特性對比見表
| 通訊距離 | 較遠 | 較近 |
| 抗干擾能力 | 較強 | 較弱 |
| 傳輸速率 | 較慢 | 較高 |
| 成本 | 較低 | 較高 |
不過由于并行傳輸對同步要求較高,且隨著通訊速率的提高,信號干擾的問題會顯著影響通訊性能,現在隨著技術的發展,越來越多的應用場合采用高速率的串行差分傳輸。
全雙工,半雙工及單工通訊
根據數據通訊的方向,通訊又分為全雙工、半雙工及單工通訊,它們主要以信道的方向來區分
| 全雙工 | 在同一時刻,兩個設備之間可以同時收發數據 |
| 半雙工 | 兩個設備之間可以收發數據,但不能在同一時刻進行 |
| 單工 | 在任何時刻都只能進行一個方向的通訊,即一個固定為發送設備,另一個固定為接收設備 |
仍以公路來類比,全雙工的通訊就是一個雙向車道,兩個方向上的車流互不相干;半
雙工則像鄉間小道那樣,同一時刻只能讓一輛小車通過,另一方向的來車只能等待道路空
出來時才能經過;而單工則像單行道,另一方向的車輛完全禁止通行。
同步通訊與異步通訊
根據通訊的數據同步方式,又分為同步和異步兩種,可以根據通訊過程中是否有使用到時鐘信號進行簡單的區分。
在同步通訊中,收發設備雙方會使用一根信號線表示時鐘信號,在時鐘信號的驅動下雙方進行協調,同步數據,見圖 20-3。通訊中通常雙方會統一規定在時鐘信號的上升沿或下降沿對數據線進行采樣。
在異步通訊中不使用時鐘信號進行數據同步,它們直接在數據信號中穿插一些同步用的信號位,或者把主體數據進行打包,以數據幀的格式傳輸數據,見圖 20-4,某些通訊中還需要雙方約定數據的傳輸速率,以便更好地同步。
在同步通訊中,數據信號所傳輸的內容絕大部分就是有效數據,而異步通訊中會包含有幀的各種標識符,所以同步通訊的效率更高,但是同步通訊雙方的時鐘允許誤差較小,而異步通訊雙方的時鐘允許誤差較大。
通訊速率
衡量通訊性能的一個非常重要的參數就是通訊速率。
容易與比特率混淆的概念是“波特率”(Baudrate),它表示每秒鐘傳輸了多少個碼元。而碼元是通訊信號調制的概念,通訊中常用時間間隔相同的符號來表示一個二進制數字,這樣的信號稱為碼元。
如常見的通訊傳輸中,用0V 表示數字0,3.3V 表示數字1,那么一個碼元可以表示兩種狀態0 和1,所以一個碼元等于一個二進制比特位,此時波特率的大小與比特率一致;
如果在通訊傳輸中,有0V、2V、4V 以及6V 分別表示二進制數00、01、10、11,
那么每個碼元可以表示四種狀態,即兩個二進制比特位,所以碼元數是二進制比特位數的一半,這個時候的波特率為比特率的一半。
因為很多常見的通訊中一個碼元都是表示兩種狀態,人們常常直接以波特率來表示比特率,雖然嚴格來說沒什么錯誤,但希望您能了解它們的區別。
總結
以上是生活随笔為你收集整理的嵌入式设备的通讯--秉火STM32学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打工人:是什么决定了你的薪资水平?一张图
- 下一篇: 基于51单片机的温度甲烷监测报警串口上报