UART設計說明_第1頁
UART設計說明_第2頁
UART設計說明_第3頁
UART設計說明_第4頁
UART設計說明_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、中國科學院國家空間科學中心文件名稱:UART設計說明實驗單位: 悅供貨單位: 悅編 寫: 悅校 對: 鋼審 核: 士批 準: 鋼2016年6月14日目錄目 錄1.串行通信概念51.1 串行通信分類51.2 串行通信方式52.UART異步串口通信原理62.1 波特率62.2 通信協議62.3 UART串口結構圖82.4 Windows串口配置界面92.4 串口通信標準92.4.1 RS-232C標準92.4.2 RS-422、RS-423和RS-429標準113.UART異步串行口收發模塊設計113.1UART傳輸時序123.2全局復位模塊133.3UART分頻器133.4UART接收模塊143

2、.5UART發送模塊163.6UART頂層框圖183.7UART激勵文件19UART設計說明1. 串行通信概念1.1 串行通信分類串口通信是目前比較重要的一種通信方式,主要是用于計算機和外部的通信。數據通信的基本方式可分為并行通信與串行通信兩種:Ø 并行通信:是指利用多條數據傳輸線將一個資料的各位同時傳送。它的特點是傳輸速度快,適用于短距離通信,要求通訊速率較高的應用場合。Ø 串行通信:是指利用一條傳輸線將資料一位位地順序傳送。它的特點是通信線路簡單,利用簡單的線纜就可實現通信,降低成本,適用于遠距離通信,傳輸速度慢的應用場合。發送方在發送前要將并行數據轉成串行數據,接收方

3、接收后要完成串行數據到并行數據的轉換。n 異步串行通信:在通信的數據流中,字符間異步,字符內部各位間同步。異步通信方式的“異步”主要體現在字符與字符之間通信沒有嚴格的定時要求。然而,一旦傳送開始,收/發雙方則以預先約定的傳輸速率,在時鐘的作用下,傳送這個字符中的每一位。n 同步串行通信:數據流中的字符與字符之間和字符內部的位與位之間都同步。同步串行通信是以數據塊(字符塊)為信息單位傳送,而每幀信息包括成百上千個字符,因此傳送一旦開始,要求每幀信息內部的每一位都要同步。 1.2 串行通信方式2. UART異步串口通信原理2.1 波特率波特率:單位時間內傳送的二進制數據的位數,以位/秒(bit/s

4、)表示,也稱為數據位率。它是衡量串行通信速率的重要指標。每一個數據位的寬度等于傳送波特率的倒數。微機異步串行通信中,常用的波特率為110,150,300,600,1200,2400,4800,9600,19200,38400,115200等。收/發時鐘:直接決定了通信線路上數據傳輸的速率,對于收/發雙方之間數據傳輸的同步有十分重要的作用。2.2 通信協議串口通信最重要的參數是波特率、數據位、停止位和奇偶校驗。對于兩個進行通行的端口,這些參數必須匹配: a,波特率:這是一個衡量通信速度的參數。它表示每秒鐘傳送的bit的個數。例如300波特表示每秒鐘發送300個bit。當我們提到時鐘周期時,我們就

5、是指波特率例如如果協議需要4800波特率,那么時鐘是4800Hz。這意味著串口通信在數據線上的采樣率為4800Hz。通常電話線的波特率為14400,28800和36600。波特率可以遠遠大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是GPIB設備的通信。 b,數據位:這是衡量通信中實際數據位的參數。當計算機發送一個信息包,實際的數據不會是8位的,標準的值是5、7和8位。如何設置取決于你想傳送的信息。比如,標準的ASCII碼是0127(7位)。擴展的ASCII碼是0255(8位)。如果數據使用簡單的文本(標準 ASCII碼),那么每個數據包使用7位數據

6、。每個包是指一個字節,包括開始/停止位,數據位和奇偶校驗位。由于實際數據位取決于通信協議的選取,術語“包”指任何通信的情況。 c,停止位:用于表示單個包的最后一位。典型的值為1,1.5和2位。由于數據是在傳輸線上定時的,并且每一個設備有其自己的時鐘,很可能在通信中兩臺設備間出現了小小的不同步。因此停止位不僅僅是表示傳輸的結束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數越多,不同時鐘同步的容忍程度越大,但是數據傳輸率同時也越慢。 d,奇偶校驗位:在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。對于偶和奇校驗的情況,串口會設置校驗位(數據位后面的

7、一位),用一個值確保傳輸的數據有偶個或者奇個邏輯高位。例如,如果數據是011,那么對于偶校驗,校驗位為0,保證邏輯高的位數是偶數個。如果是奇校驗,校驗位位1,這樣就有3個邏輯高位。高位和低位不真正的檢查數據,簡單置位邏輯高或者邏輯低校驗。這樣使得接收設備能夠知道一個位的狀態,有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數據是否不同步通信協議:是指通信雙方約定的一些規則。在使用異步串口傳送一個字符的信息時,對資料格式有如下約定:規定有空閑位、起始位、數據位、奇偶校驗位、停止位。通訊時序圖如下:圖1 通訊時序圖Ø 開始前,線路處于空閑狀態,送出連續“1”。Ø 傳送開始時首先

8、發一個“0”作為起始位。Ø 然后出現在通信線上的是字符的二進制編碼數據,每個字符的數據位長可以約定為5 位、6 位、7 位或8 位,一般采用ASCII 編碼,它包含的8位是由低位開始傳送。Ø 后面是奇偶校驗位,根據約定,用奇偶校驗位將所傳字符中為“1”的位數湊成奇數個或偶數個。也可以約定不要奇偶校驗,這樣就取消奇偶校驗位。Ø 最后是表示停止位的“1”信號,這個停止位可以約定持續1位、1.5位或2位的時間寬度。Ø 至此一個字符傳送完畢,線路又進入空閑,持續為“1”。經過一段隨機的時間后,下一個字符開始傳送才又發出起始位。Ø 圖2 采樣時序圖2.3

9、 UART串口結構圖串口在一般的臺式機上都會有。隨著筆記本電腦的使用,一般會采用USB轉串口的方案虛擬一個串口供筆記本使用。下圖為UART串口的結構圖。串口具有9個引腳,但是真正連接入FPGA開發板的一般只有兩個引腳。這兩個引腳是:發送引腳TxD和接收引腳RxD。由于是串行發送數據,因此如果開發板發送數據的話,則要通過TxD線1 bit接著1 bit發送。在接收時,同樣通過RxD引腳1 bit接著1 bit接收。圖3 UART串口結構圖異步通信以一個字符為傳輸單位,通信中兩個字符間的時間間隔是不固定的,然而在同一個字符中的兩個相鄰位代碼間的時間間隔是固定的。串口用于ASCII碼字符的傳輸。通信

10、使用3根線完成:(1)地線,(2)發送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發送數據同時在另一根線上接收數據。其他線用于握手,但是不是必須的。2.4 Windows串口配置界面圖4 Windows串口配置界面打開Windows自帶的串口收發軟件:超級終端,可以配置相關的選項。Ø 每秒位數:可以設定一個周期的長度:如果我們設定為9600,則上圖中1位持續的時間是:1/9600s。Ø 數據位:可以從5、6、7、8中選一位。Ø 奇偶校驗:可以從偶校驗、奇校驗、無、標記、空格中任選一個。Ø 停止位:可以是:1、1.5、2。2.4 串口通信標準2.

11、4.1 RS-232C標準Ø 串行通信系統Ø 常用的RS-232C信號線Ø 電氣特性n 應保證電平在±(515)V之間u 對于數據線:邏輯“1” (MARK)= -3V - 15V邏輯“0” (SPACE) = +3V+15Vu 對于控制信號:接通狀態(ON)即信號有效電平 = +3V15V 斷開狀態(OUT)即信號無效電平= - 3 - 15Vn 進行電平轉換u RS-232C接口采用的是負邏輯,其邏輯電平與TTL電平不一樣,不能兼容。因此,為了實現與TTL電路的連接,必須進行電平轉換。 u 目前可以使用新型電平轉換芯片MAX232和MAX232A(高

12、速)雙組RS-232C發送/接收器,實現TTL電平與RS-232C電平雙向轉換。 Ø 傳輸速率與傳輸距離Ø 連接器 2.4.2 RS-422、RS-423和RS-429標準Ø RS-422:規定電氣特性、雙端傳輸Ø RS-429:規定機械連接標準,37腳Ø RS-423:與RS-232、RS-422兼容3. UART異步串行口收發模塊設計在一般的嵌入式開發和FPGA設計中,串口UART是使用非常頻繁的一種調試手段。下面我們將使用Verilog RTL編程設計一個串口收發模塊。這個設計有兩個目的:Ø 從串口中接收數據,發送到輸出端口。接

13、收的時候是串行的,也就是一個接一個的;但是發送到輸出端口時,我們希望是8位放在一起,成為并行狀態。我們知道,串口中出現信號,是沒有先兆的。如果出現了串行數據,則如何通知到輸出端口呢?我們引入“接收有效”端口?!敖邮沼行А倍丝谠谝话闱闆r下都是低電平,一旦有數據到來時,它就變成高電平。下一個模塊在得知“接收有效”信號為高電平時,它就明白:新到了一個字節的數據,放在“接收字節”端口里面。Ø 發送數據到串口。發送數據的時候,我們也希望輸入端口能夠給出一個簡單的形式。我們引入“發送有效”信號,它為高電平,表示我們希望把“發送字節”送入TxD發送出去。但是“發送有效”信號是否生效是有限制的,也就

14、是正在發送的時候,是不能接收新的數據并發送的。所以,我們引入一個“發送狀態”信號,它標識當前的“發報機”是否處于忙碌狀態。如果“發報機”處于忙碌狀態,則它拒絕“發送有效”信號,不予執行。圖5 串口接收和發送數據時進行串并轉換的示意圖3.1 UART傳輸時序UART傳輸時序如下圖所示。發送數據過程:空閑狀態,線路處于高電位;當收到發送數據指令后,拉低線路一個數據位的時間T;接著數據按低位到高位依次發送,數據發送完畢后,接著發送停止位(停止位為高電位),一幀資料發送結束。接收數據過程:空閑狀態,線路處于高電位;當檢測到線路的下降沿(線路電位由高電位變為低電位)時說明線路有數據傳輸,按照約定的波特率

15、從低位到高位接收數據,數據接收完畢后,通知后續設備準備接收數據或存入緩存。由于UART是異步傳輸,沒有傳輸同步時鐘。為了能保證數據傳輸的正確性,UART采用16倍數據波特率的時鐘進行采樣。每個數據有16個時鐘采樣,取中間的采樣值,以保證采樣不會滑碼或誤碼。一般UART幀的數據位數為8,這樣即使每個數據有一個時鐘的誤差,接收端也能正確地采樣到數據。UART的接收數據時序為:當檢測到數據的下降沿時,表明線路上有數據進行傳輸,這時計數器cnt開始計數,當計數器為24=16+8時,采樣的值為第0位數據;當計數器的值為40時,采樣的值為第1位數據,依此類推,進行后面6個數據的采樣。當計數器的值為152時,采樣的值為“1”表示停止位,一幀數據接收完成。下文將按上面的算法進行Verilog HDL語言建模與仿真。3.2 全局復位模塊3.3 UART分頻器假設數據的波特率為p,則所需時鐘的頻率為16*p。以波特率p=9600為例,系統時鐘為50MHz,則分頻系數為50000000/(16*9600)=325.52,取整為326。分頻器Verilog HDL語言代碼如下:3.4 UART接收模塊UART接收模塊的功能:時時檢測線路,當線路產生下降沿時,即認為線路有數據傳輸

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論