999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VERILOG-HDL的簡化異步收發(fā)器的設計與仿真

2008-12-31 00:00:00劉麗佳
電腦知識與技術 2008年34期

摘要:該文闡述了通用異步收發(fā)器(UART)異步串行通信原理,介紹了實現(xiàn)UART異步串行通信的硬件接口電路及各部分硬件模塊。該文基于Verilog語言實現(xiàn)了接收器和發(fā)送器這兩個UART的內部核心功能模塊,通過Modelsim對相應Verilog-HDL程序的仿真,驗證了其異步串行數(shù)字接收和發(fā)送的功能。

關鍵詞:Modelsim仿真;硬件描述語言;Verilog;UART

中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2008)34-1752-03

Design and Simulation of Universal Asynchronous Receiver/transmitter Based on Verilog-HDL

LIU Li-jia

(Liaoning University Of Technology,The School of Electronics and Information Engineering, Jinzhou 121001, China)

Abstract: The paper expatiate the asynchronous serial communication theory of the UART, introduce the hardware interface circuit of asynchronous serial communication and the hardware module of each part. By using the Verilog-HDL ,the article realize the transmitter and receiver,which are kernel functional modules of the UART. Through the Modelism simulation,we validate the function of asynchronous serial receiver and transmitter.

Key words: Modelism simulation; hardware description language; Verilog; UART

1 引言

UART(Universal Asynchronous Receiver Transmitter)協(xié)議是一種串行數(shù)據(jù)傳輸協(xié)議。UART允許在串行鏈路上進行全雙工通信,在軍事、工業(yè)、通信、自動控制、話音圖像處理等眾多領域得到了廣泛運用。8250、NS16450等芯片都是常見的UART器件,這類芯片具有多種功能,但在實際應用中有時只需要使用UART的部分功能,因而會造成一定的資源浪費。本文使用Verilog HDL語言編寫出簡化型的異步串行數(shù)字接收、發(fā)送接口(UART)內部核心模塊的硬件描述程序及其相應的測試程序,然后應用Modelsim對所編的程序進行仿真,驗證其UART功能。

2 UART的結構

異步串行數(shù)據(jù)幀格式如圖1所示。在異步通信中,一個字符在傳輸時,除傳輸實際編碼信息外,還要傳輸幾個外加位,即傳輸開始時首先輸出起始位“0”。起始位后面為5~8個數(shù)據(jù)位,在同一個傳輸系統(tǒng)中,數(shù)據(jù)位的數(shù)目是固定的。數(shù)據(jù)位后面是奇偶校驗位。最后的數(shù)位為停止位“1”。

在本方案中,異步串行通信傳送一個字符,包括10位,其中有1個起始位,7個數(shù)據(jù)位,1個奇偶校驗位和1個停止位。奇偶校驗位采用的是奇校驗,即7個數(shù)據(jù)位中“1”的個數(shù)為奇數(shù)個校驗位輸出為“1”,個數(shù)為偶數(shù)個時校驗位輸出為“0”。

3 UART的Verilog HDL實現(xiàn)

UART主要由波特率發(fā)生模塊、發(fā)送模塊、接收模塊這三個部分組成。

波特率發(fā)生器用于產生一個本地時鐘信號來控制UART的接收與發(fā)送;UART接收模塊的用途是接收rxd端的串行信號,并將其轉化為并行數(shù)據(jù);UART發(fā)送模塊的用途是將準備輸出的并行數(shù)據(jù)按照基本UART幀格式轉為串行數(shù)據(jù)從txd端串行輸出。圖2為UART的三個子模塊。

3.1 波特率發(fā)生模塊

設計的UART的接收和發(fā)送按照相同的波特率進行,波特率可以通過接口模塊的總線接口進行設置。UART收發(fā)的每一個數(shù)據(jù)寬度都是波特率發(fā)生器輸出的時鐘周期的16倍,假如按照9600b/s進行收發(fā),那么波特率發(fā)生器的輸出時鐘頻率應該為9600×16Hz。假定提供的外部時鐘為1.6MHz,可以通過總線寫入不同的數(shù)值到波特率發(fā)生器保持寄存器,然后用計數(shù)器的方式生成所需要的各種波特率,即分頻器。計算公式為:1600000÷(16×RS)-1,其中RS為所期望的波特率。

如果要輸出10000Hz的波特率,可以得到從總線寫入的數(shù)值為1600000÷(16×10000)-1=9(即09H)。

3.2 接收模塊

1) 接收模塊原理

接收模塊的結構如圖3所示。接收模塊的作用是把收到的

串行數(shù)據(jù)轉換成并行數(shù)據(jù)進行輸出,并判斷收到數(shù)據(jù)是否有錯。

① rxd 接收串行數(shù)據(jù)輸入

② Ri 串行接收標志c)CLK 時鐘信號

③ LOAD 發(fā)送控制信號

④ rxdin[7:0] 并行數(shù)據(jù)輸出端

接收模塊是從rxd端接收數(shù)據(jù),rxd端由邏輯1跳變?yōu)檫壿?,此時視為一個數(shù)據(jù)幀的開始。接收模塊從捕捉到數(shù)據(jù)幀的第一個“0”開始工作,每經過一個clk,計數(shù)器point2計數(shù)一次,同時將起始位之后的7個數(shù)據(jù)位依次送入移位寄存器中,當計數(shù)為7時,完成一個字符的接收,此時這7位數(shù)據(jù)完成串并轉換并將并行數(shù)據(jù)輸出至端口rxdin的第0~6位,并行輸出口的第7位是奇偶校驗位,由寄存器sdi加載。之后,UART接收模塊繼續(xù)檢測下一個數(shù)據(jù)幀起始位的到來。

2) 接收模塊實現(xiàn)的流程

接收模塊實現(xiàn)的流程如圖4所示。

3) 接收模塊仿真分析

由圖5仿真結果我們可以看到:串行接收標志為0時,接收模塊從rxd處接收串行數(shù)據(jù),舍棄起始位0,取其后的7位數(shù)據(jù)位1000101送入寄存器,完成串并轉化由低到高輸出至端口rxdin,與此同時寄存器sdi把運算得到的校驗位1輸出至最高位,8位數(shù)據(jù)位以并行的形式輸出,完成了由串行到并行的轉換。

圖5 接收模塊仿真波形

3.3 發(fā)送模塊

1) 發(fā)送模塊原理

接收模塊主要實現(xiàn)對并行數(shù)據(jù)的緩存,并串轉換,然后把串行數(shù)據(jù)按照既定數(shù)據(jù)幀格式進行輸出,其結構如圖6所示:

圖6UART發(fā)送模塊

① txdin [6:0] 7位并行數(shù)據(jù)的輸入端

② Ti 串行發(fā)送標志Ti=0串行輸出,Ti為上升沿時停止輸出

③ Load 為系統(tǒng)復位輸入端,低電平有效d)txd 串行輸出端

發(fā)送模塊實現(xiàn)的功能是將要發(fā)送的7位并行數(shù)據(jù)變?yōu)榇袛?shù)據(jù),同時在數(shù)據(jù)頭部加起始位,在數(shù)據(jù)位尾部加奇偶校驗位和停止位。即,當UART發(fā)送模塊被復位信號LOAD復位以后,發(fā)送模塊讀取7位并行數(shù)據(jù)到寄存器txdbuff中,之后輸出邏輯0作為起始位,從起始位的下一位開始對時鐘CLK的上升沿計數(shù),每計一次數(shù)從寄存器中按照由低位到高位的順序取出一位數(shù)據(jù)送到txd端,當計數(shù)為7時,數(shù)據(jù)位發(fā)送完畢。之后,根據(jù)7位數(shù)據(jù)位中邏輯1的個數(shù)確定校驗位,然后輸出校驗位,最后輸出邏輯1作為停止位。

2) 發(fā)送模塊實現(xiàn)的流程

發(fā)送模塊實現(xiàn)的流程如圖7所示。

3) 仿真結果分析

由圖8仿真結果可以看到:發(fā)送模塊讀入并行數(shù)據(jù)0101101, 存入寄存器txdbuff中,串行輸出端txd首先送出起始位0,之后將txdbuff中的數(shù)據(jù)由低到高進行并串轉化從txd端順序送出,即1011010,然后發(fā)送校驗位0,最后送出終止位1,這一過程,實現(xiàn)了UART發(fā)送模塊并行數(shù)據(jù)轉化為串行數(shù)據(jù)的功能。當串行發(fā)送標志為0時,發(fā)送模塊再次讀入并行數(shù)據(jù)并經過并串轉化由txd端輸出。

圖8發(fā)送模塊仿真波形

4 結束語

Verilog-HDL是一種硬件描述語言,用于從算法級、門級到開關級的多種抽象設計層次的數(shù)字系統(tǒng)建模,該語言最大的特點是簡潔、靈活、高效,其風格類似C語言,容易學習和掌握,本文利用Verilog設計的靈活性實現(xiàn)了UART接收和發(fā)送模塊,并可以在接收數(shù)據(jù)時對其校驗位進行判斷,在發(fā)送數(shù)據(jù)時形成完整的一幀數(shù)據(jù)格式,實驗證明該簡化UART模塊設計占用資源少,工作穩(wěn)定可靠,可運用在中低端的異步通信系統(tǒng)中。

參考文獻:

[1] 季雄,段吉海,胡媛媛,等.基于VerilogHDL的UART設計[J].微計算機信息,2006,22(17):230-232.

[2] 李少東.基于FPGA的異步收發(fā)器模塊設計[J].電子質量,2008(1):14-16.

[3] 扈華,白鳳娥.基于Verilog-HDL的UART串行通訊模塊設計及仿真[J].計算機與現(xiàn)代化,2008(8):15-19.

主站蜘蛛池模板: 亚洲一区色| 免费毛片全部不收费的| 免费A∨中文乱码专区| 国产无码网站在线观看| 在线观看国产网址你懂的| 亚洲中文无码h在线观看| 日韩小视频在线播放| 曰韩人妻一区二区三区| 日本在线视频免费| 四虎永久在线视频| 国产精品片在线观看手机版| a级高清毛片| 日韩精品亚洲一区中文字幕| 国产精品欧美日本韩免费一区二区三区不卡 | 国产精品视频公开费视频| 精品伊人久久久大香线蕉欧美| 国产成人久久777777| 国模沟沟一区二区三区| 国产成人亚洲日韩欧美电影| 欧美日韩国产系列在线观看| 秋霞午夜国产精品成人片| 中文字幕一区二区人妻电影| 国产乱视频网站| 久久亚洲日本不卡一区二区| 蜜芽一区二区国产精品| 亚洲一区二区成人| 国产成人精品第一区二区| 国产美女在线免费观看| 久久青草精品一区二区三区| 精品无码一区二区三区电影| 亚洲永久精品ww47国产| 国产女人在线视频| 日本影院一区| 五月婷婷精品| 污污网站在线观看| 欧美啪啪网| 亚洲日韩精品无码专区97| 欧美午夜视频在线| 精品国产成人国产在线| 亚洲啪啪网| 天天爽免费视频| 99偷拍视频精品一区二区| 亚洲一区国色天香| 国产在线观看成人91| 亚洲日本中文字幕天堂网| 日本人又色又爽的视频| 国产中文在线亚洲精品官网| 毛片三级在线观看| 亚洲色无码专线精品观看| 亚洲中文精品人人永久免费| 精品人妻系列无码专区久久| 国产屁屁影院| 人妻精品久久无码区| 欧美性精品不卡在线观看| 五月天婷婷网亚洲综合在线| 国产大片喷水在线在线视频 | 国产欧美专区在线观看| 制服无码网站| 国产成人精品无码一区二 | 亚洲中文字幕无码爆乳| 亚洲精品第一在线观看视频| 日韩麻豆小视频| 久久国产成人精品国产成人亚洲| 国产高清无码麻豆精品| 在线亚洲小视频| 中文一区二区视频| 欧美中日韩在线| 第一区免费在线观看| 欧美翘臀一区二区三区| 男女猛烈无遮挡午夜视频| 狠狠亚洲五月天| 四虎永久免费在线| 人妻中文久热无码丝袜| 91精品国产综合久久香蕉922| 亚洲综合香蕉| 色婷婷狠狠干| 第一页亚洲| 欧美成人手机在线视频| 久久亚洲美女精品国产精品| 激情综合婷婷丁香五月尤物| 色妞www精品视频一级下载| 欧美午夜性视频|