新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA實現異步串行通信

        基于FPGA實現異步串行通信

        作者: 時間:2013-10-23 來源:網絡 收藏

        1.2 波特率發生器模塊
        串口,就是RS 232/RS 485,要求的雙方波特率等通信格式一樣才可以通信成功。在電子通信領域,波特率(Baud Rate)即調制速率,指的是信號被調制以后在單位時間內的變化,即單位時間內載波參數變化的次數。它是對符號傳輸速率的一種度量,1 Baud即指每秒傳輸1個符號。在通用通信時,波特率發生器是一個必不可少的部分。波特率發生器實際上就是一個分頻器,可以根據給定的系統時鐘頻率和要求的波特率算出波特率分頻因子,算出的波特率分頻因子作為分頻器的分頻數從而產生所需的時鐘頻率。在設定發送和接收使用相同的波特率的情況下,UART只需要一個波特率發生器就可以了。
        系統提供的時鐘頻率為10 MHz,數據信號的傳輸速率為115 200 Hz,波特率發生器產生的時鐘對數據信號進行采樣,設定對傳輸的數據信號進行3倍采樣,則波特率發生器產生的頻率為:
        3×115 200=345 600 Hz
        那么就可以根據給定的系統時鐘和要求的波特率計算出分頻因子:
        1×107/345 600=28.94
        對時鐘進行28.94分頻是很難的,因此取整數30作為分頻因子。盡管這樣會使得分頻得到的時鐘會比所需的345 600 Hz高3.5%,但這樣微小的變化不會影響實際電路的工作。其仿真圖如圖3所示。

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

        c1.jpg


        1.3 數據發送模塊
        發送過程就是把并行總線上的數據發送到總線上。數據發送的過程可以分為空閑狀態、加載狀態、發送狀態和發送完成狀態??臻e狀態就是UART內核復位后的空閑狀態,等待加載狀態。UART進入空閑狀態后,當檢測到發送控制信號有效時,就進行加載狀態并開始進行數據的加載。加載狀態就是發送模塊按照發送的順序將要發送的這一幀數據加載到移位寄存器內,將移位寄存器和計數器都復位,使移位寄存器和計數器的工作時鐘為系統時鐘。當計數器達到了計數的上限時,它會產生一個指示信號通知UART內核進入發送狀態。UART內核狀態機進入發送狀態的同時要改變相應信號,這時移位寄存器時鐘必須為波特率時鐘,最重要的是將輸出信號送到RS 232的發送端口TXD上。在發送狀態,也需要計數器的控制,當計數器達到了計數的上限時,它會產生一個信號通知UART內核進入發送完成狀態。當UART內核狀態機進入發送狀態后,并產生發送完成中斷信號。這樣就可以把數據從端口上發送出去了。發送數據和接收數據的狀態轉換圖如圖4所示。
        發送一幀數據的部分程序如下:
        c.JPG
        發送一幀數據的仿真結果如圖5所示。

        d.JPG

        fpga相關文章:fpga是什么


        通信相關文章:通信原理


        數字濾波器相關文章:數字濾波器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 禹州市| 陇南市| 平乐县| 酒泉市| 海门市| 融水| 射阳县| 重庆市| 彩票| 长兴县| 新丰县| 岳普湖县| 德惠市| 赣榆县| 七台河市| 滨州市| 海门市| 昌乐县| 台前县| 吉隆县| 咸丰县| 茂名市| 龙南县| 安平县| 平安县| 上林县| 亳州市| 寿阳县| 长顺县| 固阳县| 改则县| 北宁市| 云龙县| 德化县| 酒泉市| 五台县| 高唐县| 汝南县| 道孚县| 青海省| 商南县|