串口通訊(Serial Communication)是一種設(shè)備間非常常用的串行通訊方式,因?yàn)樗?jiǎn)單便捷,因此大部分電子設(shè)備都支持該通訊方式,其通訊協(xié)議可分層為協(xié)議層和物理層。
1、串行通信概念
串行通信:將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個(gè)傳送,示意圖如下
1.1、通訊特點(diǎn)
傳輸線少、長(zhǎng)距離傳輸時(shí)成本低,且可以利用電話線網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳輸控制比并行通信復(fù)雜。
1.2、異步通信和同步通信
異步通信:發(fā)送設(shè)備與接收設(shè)備使用自己各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收過(guò)程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時(shí)鐘盡可能一致。
異步通信是以字符為單位進(jìn)行傳輸,字符與字符之間的間隙是任意的,但是每個(gè)字符之間的詩(shī)是以固定的“位間隙”的整數(shù)倍的關(guān)系。
同步通信:同步通信時(shí)要建立發(fā)送方時(shí)鐘對(duì)接收方時(shí)鐘的控制,是雙方達(dá)到同步得效果。此時(shí)傳輸數(shù)據(jù)的位之間的距離均為“位間隙"的整數(shù)倍,同時(shí)傳輸?shù)淖址?jiàn)不留間隙,即保持同步關(guān)系。
2、串行通信的傳遞方向
串行通信的傳輸方向:?jiǎn)喂ぁ腚p工、全雙工
1.2、單工
單工是指數(shù)據(jù)傳輸僅沿一個(gè)方向,不能實(shí)現(xiàn)反向傳輸。
1.2、半雙工
半雙工是指數(shù)據(jù)傳輸可以沿兩個(gè)方向,但需要分時(shí)進(jìn)行。
1.2、全雙工
全雙工是指數(shù)據(jù)同時(shí)進(jìn)行雙向傳輸
3、信號(hào)的調(diào)制與解調(diào)
利用調(diào)制器把數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),然后送到通信線路上去,再由解調(diào)器把從通信線路上收到的模擬信號(hào)換成數(shù)字信號(hào)。
由于傳輸是雙向的,調(diào)制器和解調(diào)器合并在一個(gè)裝置中,這就是調(diào)制解調(diào)器MODDEM
4、串行通信鄂錯(cuò)誤校驗(yàn)
1)奇偶校驗(yàn)
在發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)位尾隨的1位為奇偶校驗(yàn)位(1或0)。奇校驗(yàn)時(shí),數(shù)據(jù)中“1”的個(gè)數(shù)與校驗(yàn)位“1”的個(gè)數(shù)之和應(yīng)為奇數(shù);偶校驗(yàn)時(shí),數(shù)據(jù)中“1”的個(gè)數(shù)與校驗(yàn)位“1”的個(gè)數(shù)之和應(yīng)為偶數(shù)。接收字符時(shí),對(duì)“1”的個(gè)數(shù)進(jìn)行校驗(yàn),若發(fā)現(xiàn)不一致,則說(shuō)明傳輸數(shù)據(jù)過(guò)程中出現(xiàn)了差錯(cuò)。
2)代碼和校驗(yàn)
代碼和校驗(yàn)是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或)產(chǎn)生一個(gè)字節(jié)的校驗(yàn)字符,(校驗(yàn)和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時(shí)對(duì)數(shù)據(jù)塊(除校驗(yàn)字節(jié)外)求和,(或各字節(jié)異或),將所得的結(jié)果寫(xiě)發(fā)送方的“校驗(yàn)和”進(jìn)行比較,
3)循環(huán)冗余校驗(yàn)
這種校驗(yàn)是通過(guò)某種數(shù)學(xué)運(yùn)算實(shí)現(xiàn)有效信息與校驗(yàn)位之間的循環(huán)校驗(yàn),常用于對(duì)磁盤(pán)信息的傳輸、存儲(chǔ)區(qū)的完整性校驗(yàn)等。這種校驗(yàn)方法糾錯(cuò)能力強(qiáng)廣泛應(yīng)用于同步通信中。
5、串行口的工作方式
1、方式0
串行接口的工作方式0為移位寄存器I/O方式。在串行口外接移位寄存器以擴(kuò)展I/O接口,也可以外接串行同步I/O的設(shè)備。
(1)方式0輸出
串行口以方式0發(fā)送時(shí),數(shù)據(jù)以RXD端串行輸出,TXD端輸出同步信號(hào)。當(dāng)一個(gè)數(shù)據(jù)寫(xiě)入串行口發(fā)送緩沖器以后,就啟動(dòng)串行口發(fā)送器以振蕩頻率的十二分之一的波特率,將數(shù)據(jù)從RXD端串行輸出。
(2)方式0輸入
當(dāng)串行口定義為方式0并置位REN后,便啟動(dòng)串行口以方式0接收數(shù)據(jù),此時(shí)RXD端為數(shù)據(jù)輸入端,TXD端為同步脈沖信號(hào)輸出端。接收器以振蕩率的十二分之一的波特率接收RXD端輸入的數(shù)據(jù)信息 7a686964616fe59b9ee7ad9431333332396234。但接收器接收到8位數(shù)據(jù)時(shí),置1中斷標(biāo)志RI。
(3)方式0接收與發(fā)送電路
2、方式1
串行接口定義為工作方式1時(shí),則被控制為8位的異步通訊接口,傳送一幀信息為10位,其中1位為起始位,8位數(shù)據(jù)位(先低位后高位),1位停止位。
(1)方式1輸出
串行接口以方式1發(fā)送時(shí),數(shù)據(jù)由TXD端輸出。CPU執(zhí)行一條數(shù)據(jù)寫(xiě)入發(fā)送緩沖
器SBUF的指令(例如,MOVSBUF,A),數(shù)據(jù)字節(jié)寫(xiě)入SBUF后,便啟動(dòng)串行口發(fā)送器發(fā)送,發(fā)送完一幀信息,置1放送中斷標(biāo)志TI。
(2)方式1輸入
串行口以方式1接收時(shí),數(shù)據(jù)從RXD端輸入。在REN置1以后,就允許接收器接收。接收器以所建立的波特率的16倍分頻計(jì)數(shù)器,以便實(shí)現(xiàn)時(shí)間同步。
計(jì)數(shù)器的16個(gè)狀態(tài)把一位的時(shí)間等分成16份,在每位時(shí)間的第7、8和9個(gè)計(jì)數(shù)狀態(tài),位檢測(cè)器采樣RXD的值,接收的值是3次采樣中取至少二次相同的值,以排除噪聲的干擾。
如果在起始接收的值不是0,則起始位無(wú)效,復(fù)位接收電路。在檢測(cè)到另一個(gè)1到0的跳變時(shí),再重新啟動(dòng)接收器。如果接收到值為0,起始位有效,則開(kāi)始接收本幀的其余信息。
當(dāng)RI=0并且接收到的停止位為1(或SM2=0)時(shí),停止位進(jìn)入RB8,接收到的8位數(shù)據(jù)進(jìn)入接收緩沖器SBUF,置位RI中斷標(biāo)志。接著接收便搜索另一幀信息的起始位。
3、方式2和方式3
串行接口工作方式2和方式3時(shí),則被定義為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ā)送和接收時(shí)唯一的區(qū)別就是波特率不同。
(1)方式2和方式3發(fā)送
方式2或方式3發(fā)送時(shí),數(shù)據(jù)由TXD端輸出,發(fā)出一幀信息為11位,附加的第9位數(shù)據(jù)是SCON中的TB8,CPU執(zhí)行一條數(shù)據(jù)寫(xiě)入發(fā)送緩沖器SBUF的指令,就啟動(dòng)發(fā)送器發(fā)送,發(fā)送完一幀信息,置“1”TI中斷標(biāo)志。
(2)方式2和方式3接收
串行口被定義為方式2或方式3接收時(shí),數(shù)據(jù)從RXD端輸入,置REN=1以后,開(kāi)始接收過(guò)程。當(dāng)檢測(cè)到RXD端從高到低的負(fù)跳變時(shí),確認(rèn)起始位有效,開(kāi)始接收本幀的其余信息。
在接收完一幀信息后,在RI=0、SM2=0時(shí),或接收到第9位數(shù)據(jù)為“1”時(shí),8位數(shù)據(jù)裝入接收緩沖器,第9位數(shù)據(jù)裝入SCON中RB8,并置RI=1。若不滿足上述的兩個(gè)條件,接收到的信息將會(huì)丟失,也不置位RI
6、單片機(jī)的串口通信
6.1、點(diǎn)對(duì)點(diǎn)通信
6.2、多機(jī)通信
單片機(jī)構(gòu)成的多機(jī)系統(tǒng)常采用總線型主從式結(jié)構(gòu)。所謂主從式,即在數(shù)個(gè)單片機(jī)中,有一個(gè)是主機(jī),其余的是從機(jī),從機(jī).要服從主機(jī)的調(diào)度、支配。
80C51單片機(jī)的串行口方式2和方式3適于這種主從式的通信結(jié)構(gòu)。當(dāng)然采用不同的通信標(biāo)準(zhǔn)時(shí),還需進(jìn)行相應(yīng)的電平轉(zhuǎn)換,有時(shí)還要對(duì)信號(hào)進(jìn)行光電隔離。在實(shí)際的多機(jī)應(yīng)用系統(tǒng)中,常采用RS-485串行標(biāo)準(zhǔn)總線進(jìn)行數(shù)
審核編輯黃昊宇
-
串口通信
+關(guān)注
關(guān)注
34文章
1624瀏覽量
55509
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論