1. UART串口簡介
串口是“串行接口”的簡稱,即采用串行通信方式的接口。串行通信將數(shù)據(jù)字節(jié)分成一位一位的形式在一條數(shù)據(jù)線上逐個傳送,其特點是通信線路簡單,但傳輸速度較慢。
因此串口廣泛應用于嵌入式、工業(yè)控制等領域中對數(shù)據(jù)傳輸速度要求不高的場合。本實驗我們將使用FPGA開發(fā)板上的UART串口完成上位機與FPGA的通信。
串行通信分為兩種方式:同步串行通信和異步串行通信。
同步串行通信需要通信雙方在同一時鐘的控制下,同步傳輸數(shù)據(jù);
異步串行通信是指通信雙方使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。
UART是一種采用異步串行通信方式的通用異步收發(fā)傳輸器(universal asynchronous receiver-transmitter),它在發(fā)送數(shù)據(jù)時將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)來傳輸,在接收數(shù)據(jù)時將接收到的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)。
UART串口通信需要兩根信號線來實現(xiàn),一根用于串口發(fā)送,另外一根負責串口接收。
UART在發(fā)送或接收過程中的一幀數(shù)據(jù)由4部分組成,起始位、數(shù)據(jù)位、奇偶校驗位和停止位,如圖所示。
其中,起始位標志著一幀數(shù)據(jù)的開始,停止位標志著一幀數(shù)據(jù)的結束,數(shù)據(jù)位是一幀數(shù)據(jù)中的有效數(shù)據(jù)。
校驗位分為奇校驗和偶校驗,用于檢驗數(shù)據(jù)在傳輸過程中是否出錯。
奇校驗時,發(fā)送方應使數(shù)據(jù)位中1的個數(shù)與校驗位中1的個數(shù)之和為奇數(shù);
接收方在接收數(shù)據(jù)時,對1的個數(shù)進行檢查,若不為奇數(shù),則說明數(shù)據(jù)在傳輸過程中出了差錯。
同樣,偶校驗則檢查1的個數(shù)是否為偶數(shù)。
異步串行通信數(shù)據(jù)格式?
UART通信過程中的數(shù)據(jù)格式及傳輸速率是可設置的,為了正確的通信,收發(fā)雙方應約定并遵循同樣的設置。
數(shù)據(jù)位可選擇為5、6、7、8位,其中8位數(shù)據(jù)位是最常用的,在實際應用中一般都選擇8位數(shù)據(jù)位;
校驗位可選擇奇校驗、偶校驗或者無校驗位;
停止位可選擇1位(默認),1.5或2位。
串口通信的速率用波特率表示,它表示每秒傳輸二進制數(shù)據(jù)的位數(shù),單位是bps(位/秒),常用的波特率有9600、19200、38400、57600以及115200等。
在設置好數(shù)據(jù)格式及傳輸速率之后,UART負責完成數(shù)據(jù)的串并轉(zhuǎn)換,而信號的傳輸則由外部驅(qū)動電路實現(xiàn)。
電信號的傳輸過程有著不同的電平標準和接口規(guī)范,針對異步串行通信的接口標準有RS232、RS422、RS485等,它們定義了接口不同的電氣特性,如RS-232是單端輸入輸出,而RS-422/485為差分輸入輸出等。
RS232接口標準出現(xiàn)較早,可實現(xiàn)全雙工工作方式,即數(shù)據(jù)發(fā)送和接收可以同時進行。
在傳輸距離較短時(不超過15m),RS232是串行通信最常用的接口標準,本章主要介紹針對RS-232標準的UART串口通信。
RS-232標準的串口最常見的接口類型為DB9,樣式如圖所示,工業(yè)控制領域中用到的工控機一般都配備多個串口,很多老式臺式機也都配有串口。
但是筆記本電腦以及較新一點的臺式機都沒有串口,它們一般通過USB轉(zhuǎn)串口線來實現(xiàn)與外部設備的串口通信。
DB9接口
USB串口線
DB9接口定義以及各引腳功能說明如下圖所示,我們一般只用到其中的2(RXD)、3(TXD)、5(GND)引腳,其他引腳在普通串口模式下一般不使用,如果大家想了解,可以自行百度下。
DB9接口定義
2. 實驗任務
上位機通過串口調(diào)試助手發(fā)送數(shù)據(jù)給FPGA,F(xiàn)PGA通過串口接收數(shù)據(jù)并將接收到的數(shù)據(jù)發(fā)送給上位機,完成串口數(shù)據(jù)環(huán)回。
評論
查看更多