0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UART串口通信實(shí)驗(yàn)及工作原理

星星科技指導(dǎo)員 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2024-03-21 17:10 ? 次閱讀

UART(Universal Asynchronous Receiver/Transmitter)是一種異步收發(fā)傳輸器,是設(shè)備間進(jìn)行異步通信的關(guān)鍵模塊。該設(shè)備通過(guò)信號(hào)線將需要發(fā)送的數(shù)據(jù)以二進(jìn)制的形式一位一位地發(fā)送出去,在傳輸?shù)倪^(guò)程中高電平表示發(fā)送的數(shù)據(jù)為“1”,低電平表示數(shù)據(jù)為“0”。異步通信的發(fā)送端和接收端可以由各自的時(shí)鐘來(lái)控制數(shù)據(jù)的發(fā)送和接收,這兩個(gè)時(shí)鐘源彼此獨(dú)立,互不同步。

UART具有雙向通信能力,可以實(shí)現(xiàn)全雙工傳輸和接收。全雙工數(shù)據(jù)通信允許數(shù)據(jù)同時(shí)在兩個(gè)方向上傳輸,這提高了數(shù)據(jù)傳輸?shù)男?。此外,UART的串行數(shù)據(jù)傳輸不需要使用時(shí)鐘信號(hào)來(lái)同步傳輸,而是依賴于發(fā)送設(shè)備和接收設(shè)備之間預(yù)定義的配置。

UART通信過(guò)程需要設(shè)置波特率、數(shù)據(jù)長(zhǎng)度、開始/停止位等參數(shù)。波特率決定了發(fā)送數(shù)據(jù)的速度,而數(shù)據(jù)長(zhǎng)度和開始/停止位則用于確保數(shù)據(jù)的正確傳輸和接收。

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

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

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

UART串口通信實(shí)驗(yàn)

數(shù)據(jù)位:8bit,停止位1位,無(wú)校驗(yàn)位,波特率115200bps

uart_rxd:數(shù)據(jù)線

clk_cont:循環(huán)時(shí)鐘計(jì)數(shù)器0-433

115200bps,1bit耗時(shí)1/115200s=8680.5ns

系統(tǒng)時(shí)鐘50MHZ,1時(shí)鐘周期20ns

8680.5/20=434.025,

可認(rèn)為每434個(gè)時(shí)鐘周期發(fā)送1bit位數(shù)據(jù)

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

start_flag:檢測(cè)到uart_rxd下降沿拉高

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

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

uart_done:傳輸完成標(biāo)志位,rx_cnt為9時(shí)拉高

工作原理

發(fā)送UART從數(shù)據(jù)總線獲取并行數(shù)據(jù)后,它會(huì)添加一個(gè)起始位,一個(gè)奇偶校驗(yàn)位和一個(gè)停止位來(lái)組成數(shù)據(jù)包并從Tx引腳上逐位串行輸出,接收UART在其Rx引腳上逐位讀取數(shù)據(jù)包。

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

在實(shí)際應(yīng)用中,UART廣泛應(yīng)用于各種設(shè)備和系統(tǒng)中,以實(shí)現(xiàn)數(shù)據(jù)的有效傳輸和通信。例如,在計(jì)算機(jī)硬件中,UART用于連接計(jì)算機(jī)的內(nèi)部和外部設(shè)備,如調(diào)制解調(diào)器、打印機(jī)等。在嵌入式系統(tǒng)中,UART也扮演著重要角色,用于實(shí)現(xiàn)設(shè)備之間的數(shù)據(jù)交換和通信。

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于LABVIEW的串口通信實(shí)驗(yàn)

    本帖最后由 eehome 于 2013-1-5 09:55 編輯 基于LABVIEW的串口通信實(shí)驗(yàn)
    發(fā)表于 09-04 12:40

    串口通信實(shí)驗(yàn)程序不能執(zhí)行

    剛接觸Arduino按教程寫了個(gè)串口通信實(shí)驗(yàn)程序執(zhí)行不了,哪位高手指點(diǎn)一下
    發(fā)表于 04-21 05:55

    【Runber FPGA開發(fā)板】配套視頻教程——UART串口通信實(shí)驗(yàn)

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

    串口通信實(shí)驗(yàn)分享

    實(shí)驗(yàn)四、串口通信實(shí)驗(yàn)? 自律學(xué)習(xí)堅(jiān)強(qiáng) ,拒絕迷茫。作者:行走的皮卡丘時(shí)間:2021/4/4喜歡就去追,這個(gè)紅燈等不到,說(shuō)不定下一個(gè)紅燈等到了,嘻嘻?。。。。。?!文章目錄實(shí)驗(yàn)四、
    發(fā)表于 01-14 09:08

    如何在F103環(huán)境下進(jìn)行UART通信實(shí)驗(yàn)和RS232通信實(shí)驗(yàn)

    stm32串口通信實(shí)驗(yàn)UART通信實(shí)驗(yàn)(通用異步收發(fā)器)UART串口
    發(fā)表于 02-17 07:17

    RS232串口通信實(shí)驗(yàn)

    RS232串口通信實(shí)驗(yàn) 一. 實(shí)驗(yàn)目的利用單片機(jī)的TXD、RXD 口
    發(fā)表于 09-22 16:42 ?1.2w次閱讀
    RS232<b class='flag-5'>串口</b><b class='flag-5'>通信實(shí)驗(yàn)</b>

    串行通信實(shí)驗(yàn)

    串行通信實(shí)驗(yàn) 實(shí)驗(yàn)目的: 1、掌握TMS320LF2407串行通信模塊的工作原理 2、掌握TMS320LF2407串行通信
    發(fā)表于 10-17 22:34 ?2533次閱讀

    UART串口WiFi模塊的工作原理及應(yīng)用

    隨著物聯(lián)網(wǎng)智能家居應(yīng)用的日漸豐富,越來(lái)越多的 WiFi 工程師開始更多的關(guān)注 UART 串口 WiFi 模塊,為讓新手工程師更快的將 UART 串口 WiFi 模塊應(yīng)用于各類智能家居應(yīng)
    發(fā)表于 01-08 08:00 ?23次下載
    <b class='flag-5'>UART</b><b class='flag-5'>串口</b>WiFi模塊的<b class='flag-5'>工作原理</b>及應(yīng)用

    串口通信與串行通信的區(qū)別和寄存器及通信實(shí)驗(yàn)等詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是串口通信學(xué)習(xí)課件免費(fèi)下載包括了:1、串口通信與串行通信的區(qū)別,2、串口
    發(fā)表于 12-17 17:08 ?11次下載
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>與串行<b class='flag-5'>通信</b>的區(qū)別和寄存器及<b class='flag-5'>通信實(shí)驗(yàn)</b>等詳細(xì)資料說(shuō)明

    STM32 串口通信實(shí)驗(yàn)

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

    【STM32】(3) 串口通信實(shí)驗(yàn)

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

    實(shí)驗(yàn)四、串口通信實(shí)驗(yàn)

    實(shí)驗(yàn)四、串口通信實(shí)驗(yàn)? 自律 學(xué)習(xí)
    發(fā)表于 01-14 10:09 ?2次下載
    <b class='flag-5'>實(shí)驗(yàn)</b>四、<b class='flag-5'>串口</b><b class='flag-5'>通信實(shí)驗(yàn)</b>

    串口通信實(shí)驗(yàn)

    串口通信實(shí)驗(yàn)串口通信實(shí)驗(yàn)代碼圖像串口通信實(shí)驗(yàn)晶振12MHz,波特率1200, 程序啟動(dòng)后單片機(jī)主
    發(fā)表于 01-14 10:12 ?6次下載
    <b class='flag-5'>串口</b><b class='flag-5'>通信實(shí)驗(yàn)</b>

    串口通信實(shí)驗(yàn)資料分享

    串口通信實(shí)驗(yàn)資料分享
    發(fā)表于 06-29 15:03 ?5次下載

    stc32G12k128使用舊清翔51實(shí)驗(yàn)板學(xué)習(xí)UART通信實(shí)驗(yàn)

    stc32G12k128使用舊清翔51實(shí)驗(yàn)板學(xué)習(xí)UART通信實(shí)驗(yàn)程序,利用舊版,學(xué)習(xí)32位單片機(jī)的串口通信例程
    發(fā)表于 11-21 10:21 ?3次下載