<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

UART串口通信實驗及工作原理

星星科技指導員 ? 來源:網絡整理 ? 作者:網絡整理 ? 2024-03-21 17:10 ? 次閱讀

UART(Universal Asynchronous Receiver/Transmitter)是一種異步收發傳輸器,是設備間進行異步通信的關鍵模塊。該設備通過信號線將需要發送的數據以二進制的形式一位一位地發送出去,在傳輸的過程中高電平表示發送的數據為“1”,低電平表示數據為“0”。異步通信的發送端和接收端可以由各自的時鐘來控制數據的發送和接收,這兩個時鐘源彼此獨立,互不同步。

UART具有雙向通信能力,可以實現全雙工傳輸和接收。全雙工數據通信允許數據同時在兩個方向上傳輸,這提高了數據傳輸的效率。此外,UART的串行數據傳輸不需要使用時鐘信號來同步傳輸,而是依賴于發送設備和接收設備之間預定義的配置。

UART通信過程需要設置波特率、數據長度、開始/停止位等參數。波特率決定了發送數據的速度,而數據長度和開始/停止位則用于確保數據的正確傳輸和接收。

在UART通信中,兩個UART直接相互通信。發送UART將控制設備(如CPU)的并行數據轉換為串行形式,以串行方式將其發送到接收UART。只需要兩條線即可在兩個UART之間傳輸數據,數據從發送UART的Tx引腳流到接收UART的Rx引腳。

UART屬于異步通訊,這意味著沒有時鐘信號,取而代之的是在數據包中添加開始和停止位。這些位定義了數據包的開始和結束,因此接收UART知道何時讀取這些數據。

當接收UART檢測到起始位時,它將以特定波特率的頻率讀取。波特率是數據傳輸速度的度量,以每秒比特數(bps)表示。兩個UART必須以大約相同的波特率工作,發送和接收UART之間的波特率只能相差約10%。

UART串口通信實驗

數據位:8bit,停止位1位,無校驗位,波特率115200bps

uart_rxd:數據線

clk_cont:循環時鐘計數器0-433

115200bps,1bit耗時1/115200s=8680.5ns

系統時鐘50MHZ,1時鐘周期20ns

8680.5/20=434.025,

可認為每434個時鐘周期發送1bit位數據

rx_cnt:接收數據位數計數器。Clk_cnt每計數434,rx_cnt+1.記錄接收了多少位(包括起始位和結束位)。為0是起始位,為9是結束位。

start_flag:檢測到uart_rxd下降沿拉高

rx_flag:檢測到start_flag拉高,它也拉高。檢測到停止位拉低。

uart_data(寄存器):在rx_cnt為1時將數據bit0存入寄存器第0位… …

uart_done:傳輸完成標志位,rx_cnt為9時拉高

工作原理

發送UART從數據總線獲取并行數據后,它會添加一個起始位,一個奇偶校驗位和一個停止位來組成數據包并從Tx引腳上逐位串行輸出,接收UART在其Rx引腳上逐位讀取數據包。

UART數據包含有1個起始位,5至9個數據位(取決于UART),一個可選的奇偶校驗位以及1個或2個停止位:

在實際應用中,UART廣泛應用于各種設備和系統中,以實現數據的有效傳輸和通信。例如,在計算機硬件中,UART用于連接計算機的內部和外部設備,如調制解調器、打印機等。在嵌入式系統中,UART也扮演著重要角色,用于實現設備之間的數據交換和通信。

審核編輯:黃飛

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

    關注

    32

    文章

    2192

    瀏覽量

    93234
  • 數據通信
    +關注

    關注

    2

    文章

    412

    瀏覽量

    33543
  • 異步通信
    +關注

    關注

    1

    文章

    44

    瀏覽量

    10053
  • 時鐘信號
    +關注

    關注

    4

    文章

    382

    瀏覽量

    28143
  • 并行數據
    +關注

    關注

    0

    文章

    11

    瀏覽量

    7546
收藏 人收藏

    評論

    相關推薦

    基于LABVIEW的串口通信實驗

    本帖最后由 eehome 于 2013-1-5 09:55 編輯 基于LABVIEW的串口通信實驗
    發表于 09-04 12:40

    串口通信實驗程序不能執行

    剛接觸Arduino按教程寫了個串口通信實驗程序執行不了,哪位高手指點一下
    發表于 04-21 05:55

    【Runber FPGA開發板】配套視頻教程——UART串口通信實驗

    串口助手發送一組字符串:“===HELLO WORD===”,通過串口助手向板子以十六進制形式發送數字,用LED以十六進制顯示亮起。通過UART串口
    發表于 04-13 11:53

    如何對STM32串口進行通信實驗

    如何對STM32串口進行通信實驗呢?STM32串口是怎樣進行通信的?
    發表于 11-05 06:38

    分享一個不錯的STM32串口通信實驗

    分享一個不錯的STM32串口通信實驗
    發表于 12-07 06:42

    串口通信實驗分享

    實驗四、串口通信實驗? 自律學習堅強 ,拒絕迷茫。作者:行走的皮卡丘時間:2021/4/4喜歡就去追,這個紅燈等不到,說不定下一個紅燈等到了,嘻嘻?。。。。。?!文章目錄實驗四、
    發表于 01-14 09:08

    如何在F103環境下進行UART通信實驗和RS232通信實驗

    stm32串口通信實驗UART通信實驗(通用異步收發器)UART串口
    發表于 02-17 07:17

    RS232串口通信實驗

    RS232串口通信實驗 一. 實驗目的利用單片機的TXD、RXD 口
    發表于 09-22 16:42 ?1.1w次閱讀
    RS232<b class='flag-5'>串口</b><b class='flag-5'>通信實驗</b>

    串行通信實驗

    串行通信實驗 實驗目的: 1、掌握TMS320LF2407串行通信模塊的工作原理 2、掌握TMS320LF2407串行通信
    發表于 10-17 22:34 ?2508次閱讀

    STM32 串口通信實驗

    stm32串口通信實驗UART通信實驗(通用異步收發器)UART串口
    發表于 12-20 19:26 ?14次下載
    STM32 <b class='flag-5'>串口</b><b class='flag-5'>通信實驗</b>

    【STM32】(3) 串口通信實驗

    串口通信實驗( 1 )定義函數uart_init用來調用HAL_UART_Init初始化串口參數配置:U
    發表于 12-20 19:35 ?9次下載
    【STM32】(3) <b class='flag-5'>串口</b><b class='flag-5'>通信實驗</b>

    實驗四、串口通信實驗

    實驗四、串口通信實驗? 自律 學習
    發表于 01-14 10:09 ?2次下載
    <b class='flag-5'>實驗</b>四、<b class='flag-5'>串口</b><b class='flag-5'>通信實驗</b>

    串口通信實驗

    串口通信實驗串口通信實驗代碼圖像串口通信實驗晶振12MHz,波特率1200, 程序啟動后單片機主
    發表于 01-14 10:12 ?6次下載
    <b class='flag-5'>串口</b><b class='flag-5'>通信實驗</b>

    串口通信實驗資料分享

    串口通信實驗資料分享
    發表于 06-29 15:03 ?5次下載

    stc32G12k128使用舊清翔51實驗板學習UART通信實驗

    stc32G12k128使用舊清翔51實驗板學習UART通信實驗程序,利用舊版,學習32位單片機的串口通信例程
    發表于 11-21 10:21 ?2次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>