《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 其他 > FPGA教學——FPGA實現串口多比特發送接收模塊

FPGA教學——FPGA實現串口多比特發送接收模塊

2022-08-17
來源: FPGA之旅
關鍵詞: FPGA 串口通信

  一. 簡介

  這是FPGA之旅的第四個設計實例了,在上一例中,也就是第三例,串口通信,實現了單byte的傳輸。也就是每次只能傳輸一個btye的數據。在實際使用過程中,需要發送多byte的數據為一包數據,里面包含各種信息,例如最常見的包頭和包尾。本例將在第三例的基礎上,實現多byte的接收實例,以滿足具體的需求。

  二. 實現方法

  在串口通信中數據一般為:1 bit的起始位 + 5,6,7,8bit的數據位 + 1 bit的停止位。最多一包數據為 10 bit。

  其實串口協議中,并沒有規定數據位為5,6,7,8,理想情況下可以為任意位。例如,兩塊FPGA之間通過串口通信,就可以自定義。但是呢?上位機軟件支持位數只有這么幾種。為了通用性,還是以上位機軟件為標準。

  假如說我要一次性發送5 bytes的數據 或者 一次性接收 5 bytes的數據,然后交給FPGA進行處理,那么該怎么做呢?其實也是比較容易的。只需要再設計一個模塊,重復調用 5 次串口發送模塊,和串口接收模塊接收了 5 bytes的數據后,再進行對應的處理,就可以了。

  基礎的串口通信模塊完成后,就只需要完成這個多bytes 的模塊了。

  三. Verilog 代碼實現

  先來看一下發送的頂層模塊,頂層模塊,可以說和普通的串口發送模塊一樣,只是多出了一個參數,來控制發送字節的位寬,具體定義如下。MulTXNum通過這個參數可以在實例化這個模塊的時候,自行確定每次測試字節的個數,非常靈活。

  module UART_MulTX #(

  parameter MulTXNum = 3)   /*每次發送的字節數*/

  (

  input                           sys_clk,

  input                           rst_n,

  input                           uart_tx_req,   /*串口發送請求*/

  output                          uart_txs_done,  /*串口發送完成*/

  input[MulTXNum*'d8 - 'd1:0]     idats,           /*發送的數據*/

  output                          uarttx         /*uart tx數據線*/

  );

  2. 在這個頂層模塊中調用基本的串口發送模塊。波特率也通過參數進行控制,在實例化的時候,方便修改波特率。

  UART_TX #(

  .UARTBaud(115200)   /*設置波特率*/

  )UART_TXHP

  (

  .sys_clk           (sys_clk),       /*系統時鐘 50M*/

  .rst_n              (rst_n),         /*系統復位 低電平有效*/

  .uart_tx_req        (UART_TX_Reg),   /*串口發送請求*/

  .uart_tx_done       (uart_tx_done),  /*串口發送完成*/

  .idat               (txdata),          /*發送數據*/

  .uarttx             (uarttx)        /*uart tx數據線*/

  );

  3. 串口接收模塊定義也一樣,具體的實現過程可以看完整的過程項目,就不粘貼上來了。需要的可以自行獲取。簡單看看模塊圖吧!

微信截圖_20220817154135.png

  四. testbeach編寫

  寫完各個模塊后,怎么能少得了仿真呢?也是調了幾次才沒有bug,嗐,直接上仿真。這里測試的是每次發送3個字節的數據,每次發送完成后,發送完成后,發送數據加上2323,然后繼續發送,具體的可以看看仿真波形。

  `timescale 1ns/1ps

  module testbeach();

  reg     clk;

  reg     rst;

  reg     uart_tx_req;

  wire    uart_txs_done;

  reg[23:0]   idats;

  wire        uart;

  wire[23:0]  odats;

  wire        uart_rxs_done;

  always #50 clk = ~clk;

  initial begin

  clk = 1'b1;

  rst = 1'b1;

  idats = 'd12256;

  uart_tx_req = 1'b0;

  #100

  rst = 1'b0;  /*手動復位*/

  #100

  rst = 1'b1;

  #100

  uart_tx_req <= 1'b1;

  end

  always@(posedge clk)

  if(uart_txs_done == 1'b1)

  idats <= idats + 'd2323;

  UART_MulRX #(

  .MulRXNum (3)

  )UART_MulRXHP(

  .sys_clk                         (clk),         /*系統時鐘 50M*/

  .rst_n                           (rst),          /*系統復位*/

  .uart_rxs_done                     (uart_rxs_done),    /*串口接收完成*/

  .odats                             (odats),           /*接收數據*/

  .uartrx                           (uart)         /*uart rx數據線*/

  );

  UART_MulTX #(

  .MulTXNum(3))   /*每次發送的比特數*/

  UART_MulTXHP(

  .sys_clk                            (clk),         /*系統時鐘 50M*/

  .rst_n                              (rst),          /*系統復位*/

  .uart_tx_req                        (uart_tx_req),   /*串口發送請求*/

  .uart_txs_done                      (uart_txs_done),  /*串口發送完成*/

  .idats                              (idats),           /*發送的數據*/

  .uarttx                             (uart)        /*uart tx數據線*/

  );

  endmodule

  通過波形可以看到,程序編寫正確!!!(已上板驗證)

微信截圖_20220817154157.png

  需要完整代碼的可以在公眾號FPGA之旅中回復 :FPGA之旅設計99例之第四例


  更多信息可以來這里獲取==>>電子技術應用-AET<<

微信圖片_20210517164139.jpg

微信截圖_20220708161426.png

電子技術應用專欄作家FPGA之旅

原文鏈接:https://mp.weixin.qq.com/s/-SgBkJTbW-nRkG_eqjatWQ

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久免费视频一区| 一区二区三区回区在观看免费视频| 亚洲级视频在线观看免费1级| 欧美精品色网| 亚洲视频电影图片偷拍一区| 亚洲美洲欧洲综合国产一区| 欧美人妖另类| 亚洲摸下面视频| 欧美呦呦网站| 亚洲国产专区| 国产精品免费一区豆花| 久久精视频免费在线久久完整在线看| 亚洲视频在线观看视频| 国产精品入口尤物| 久久青草久久| 亚洲第一网站免费视频| 亚洲人www| 国产精品白丝黑袜喷水久久久| 亚洲精品综合| 99视频国产精品免费观看| 国产精品稀缺呦系列在线| 久久综合网色—综合色88| 亚洲人成小说网站色在线| 一区二区免费在线视频| 国产精品一区二区你懂得 | 亚洲精品色图| 国产精品第三页| 久久久精品日韩欧美| 亚洲美女在线观看| 亚洲一区二区三区精品在线观看| 欧美日韩一区二区在线 | 亚洲自拍偷拍麻豆| 久久精品欧美日韩精品| 亚洲毛片在线| 国产亚洲一区二区三区在线播放| 欧美亚洲视频一区二区| 亚洲高清视频在线观看| 亚洲视频免费观看| 在线观看日韩| 国产精品日本精品| 欧美激情久久久久| 欧美制服第一页| 一本久道久久综合狠狠爱| 久久不射网站| 亚洲香蕉在线观看| 亚洲国产精品综合| 国产日韩欧美成人| 欧美视频1区| 男女视频一区二区| 久久精品国产久精国产思思| 亚洲一区二区在线免费观看视频| 在线一区免费观看| 亚洲丰满在线| 狠狠干综合网| 国产日韩欧美一二三区| 欧美视频在线观看 亚洲欧| 免费影视亚洲| 久久av一区二区三区漫画| 中文精品99久久国产香蕉| 亚洲国产精品久久人人爱蜜臀| 亚洲国产精品久久久久| 国产视频亚洲| 国产精品美女主播| 欧美日韩亚洲综合在线| 欧美好吊妞视频| 久久综合伊人77777麻豆| 午夜精品亚洲| 亚洲一区二区三区四区中文| 亚洲精品综合| 亚洲人成人一区二区在线观看 | 在线中文字幕不卡| 亚洲激情午夜| 在线免费精品视频| 国产嫩草一区二区三区在线观看| 久久久久久伊人| 午夜亚洲影视| 亚洲综合激情| 亚洲免费视频在线观看| 夜夜夜久久久| av成人激情| 日韩视频不卡| 日韩视频中文| 亚洲精品一区二区三区蜜桃久| 亚洲天堂黄色| 中文国产亚洲喷潮| 国产欧美一区二区三区视频| 国产精品久99| 欧美吻胸吃奶大尺度电影| 欧美日韩国产影院| 欧美另类专区| 欧美精品一区二区久久婷婷| 欧美国产一区二区| 欧美激情影音先锋| 欧美另类一区| 欧美激情一区二区三区在线视频观看 | 国产精品成人一区二区三区吃奶 | 亚洲高清久久网| 伊人成综合网伊人222| 国产又爽又黄的激情精品视频| 欧美日本不卡| 欧美黄色免费网站| 欧美乱妇高清无乱码| 欧美—级在线免费片| 欧美黄色影院| 欧美日本在线一区| 欧美日韩精品一区二区| 欧美日韩免费观看中文| 国产精品igao视频网网址不卡日韩| 免费h精品视频在线播放| 模特精品在线| 欧美激情一区二区三区高清视频| 欧美在线精品免播放器视频| 亚洲欧美中文日韩在线| 亚洲欧美日韩在线高清直播| 亚洲欧美成人一区二区三区| 香蕉成人伊视频在线观看| 欧美在线观看视频一区二区三区| 亚洲午夜精品| 性色一区二区三区| 久久躁狠狠躁夜夜爽| 欧美成人按摩| 欧美日韩高清区| 国产精品羞羞答答xxdd| 韩国女主播一区| 亚洲成人在线网| 亚洲裸体视频| 亚洲欧美日韩一区二区三区在线观看 | 国内在线观看一区二区三区 | 国产一区观看| 亚洲国产日韩欧美一区二区三区| 国产婷婷色一区二区三区四区| 欧美日韩在线观看视频| 国产精品mm| 国产亚洲一区二区精品| 亚洲高清视频一区二区| 日韩视频免费大全中文字幕| 亚洲一二区在线| 午夜亚洲一区| 亚洲毛片在线看| 亚洲欧美激情一区二区| 久久久久9999亚洲精品| 欧美精品粉嫩高潮一区二区 | 在线视频精品一区| 久久成人18免费观看| 欧美成人在线免费视频| 欧美日韩亚洲一区二| 国产在线麻豆精品观看| 999亚洲国产精| 新片速递亚洲合集欧美合集| 亚洲精品综合精品自拍| 欧美一二三视频| 免费不卡在线观看| 国产精品久久久久久久9999| 一区二区亚洲精品国产| 制服诱惑一区二区| 亚洲国产精品福利| 亚洲欧美在线一区二区| 欧美1区2区| 亚洲少妇最新在线视频| 亚洲福利在线观看| 亚洲天堂av综合网| 六月丁香综合| 国产精品乱码妇女bbbb| 亚洲电影专区| 欧美一区二区视频免费观看| 在线视频亚洲欧美| 美女久久网站| 国产欧美一区二区三区国产幕精品| 国产欧美一区二区三区国产幕精品| 国产精品一区=区| 亚洲精品国产日韩| 久久精品一区二区国产| 亚洲天堂av图片| 欧美高清影院| 国外精品视频| 亚洲欧美国产77777| 一区二区三区精密机械公司| 久久综合网络一区二区| 国产乱码精品一区二区三区av| 国内成人在线| 亚洲欧美日韩国产一区二区三区| 亚洲国产精品久久久久秋霞影院| 亚洲欧洲免费视频| 亚洲二区视频| 久久久久国产精品麻豆ai换脸| 鲁大师影院一区二区三区| 国产精品免费观看在线| 日韩午夜精品视频| 日韩午夜三级在线| 美女爽到呻吟久久久久| 国产一区二区主播在线| 亚洲欧美日本精品| 午夜精品久久久久久99热软件| 久久久久网址| 国产日韩欧美黄色| 亚洲视频香蕉人妖| 亚洲永久字幕| 欧美性一区二区| 一区二区冒白浆视频| 亚洲视频axxx|