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

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

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

3天內不再提示

STM32串口通信基本原理詳解

GReq_mcu168 ? 來源:硬件攻城獅 ? 作者:硬件攻城獅 ? 2022-08-01 14:21 ? 次閱讀

設備之間通信的方式

一般情況下,設備之間的通信方式可以分成并行通信和串行通信兩種。并行與串行通信的區別如下表所示。

afecb10a-1161-11ed-ba43-dac502259ad0.jpg

串行通信的分類

1、按照數據傳送方向,分為:

單工:數據傳輸只支持數據在一個方向上傳輸;

半雙工:允許數據在兩個方向上傳輸。但是,在某一時刻,只允許數據在一個方向上傳輸,它實際上是一種切換方向的單工通信;它不需要獨立的接收端和發送端,兩者可以合并一起使用一個端口

全雙工:允許數據同時在兩個方向上傳輸。因此,全雙工通信是兩個單工通信方式的結合,需要獨立的接收端和發送端。

aff8df66-1161-11ed-ba43-dac502259ad0.jpg

2、按照通信方式,分為:

同步通信:帶時鐘同步信號傳輸。比如:SPI,IIC通信接口

異步通信:不帶時鐘同步信號。比如:UART(通用異步收發器),單總線。

在同步通訊中,收發設備上方會使用一根信號線傳輸信號,在時鐘信號的驅動下雙方進行協調,同步數據。例如,通訊中通常雙方會統一規定在時鐘信號的上升沿或者下降沿對數據線進行采樣。

在異步通訊中不使用時鐘信號進行數據同步,它們直接在數據信號中穿插一些用于同步的信號位,或者將主題數據進行打包,以數據幀的格式傳輸數據。通訊中還需要雙方規約好數據的傳輸速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。

在同步通訊中,數據信號所傳輸的內容絕大部分是有效數據,而異步通訊中會則會包含數據幀的各種標識符,所以同步通訊效率高,但是同步通訊雙方的時鐘允許誤差小,稍稍時鐘出錯就可能導致數據錯亂,異步通訊雙方的時鐘允許誤差較大。

常見的串行通信接口

b00eb9f8-1161-11ed-ba43-dac502259ad0.jpg

STM32串口通信基礎

STM32的串口通信接口有兩種,分別是:UART(通用異步收發器)、USART(通用同步異步收發器)。而對于大容量STM32F10x系列芯片,分別有3個USART和2個UART。

UART引腳連接方法

RXD:數據輸入引腳,數據接受;

TXD:數據發送引腳,數據發送。

b0bfdca6-1161-11ed-ba43-dac502259ad0.jpg

對于兩個芯片之間的連接,兩個芯片GND共地,同時TXD和RXD交叉連接。這里的交叉連接的意思就是,芯片1的RxD連接芯片2的TXD,芯片2的RXD連接芯片1的TXD。這樣,兩個芯片之間就可以進行TTL電平通信了。STM32與51單片機串口通信相關實例,請移步此處:STM32與51單片機串口通信實例。

b0d65710-1161-11ed-ba43-dac502259ad0.jpg

若是芯片與PC機(或上位機)相連,除了共地之外,就不能這樣直接交叉連接了。盡管PC機和芯片都有TXD和RXD引腳,但是通常PC機(或上位機)通常使用的都是RS232接口(通常為DB9封裝),因此不能直接交叉連接。RS232接口是9針(或引腳),通常是TxD和RxD經過電平轉換得到的。故,要想使得芯片與PC機的RS232接口直接通信,需要也將芯片的輸入輸出端口也電平轉換成RS232類型,再交叉連接。

經過電平轉換后,芯片串口和RS232的電平標準是不一樣的:

單片機的電平標準(TTL電平):+5V表示1,0V表示0;

RS232的電平標準:+15/+13 V表示0,-15/-13表示1。

RS-232通訊協議標準串口的設備間通訊結構圖如下:

b1109cae-1161-11ed-ba43-dac502259ad0.png

所以單片機串口與PC串口通信就應該遵循下面的連接方式:在單片機串口與上位機給出的RS232口之間,通過電平轉換電路(如下面圖中的Max232芯片) 實現TTL電平與RS232電平之間的轉換。STM32與PC之間通信實例,請移步此處:STM32實例-用按鍵控制串口發送數據,文末附代碼。

b120e4ce-1161-11ed-ba43-dac502259ad0.jpg

RS232串口簡介

臺式機電腦后面的9針接口就是com口(串口) 在工業控制 數據采集上應用廣泛上圖中,最右邊的是串口接口統稱為RS232接口,是常見的DB9封裝。

b14cae38-1161-11ed-ba43-dac502259ad0.jpg

通信過程中只有兩個腳參與通信。

2腳:電腦的輸入RXD

3腳:電腦的輸出TXD 通過2 ,3 腳就可以實現全雙工(可同時收發)的串行異步 通信

5腳:接地

單片機的P3口是有兩個復用接口RXD 和TXD。這是單片機進行串行通信的收發口,連接應該錯位的對應到電腦的TDX RDX上。注意:單片機和RS232的電平標準是不一樣的。

單片機的電平標準 TTL電平 :+5V表示1 0V表示0。

RS232的電平標準 +15/+13 V表示1 -15/-13 表示0。

所以 單片機與電腦串口通信就應該遵循下面的連接方式:

在單片機與上位機給出的RS232口之間通過電平轉換電路(最上面圖中的Max232芯片) 實現TTL電平與RS232電平之間的轉換,PC串口與單片機串口連接方式圖:

b15fa916-1161-11ed-ba43-dac502259ad0.jpg

注意這兩個DB9:DB91是在電腦上的 DB92是在單片機實驗板上焊接著的。

這里的交叉連接的意思是 DB91的RXD連著DB92的TXD。

DB92的RXD連著DB91的TXD這樣交叉著連接,如果電腦沒有RS232口 只有USB口,可以用串口轉接線轉出串口。

這個時候在電腦上位機上需要安裝串口驅動程序。

注意,這個驅動程序驅動的是PL2303芯片(在上圖的大頭里面) 使得RS232信息轉換成USB信息。

下圖為上圖的內部結構:

b18c0416-1161-11ed-ba43-dac502259ad0.jpg

用串口通信比USB簡單,因為串口通信沒有協議,使用方便簡單。

STM32的UART特點

全雙工異步通信;

分數波特率發生器系統,提供精確的波特率。發送和接受共用的可編程波特率,最高可達4.5Mbits/s;

可編程的數據字長度(8位或者9位);

可配置的停止位(支持1或者2位停止位);

可配置的使用DMA多緩沖器通信;

單獨的發送器和接收器使能位;

檢測標志:

① 接受緩沖器

②發送緩沖器空

③傳輸結束標志;

多個帶標志的中斷源,觸發中斷;

其他:校驗控制,四個錯誤檢測標志。

串口通信過程

b1c32f7c-1161-11ed-ba43-dac502259ad0.jpg

STM32中UART參數

串口通訊的數據包由發送設備通過自身的TXD接口傳輸到接收設備的RXD接口,通訊雙方的數據包格式要規約一致才能正常收發數據。

STM32中串口異步通信需要定義的參數:起始位、數據位(8位或者9位)、奇偶校驗位(第9位)、停止位(1,15,2位)、波特率設置。

UART串口通信的數據包以幀為單位,常用的幀結構為:1位起始位+8位數據位+1位奇偶校驗位(可選)+1位停止位。如下圖所示:

b1d538ca-1161-11ed-ba43-dac502259ad0.jpg

奇偶校驗位分為奇校驗和偶校驗兩種,是一種簡單的數據誤碼校驗方法。奇校驗是指每幀數據中,包括數據位和奇偶校驗位的全部9個位中1的個數必須為奇數;偶校驗是指每幀數據中,包括數據位和奇偶校驗位的全部9個位中1的個數必須為偶數。

校驗方法除了奇校驗(odd)、偶校驗(even)之外,還可以有:0 校驗(space)、1 校驗(mark)以及無校驗(noparity)。0/1校驗:不管有效數據中的內容是什么,校驗位總為0或者1。

UART(USART)框圖

b229ada6-1161-11ed-ba43-dac502259ad0.jpg

這個框圖分成上、中、下三個部分。本文大概地講述一下各個部分的內容,具體的可以看《STM32中文參考手冊》中的描述。

框圖的上部分,數據從RX進入到接收移位寄存器,后進入到接收數據寄存器,最終供CPU或者DMA來進行讀取;數據從CPU或者DMA傳遞過來,進入發送數據寄存器,后進入發送移位寄存器,最終通過TX發送出去。

然而,UART的發送和接收都需要波特率來進行控制的,波特率是怎樣控制的呢?

這就到了框圖的下部分,在接收移位寄存器、發送移位寄存器都還有一個進入的箭頭,分別連接到接收器控制、發送器控制。而這兩者連接的又是接收器時鐘、發送器時鐘。也就是說,異步通信盡管沒有時鐘同步信號,但是在串口內部,是提供了時鐘信號來進行控制的。而接收器時鐘和發送器時鐘有是由什么控制的呢?

可以看到,接收器時鐘和發送器時鐘又被連接到同一個控制單元,也就是說它們共用一個波特率發生器。同時也可以看到接收器時鐘(發生器時鐘)的計算方法、USRRTDIV的計算方法。

審核編輯 :李倩

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

    關注

    18

    文章

    6153

    瀏覽量

    137246
  • STM32
    +關注

    關注

    2287

    文章

    10988

    瀏覽量

    361669
  • 串行通信
    +關注

    關注

    4

    文章

    584

    瀏覽量

    35966

原文標題:詳解STM32串口通信基本原理

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    PL2303串口驅動

    PL2303串口驅動
    發表于 04-09 16:02 ?0次下載

    PL2303串口驅動win10版本用

    PL2303串口驅動win10版本用
    發表于 04-09 16:02 ?0次下載

    cp2102串口驅動

    cp2102串口驅動
    發表于 04-09 16:01 ?2次下載

    STM32串口下載軟件(FLYMCU)

    STM32串口下載軟件(FLYMCU),經典版本,親試可用。
    發表于 04-09 15:59 ?0次下載

    STM32串口通信,上電和斷電串口助手會返回數是怎么回事?

    STM32串口通信,上電和斷電串口助手會返回數,是為什么呢
    發表于 03-12 07:57

    使用Labview做一個485串口電子秤程序

    232、485串口通訊是最常見的儀器儀表通訊方式之一,本文詳細介紹,用Labview編寫一個電子秤的485串口程序.
    發表于 03-06 18:11 ?0次下載

    用Labview寫一個電子稱的485串口程序

    關鍵詞:Labview + 串口程序 232、485串口通訊是最常見的儀器儀表通訊方式之一,本文詳細介紹,用Labview編寫一個電子秤的485串口程序.
    的頭像 發表于 03-06 09:54 ?457次閱讀
    用Labview寫一個電子稱的485<b class='flag-5'>串口</b>程序

    3.5英寸高清智能串口屏 8位MCU并口通信的COG裸屏 或帶驅動板232串口通信的智能屏

    3.5英寸高清智能串口屏 8位MCU并口通信的COG裸屏 或帶驅動板232串口通信的智能屏
    的頭像 發表于 02-18 14:49 ?268次閱讀
    3.5英寸高清智能<b class='flag-5'>串口</b>屏 8位MCU并口<b class='flag-5'>通信</b>的COG裸屏 或帶驅動板232<b class='flag-5'>串口</b><b class='flag-5'>通信</b>的智能屏

    RS232串口連接方式及注意事項

    數據交換。 RS-232串口簡介 RS-232標準最初由電子工業聯盟(EIA)在1960年制定,用于定義串行通信的電氣特性、信號定時和數據格式。RS-232串口使用25針的D型連接器(DB-25),但后來更常用的是9針的D型連接
    的頭像 發表于 12-10 16:23 ?3852次閱讀

    LS10串口數據庫模塊外擴SD卡功能

    LS10串口數據庫模塊外擴SD卡功能
    的頭像 發表于 11-23 09:42 ?420次閱讀
    LS10<b class='flag-5'>串口</b>數據庫模塊外擴SD卡功能

    使用RS232串口進行設備調試的技巧

    在電子和通信領域,RS232串口是一種廣泛使用的串行通信接口。盡管隨著USB等新技術的興起,RS232的應用有所減少,但在某些特定場合,如工業控制、嵌入式系統調試等,RS232仍然扮演著
    的頭像 發表于 11-21 09:38 ?1719次閱讀

    RS232串口通信協議詳解

    在計算機硬件和通信領域,RS-232串口通信協議是一個歷史悠久且廣泛使用的標準。它允許計算機通過串行接口與各種外部設備進行通信,如調制解調器、鼠標、打印機等。 RS-232的歷史和定義
    的頭像 發表于 11-21 09:24 ?2452次閱讀

    FT232芯片設計的USB轉RS232串口原理圖

    FT232芯片設計的USB轉RS232串口原理圖
    發表于 10-21 11:06 ?11次下載

    快速實現C2000串口程序升級

    電子發燒友網站提供《快速實現C2000串口程序升級.pdf》資料免費下載
    發表于 08-29 10:50 ?2次下載
    快速實現C2000<b class='flag-5'>串口</b>程序升級

    485串口可以用can協議嗎

    一、引言 隨著工業自動化和智能控制技術的發展,通信協議在設備間數據傳輸和控制中扮演著越來越重要的角色。485串口和CAN協議是兩種常見的通信協議,它們在不同的應用場景中發揮著重要作用。本文將對這兩種
    的頭像 發表于 06-16 09:21 ?2001次閱讀
    主站蜘蛛池模板: 禁漫画羞羞动漫入口 | 久久久一本 | 天天爽夜夜爽一区二区三区 | 色婷五月 | 国产一区二区三区夜色 | 香蕉久久夜色精品国产2020 | 高颜值露脸极品在线播放 | 午夜小片| 亚洲三级黄 | 亚洲看片 | 韩国三级hd中文字幕 | 国产理论最新国产精品视频 | 欧美精品综合一区二区三区 | 亚洲a视频在线 | 国产v精品成人免费视频400条 | 国产精品福利在线观看免费不卡 | 六月婷婷久久 | 成人夜色视频网站在线观看 | 免费网站啪啪大全 | 五月天婷婷网站 | 一级黄色录像毛片 | 欧美性猛交ⅹxxx乱大交免费 | 人人艹人人插 | 色www亚洲国产张柏芝 | 天天色天天搞 | 91在线视频免费 | 亚洲日本高清 | a久久久久一级毛片护士免费 | 女的扒开尿口让男人桶 | 男人天堂网www | 九九久久国产精品大片 | 综合亚洲一区二区三区 | 国产黄大片在线观看 | 日夜操在线视频 | 欧美极品 | 欧美天堂在线观看 | 免费看男女下面日出水视频 | 欧美黄色录像视频 | 国产激情视频一区二区三区 | 99久久99久久免费精品蜜桃 | 爽天天天天天天天 |