按照數(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ā)送端
分別如下圖中的a、b、c所示。
按照通信方式分類
同步通信:帶時(shí)鐘同步信號(hào)傳輸。比如:SPI,IIC通信接口
異步通信:不帶時(shí)鐘同步信號(hào)。比如:UART(通用異步收發(fā)器),單總線
在同步通訊中,收發(fā)設(shè)備上方會(huì)使用一根信號(hào)線傳輸信號(hào),在時(shí)鐘信號(hào)的驅(qū)動(dòng)下雙方進(jìn)行協(xié)調(diào),同步數(shù)據(jù)。例如,通訊中通常雙方會(huì)統(tǒng)一規(guī)定在時(shí)鐘信號(hào)的上升沿或者下降沿對(duì)數(shù)據(jù)線進(jìn)行采樣。 在異步通訊中不使用時(shí)鐘信號(hào)進(jìn)行數(shù)據(jù)同步,它們直接在數(shù)據(jù)信號(hào)中穿插一些用于同步的信號(hào)位,或者將主題數(shù)據(jù)進(jìn)行打包,以數(shù)據(jù)幀的格式傳輸數(shù)據(jù)。通訊中還需要雙方規(guī)約好數(shù)據(jù)的傳輸速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。 在同步通訊中,數(shù)據(jù)信號(hào)所傳輸?shù)膬?nèi)容絕大部分是有效數(shù)據(jù),而異步通訊中會(huì)則會(huì)包含數(shù)據(jù)幀的各種標(biāo)識(shí)符,所以同步通訊效率高,但是同步通訊雙方的時(shí)鐘允許誤差小,稍稍時(shí)鐘出錯(cuò)就可能導(dǎo)致數(shù)據(jù)錯(cuò)亂,異步通訊雙方的時(shí)鐘允許誤差較大。
STM32串口通信基礎(chǔ)
STM32的串口通信接口有兩種,分別是:UART(通用異步收發(fā)器)、USART(通用同步異步收發(fā)器)。而對(duì)于大容量STM32F10x系列芯片,分別有3個(gè)USART和2個(gè)UART。
UART引腳連接方法
RXD:數(shù)據(jù)輸入引腳,數(shù)據(jù)接收
TXD:數(shù)據(jù)發(fā)送引腳,數(shù)據(jù)發(fā)送
對(duì)于兩個(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)過(guò)電平轉(zhuǎn)換得到的。故,要想使得芯片與PC機(jī)的RS232接口直接通信,需要也將芯片的輸入輸出端口也電平轉(zhuǎn)換成RS232類型,再交叉連接。 經(jīng)過(guò)電平轉(zhuǎn)換后,芯片串口和RS232的電平標(biāo)準(zhǔn)是不一樣的:
單片機(jī)是TTL電平:+5V表示1,0V表示0
RS232是負(fù)邏輯電平,-3~-15V為1,+3~+15V為0
RS-232通訊協(xié)議標(biāo)準(zhǔn)串口的設(shè)備間通訊結(jié)構(gòu)圖如下:
所以單片機(jī)串口與PC串口通信就應(yīng)該遵循下面的連接方式:在單片機(jī)串口與上位機(jī)給出的RS232口之間,通過(guò)電平轉(zhuǎn)換電路(如下面圖中的Max232芯片) 實(shí)現(xiàn)TTL電平與RS232電平之間的轉(zhuǎn)換。下圖中的P10,也就是上文中提到的DB9。
STM32的UART特點(diǎn)
全雙工異步通信;
分?jǐn)?shù)波特率發(fā)生器系統(tǒng),提供精確的波特率。發(fā)送和接受共用的可編程波特率,最高可達(dá)4.5Mbits/s;
可編程的數(shù)據(jù)字長(zhǎng)度(8位或者9位);
可配置的停止位(支持1或者2位停止位);
可配置的使用DMA多緩沖器通信;
單獨(dú)的發(fā)送器和接收器使能位;
檢測(cè)標(biāo)志:① 接受緩沖器 ②發(fā)送緩沖器空 ③傳輸結(jié)束標(biāo)志;
多個(gè)帶標(biāo)志的中斷源,觸發(fā)中斷;
其他:校驗(yàn)控制,四個(gè)錯(cuò)誤檢測(cè)標(biāo)志。
串口通信過(guò)程
STM32中UART參數(shù)
串口通訊的數(shù)據(jù)包由發(fā)送設(shè)備通過(guò)自身的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)兩種,是一種簡(jiǎ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)以及無(wú)校驗(yàn)(noparity)。0/1校驗(yàn):不管有效數(shù)據(jù)中的內(nèi)容是什么,校驗(yàn)位總為0或者1。
UART框圖
這個(gè)框圖分成上、中、下三個(gè)部分,具體的可以看《STM32中文參考手冊(cè)》中的描述。
框圖的上部分,數(shù)據(jù)從RX進(jìn)入到接收移位寄存器,后進(jìn)入到接收數(shù)據(jù)寄存器,最終供CPU或者DMA來(lái)進(jìn)行讀取;數(shù)據(jù)從CPU或者DMA傳遞過(guò)來(lái),進(jìn)入發(fā)送數(shù)據(jù)寄存器,后進(jìn)入發(fā)送移位寄存器,最終通過(guò)TX發(fā)送出去。
然而,UART的發(fā)送和接收都需要波特率來(lái)進(jìn)行控制的,波特率是怎樣控制的呢?
這就到了框圖的下部分,在接收移位寄存器、發(fā)送移位寄存器都還有一個(gè)進(jìn)入的箭頭,分別連接到接收器控制、發(fā)送器控制。而這兩者連接的又是接收器時(shí)鐘、發(fā)送器時(shí)鐘。也就是說(shuō),異步通信盡管沒(méi)有時(shí)鐘同步信號(hào),但是在串口內(nèi)部,是提供了時(shí)鐘信號(hào)來(lái)進(jìn)行控制的。而接收器時(shí)鐘和發(fā)送器時(shí)鐘又是由什么控制的呢? 可以看到,接收器時(shí)鐘和發(fā)送器時(shí)鐘又被連接到同一個(gè)控制單元,也就是說(shuō)它們共用一個(gè)波特率發(fā)生器。同時(shí)也可以看到接收器時(shí)鐘(發(fā)生器時(shí)鐘)的計(jì)算方法、USRRTDIV的計(jì)算方法。
這里需要知道一個(gè)知識(shí)點(diǎn):
UART1時(shí)鐘:PCLK2(高速)
UART2、UART3、UART4時(shí)鐘:PCLK1(低速)
上一篇:P2P替代STM32F103C8T6的智能排爆機(jī)器人主控方案
下一篇:利用Proteus仿真STM32實(shí)現(xiàn)DHT11溫濕度檢測(cè)
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 人形機(jī)器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機(jī)器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計(jì)
- 小型傾轉(zhuǎn)旋翼機(jī)的無(wú)刷直流電機(jī)驅(qū)動(dòng)器設(shè)計(jì)
- 超高速攝影機(jī)電控系統(tǒng)設(shè)計(jì)
- 基于GPS自動(dòng)授時(shí)的無(wú)線智能控制器的設(shè)計(jì)
- 基于PTR2000的無(wú)線氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無(wú)人飛行器機(jī)載穩(wěn)定云臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- LTC3265IDHC 低噪聲 +7V/-2V 電源的典型應(yīng)用電路來(lái)自一個(gè)單端 5V 輸入電源(頻率 = 200kHz)
- 基于ST1S14的高達(dá)3A降壓型開(kāi)關(guān)穩(wěn)壓器
- NCV33074ADR2G高速低壓比較器典型應(yīng)用
- RDR-648 - 使用 HiperPFS-4 和 HiperLCS 的 150W 功率因數(shù)校正 LLC 電源
- pixl lite
- S5U13706B00C000,基于S1D13705F00A嵌入式存儲(chǔ)器LCD控制器的開(kāi)發(fā)套件
- 電飯煲直流轉(zhuǎn)直流單路輸出電源
- CN0239
- AM1DR-2412SH30Z 12V 1 瓦 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- 使用 ON Semiconductor 的 FAN4810 的參考設(shè)計(jì)
- 自動(dòng)駕駛L2與L3有什么區(qū)別?為什么車企不提L3?
- 為什么城市NOA離不開(kāi)激光雷達(dá)?
- 吉利的“神盾金磚電池”有什么技術(shù)亮點(diǎn)?
- 讓靈感掙脫技術(shù)枷鎖,英特爾攜手D5打造高效AI創(chuàng)作體驗(yàn)
- 中科曙光與海光信息宣布戰(zhàn)略重組
- 317.95億元!海外占比28%!4月電池新能源投資擴(kuò)產(chǎn)項(xiàng)目大盤(pán)點(diǎn)
- 現(xiàn)代汽車啟動(dòng)AI充電機(jī)器人ACR測(cè)試,仁川機(jī)場(chǎng)先行
- 從BEV感知到端到端自動(dòng)駕駛
- 高效價(jià)值被關(guān)注,大圓柱電池又風(fēng)生水起
- 吉利電池安全標(biāo)準(zhǔn)升級(jí),“神盾金磚電池”有什么技術(shù)亮點(diǎn)?
- 新晉的造車新勢(shì)力,恒大在自主造車的路上速度越來(lái)越快
- 安森美圖像傳感器為NVIDIA自動(dòng)駕駛汽車仿真提供支持
- 續(xù)航里程可達(dá)1000公里以上的氫能車研制成功
- 特斯拉上海加緊建設(shè)工廠,電池制造商爭(zhēng)搶特斯拉訂單
- 蔚來(lái)被曝大量裁員,造車新勢(shì)力怎么了?
- 特斯拉起訴前員工竊取機(jī)密資料為小鵬汽車服務(wù)
- 高性能激光雷達(dá) (LiDAR) 將消除自動(dòng)駕駛汽車障礙
- 鋰離子電池價(jià)格將大降,5年內(nèi)電動(dòng)車成本追上傳統(tǒng)汽車
- 自動(dòng)駕駛已經(jīng)成為當(dāng)今世界最熱門的投資領(lǐng)域之一
- 美國(guó)是如何解決新能源汽車充電難題的?
- 【曬樣片】老手教你一步步樣片申請(qǐng)(樣片在手 設(shè)計(jì)無(wú)憂 項(xiàng)目無(wú)敵 市場(chǎng)第一)
- ARM Platform Technical Guide 2011
- 【求助】Mon Jul 31 15:55:32 2006: The stack 'Stack' is filled to 100% (80 bytes used
- ADS匯編語(yǔ)言中出現(xiàn)的問(wèn)題
- 關(guān)于IAR3.41
- 關(guān)于AT89C52和AT45D041
- ADI直播最后2天報(bào)名|車載音頻系統(tǒng)方案新玩法!ADI大咖為你支招兒!
- 求助!!!TPS40200 的輸入電壓為何不能大于28V?
- DIESEL時(shí)尚創(chuàng)意電子表
- EEWORLD大學(xué)堂----具有bootloader功能和閃爍LED的CapSense觸摸感應(yīng)項(xiàng)目