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