uart串列埠協議與實現講解

2021-10-03 20:29:20 字數 1087 閱讀 6773

uart串列埠協議與實現講解

一、uart和rs232

1、uart的全稱叫做通用非同步收發傳輸器。將資料在序列通訊和並行通訊間的傳輸轉換。通俗的講就是把多位元的資料轉化為單位元的資料,或者把單位元的資料轉化為多位元的資料。工作原理是將資料的每個bit一位接一位地傳輸。

2、uart是一種通用序列資料匯流排,用於非同步通訊。該匯流排雙向通訊,可以實現全雙工傳輸和接收。

3、rs232是uart的一種,是目前最常用的一種序列通訊介面,用於pc機跟外部板級通訊。

二、rs232通訊協議

1、rs232是uart的一種,有兩根線,分別是rx和tx,這兩根線都是1位元位寬的。其中rx是接收線,tx是傳送線。

2、rx,位寬為1位元,pc機通過串列埠往fpga發8位元資料時,fpga通過串列埠線rx一位一位地接收,從最低位到最高位依次接收,最後在fpga裡面位拼接成8位元資料。

3、tx,位寬為1位元,fpga通過串列埠往pc機發8位元資料時,fpga把8位元資料通過tx線一位一位的傳給pc機,從最低位到最高位依次傳送,最後上位機通過串列埠助手把這一位一位的資料位拼接成8位元資料。

4、在不傳送或者不接收資料的情況下,rx和tx處於空閒狀態,此時rx和tx線都保持高電平(1),如果有資料傳遞,首先會有乙個起始位(0),然後是8位元的資料位,接著有1位元的停止位(1),如果停止位以後不再發資料,將進入空閒狀態,否則又將資料線拉低(進入起始位狀態)。

5、波特率:在串列埠通訊時的速率,單位時間內載波變化的次數,這裡選用的是9600bd,即傳送一位元資料需要的時間為1/9600秒。

6、用串列埠傳送或者接收資料(起始位、資料位、停止位)時,每傳送或者接收一位資料的時間都需要1個波特,即1/9600秒。

7、串列埠傳送或者接收一位元資料的時間為乙個波特(1/9600),因此如果用50m的系統時鐘來計數,就需要記數cnt=(1/9600s)/20ns≈5208個系統時鐘,才再次傳送或者接收下乙個資料。

8、上位機通過串列埠發8位元資料時,會自動在發8位有效資料前發乙個波特時間的起始位,也會自動在發完8位有效資料後發乙個停止位。但是,串列埠助手接收上位機傳送的資料前,必須檢測到一波特的起始位才會接收資料,接收完資料後,再接收乙個停止位,所以fpga通過串列埠除了發資料以外,還要發起始位和停止位。

UART串列埠通訊協議

1.僅需兩根線即可進行全雙工資料傳輸 電源線除外 2.不需要時鐘或任何其他定時訊號。3.奇偶校驗位確保將基本錯誤檢查整合到資料報幀中。1.幀中資料的大小是有限的。2.與並行通訊相比,資料傳輸速度較慢。3.傳送器和接收器必須統一傳輸規則,並且必須選擇適當的波特率。4.不支援多個主機或從機。uart資料...

UART串列埠通訊協議的FPGA實現

引言 uart串列埠通訊協議,全稱叫做通用非同步收發器 universal asynchronous receiver transmitter 通常稱作uart。uart是非同步通訊,它只需要一根線就可以進行資料的通訊。1 基本概念 具體的時序圖如下圖所示 2 verilog實現 module ua...

介面協議學習(四) UART(串列埠)

uart universal asynchronous receiver transmitter,通用非同步收發傳輸器 是一種全雙工收發協議。序列通訊分為兩種方式 同步串列埠通訊和非同步串列埠通訊。同步串列埠通訊需要接髮雙方在同一時鐘的控制下進行操作,因為很多分立的電子系統的驅動時鐘並不相同,所以實...