中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
【STM32】串口通信基本原理(超基礎(chǔ)、詳細(xì)版)

STM32F1xx官方資料:

《STM32中文參考手冊V10》-第25章通用同步異步收發(fā)器(USART)

通信接口背景知識

設(shè)備之間通信的方式

一般情況下,設(shè)備之間的通信方式可以分成并行通信和串行通信兩種。它們的區(qū)別是:

并、串行通信的區(qū)別
  并行通信 串行通信
傳輸原理 數(shù)據(jù)各個(gè)位同時(shí)傳輸 數(shù)據(jù)按位順序傳輸
優(yōu)點(diǎn) 速度快 占用引腳資源少
缺點(diǎn) 占用引腳資源多 速度相對較慢

串行通信的分類

1、按照數(shù)據(jù)傳送方向,分為:

  • 單工:數(shù)據(jù)傳輸只支持?jǐn)?shù)據(jù)在一個(gè)方向上傳輸;
  • 半雙工:允許數(shù)據(jù)在兩個(gè)方向上傳輸。但是,在某一時(shí)刻,只允許數(shù)據(jù)在一個(gè)方向上傳輸,它實(shí)際上是一種切換方向的單工通信;它不需要獨(dú)立的接收端和發(fā)送端,兩者可以合并一起使用一個(gè)端口。
  • 全雙工:允許數(shù)據(jù)同時(shí)在兩個(gè)方向上傳輸。因此,全雙工通信是兩個(gè)單工通信方式的結(jié)合,需要獨(dú)立的接收端和發(fā)送端。

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

  • 同步通信:帶時(shí)鐘同步信號傳輸。比如:SPI,IIC通信接口。
  • 異步通信:不帶時(shí)鐘同步信號。比如:UART(通用異步收發(fā)器),單總線。

在同步通訊中,收發(fā)設(shè)備上方會使用一根信號線傳輸信號,在時(shí)鐘信號的驅(qū)動(dòng)下雙方進(jìn)行協(xié)調(diào),同步數(shù)據(jù)。例如,通訊中通常雙方會統(tǒng)一規(guī)定在時(shí)鐘信號的上升沿或者下降沿對數(shù)據(jù)線進(jìn)行采樣。

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

在同步通訊中,數(shù)據(jù)信號所傳輸?shù)膬?nèi)容絕大部分是有效數(shù)據(jù),而異步通訊中會則會包含數(shù)據(jù)幀的各種標(biāo)識符,所以同步通訊效率高,但是同步通訊雙方的時(shí)鐘允許誤差小,稍稍時(shí)鐘出錯(cuò)就可能導(dǎo)致數(shù)據(jù)錯(cuò)亂,異步通訊雙方的時(shí)鐘允許誤差較大。

常見的串行通信接口

常見的串行通信接口
通信標(biāo)準(zhǔn) 引腳說明 通信方式 通信方向

UART

(通用異步收發(fā)器)

TXD:發(fā)送端

RXT:接收端

GND:共地

異步通信 全雙工

1-wire

(單總線)

DQ:發(fā)送/接收端 異步通信 半雙工
SPI

SCK:同步時(shí)鐘

MISO:主機(jī)輸入,從機(jī)輸出

MOSI:主機(jī)輸出,從機(jī)輸入

同步通信 全雙工
I2C

SCK:同步時(shí)鐘

SDA:數(shù)據(jù)輸入/輸出端

同步通信 半雙工

STM32串口通信基礎(chǔ)

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

UART引腳連接方法

  • RXD:數(shù)據(jù)輸入引腳,數(shù)據(jù)接受;
  • TXD:數(shù)據(jù)發(fā)送引腳,數(shù)據(jù)發(fā)送。

對于兩個(gè)芯片之間的連接,兩個(gè)芯片GND共地,同時(shí)TXD和RXD交叉連接。這里的交叉連接的意思就是,芯片1的RxD連接芯片2的TXD,芯片2的RXD連接芯片1的TXD。這樣,兩個(gè)芯片之間就可以進(jìn)行TTL電平通信了。

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

經(jīng)過電平轉(zhuǎn)換后,芯片串口和rs232的電平標(biāo)準(zhǔn)是不一樣的:

  • 單片機(jī)的電平標(biāo)準(zhǔn)(TTL電平): 5V表示1,0V表示0;
  • Rs232的電平標(biāo)準(zhǔn): 15/ 13 V表示0,-15/-13表示1。

RS-232通訊協(xié)議標(biāo)準(zhǔn)串口的設(shè)備間通訊結(jié)構(gòu)圖如下: 

所以單片機(jī)串口與PC串口通信就應(yīng)該遵循下面的連接方式:在單片機(jī)串口與上位機(jī)給出的rs232口之間,通過電平轉(zhuǎn)換電路(如下面圖中的Max232芯片) 實(shí)現(xiàn)TTL電平與RS232電平之間的轉(zhuǎn)換。

具體要了解RS232串口的,可以查看鏈接RS232串口簡介。

STM32的UART特點(diǎn)

  • 全雙工異步通信
  • 分?jǐn)?shù)波特率發(fā)生器系統(tǒng),提供精確的波特率。發(fā)送和接受共用的可編程波特率,最高可達(dá)4.5Mbits/s;
  • 可編程的數(shù)據(jù)字長度(8位或者9位);
  • 可配置的停止位(支持1或者2位停止位);
  • 可配置的使用DMA多緩沖器通信
  • 單獨(dú)的發(fā)送器和接收器使能位;
  • 檢測標(biāo)志:① 接受緩沖器  ②發(fā)送緩沖器空 ③傳輸結(jié)束標(biāo)志;
  • 多個(gè)帶標(biāo)志的中斷源,觸發(fā)中斷;
  • 其他:校驗(yàn)控制,四個(gè)錯(cuò)誤檢測標(biāo)志。

串口通信過程

STM32中UART參數(shù)

串口通訊的數(shù)據(jù)包由發(fā)送設(shè)備通過自身的TXD接口傳輸?shù)浇邮赵O(shè)備的RXD接口,通訊雙方的數(shù)據(jù)包格式要規(guī)約一致才能正常收發(fā)數(shù)據(jù)。STM32中串口異步通信需要定義的參數(shù):起始位、數(shù)據(jù)位(8位或者9位)、奇偶校驗(yàn)位(第9位)、停止位(1,15,2位)、波特率設(shè)置。

UART串口通信的數(shù)據(jù)包以幀為單位,常用的幀結(jié)構(gòu)為:1位起始位 8位數(shù)據(jù)位 1位奇偶校驗(yàn)位(可選) 1位停止位。如下圖所示:

奇偶校驗(yàn)位分為奇校驗(yàn)和偶校驗(yàn)兩種,是一種簡單的數(shù)據(jù)誤碼校驗(yàn)方法。奇校驗(yàn)是指每幀數(shù)據(jù)中,包括數(shù)據(jù)位和奇偶校驗(yàn)位的全部9個(gè)位中1的個(gè)數(shù)必須為奇數(shù);偶校驗(yàn)是指每幀數(shù)據(jù)中,包括數(shù)據(jù)位和奇偶校驗(yàn)位的全部9個(gè)位中1的個(gè)數(shù)必須為偶數(shù)。

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

UART(USART)框圖

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

框圖的上部分,數(shù)據(jù)從RX進(jìn)入到接收移位寄存器,后進(jìn)入到接收數(shù)據(jù)寄存器,最終供CPU或者DMA來進(jìn)行讀?。粩?shù)據(jù)從CPU或者DMA傳遞過來,進(jìn)入發(fā)送數(shù)據(jù)寄存器,后進(jìn)入發(fā)送移位寄存器,最終通過TX發(fā)送出去。

然而,UART的發(fā)送和接收都需要波特率來進(jìn)行控制的,波特率是怎樣控制的呢?

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

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

這里需要知道一個(gè)知識點(diǎn):

  • UART1的時(shí)鐘:PCLK2(高速);
  • UART2、UART3、UART4的時(shí)鐘:PCLK1(低速)。

框圖的中部分,涉及到UART(USART)的中斷控制部分,在后面的文章中會具體介紹到。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
UART串行通信詳解
幾種最常用的串行數(shù)據(jù)傳輸總線(3) - 無人不知的UART
串口通信————UART、I2C、SPI詳解(總結(jié)篇)
STM32串口通信基本原理
一文搞懂UART
uart接口定義詳解介紹(基本結(jié)構(gòu)及工作原理)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服