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

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

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

單片機串口通信知識詳解

哈哈hfgfdf ? 來源:嵌入式學(xué)習(xí)資料 ? 作者:嵌入式學(xué)習(xí)資料 ? 2022-12-13 16:35 ? 次閱讀

串口通訊(Serial Communication)是一種設(shè)備間非常常用的串行通訊方式,因為它簡單便捷,因此大部分電子設(shè)備都支持該通訊方式,其通訊協(xié)議可分層為協(xié)議層和物理層。

12ede6de-7ac1-11ed-abeb-dac502259ad0.png

1、串行通信概念

串行通信:將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個傳送,示意圖如下

133927e8-7ac1-11ed-abeb-dac502259ad0.png

1.1、通訊特點

傳輸線少、長距離傳輸時成本低,且可以利用電話線網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳輸控制比并行通信復(fù)雜。

1.2、異步通信和同步通信

異步通信:發(fā)送設(shè)備與接收設(shè)備使用自己各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致。

13525164-7ac1-11ed-abeb-dac502259ad0.jpg

異步通信是以字符為單位進行傳輸,字符與字符之間的間隙是任意的,但是每個字符之間的詩是以固定的“位間隙”的整數(shù)倍的關(guān)系。

137322cc-7ac1-11ed-abeb-dac502259ad0.jpg

同步通信:同步通信時要建立發(fā)送方時鐘對接收方時鐘的控制,是雙方達到同步得效果。此時傳輸數(shù)據(jù)的位之間的距離均為“位間隙"的整數(shù)倍,同時傳輸?shù)淖址姴涣糸g隙,即保持同步關(guān)系。

2、串行通信的傳遞方向

串行通信的傳輸方向:單工、半雙工、全雙工

1.2、單工

單工是指數(shù)據(jù)傳輸僅沿一個方向,不能實現(xiàn)反向傳輸。

1.2、半雙工

半雙工是指數(shù)據(jù)傳輸可以沿兩個方向,但需要分時進行。

1.2、全雙工

全雙工是指數(shù)據(jù)同時進行雙向傳輸

3、信號的調(diào)制與解調(diào)

利用調(diào)制器把數(shù)字信號轉(zhuǎn)換成模擬信號,然后送到通信線路上去,再由解調(diào)器把從通信線路上收到的模擬信號換成數(shù)字信號。

由于傳輸是雙向的,調(diào)制器和解調(diào)器合并在一個裝置中,這就是調(diào)制解調(diào)器MODDEM

4、串行通信鄂錯誤校驗

1)奇偶校驗

在發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨的1位為奇偶校驗位(1或0)。奇校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應(yīng)為奇數(shù);偶校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應(yīng)為偶數(shù)。接收字符時,對“1”的個數(shù)進行校驗,若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯。

2)代碼和校驗

代碼和校驗是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或)產(chǎn)生一個字節(jié)的校驗字符,(校驗和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時對數(shù)據(jù)塊(除校驗字節(jié)外)求和,(或各字節(jié)異或),將所得的結(jié)果寫發(fā)送方的“校驗和”進行比較,

3)循環(huán)冗余校驗


這種校驗是通過某種數(shù)學(xué)運算實現(xiàn)有效信息與校驗位之間的循環(huán)校驗,常用于對磁盤信息的傳輸、存儲區(qū)的完整性校驗等。這種校驗方法糾錯能力強廣泛應(yīng)用于同步通信中。

5、串行口的工作方式

1、方式0


串行接口的工作方式0為移位寄存器I/O方式。在串行口外接移位寄存器以擴展I/O接口,也可以外接串行同步I/O的設(shè)備。

(1)方式0輸出
串行口以方式0發(fā)送時,數(shù)據(jù)以RXD端串行輸出,TXD端輸出同步信號。當(dāng)一個數(shù)據(jù)寫入串行口發(fā)送緩沖器以后,就啟動串行口發(fā)送器以振蕩頻率的十二分之一的波特率,將數(shù)據(jù)從RXD端串行輸出。

(2)方式0輸入
當(dāng)串行口定義為方式0并置位REN后,便啟動串行口以方式0接收數(shù)據(jù),此時RXD端為數(shù)據(jù)輸入端,TXD端為同步脈沖信號輸出端。接收器以振蕩率的十二分之一的波特率接收RXD端輸入的數(shù)據(jù)信息 7a686964616fe59b9ee7ad9431333332396234。但接收器接收到8位數(shù)據(jù)時,置1中斷標(biāo)志RI。


(3)方式0接收與發(fā)送電路

2、方式1


串行接口定義為工作方式1時,則被控制為8位的異步通訊接口,傳送一幀信息為10位,其中1位為起始位,8位數(shù)據(jù)位(先低位后高位),1位停止位。

13917588-7ac1-11ed-abeb-dac502259ad0.png

(1)方式1輸出
串行接口以方式1發(fā)送時,數(shù)據(jù)由TXD端輸出。CPU執(zhí)行一條數(shù)據(jù)寫入發(fā)送緩沖
器SBUF的指令(例如,MOVSBUF,A),數(shù)據(jù)字節(jié)寫入SBUF后,便啟動串行口發(fā)送器發(fā)送,發(fā)送完一幀信息,置1放送中斷標(biāo)志TI

13c18570-7ac1-11ed-abeb-dac502259ad0.png

(2)方式1輸入
串行口以方式1接收時,數(shù)據(jù)從RXD端輸入。在REN置1以后,就允許接收器接收。接收器以所建立的波特率的16倍分頻計數(shù)器,以便實現(xiàn)時間同步。

13f8a65e-7ac1-11ed-abeb-dac502259ad0.png

計數(shù)器的16個狀態(tài)把一位的時間等分成16份,在每位時間的第7、8和9個計數(shù)狀態(tài),位檢測器采樣RXD的值,接收的值是3次采樣中取至少二次相同的值,以排除噪聲的干擾。

如果在起始接收的值不是0,則起始位無效,復(fù)位接收電路。在檢測到另一個1到0的跳變時,再重新啟動接收器。如果接收到值為0,起始位有效,則開始接收本幀的其余信息。

當(dāng)RI=0并且接收到的停止位為1(或SM2=0)時,停止位進入RB8,接收到的8位數(shù)據(jù)進入接收緩沖器SBUF,置位RI中斷標(biāo)志。接著接收便搜索另一幀信息的起始位。
3、方式2和方式3
串行接口工作方式2和方式3時,則被定義為9位的異步通信接口。傳送一幀信息為11位,其中1位起始位,8位數(shù)據(jù)位(從低位至高位),1位是附加的可程控為1或0的第9位數(shù)據(jù),1位停止位。

方式2和方式3的差別僅僅在于波特率不一樣,方式2的波特率是固定的,波特率為2SMOD/64(振蕩頻率);方式3的波特率是可變的,波特率=2SMOD/32(T1的溢出率)。
方式2和方式3在發(fā)送和接收時唯一的區(qū)別就是波特率不同。
(1)方式2和方式3發(fā)送
方式2或方式3發(fā)送時,數(shù)據(jù)由TXD端輸出,發(fā)出一幀信息為11位,附加的第9位數(shù)據(jù)是SCON中的TB8,CPU執(zhí)行一條數(shù)據(jù)寫入發(fā)送緩沖器SBUF的指令,就啟動發(fā)送器發(fā)送,發(fā)送完一幀信息,置“1”TI中斷標(biāo)志。

14239d32-7ac1-11ed-abeb-dac502259ad0.png

(2)方式2和方式3接收
串行口被定義為方式2或方式3接收時,數(shù)據(jù)從RXD端輸入,置REN=1以后,開始接收過程。當(dāng)檢測到RXD端從高到低的負(fù)跳變時,確認(rèn)起始位有效,開始接收本幀的其余信息。

144dbed2-7ac1-11ed-abeb-dac502259ad0.png

在接收完一幀信息后,在RI=0、SM2=0時,或接收到第9位數(shù)據(jù)為“1”時,8位數(shù)據(jù)裝入接收緩沖器,第9位數(shù)據(jù)裝入SCON中RB8,并置RI=1。若不滿足上述的兩個條件,接收到的信息將會丟失,也不置位RI

6、單片機的串口通信

6.1、點對點通信

14769dd4-7ac1-11ed-abeb-dac502259ad0.png

6.2、多機通信

單片機構(gòu)成的多機系統(tǒng)常采用總線型主從式結(jié)構(gòu)。所謂主從式,即在數(shù)個單片機中,有一個是主機,其余的是從機,從機.要服從主機的調(diào)度、支配。

80C51單片機的串行口方式2和方式3適于這種主從式的通信結(jié)構(gòu)。當(dāng)然采用不同的通信標(biāo)準(zhǔn)時,還需進行相應(yīng)的電平轉(zhuǎn)換,有時還要對信號進行光電隔離。在實際的多機應(yīng)用系統(tǒng)中,常采用RS-485串行標(biāo)準(zhǔn)總線進行數(shù)

148f8164-7ac1-11ed-abeb-dac502259ad0.png

審核編輯黃昊宇

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

    關(guān)注

    34

    文章

    1601

    瀏覽量

    55235
收藏 人收藏

    評論

    相關(guān)推薦

    ?51單片機串口通信詳細介紹-小白必看

    51單片機串口通信單片機與外部設(shè)備通信的重要方式,它基于串行通信的原理,以字節(jié)為單位進行數(shù)據(jù)傳
    的頭像 發(fā)表于 04-17 09:33 ?1545次閱讀
    ?51<b class='flag-5'>單片機</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>詳細介紹-小白必看

    單片機串口通信的接收與發(fā)送

    單片機串口通信是一種常見的通信方式,它可以實現(xiàn)單片機與外部設(shè)備的數(shù)據(jù)交換。在實際應(yīng)用中,單片機
    的頭像 發(fā)表于 12-20 14:03 ?2930次閱讀

    單片機串口通信的接收與發(fā)送程序

    單片機串口通信的接收與發(fā)送程序 一、引言 單片機串口通信是一種常見的
    的頭像 發(fā)表于 12-19 13:57 ?4419次閱讀

    兩個單片機之間串口通信的例程

    今天來分享一下兩個單片機之間串口通信的例程吧!仿真文件的話,只要添加兩個單片機就OK了。那么如果想用手里的單片機來實現(xiàn)的話,不妨接收端用電腦
    的頭像 發(fā)表于 11-09 10:05 ?5292次閱讀
    兩個<b class='flag-5'>單片機</b>之間<b class='flag-5'>串口</b><b class='flag-5'>通信</b>的例程

    單片機串口通信是什么?它有哪些設(shè)計方案?

    單片機串口通信中,常用的協(xié)議包括RS-232、RS-485等。其中,RS-232是最常用的串口通信協(xié)議之一,它定義了數(shù)據(jù)終端設(shè)備(DTE
    的頭像 發(fā)表于 11-05 08:07 ?1227次閱讀
    <b class='flag-5'>單片機</b>的<b class='flag-5'>串口</b><b class='flag-5'>通信</b>是什么?它有哪些設(shè)計方案?

    51單片機和stm32單片機如何串口通信呢,需要電平轉(zhuǎn)換器嗎?

    51單片機和stm32單片機如何串口通信呢,需要電平轉(zhuǎn)換器嗎?
    發(fā)表于 11-01 07:47

    基于LabVIEW的單片機串口通信實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《基于LabVIEW的單片機串口通信實現(xiàn).pdf》資料免費下載
    發(fā)表于 10-30 09:13 ?6次下載
    基于LabVIEW的<b class='flag-5'>單片機</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>實現(xiàn)

    基于GPRS和單片機串口通訊設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于GPRS和單片機串口通訊設(shè)計.doc》資料免費下載
    發(fā)表于 10-26 14:16 ?6次下載
    基于GPRS和<b class='flag-5'>單片機</b>的<b class='flag-5'>串口</b>通訊設(shè)計

    基于C8051F020單片機串口通信應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《基于C8051F020單片機串口通信應(yīng)用.pdf》資料免費下載
    發(fā)表于 10-25 10:35 ?4次下載
    基于C8051F020<b class='flag-5'>單片機</b>的<b class='flag-5'>串口</b><b class='flag-5'>通信</b>應(yīng)用

    100天如何備賽藍橋杯單片機

    備賽藍橋杯單片機比賽,需要從以下幾個方面進行準(zhǔn)備:基礎(chǔ)知識掌握首先,需要掌握單片機的基礎(chǔ)知識,包括單片機的內(nèi)部結(jié)構(gòu)、引腳、寄存器、中斷、定時
    的頭像 發(fā)表于 10-24 09:35 ?1196次閱讀
    100天如何備賽藍橋杯<b class='flag-5'>單片機</b>

    單片機串口通信代碼

    這是一個單片機C51串口接收(中斷)和發(fā)送例程,可以用來測試51單片機的中斷接收和查詢發(fā)送,另外我覺得發(fā)送沒有必要用中斷,因為程序的開銷是一樣的
    發(fā)表于 10-19 15:53 ?0次下載
    <b class='flag-5'>單片機</b>與<b class='flag-5'>串口</b><b class='flag-5'>通信</b>代碼

    基于單片機串口通信模塊設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于單片機串口通信模塊設(shè)計.doc》資料免費下載
    發(fā)表于 10-19 11:29 ?8次下載
    基于<b class='flag-5'>單片機</b>的<b class='flag-5'>串口</b><b class='flag-5'>通信</b>模塊設(shè)計

    剖析單片機串口最底層的本質(zhì)?

    精華 | 剖析單片機串口最底層的本質(zhì)?
    的頭像 發(fā)表于 10-18 18:16 ?624次閱讀
    剖析<b class='flag-5'>單片機</b><b class='flag-5'>串口</b>最底層的本質(zhì)?

    基于Linux的ARM和單片機串口通信設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于Linux的ARM和單片機串口通信設(shè)計.pdf》資料免費下載
    發(fā)表于 10-11 10:35 ?0次下載
    基于Linux的ARM和<b class='flag-5'>單片機</b>的<b class='flag-5'>串口</b><b class='flag-5'>通信</b>設(shè)計

    單片機基礎(chǔ)知識分享

    電子發(fā)燒友網(wǎng)站提供《單片機基礎(chǔ)知識分享.pdf》資料免費下載
    發(fā)表于 10-07 11:06 ?2次下載