在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

UART通信協議介紹和數據傳輸工作流程

FPGA研究院 ? 來源:FPGA技術實戰 ? 2024-10-24 14:20 ? 次閱讀

引言:UART是一種通用串行數據總線,用于異步通信。該總線雙向通信,可實現全雙工傳輸和接收。UART通常用來實現與PC之間數據通信,命令和控制信息的傳輸等。本文我們介紹UART通信協議、傳輸時序及如何利用HDL編程實現FPGA與PC通信。

1.異步串行通信的理解

首先需要介紹幾個概念。

通信協議:指雙方實體完成通信或服務所必須遵循的規則和約定。交流什么、怎樣交流及何時交流,都必須遵循某種互相都能接受的規則。這個規則就是通信協議。

串行通信:是指通信雙方按位進行,遵守時序的一種通信方式。串行通信中,將數據按位依次傳輸,每位數據占據固定的時間長度,即可使用少數幾條通信線路就可以完成系統間交換信息,特別適用于計算機與計算機、計算機與外設之間的遠距離通信。

異步通信:它是對于同步通信來說的,異步通信在發送字符時,所發送的字符之間的時隙可以是任意的,當然,接收端必須時刻做好接收的準備(如果接收端主機的電源都沒有加上,那么發送端發送字符就沒有意義,因為接收端根本無法接收)。發送端可以在任意時刻開始發送字符,因此必須在每一個字符的開始和結束的地方加上標志,即加上開始位和停止位,以便使接收端能夠正確地將每一個字符接收下來。

2.UART通信協議介紹

UART使用的是異步串行通信機制,其數據傳輸協議格式如下圖所示。

wKgaomcZ50CAYI-NAAE4rJC_jSo997.jpg

圖1:UART數據傳輸協議格式

其中各位的含義如下:

起始位:先發出一個邏輯”0”信號,表示傳輸字符的開始。

數據位:可以是5~8位邏輯”0”或”1”。如ASCII碼(7位),擴展BCD碼(8位)。

校驗位:數據位加上這一位后,使得“1”的位數應為偶數(偶校驗)或奇數(奇校驗);數據的奇偶校驗位是可以選擇的,如果不使用奇偶,那么就沒有這個數據位。

停止位:它是一個數據字段的結束標志。可以是1位、1.5位、2位的高電平。

空閑位:處于邏輯“1”狀態,表示當前線路上沒有數據信息傳輸。

UART數據傳輸協議格式,通常需要在收發設備提前定義好,如傳輸數據的位數、是否需要校驗位、停止位。另外還一個重要的參數就是數據傳輸的波特率。

wKgZomcZ50CAeth4AACEZMcmtg0953.jpg

圖2:常見標準波特率

UART數據傳輸的速度通常用波特率來衡量。在一次串口通信過程中,數據接收與發送雙方沒有共享時鐘,因此,雙方必須協商好數據傳輸波特率。根據雙方協議好的傳輸速率,相鄰bit的時間間隔就會固定下來,接收端即可對發送端的數據進行采樣。

標準波特率:包括2400bps、4800bps、9600bps、19200bps、38400bps、57600bps、115200bps等。當然更塊的速度意味著對采樣的要求更高,有可能誤碼率會逐漸提高。

3.數據傳輸工作流程

本文設定傳輸協議為:1位起始位+8位數據位+1位結束位,無奇偶校驗位,傳輸波特率為9600bps。

(1)發送端按照預先設定好的傳輸協議及波特率,發送端依次發送:

1bit數據起始位+8bit數據位+1bit停止位

其中,起始位為邏輯 0(低電平) ,結束位為邏輯 1(高電平) ,發送端在空閑狀態為 1 。

(2)接收端:接收端通過檢測電平“1”(空閑狀態)到“0”(起始位)的跳變來確定一個數據包的開始。確定開始位接收完成之后,依次接收數據使用更高的采樣時鐘,完成數據采集。接收完數據位后,繼續接收停止位。

4.硬件介紹

硬件上采用USBRS232芯片CP2104實現PC與FPGA之間通信。電路中設計了一片ESD靜電防護芯片RCLAMP0522P,與轉換芯片CP2104一起,可以防止靜電浪涌燒毀FPGA芯片,起到隔離保護作用。

wKgaomcZ50CAJvZ1AAHNxuGyWqM095.jpg

圖3:USB轉RS232電路圖

5.軟件設計

軟件設計劃分為接收模塊uart_rx.v和uart_tx.v兩個模塊,頂層模塊uart_driver.v互聯兩個模塊,如下圖所示。
wKgZomcZ50CAalj5AABjrHCqzcU919.jpg

圖4:軟件模塊劃分

UART數據傳輸主要包括兩個部分:

波特率的產生設計;

數據傳輸設計,包括接收與發送。

(1)波特率產生設計:

板載 FPGA 輸入時鐘 100Mhz,為得到常用的波特率,采用計數分頻來得到。BAUD_DIV=100000000/ 波特率。其中采樣中心點為發送或接收時鐘的中心點,即 BAUD_DIV_CAP= 100000000/(2*波特率) 。

(2)數據傳輸設計

數據接收模塊:在設置好傳輸波特率9600bps下,根據串口傳輸時序,進行解串(串并轉換)。空閑狀態時,接收數據為邏輯高電平,等待起始位邏輯低電平的到來。當起始位到達后,由低位到高位,依次采集8位數據,并進行相應的解串,存入臨時寄存器。接收有效數據完成后,判斷結束位,接收完畢。

數據發送模塊:設置發送使能信號和待發送的數據。通過計數器,表示10 個數據發送的周期。這 10 個數據,依次為:1位起始位+8 位數據位 +1 位結束位,實現數據位的逐個發送。本設計中,采用PC機的串口調試助手,發送數據位至FPGA。FPGA 接收到數據位之后,立即回傳至 PC 機。

6.軟件功能仿真與測試

編寫testbench仿真文件,利用Vivado自帶仿真器對軟件代碼進行功能仿真,仿真結果如下圖所示。

wKgZomcZ50CAeawmAADvPBkd_Fw217.jpg

圖5:UART串行通信仿真

圖中①處,仿真UART接收串口信號uart_rx_i輸入數據8'b10101001baud_bps在每個bit位寬中間時刻采樣,bit_num計數接收到的數據bit個數,數據按照LSB端接收;

圖中②處完成8bit數據位接收后,產生接收完畢信號uart_rx_done;

來源: 本文轉載自FPGA技術實戰公眾號

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 通信協議
    +關注

    關注

    28

    文章

    882

    瀏覽量

    40307
  • uart
    +關注

    關注

    22

    文章

    1235

    瀏覽量

    101387
  • 串口通信
    +關注

    關注

    34

    文章

    1626

    瀏覽量

    55526
  • 異步串行通信

    關注

    0

    文章

    16

    瀏覽量

    8427

原文標題:FPGA入門基礎之UART串口通信設計

文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    UART通信協議

    位、波特率等均可以在COM接口中設置。也可以在代碼中對UART寄存器的各位進行設置,UART寄存器的各位所代表的含義如下:下面通過幾個小程序,了解UART通信協議進行
    發表于 01-31 10:43

    SPI總線工作原理/數據傳輸步驟/優缺點

    共享時鐘信號的任何通信協議稱為同步。SPI是一種同步通信協議,還有一些不使用時鐘信號的異步方法。例如,在UART通信中,雙方都設置為預先配置的波特率,該波特率決定
    發表于 12-09 14:18

    UART通信協議是什么

      UART作為異步串口通信協議的一種,工作原理是將傳輸數據的每一個字符一位一位地傳輸。其中每一
    發表于 02-23 16:54

    STM32簡單數據傳輸方法與通信協議(適合串口和一般總線)精選資料分享

    傳感器通過RS485總線或者CAN總線的方式達到數據傳輸的目的等等,這些數據傳輸往往需要合適穩定的總線和靈活的通信協議,我發現無論什么數據傳輸,原理大同小異,這里簡單以stm32的幾種
    發表于 08-23 07:16

    UART協議數據傳輸格式是怎樣的

    什么是UART協議UART工作原理是什么?UART協議
    發表于 11-02 08:14

    UART的原理與數據傳輸流程

    目錄1Uart原理1.1簡介1.2數據傳輸流程2、S3C2440的UART2.1特性2.2寄存器設置1)UART通道管腳設為
    發表于 12-16 07:03

    嵌入式GPRS數據傳輸終端設計

    利用嵌入式平臺的硬件、軟件技術、開發了基于GPRS網絡進行數據傳輸的嵌入式數據傳輸終端設備。通過設計一種應用層通信協議,很好地解決了在不可靠的無線傳輸鏈路上進行
    發表于 09-13 11:02 ?62次下載
    嵌入式GPRS<b class='flag-5'>數據傳輸</b>終端設計

    以太網數據傳輸系統的設計與應用介紹

    工作流程,并最終完成了對系統的功能驗證,、經驗證,系統穩定實現了與上位機之間的數據傳輸,現代數據采集領域中,越來越多的現場采集設備需要擴展網絡功能以實現遠程控制和數據傳輸。以太網以其成
    發表于 11-16 15:00 ?15次下載
    以太網<b class='flag-5'>數據傳輸</b>系統的設計與應用<b class='flag-5'>介紹</b>

    tcp_ip 協議講座:介紹數據傳輸

    介紹了tcp協議數據傳輸的問題(交互式數據傳輸,批量數據傳輸,流量控制,擁塞避免)
    的頭像 發表于 07-03 11:05 ?3453次閱讀
    tcp_ip <b class='flag-5'>協議</b>講座:<b class='flag-5'>介紹</b><b class='flag-5'>數據傳輸</b>

    【世說知識】一文搞懂UART通信協議

    雙向通信中,我們使用兩根導線來進行連續的串行數據傳輸。根據應用和系統要求,串行通信需要的電路和導線較少,可降低實現成本。本文將UART用作硬件通信協
    的頭像 發表于 02-02 10:46 ?2210次閱讀
    【世說知識】一文搞懂<b class='flag-5'>UART</b><b class='flag-5'>通信協議</b>

    物聯網應用場景中常見的通信協議

    物聯網協議是指在物聯網環境中用于設備間通信和數據傳輸協議。根據不同的作用,物聯網協議可分為傳輸
    的頭像 發表于 09-11 17:18 ?1373次閱讀
    物聯網應用場景中常見的<b class='flag-5'>通信協議</b>

    DTU的多種協議,解鎖數據傳輸的無限可能

    。本文將詳細介紹DTU的多種協議,看看它們如何幫助我們更好地完成數據傳輸工作。1.Modbus協議:這是一種常用于工業領域的
    的頭像 發表于 03-01 11:00 ?800次閱讀
    DTU的多種<b class='flag-5'>協議</b>,解鎖<b class='flag-5'>數據傳輸</b>的無限可能

    UART串口通信協議是什么?

    ,廣泛應用于嵌入式領域。 在UART串口通信協議中,數據以字節的形式進行傳輸。發送和接收端的通信流程
    的頭像 發表于 03-19 17:26 ?1390次閱讀

    簡單認識UART通信協議

    模塊等多種設備之間的數據傳輸。以下是對UART通訊協議的詳細簡述,內容將涵蓋其基本原理、工作方式、配置參數、常見應用以及與其他通信協議的比較
    的頭像 發表于 07-25 18:07 ?1464次閱讀

    UART協議工作原理和應用場景

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發傳輸器)協議是一種廣泛使用的串行通信協議,它允許計算機與外部設備之間通過串
    的頭像 發表于 08-25 17:15 ?3059次閱讀
    主站蜘蛛池模板: 婷婷久久综合| 日本aaaaa毛片在线视频| aa2424在线视频看片| xxxx欧美| 亚洲字幕久久| 欧洲乱码专区一区二区三区四区 | 亚洲高清不卡视频| 亚洲宅男天堂a在线| 欧美成人午夜精品免费福利| 国产片91人成在线观看| 日日日天天射天天干视频| 波多野结衣久久国产精品| 狠狠色噜噜狠狠狠狠2018| 三级黄色片在线播放| 国产高清美女一级a毛片| 久久综合色播| 最黄毛片| 毛片毛片免费看| 天天色踪合合| 涩狠狠狠狠色| 欧美日韩一区二区三区视视频 | 国产高清免费在线| 91aaa免费观看在线观看资源| 在线亚洲成人| 成人免费无毒在线观看网站| 国产精品秒播无毒不卡| 伊人精品视频在线| 国产手机免费视频| 激情丁香网| 日本黄色小视频网站| 午夜神马| 伊人久久大香线蕉综合7 | 99国产精品久久久久久久成人热| 日本3级视频| 国产午夜久久精品| 色欧美亚洲| 美国一级大黄香蕉片| 亚欧成人乱码一区二区| 天天摸天天干天天操| 淫欧美| 91久久另类重口变态|