91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

串行通訊講解與分析

嵌入式悅翔園 ? 來源:嵌入式悅翔園 ? 作者:嵌入式悅翔園 ? 2022-11-21 11:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

最近在做一個通過ESP8266STM32通訊從而實(shí)現(xiàn)遠(yuǎn)程控制,中間需要用到串口來發(fā)送報(bào)文,通過報(bào)文來實(shí)現(xiàn)兩者之間的通訊。

今天剛好趁著這個機(jī)會來給大家講解一下串行通訊,希望能給大家以后的學(xué)習(xí)提供一些思路。

串行通訊介紹

串口通信線最少需要2根(GND和信號線),可以實(shí)現(xiàn)單工通信,也可以使用3根通信線(Tx、Rx、GND)來實(shí)現(xiàn)全雙工。

通過串口不管發(fā)數(shù)字、文本還是命令,都要先對發(fā)送內(nèi)容進(jìn)行編碼,編碼成二進(jìn)制再進(jìn)行逐個位的發(fā)送。我們使用串口發(fā)送的一般都是字符,都是ASCII碼編碼后的字符,所以一般設(shè)置數(shù)據(jù)位都是8,方便剛好一幀發(fā)送1個字符。

那么現(xiàn)在我們就知道了,如果我們想要串口進(jìn)行通訊,我們首先需要將我們想要發(fā)送的信息轉(zhuǎn)換成為ASCII碼,再通過串口線將信息以二進(jìn)制的形式發(fā)送出去。

UART作為異步串口通信協(xié)議的一種,工作原理是將傳輸數(shù)據(jù)的每一個字符一位一位地傳輸,也就是我們上面說的ASCII碼編碼。其中每一位(bit)的意義如下:

起始位:先發(fā)出一個邏輯“0”的信號,表示傳輸字符開始。

數(shù)據(jù)位:緊接著起始位之后。數(shù)據(jù)位的個數(shù)可以是4、5、6、7、8等,構(gòu)成一個字符。

奇偶校驗(yàn)位:數(shù)據(jù)位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn)),依次來校驗(yàn)數(shù)據(jù)傳送的正確性。

停止位:它是一個字符數(shù)據(jù)的結(jié)束標(biāo)志。可以是1位、1.5位、2位的高電平。

空閑位:處于邏輯“1”狀態(tài),表示當(dāng)前線路上沒有數(shù)據(jù)傳輸。

其中數(shù)據(jù)位通常采用ASCII碼。從最低位開始傳送,靠時鐘定位。

1a2ceeaa-694f-11ed-8abf-dac502259ad0.png

串行數(shù)據(jù)傳輸?shù)幕灸J?/p>

二進(jìn)制脈沖用于串行數(shù)據(jù)傳輸中的數(shù)據(jù)傳輸。二進(jìn)制數(shù)字一由五伏或高邏輯表示。相反,二進(jìn)制零表示為邏輯低電平或零伏。為了實(shí)現(xiàn)串行通信,需要源和目標(biāo)。他們也被稱為發(fā)送者和接收者。可以采用各種類型的串行通信,并指定為單工、半雙工和全雙工。

Simplex 方法單向數(shù)據(jù)傳輸。在此方案中,在任何給定時間只有源或目標(biāo)處于活動狀態(tài)。如果源正在發(fā)送數(shù)據(jù),接收方別無選擇,只能接受傳輸。廣播電視或無線電信號時使用單工模式。

半雙工模式允許源和目標(biāo)都處于活動狀態(tài),但不能同時處于活動狀態(tài)。傳輸一次只發(fā)生在一個方向。使用互聯(lián)網(wǎng)時可以看到一個恰當(dāng)?shù)睦?。?dāng)您從計(jì)算機(jī)發(fā)出網(wǎng)頁請求時,服務(wù)器會處理該請求。然后,當(dāng)將信息返回到您的計(jì)算機(jī)(現(xiàn)在是接收方)時,它就成為發(fā)送方。

全雙工模式是世界上使用最廣泛的串行通信形式。源和目標(biāo)都處于活動狀態(tài),可以同時發(fā)送和接收數(shù)據(jù)。您的智能手機(jī)是全雙工模式實(shí)際應(yīng)用的典型示例。

討論串行通信時的另一個考慮因素是兩臺主機(jī)的協(xié)議和字節(jié)順序。字節(jié)順序是指使用特定的內(nèi)存地址來存儲數(shù)據(jù)的方法。這是將數(shù)據(jù)存儲在特定內(nèi)存地址的方式。關(guān)于數(shù)據(jù)對齊字節(jié)序有兩種分類。

UART串口通信的工作原理

(1)發(fā)送數(shù)據(jù)過程

空閑狀態(tài),線路處于高電平;當(dāng)收到發(fā)送指令后,拉低線路的一個數(shù)據(jù)位的時間T,接著數(shù)據(jù)按低位到高位依次發(fā)送,數(shù)據(jù)發(fā)送完畢后,接著發(fā)送奇偶校驗(yàn)位和停止位,一幀數(shù)據(jù)發(fā)送完成。

(2)數(shù)據(jù)接收過程:

空閑狀態(tài),線路處于高電平;當(dāng)檢測到線路的下降沿(高電平變?yōu)榈碗娖剑r說明線路有數(shù)據(jù)傳輸,按照約定的波特率從低位到高位接收數(shù)據(jù),數(shù)據(jù)接收完畢后,接著接收并比較奇偶校驗(yàn)位是否正確,如果正確則通知后續(xù)設(shè)備接收數(shù)據(jù)或存入緩沖。

1a780c28-694f-11ed-8abf-dac502259ad0.png

串行通訊和并行通訊

在常見的通訊中有兩種基本的數(shù)據(jù)傳輸形式,分別是并行和串行通信。串行通信是逐位進(jìn)行數(shù)據(jù)傳輸。它基本上使用兩根電線,一根用于發(fā)送器,另一根用于接收器。

串行通信:計(jì)算機(jī)與I/O設(shè)備之間,同一時刻,只能傳輸一個bit位的信號。傳輸數(shù)據(jù)按順序依次一bit位接一bit位進(jìn)行傳輸,通常數(shù)據(jù)在一根數(shù)據(jù)線或一對差分線上傳輸。

比如,當(dāng)傳輸1字節(jié)信息時,并行通訊有8根信號線實(shí)現(xiàn)同時傳輸,假如耗時為1T,而串行是在一根信號線上,把數(shù)據(jù)排成一行、一位一位傳輸,需要傳8次,因此耗時為8T。

1a9074d4-694f-11ed-8abf-dac502259ad0.png

并行通信:計(jì)算機(jī)與I/O設(shè)備之間,通過多條傳輸線,可以同時傳輸多個bit位的信號。

并行通訊的效率高,但是成本高、對信號線路要求高,一般應(yīng)用于快速設(shè)備之間近距離傳輸,譬如CPU 與存儲設(shè)備、存儲器與存儲器、主機(jī)與打印機(jī)等都采用并行通訊。

串行通訊效率較低,但是對信號線路要求低,抗干擾能力強(qiáng),同時成本也相對較低,一般用于計(jì)算機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)之間遠(yuǎn)距離通訊。

1aa343ca-694f-11ed-8abf-dac502259ad0.png

單片機(jī)中的串口通訊

大家需要注意這里的串口通訊和我們上面談到的串行通訊不是一個東西,串口通訊是串行通訊中的一種,在單片機(jī)調(diào)試中非常常見,也是學(xué)習(xí)單片機(jī)必須進(jìn)行學(xué)習(xí)的知識,這里我們以單片機(jī)中常用的RS-232串口來進(jìn)行講解。

1ab9c1ea-694f-11ed-8abf-dac502259ad0.png

在上面的通訊方式中,兩個通訊設(shè)備之間通過串口信號線建立起連接,串口信號線中使用"RS-232標(biāo)準(zhǔn)"傳輸數(shù)據(jù)信號。由于RS-232電平標(biāo)準(zhǔn)的信號不能直接被控制器直接識別,所以這些信號會經(jīng)過一個"電平轉(zhuǎn)換芯片"轉(zhuǎn)換成控制器能識別的"TTL校準(zhǔn)"的電平信號,才能實(shí)現(xiàn)通訊。

我們知道常見的電子電路中常使用TTL的電平標(biāo)準(zhǔn),理想狀態(tài)下,使用5V表示二進(jìn)制邏輯1,使用0V表示邏輯0;而為了增加串口通訊的遠(yuǎn)距離傳輸及抗干擾能力,它使用-15V表示邏輯1,+15V表示邏輯0。

1ad61804-694f-11ed-8abf-dac502259ad0.png

因?yàn)榭刂破饕话闶褂肨TL電平標(biāo)準(zhǔn),所以常常會使用CH340芯片對TTL及RS-232電平的信號進(jìn)行互相轉(zhuǎn)換。

1af5a91c-694f-11ed-8abf-dac502259ad0.png

分析串口通訊波形

在分析波形之前我們先來看一些基礎(chǔ)概念,這樣有利于我們對波形的分析:

起始位:先發(fā)出一個邏輯”0”的信號,表示傳輸數(shù)據(jù)的開始。

校驗(yàn)位:數(shù)據(jù)位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn)),以此來校驗(yàn)數(shù)據(jù)傳送的正確性。就比如傳輸“A”(01000001)為例。(字符‘A’的二進(jìn)制是 0100 0001)此位還可以去除,即不需要奇偶校驗(yàn)位。

當(dāng)為奇數(shù)校驗(yàn):”A”字符的8個bit位中有兩個1,那么奇偶校驗(yàn)位為1才能滿足1的個數(shù)為奇數(shù)(奇校驗(yàn))。

當(dāng)為偶數(shù)校驗(yàn):”A”字符的8個bit位中有兩個1,那么奇偶校驗(yàn)位為0才能滿足1的個數(shù)為偶數(shù)(偶校驗(yàn))。

停止位:它是一幀數(shù)據(jù)的結(jié)束標(biāo)志??梢允?bit、1.5bit、2bit的空閑電平。

空閑位:沒有數(shù)據(jù)傳輸時線路上的電平狀態(tài),為邏輯1。

傳輸方向:即數(shù)據(jù)是從高位(MSB)開始傳輸還是從低位(LSB)開始傳輸。

uart數(shù)據(jù)傳輸格式:剛開始傳輸一個起始位——傳輸數(shù)據(jù)位——校驗(yàn)位(可不需要此位)——停止位。這樣一幀的數(shù)據(jù)就傳輸完了。接下來接著像這樣一直傳送。

波形1

用串口工具發(fā)送0XD6,即二級制 1101 0110 ,在示波器上如此顯示。

串口設(shè)置:波特率9600,停止位1位,無奇偶校驗(yàn)位。

波形如圖所示:

1b10cdb4-694f-11ed-8abf-dac502259ad0.png

由示波器可以看出,最左邊一個低電平表示0,起始位;然后依次是0110 1011,正好和發(fā)送的數(shù)據(jù)最高位和最低位反過來,至于為什么會反過來我們上面也介紹過了,相比大家也能夠理解。

波形2

用串口發(fā)送0x75,就是二進(jìn)制 0111 0101,如下圖所示。

串口設(shè)置:波特率9600,停止位1位,無奇偶校驗(yàn)位。

1b73c950-694f-11ed-8abf-dac502259ad0.png

同理,最左側(cè)的為起始位,低電平0, 然后LSB傳輸。1010 1110依次傳輸?shù)绞静ㄆ鳌?/p>

波形3

用串口發(fā)送0x75,就是二進(jìn)制 0111 0101,

串口設(shè)置:波特率9600,停止位1位,奇校驗(yàn)。

1bf66f0e-694f-11ed-8abf-dac502259ad0.png

奇校驗(yàn)就是要保證這一幀里的所有BIT 有1的數(shù)為奇數(shù),0x75已經(jīng)有5個1了,所以奇偶校驗(yàn)位為0即可。

如果為偶校驗(yàn),那么最后一位應(yīng)該是高電平1,就會有6個1,以此保證所有的1的數(shù)量為偶數(shù)。

波形4

連發(fā)發(fā)送兩個16進(jìn)制數(shù)據(jù)0x75(0111 0101) 0x6B (0110 1011)

串口設(shè)置:波特率9600,停止位1位,無奇偶校驗(yàn)位。

1c6ac3a4-694f-11ed-8abf-dac502259ad0.png

結(jié)語

當(dāng)然串行通訊不僅這一種,還是很多其他的例如I2C、SPI、CAN等,大家可以多了解一下,每個通訊方法都有著自己的通訊協(xié)議,我們?nèi)绻胍褂玫脑捫枰鶕?jù)自己實(shí)際需求,選擇合適的通訊方式。

審核編輯 :李倩

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

    關(guān)注

    9

    文章

    2201

    瀏覽量

    67588
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    6389

    瀏覽量

    140058
  • 串口
    +關(guān)注

    關(guān)注

    15

    文章

    1619

    瀏覽量

    82837

原文標(biāo)題:串行通訊講解與分析,看了就明白了!

文章出處:【微信號:嵌入式悅翔園,微信公眾號:嵌入式悅翔園】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    單片機(jī)中的串口通訊串行同步通信與串行異步通信

    串口是串行接口(serial port)的簡稱,也稱為串行通信接口或COM接口。串口通信是指采用串行通信協(xié)議(serial communicaTIon)在一條信號線上將數(shù)據(jù)一個比特一個比特地逐位進(jìn)行
    發(fā)表于 01-15 08:06

    汽車BMS電池管理——菊花鏈通訊保護(hù)方案

    行業(yè)圖譜EMC保護(hù)方案大全國外品牌替代表EMC行業(yè)標(biāo)準(zhǔn)雷卯實(shí)驗(yàn)室免費(fèi)測試?yán)酌a(chǎn)品規(guī)格書講解請點(diǎn)擊以上內(nèi)容了解更多汽車BMS電池管理已從CAN通訊向菊花鏈橋接通訊的方式轉(zhuǎn)變,在菊花鏈的環(huán)體系結(jié)構(gòu)中
    的頭像 發(fā)表于 12-23 09:20 ?360次閱讀
    汽車BMS電池管理——菊花鏈<b class='flag-5'>通訊</b>保護(hù)方案

    串行通訊與并行通訊介紹

    按數(shù)據(jù)傳送的方式,通訊可分為串行通訊與并行通訊,串行通訊是指設(shè)備之間通過少量數(shù)據(jù)信號線(一般是8
    發(fā)表于 12-11 06:52

    Xilinx FPGA串行通信協(xié)議介紹

    Xilinx FPGA因其高性能和低延遲,常用于串行通信接口設(shè)計(jì)。本文深入分析了Aurora、PCI Express和Serial RapidIO這三種在Xilinx系統(tǒng)設(shè)計(jì)中關(guān)鍵的串行通信協(xié)議。介紹了它們的特性、優(yōu)勢和應(yīng)用場景
    的頭像 發(fā)表于 11-14 15:02 ?2541次閱讀
    Xilinx FPGA<b class='flag-5'>串行</b>通信協(xié)議介紹

    藍(lán)牙打印機(jī)電路怎么設(shè)計(jì)?芯片如何選型?APP和小程序的BLE通訊協(xié)議如何制定?

    與藍(lán)牙芯片通訊的BLE協(xié)議怎么制定?藍(lán)牙BLE芯片如何選型?一文給你講解清楚
    的頭像 發(fā)表于 09-08 10:02 ?1184次閱讀
    藍(lán)牙打印機(jī)電路怎么設(shè)計(jì)?芯片如何選型?APP和小程序的BLE<b class='flag-5'>通訊</b>協(xié)議如何制定?

    通訊中浮點(diǎn)數(shù)數(shù)據(jù)的處理

    Modbus 通訊在工業(yè)現(xiàn)場應(yīng)用非常廣泛,當(dāng)然也會有多技術(shù)難點(diǎn),本文主要講解基于通訊的數(shù)據(jù)處理,不講通訊的基礎(chǔ)知識,你過你連Modbus通訊
    的頭像 發(fā)表于 08-19 13:48 ?1855次閱讀
    <b class='flag-5'>通訊</b>中浮點(diǎn)數(shù)數(shù)據(jù)的處理

    PLC之間跨區(qū)域通訊!無線通訊方案全解析

    。 在這種情況下,可以給PLC配備相應(yīng)的無線通訊模塊來實(shí)現(xiàn) PLC與PLC無線通訊。 串口無線通訊模塊和以太網(wǎng)無線通訊模塊,都可以妥善地實(shí)現(xiàn)PLC之間的遠(yuǎn)距離數(shù)據(jù)傳遞與共享。 一、串口
    的頭像 發(fā)表于 07-21 16:57 ?824次閱讀
    PLC之間跨區(qū)域<b class='flag-5'>通訊</b>!無線<b class='flag-5'>通訊</b>方案全解析

    【微五科技CF5010RBT60開發(fā)板試用體驗(yàn)】+串行通訊及使用

    CF5010RBT60開發(fā)板,可提供4個通訊串口,見圖1所示。 圖1 串口電路 其中USART1被用作ISP下載接口,當(dāng)然它也可以用于常規(guī)的串行通訊,其電路如圖2所示。 圖2 串口電路 而在例程中
    發(fā)表于 07-19 21:03

    LXM18與M241進(jìn)行MODBUS串行通訊案例

    Lexium18 系列伺服驅(qū)動器具有RS-485的串行通訊功能,使用此功能可實(shí)現(xiàn)控制 伺服系統(tǒng)、讀取和寫入驅(qū)動器參數(shù)以及監(jiān)視伺服系統(tǒng)狀態(tài)等功能。
    的頭像 發(fā)表于 07-10 10:56 ?1594次閱讀
    LXM18與M241進(jìn)行MODBUS<b class='flag-5'>串行</b><b class='flag-5'>通訊</b>案例

    modbusRTU轉(zhuǎn)profinet網(wǎng)關(guān)與HMLDM-UD100A激光測距儀通訊案例

    在現(xiàn)代工業(yè)生產(chǎn)與自動化控制領(lǐng)域,精確的距離測量以及設(shè)備間的高效通訊至關(guān)重要。今天,就為大家詳細(xì)講解一下HMLDM-UD100A型工業(yè)激光測距儀與modbusRTU轉(zhuǎn)profinet網(wǎng)關(guān)的通訊案例。
    的頭像 發(fā)表于 06-28 14:28 ?621次閱讀
    modbusRTU轉(zhuǎn)profinet網(wǎng)關(guān)與HMLDM-UD100A激光測距儀<b class='flag-5'>通訊</b>案例

    如何用普源DHO924示波器構(gòu)建高速串行信號分析系統(tǒng)

    在高速數(shù)字通信領(lǐng)域,如USB、PCIe、以太網(wǎng)等協(xié)議的測試與調(diào)試中,準(zhǔn)確分析串行信號的時序、抖動、眼圖等參數(shù)是確保系統(tǒng)穩(wěn)定性和數(shù)據(jù)傳輸可靠性的關(guān)鍵。普源DHO924示波器憑借其200MHz帶寬、高
    的頭像 發(fā)表于 06-23 14:15 ?743次閱讀
    如何用普源DHO924示波器構(gòu)建高速<b class='flag-5'>串行</b>信號<b class='flag-5'>分析</b>系統(tǒng)

    第十三章 通訊的基本概念

    本章介紹通訊基本概念,包括串行/并行、全雙工/半雙工/單工、同步/異步通訊,還提及通訊速率中比特率與波特率的概念。
    的頭像 發(fā)表于 05-22 17:29 ?2069次閱讀
    第十三章 <b class='flag-5'>通訊</b>的基本概念

    RS485串行通信協(xié)議介紹

    在上期我們介紹了RS232串行通訊,本期我們將進(jìn)一步深入探討另一種廣泛應(yīng)用于工業(yè)自動化和數(shù)據(jù)通信領(lǐng)域的串行通信標(biāo)準(zhǔn)——RS485。
    的頭像 發(fā)表于 05-15 11:42 ?1454次閱讀
    RS485<b class='flag-5'>串行</b>通信協(xié)議介紹

    ModbusRTU與PROFIBUS DP網(wǎng)關(guān)通訊技巧!

    在工業(yè)自動化領(lǐng)域,隨著系統(tǒng)的不斷升級和技術(shù)的發(fā)展,不同通訊協(xié)議之間的兼容性問題成為一大挑戰(zhàn)。Modbus RTU作為一種廣泛應(yīng)用的串行通信協(xié)議,因其簡單、可靠而被廣泛使用;而PROFIBUS DP
    的頭像 發(fā)表于 04-28 14:18 ?765次閱讀
    ModbusRTU與PROFIBUS DP網(wǎng)關(guān)<b class='flag-5'>通訊</b>技巧!

    電容屏串行接口

    帝晶智慧屏電容屏串行接口
    的頭像 發(fā)表于 03-11 17:21 ?1803次閱讀