• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的UART、USB接口協(xié)議設(shè)計(jì)

    基于FPGA的UART、USB接口協(xié)議設(shè)計(jì)

    作者: 時(shí)間:2012-03-13 來源:網(wǎng)絡(luò) 收藏

    代碼中Bingo設(shè)置了多個(gè)選項(xiàng)的bps,根據(jù)您的需要,可以直接修改代碼,來達(dá)到自己的要求。本模塊的功能主要功能是生成兩個(gè)時(shí)鐘:

    a) clk_bps : TXD信號(hào)線數(shù)據(jù)發(fā)送的波特率

    b) clk_smp: RXD信號(hào)線數(shù)據(jù)接受的采樣速率,以對(duì)已波特率的16倍速度采樣,捕獲數(shù)據(jù)的中點(diǎn),在數(shù)據(jù)最穩(wěn)態(tài)讀取數(shù)據(jù),達(dá)到最大限制的穩(wěn)定。

    (2)TXD發(fā)送模塊

    這部分代碼比較簡單,因?yàn)?a class="contentlabel" href="http://www.czjhyjcfj.com/news/listbylabel/label/FPGA">FPGA是主控,只要根據(jù)固定的時(shí)序給數(shù)據(jù)即可。Bingo設(shè)計(jì)了一個(gè)狀態(tài)機(jī)來完成時(shí)序,狀態(tài)機(jī)代碼如下:

    always@(posedge clk or negedge rst_n)

    begin

    if(!rst_n)

    begin

    txd_state = T_IDLE;

    txd_flag_r = 0;

    txd = 1'b1;

    end

    else

    begin

    case(txd_state)

    T_IDLE:

    begin

    txd = 1;

    txd_flag_r = 0;

    if(txd_en == 1)

    txd_state = T_SEND;

    else

    txd_state = T_IDLE;

    end

    T_SEND:

    begin

    if(clk_bps == 1)

    begin

    if(txd_cnt 4'd9)

    txd_cnt = txd_cnt + 1'b1;

    else

    begin

    txd_cnt = 0;

    txd_state = T_IDLE;

    txd_flag_r = 1;

    end

    case(txd_cnt)

    4'd0: txd = 0;

    4'd1: txd = txd_data[0];

    4'd2: txd = txd_data[1];

    4'd3: txd = txd_data[2];

    4'd4: txd = txd_data[3];

    4'd5: txd = txd_data[4];

    4'd6: txd = txd_data[5];

    4'd7: txd = txd_data[6];

    4'd8: txd = txd_data[7];

    4'd9: txd = 1;

    endcase

    end

    end

    endcase

    end

    End

    數(shù)據(jù)發(fā)送的狀態(tài)機(jī)設(shè)計(jì)如下:

    12.jpg

    同時(shí),為了軟件調(diào)試,數(shù)據(jù)識(shí)別等的方便,Bingo在此模塊設(shè)置了數(shù)據(jù)發(fā)送標(biāo)志位。此部分主要參考了Bingo“第七章 你想干嘛——邊沿檢測(cè)技術(shù)”的方法,此處不再做累贅闡述,若有不懂請(qǐng)看上文。此部分代碼如下:

    c++相關(guān)文章:c++教程




    關(guān)鍵詞: FPGA UART USB 接口

    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 渭南市| 泰安市| 安泽县| 肥西县| 邯郸市| 阳城县| 枝江市| 新化县| 西宁市| 曲靖市| 无极县| 泽库县| 库尔勒市| 深水埗区| 隆子县| 麻栗坡县| 芜湖市| 门源| 沂源县| 宁武县| 亳州市| 维西| 沂源县| 色达县| 青海省| 新平| 卢龙县| 葫芦岛市| 九江县| 孟津县| 加查县| 盐城市| 宜兴市| 宁晋县| 那坡县| 邢台市| 通许县| 年辖:市辖区| 扶风县| 理塘县| 金沙县|