UART/RS232傳輸協議
發布時間:
2023-02-01 17:29
來源:
一、UART簡介
UART(universal asynchronous receiver-transmitter)是一種采用異步串行通信方式的通用異步收發傳輸器。一般來說,UART總是和RS232成對出現,那RS232又是什么呢? RS232也就是我們計算機上的串口,它的全稱是EIA-RS-232C (簡稱232,或者是RS232 )。其中EIA(Electronic Industry Association)代表美國電子工業協會,RS是Recommended Standard的縮寫,代表推薦標準,232 是標識符,C表示修改次數,它被廣泛用于計算機串行接口外設連接。
隨著時代的發展,這種借口已經很少用了,取而代之的是“USB轉串口”,功能和原先一樣,但接口更高效了。
串口的主要功能為:在發送數據時將并行數據轉換成串行數據進行傳輸,在接收數據時將接收到的串行數據轉換成并行數據。這應該是大多數人接觸電子后學習到的第一個通信協議吧。
二、通信格式
1.傳輸時序
UART串口通信需要兩個信號線來實現,一根用于串口發送,另外一根負責串口接收。一開始高電平,然后拉低表示開始位,接著8個數據位,然后校驗位,最后拉高表示停止位,并且進入空閑狀態,等待下一次的數據傳輸。
很多時候我們的校驗位是允許省略的,所以協議就變成了:開始+數據+停止。
2.傳輸速率:波特率
串口通信的速率用波特率表示,它表示麥苗傳輸二進制數據的位數,單位是bps(位/秒)。常用的波特率有9600、19200、35400、57600以及115200等。
FPGA開發串口時,設計波特率的方法:FPGA的時鐘頻率/波特率。例如我的FPGA開發板時鐘頻率為50Mhz,即50_000_000hz,我想使用的波特率為9600bps,因此我需要的計數為:50000000/9600≈5208。
三、串口回環設計
現在用FPGA開發板做一個串口回環的實驗,要求是PC端通過串口助手發送數據給FPGA,FPGA接收到數據后返回給PC端,并在串口助手處顯示數值。即串口助手發什么就能收回什么。實驗框圖如下:
四, 傳輸協議
一、RS232通信協議是目前最常用的一種全雙工點對點式的異步串行通信協議接口標準。RS232接口標準由于出現較早,所以其目前存在很多問題。
(1)、接口電平值較高,易損壞接口電路的芯片。
(2)、傳輸速率較低,大約為20Kbps;傳輸距離較短,大約為15米左右。
(3)、接口由三根線TX、RX、GND組成,沒有構成差分線形式,容易產生共地共模干擾,抗干擾能力弱。
二、RS232物理層:
三、RS232協議層:主要包括起始位、數據位、校驗位、停止位四部分組成,而且通信雙方必須以約定的通信協議和通信速率進行通信。數據位采用小端傳輸模式,即低位在前,高位在后。
四、UART和RS232異同:
(1)、邏輯電平不同:UART是TTL電平;RS232是RS232電平,不能直接相連,需要電平轉換芯片(MAX3232等)。
(2)、協議層完全相同:UART和RS232的協議層可以共享,沒有較大區別。
相關產品