《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的UARTl6550的設計
基于FPGA的UARTl6550的設計
摘要: 介紹了UARTl6550在可編程邏輯器件FPGA上的實現,并通過實際電路驗證了設計的功能,使用FP-GA不僅可以方便地用串口協議與PC機進行串行通信,而且擴展了板級系統的接口功能。
關鍵詞: FPGA UARTl6550
Abstract:
Key words :

  1 引 言

  UART(Universal Asynchronous Receiver/Transmitter,通用異步收發器)是用于控制CPU與串行設備通信的芯片,將由CPU傳送過來的并行數據轉換為輸出的串行數據流。將系統外部來的串行數據轉換為字節,供系統內部使用并行數據的器件使用。他可以在輸出的串行數據流中加人奇偶校驗位和啟停標記,并對從外部接收的數據流進行奇偶校驗以及刪除啟停標記。常見UART主要有INS8250,PC16450和PCI6550,其中16550發送和接收都帶有16 B的FIFO,為協調發送、接收端的速率匹配提供了更大的緩沖余地,同時也可以提高CPU的使用效率,從而提高系統的整體性能。

  2 UART16550的基本結構

  如圖1所示,UART16550的基本結構由CPU接口模塊、波特率發生器、FIFO控制器、發送/接收FIFO和發送/接收模塊共7個部分組成。

UART16550的基本結構

  CPU通過UART的CPU接口模塊配置整個UART,波特率發生器在CPU寫入初始值后產生需要的波特率,控制發送和接收模塊在設定的波特率下工作。CPU通過接口模塊向發送FIFO內寫入

 

需 

 

  要發送的8位數據,同時發送模塊開始讀取FIFO中的數據,并加入起始位、奇偶校驗位和停止位后以串行發送的方式傳輸給串行接收設備。接收模塊時刻監視串行輸入端口,發現有數據發送來的時候馬上啟動接收模塊開始接收數據并有效的判斷出奇偶校驗位來檢測數據的正確性,最后把剩下的8位數據放入接收FIFO,并通知CPU有數據進來進行接收。異步串行通信協議的數據傳輸格式如圖2所示。

  UART16550的發送數據位可以選擇為5~8位,同時可以選擇奇校驗、偶校驗或者不設置校驗位,停止位可以約定為1,1.5或2位。

  3 UART16550的設計實現

  3.1 CPU接口模塊

  CPU接口模塊完成了CPU指令的解讀與寄存器配置以及UART狀態讀取等功能。通過3位的地址線和8位的數據線,CPU可以對波特率發生器的波特率進行預先的設定,以使串口兩端的設備在同一波特率下完成接收和發送的工作。同時CPU接口接收來自CPU的需要發送的5∽8位數據,送人發送模塊,或者把接收模塊接收到的數據通過接口送給CPU進行數據處理。在此接口模塊里,設置了8個控制和狀態寄存器,包括RBR(Receiver Buffer Register)接收緩沖寄存器、THR(Transmit Hold Register)發送保持寄存器、IER(Interrupt Enable Register)中斷使能寄存器、IIR(Interrupt ID Register)中斷寄存器、LCR(Line Control Register)線控制寄存器、LSR(Line Status Register)線狀態寄存器、SCR(Scratchpad Register)暫存寄存器和FCR(FIFO Control Register)。在使用UART16550前,CPU必須要對控制寄存器進行配置,包括波特率、數據位數、奇偶校驗、停止位位數及FIFO的控制等。這也是16550區別于一般UART的具有可編程的特點。

  3.2波特率發生器

  波特率是單位時間內傳送的二進制數據的位數,以位/秒(b/s)表示,也稱為數據位率。

  收/發時鐘頻率與波特率之間關系:

  收/發時鐘頻率=N×波特率

  N可以取8,16,32和64等,為了兼顧速度和穩定性一般取為16。N在硬件設計時已經設定好,軟件不能改變。波特率發生器由兩個8位的數據寄存器組合成16位的分頻寄存器,可以實現系統頻率的1~2(16)分頻,達到預定的波特率設置。

  3.3 FIFO控制器和發送/接收FIFO

  帶有緩存是16550以及更高端UART的突出的特點。16550帶有8位寬、16字節深的異步FIFO。FIFO控制器從CPU接口讀入信息,配置發送/接收FIFO,并且在需要的時候使能FIFO,并且把FIFO的實時狀態通過CPU接口送給CPU以方便CPU讀取數據。在發送FIFO空和接收FIFO滿的時候,FIFO控制器立即產生中斷請求,通知CPU進行下一步的操作。另外,當配置DMA模式時,CPU可以進行大數據量的發送和讀取,減輕了CPU的負擔,可以提高整個系統的運行效率。

  3.4發送模塊

  發送模塊的核心是one hot編碼的狀態機。他可以讀人來自FIFO的數據,并根據配置寄存器里面的信息加入起始位、1,1.5或2位停止位和奇偶校驗位,然后把打包的數據通過移位寄存器把數據以標準的串口協議發送給串口接收設備。只要發送FIFO中有數據存在,發送模塊就會一直發送,直到FIFO空為止。在不選擇FIFO的情況下,發送模塊則直接接收來自THR(Transmit Hold Register)發送保持寄存器的數據,不經過緩存直接發送。

 

  3.5接收模塊

  接收模塊是發送模塊功能的逆序執行。他接收來自外部的串行數據,根據配置去除數據的起始、停止位和奇偶校驗位,若出現數據差錯則立即產生錯誤信息。如果沒有錯誤,則將剩余的8位有用數據送入接收FIFO讓CPU讀取。同樣接收模塊也可以選擇不使用FIFO,這時接收模塊就會把8位數據直接送給RBR(Receive Buffer Register)接收緩沖寄存器,再由RBR送給CPU。

  4結果的驗證仿真

  設計采用VHDL語言在FPGA Advantage平臺下編寫,并通過Modelsim編譯仿真,并且通過ISE下載到電路板上驗證,硬件驗證FPGA芯片采用Xilinx的Spartan3。XC400PQ208。由于驗證UART接收/發送時序必須要有處理器,所以采用在FPGA內部嵌入Xilinx的MicroBlaze軟核模擬CPU控制時序,通過FPGA外接的串口實現與計算機串口進行通信。

  5 結 語


 本文介紹了UARTl6550在可編程邏輯器件FPGA上的實現,并通過實際電路驗證了設計的功能,使用FP-GA不僅可以方便地用串口協議與PC機進行串行通信,而且擴展了板級系統的接口功能。應用在可編程器件FPGA內部,可以很大程度地減少電路板的使用面積,并提高系統的穩定性和可編程性。

 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
999在线观看精品免费不卡网站| 亚洲男女自偷自拍| 国产精品久久久久久久浪潮网站| 亚洲电影视频在线| 国产日韩精品一区二区三区在线 | 久久九九国产精品怡红院| 亚洲在线一区| 亚洲一区二区三区成人在线视频精品 | 欧美色另类天堂2015| 欧美日韩国内| 欧美日韩国产影片| 欧美日韩久久| 欧美日韩精品在线观看| 欧美婷婷久久| 国产精品日本欧美一区二区三区| 国产精品jizz在线观看美国| 国产精品久久久久久超碰| 国产精品videosex极品| 国产精品成人一区二区三区夜夜夜| 欧美无乱码久久久免费午夜一区| 欧美日韩免费观看一区=区三区| 欧美日产国产成人免费图片| 欧美日韩国产免费观看| 欧美视频在线观看免费| 国产精品日本| 国产亚洲成av人在线观看导航| 国产日韩一区二区三区在线播放| 国产日韩av在线播放| 国内精品久久久久影院色 | 亚洲大胆av| 亚洲第一在线综合在线| 亚洲大胆人体视频| 亚洲人成久久| 亚洲天堂av电影| 亚洲一区二区欧美日韩| 午夜在线一区| 亚洲国产一二三| 亚洲人成亚洲人成在线观看图片| 日韩一区二区久久| 久久福利影视| 亚洲黑丝在线| 在线亚洲观看| 欧美在线91| 欧美不卡视频| 欧美亚洲不卡| 韩国三级电影久久久久久| 亚洲激情在线激情| 亚洲桃花岛网站| 久久精品盗摄| 日韩一区二区精品视频| 性欧美长视频| 免费成人毛片| 国产精品伦子伦免费视频| 国产最新精品精品你懂的| 亚洲国产小视频| 亚洲一区二区三区激情| 亚洲高清色综合| 亚洲性夜色噜噜噜7777| 久久久久久九九九九| 欧美韩日亚洲| 国产日本欧美一区二区| 亚洲国产小视频| 亚洲欧美日韩综合一区| 亚洲精品护士| 先锋影音一区二区三区| 免费永久网站黄欧美| 国产精品久久波多野结衣| 激情综合五月天| 亚洲午夜电影网| 亚洲人成毛片在线播放女女| 羞羞视频在线观看欧美| 欧美激情一区二区三区| 国产欧美日韩综合精品二区| 亚洲经典在线看| 欧美有码在线视频| 亚洲网友自拍| 欧美xxxx在线观看| 国产欧美综合一区二区三区| 亚洲免费大片| 亚洲国产成人av| 欧美一区二区成人| 欧美日韩久久久久久| 在线免费观看成人网| 亚洲欧美成aⅴ人在线观看| 日韩一级黄色av| 久久综合狠狠综合久久激情| 国产精品日本一区二区| 日韩午夜黄色| 亚洲精品国久久99热| 久久久国际精品| 国产精品一区三区| 9国产精品视频| 亚洲美女淫视频| 久久免费视频这里只有精品| 国产精品美女久久久久久2018| 亚洲区国产区| 亚洲激情精品| 久久视频这里只有精品| 国产精品专区一| 亚洲天天影视| 亚洲一区美女视频在线观看免费| 欧美激情影院| 亚洲高清成人| 亚洲国产精品久久久久婷婷884| 欧美一区91| 国产精品视频免费一区| 亚洲视频网在线直播| 一区二区免费在线视频| 欧美国产激情二区三区| 在线观看三级视频欧美| 久久精品日产第一区二区三区| 欧美中文字幕在线| 国产精品网站在线播放| 亚洲天堂男人| 亚洲欧美日韩精品| 国产精品久久久免费| 亚洲午夜精品久久久久久浪潮| 国产精品99久久久久久人| 欧美日韩视频在线一区二区| 亚洲精品中文字幕女同| 日韩亚洲欧美一区二区三区| 欧美成人免费一级人片100| 伊人久久噜噜噜躁狠狠躁| 亚洲国产精品尤物yw在线观看 | 欧美亚洲一区三区| 欧美在线一级视频| 国产精品自拍网站| 亚洲欧美视频在线观看| 欧美在线三级| 国产区欧美区日韩区| 香蕉成人伊视频在线观看 | 亚洲欧美综合另类中字| 欧美在线三区| 国产在线精品自拍| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲欧美另类国产| 国产精品综合不卡av| 午夜精品久久久久久久久 | 裸体素人女欧美日韩| 在线观看日韩www视频免费| 亚洲美女黄网| 欧美日韩亚洲一区| 亚洲网友自拍| 久久久久久国产精品mv| 在线高清一区| 99v久久综合狠狠综合久久| 欧美日韩亚洲高清一区二区| 亚洲午夜小视频| 久久精品国产亚洲5555| 伊大人香蕉综合8在线视| 91久久精品国产| 欧美日韩不卡合集视频| 中文在线资源观看网站视频免费不卡 | 久久亚洲影院| 亚洲精品美女在线| 午夜日韩激情| 精品成人在线视频| 一区二区三区波多野结衣在线观看| 欧美日韩亚洲不卡| 午夜视频一区二区| 免费久久99精品国产| 亚洲最新色图| 久久久久网站| 日韩视频免费| 久久久久久一区二区三区| 亚洲人屁股眼子交8| 欧美一区二区精品| 在线精品视频在线观看高清| 在线亚洲精品福利网址导航| 国产欧美日本一区视频| 亚洲靠逼com| 国产九九视频一区二区三区| 久久国产婷婷国产香蕉| 欧美日韩视频在线观看一区二区三区| 午夜精品在线看| 欧美久久综合| 久久动漫亚洲| 国产精品va| 亚洲日本欧美日韩高观看| 国产伦精品免费视频| 亚洲第一级黄色片| 欧美性片在线观看| 亚洲电影在线看| 国产精品久久久久久久第一福利| 亚洲高清一区二区三区| 欧美性天天影院| 亚洲激情成人在线| 国产啪精品视频| 一区二区三区福利| 一区二区三区在线高清| 亚洲欧美一区二区三区久久| 亚洲国产三级| 久久精品亚洲精品国产欧美kt∨| 日韩亚洲在线| 欧美福利视频| 欧美怡红院视频| 欧美视频精品在线观看| 亚洲激情电影中文字幕| 国产午夜精品美女毛片视频| 亚洲综合精品|