串口通訊(Serial Communication)是一種設(shè)備間非常常用的串行通訊方式,因為它簡單便捷,因此大部分電子設(shè)備都支持該通訊方式,其通訊協(xié)議可分層為協(xié)議層和物理層。
1、串行通信概念
串行通信:將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個傳送,示意圖如下
1.1、通訊特點
傳輸線少、長距離傳輸時成本低,且可以利用電話線網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳輸控制比并行通信復(fù)雜。
1.2、異步通信和同步通信
異步通信:發(fā)送設(shè)備與接收設(shè)備使用自己各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致。
異步通信是以字符為單位進行傳輸,字符與字符之間的間隙是任意的,但是每個字符之間的詩是以固定的“位間隙”的整數(shù)倍的關(guān)系。
同步通信:同步通信時要建立發(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位停止位。
(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。
(2)方式1輸入
串行口以方式1接收時,數(shù)據(jù)從RXD端輸入。在REN置1以后,就允許接收器接收。接收器以所建立的波特率的16倍分頻計數(shù)器,以便實現(xiàn)時間同步。
計數(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)志。
(2)方式2和方式3接收
串行口被定義為方式2或方式3接收時,數(shù)據(jù)從RXD端輸入,置REN=1以后,開始接收過程。當(dāng)檢測到RXD端從高到低的負(fù)跳變時,確認(rèn)起始位有效,開始接收本幀的其余信息。
在接收完一幀信息后,在RI=0、SM2=0時,或接收到第9位數(shù)據(jù)為“1”時,8位數(shù)據(jù)裝入接收緩沖器,第9位數(shù)據(jù)裝入SCON中RB8,并置RI=1。若不滿足上述的兩個條件,接收到的信息將會丟失,也不置位RI
6、單片機的串口通信
6.1、點對點通信
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ù)
審核編輯黃昊宇
-
串口通信
+關(guān)注
關(guān)注
34文章
1601瀏覽量
55235
發(fā)布評論請先 登錄
相關(guān)推薦
評論