新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于Verilog HDL的UART模塊設計與仿真

        基于Verilog HDL的UART模塊設計與仿真

        作者: 時間:2010-07-27 來源:網絡 收藏

        2.1 波特率發生器
        波特率表示的是每秒鐘傳送的二進制數據的位數,即單位時間內傳送的信息量。在串行異步傳送中,常用到的波特率為1 200、2 400、4 800、9 600、19 200等。波特率發生器實際上是一個分頻器,主要是產生和。RS-232通信所采用的波特率同步的時鐘。由于串行數據幀與接收數據時鐘是異步的,所以存的接收端在什么時刻將數據移入寄存器,怎樣選擇可靠的采樣點是非常關鍵的。一般采用高速時鐘對串行數據采樣是非常有效的方法。在實際設計中,一般最大選擇16倍于波特率的時鐘頻率。實現波特率時鐘的基本思路就是設計一個計數器,該計數器工作在速度很高的系統時鐘下,通過總線寫入不同的數值到波特率發生器保持寄存器中,然后用計數器的方式生成所需要的各種波特率就能得到所需的波特率時鐘,仿真如圖3所示。

        本文引用地址:http://www.104case.com/article/191639.htm


        2.2 接收模塊
        接收模塊是整個的設計的重點,其主要功能是檢測數據的起始位,并對接收的數據進行串并轉換,并將接收好的數據儲存等待微機處理。由于串行數據幀與接收數據時鐘是異步的,接收功能實現的關鍵是接收器與每個接收字符同步。要保證異步通信的雙方準確無誤地交換信息,必須有效控制采集通信線路上的電平信號的時機。由異步串行通信的特點可知,接收同步是通過低電平起始位實現的。而為了保證采樣的正確性,采樣在數據位的中間進行,并且接收單元采樣數據的頻率與發送單元發送數據的頻率相同,是波特率時鐘周期的16倍,這樣可以有效地降低由于時鐘不匹配而導致的誤采樣。接收模塊的設計主要由狀態機實現其核心功能,采用獨熱編碼方式,雖然獨熱編碼多用了兩個觸發器,但所用組合電路可節省一些,使電路的速度和可靠性有顯著提高。控制接收器的起始/停止位檢測,接收數據的計數,移位寄存的功能。狀態機分為5個狀態,分別為:IDEL,CENTER,WAIT,SAMPLE,STOP。狀態轉換圖如圖4所示。


        1)IDLE狀態 系統被復位后,接收狀態機進入IDLE狀態,等待起始位到來,輸入數據在空閑時保持為1,當輸入由“l”跳變為“0”時,狀態機跳轉到CENTER狀態。
        2)CENTER狀態 啟動起始位檢測電路,為排除噪聲干擾,狀態機等待8個脈沖,如果數據線上仍為低電平,則狀態機跳轉到WAIT狀態,并啟動采樣電路。如果是噪聲干擾,則轉入IDLE態。
        3)WAIT狀態 狀態機WAIT狀態,判斷數據接收是否完畢,若未完成采樣,則轉入SAMPLE狀態進行數據位的采樣檢測,同時啟動位計數器,用來控制數據接收的位數。無論停止位是幾位,狀態機只對停止位作一次采樣。接收完畢,轉入STOP狀態。
        4)SAMPLE狀態 在此狀態對串口輸入數據進行采樣,每次采樣均位于數據位的中心。并每接收完一位數據,狀態機轉入WAIT狀態。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 西乌珠穆沁旗| 盐边县| 璧山县| 开原市| 上林县| 镇赉县| 沅陵县| 班戈县| 顺平县| 翁牛特旗| 舞阳县| 隆安县| 西吉县| 长武县| 临夏市| 策勒县| 牟定县| 韩城市| 武陟县| 奉新县| 涿鹿县| 大邑县| 灵山县| 九台市| 阿勒泰市| 阳春市| 抚宁县| 双峰县| 伊宁市| 中方县| 柯坪县| 磐石市| 钟祥市| 仲巴县| 泊头市| 交城县| 双鸭山市| 兴山县| 湘潭县| 遂溪县| 永福县|