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