




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、1 第第7 7章章 單片機的串行口單片機的串行口 7.1 計算機串行通信基礎(chǔ)計算機串行通信基礎(chǔ) 7.2 80C51的串行口的串行口 7.3 單片機串行口應(yīng)用舉例單片機串行口應(yīng)用舉例 2 7.1 計算機串行通信基礎(chǔ)計算機串行通信基礎(chǔ) n隨著多微機系統(tǒng)的廣泛應(yīng)用和計算機網(wǎng)絡(luò)隨著多微機系統(tǒng)的廣泛應(yīng)用和計算機網(wǎng)絡(luò)技術(shù)的普及,計算機的通信功能愈來愈顯得技術(shù)的普及,計算機的通信功能愈來愈顯得重要。重要。計算機通信是指計算機與外部設(shè)備或計算機通信是指計算機與外部設(shè)備或計算機與計算機之間的信息交換計算機與計算機之間的信息交換。 n通信有通信有并行通信并行通信和和串行通信串行通信兩種方式。在兩種方式。在多微機系
2、統(tǒng)以及現(xiàn)代測控系統(tǒng)中信息的交換多微機系統(tǒng)以及現(xiàn)代測控系統(tǒng)中信息的交換多采用串行通信方式。多采用串行通信方式。n計算機通信計算機通信是將計算機技術(shù)和通信技術(shù)的相結(jié)合,是將計算機技術(shù)和通信技術(shù)的相結(jié)合,完成計算機與外部設(shè)備或計算機與計算機之間的信完成計算機與外部設(shè)備或計算機與計算機之間的信息交換息交換 ??梢???梢苑譃閮纱箢悾翰⑿型ㄐ排c串行通信。分為兩大類:并行通信與串行通信。 n并行通信并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時進行傳送時進行傳送 。并行通信并行通信控制簡單、傳輸速度快;由于傳輸線較多,長距離控制簡單、傳輸速度快;由于傳輸線較多,長距離傳送
3、時成本高且接收方的各位同時接收存在困難。傳送時成本高且接收方的各位同時接收存在困難。 4 串行通信串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個地傳送。串行通信的特點串行通信的特點:傳輸線少,長距離傳送時:傳輸線少,長距離傳送時成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。 5 7.1.1 7.1.1 串行通信的基本概念串行通信的基本概念 一、異步通信與同步通信一、異步通信與同步通信 1、異步通信、異步通信 異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時鐘控制異步通信是指通信的發(fā)送與接收設(shè)備使
4、用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致。和接收設(shè)備的時鐘盡可能一致。 6 異步通信是以字符(構(gòu)成的幀)為異步通信是以字符(構(gòu)成的幀)為單位進行傳輸單位進行傳輸,字符與字符之間的間,字符與字符之間的間隙(時間間隔)是任意的,但每個字隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,符中的各位是以固定的時間傳送的,即即字符之間是異步的字符之間是異步的(字符之間不一(字符之間不一定有定有“位間隔位間隔”的整數(shù)倍的關(guān)系),的整數(shù)倍的關(guān)系),但但同一字符內(nèi)的各位是同步的同一字符內(nèi)的各位是
5、同步的(各位(各位之間的距離均為之間的距離均為“位間隔位間隔”的整數(shù)的整數(shù)倍)。倍)。7 異步通信的數(shù)據(jù)格式異步通信的數(shù)據(jù)格式 :一幀包含內(nèi)容:一幀包含內(nèi)容:起始位(起始位(1 1位,低電平);數(shù)據(jù)位(位,低電平);數(shù)據(jù)位(5 58 8位);位);奇偶校驗位(奇偶校驗位(1 1位);停止位(位);停止位(1 12 2位,高電平)位,高電平)從起始位到停止位結(jié)束的時間周期稱為從起始位到停止位結(jié)束的時間周期稱為1幀。幀。例如:用例如:用ASCII碼編碼傳送,數(shù)據(jù)位為碼編碼傳送,數(shù)據(jù)位為7位,加一個奇位,加一個奇偶校驗位、一個起始位及一個停止位,每幀共偶校驗位、一個起始位及一個停止位,每幀共10位。
6、位。低位高位8 相鄰兩個字符之間的間隔可以是任意長度的,兩個相鄰字相鄰兩個字符之間的間隔可以是任意長度的,兩個相鄰字符之間根據(jù)需要插入任意個高電平的空閑位。符之間根據(jù)需要插入任意個高電平的空閑位。例如例如: : 字符字符A A(ASCIIASCII碼)異步通信的幀格式,設(shè)采用偶校碼)異步通信的幀格式,設(shè)采用偶校驗,驗,1 1位停止位。位停止位。異步通信的特點異步通信的特點:不要求收發(fā)雙方時鐘的嚴(yán)格一致,實現(xiàn):不要求收發(fā)雙方時鐘的嚴(yán)格一致,實現(xiàn)容易,設(shè)備開銷較小,但每個字符要附加容易,設(shè)備開銷較小,但每個字符要附加2 23 3位用于起止位用于起止位,各幀之間還有間隔,因此傳輸效率不高。位,各幀之
7、間還有間隔,因此傳輸效率不高。 0100000101數(shù)據(jù)位數(shù)據(jù)位起始位起始位偶校驗位偶校驗位停止位停止位9 2、同步通信、同步通信 同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步。此時,傳輸數(shù)據(jù)的位之間的距離均使雙方達到完全同步。此時,傳輸數(shù)據(jù)的位之間的距離均為為“位間隔位間隔”的整數(shù)倍,同時傳送的字符間不留間隙,即的整數(shù)倍,同時傳送的字符間不留間隙,即保持位同步保持位同步關(guān)系,關(guān)系,也保持字符同步也保持字符同步關(guān)系。發(fā)送方對接收方關(guān)系。發(fā)送方對接收方的同步可以通過兩種方法實現(xiàn)。的同步可以通過兩種方法實現(xiàn)。 外同步外同步
8、自同步自同步10 面向字符的同步格式面向字符的同步格式 :此時,傳送的數(shù)據(jù)和控制信息都必須由規(guī)定的字符集此時,傳送的數(shù)據(jù)和控制信息都必須由規(guī)定的字符集(如(如ASCII碼)中的字符所組成。圖中幀頭為碼)中的字符所組成。圖中幀頭為1個或個或2個同個同步字符步字符SYN(ASCII碼為碼為16H)。)。SOH為序始字符為序始字符(ASCII碼為碼為01H),表示標(biāo)題的開始,標(biāo)題中包含源地),表示標(biāo)題的開始,標(biāo)題中包含源地址、目標(biāo)地址和路由指示等信息。址、目標(biāo)地址和路由指示等信息。STX為文始字符為文始字符(ASCII碼為碼為02H),表示傳送的數(shù)據(jù)塊開始。數(shù)據(jù)塊是),表示傳送的數(shù)據(jù)塊開始。數(shù)據(jù)塊是
9、傳送的正文內(nèi)容,由多個字符組成。數(shù)據(jù)塊后面是組終傳送的正文內(nèi)容,由多個字符組成。數(shù)據(jù)塊后面是組終字符字符ETB(ASCII碼為碼為17H)或文終字符)或文終字符ETX(ASCII碼碼為為03H)。然后是校驗碼。典型的面向字符的同步規(guī)程)。然后是校驗碼。典型的面向字符的同步規(guī)程如如IBM的二進制同步規(guī)程的二進制同步規(guī)程BSC。 11 面向位的同步格式面向位的同步格式 :此時,將數(shù)據(jù)塊看作數(shù)據(jù)流,并用序列此時,將數(shù)據(jù)塊看作數(shù)據(jù)流,并用序列01111110作為開始和作為開始和結(jié)束標(biāo)志。為了避免在數(shù)據(jù)流中出現(xiàn)序列結(jié)束標(biāo)志。為了避免在數(shù)據(jù)流中出現(xiàn)序列01111110時引起的時引起的混亂,發(fā)送方總是在其發(fā)
10、送的數(shù)據(jù)流中每出現(xiàn)混亂,發(fā)送方總是在其發(fā)送的數(shù)據(jù)流中每出現(xiàn)5個連續(xù)的個連續(xù)的1就就插入一個附加的插入一個附加的0;接收方則每檢測到;接收方則每檢測到5個連續(xù)的個連續(xù)的1并且其后有并且其后有一個一個0時,就刪除該時,就刪除該0。 典型的面向位的同步協(xié)議如國際標(biāo)準(zhǔn)化組織典型的面向位的同步協(xié)議如國際標(biāo)準(zhǔn)化組織ISO的高級數(shù)據(jù)的高級數(shù)據(jù)鏈路控制規(guī)程鏈路控制規(guī)程HDLC和和IBM的同步數(shù)據(jù)鏈路控制規(guī)程的同步數(shù)據(jù)鏈路控制規(guī)程SDLC。 同步通信的特點同步通信的特點是以特定的位組合是以特定的位組合“01111110”作為幀的開始作為幀的開始和結(jié)束標(biāo)志,所傳輸?shù)囊粠瑪?shù)據(jù)可以是任意位。所以傳輸?shù)暮徒Y(jié)束標(biāo)志,所傳
11、輸?shù)囊粠瑪?shù)據(jù)可以是任意位。所以傳輸?shù)男瘦^高,但實現(xiàn)的硬件設(shè)備比異步通信復(fù)雜。效率較高,但實現(xiàn)的硬件設(shè)備比異步通信復(fù)雜。 12 二、串行通信的傳輸方向二、串行通信的傳輸方向 1、單工、單工 單工是指數(shù)據(jù)傳輸僅能沿一個方向,不能實現(xiàn)反向傳輸。單工是指數(shù)據(jù)傳輸僅能沿一個方向,不能實現(xiàn)反向傳輸。 2、半雙工、半雙工 半雙工是指數(shù)據(jù)傳輸可以沿兩個方向,但需要分時進行。半雙工是指數(shù)據(jù)傳輸可以沿兩個方向,但需要分時進行。 3、全雙工、全雙工 全雙工是指數(shù)據(jù)可以同時進行雙向傳輸。全雙工是指數(shù)據(jù)可以同時進行雙向傳輸。 單工 半雙工半雙工 全雙工全雙工13 三、信號的調(diào)制與解調(diào)三、信號的調(diào)制與解調(diào) 利用調(diào)制器(
12、利用調(diào)制器(Modulator)把數(shù)字信號轉(zhuǎn)換成模)把數(shù)字信號轉(zhuǎn)換成模擬信號,然后送到通信線路上去,再由解調(diào)器擬信號,然后送到通信線路上去,再由解調(diào)器(Demodulator)把從通信線路上收到的模擬信)把從通信線路上收到的模擬信號轉(zhuǎn)換成數(shù)字信號。由于通信是雙向的,調(diào)制器號轉(zhuǎn)換成數(shù)字信號。由于通信是雙向的,調(diào)制器和解調(diào)器合并在一個裝置中,這就是調(diào)制解調(diào)器和解調(diào)器合并在一個裝置中,這就是調(diào)制解調(diào)器MODEM。 14 四、串行通信的錯誤校驗四、串行通信的錯誤校驗 1、奇偶校驗、奇偶校驗 在發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨的在發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨的1位為奇偶校驗位(位為奇偶校驗位(1或或0)。奇)。奇校驗時
13、,數(shù)據(jù)中校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位的個數(shù)與校驗位“1”的個數(shù)之和應(yīng)為奇的個數(shù)之和應(yīng)為奇數(shù);偶校驗時,數(shù)據(jù)中數(shù);偶校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位的個數(shù)與校驗位“1”的個數(shù)之和的個數(shù)之和應(yīng)為偶數(shù)。接收字符時,對應(yīng)為偶數(shù)。接收字符時,對“1”的個數(shù)進行校驗,若發(fā)現(xiàn)不的個數(shù)進行校驗,若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯。一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯。 2、代碼和校驗、代碼和校驗 代碼和校驗是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),代碼和校驗是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個字節(jié)的校驗字符(校驗和)附加到數(shù)據(jù)塊末尾。接產(chǎn)生一個字節(jié)的校驗字符(校驗和)附加到數(shù)據(jù)
14、塊末尾。接收方接收數(shù)據(jù)同時對數(shù)據(jù)塊(除校驗字節(jié)外)求和(或各字收方接收數(shù)據(jù)同時對數(shù)據(jù)塊(除校驗字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的節(jié)異或),將所得的結(jié)果與發(fā)送方的“校驗和校驗和”進行比較,進行比較,相符則無差錯,否則即認(rèn)為傳送過程中出現(xiàn)了差錯。相符則無差錯,否則即認(rèn)為傳送過程中出現(xiàn)了差錯。 3、循環(huán)冗余校驗、循環(huán)冗余校驗 這種校驗是通過某種數(shù)學(xué)運算實現(xiàn)有效信息與校驗位之間的這種校驗是通過某種數(shù)學(xué)運算實現(xiàn)有效信息與校驗位之間的循環(huán)校驗,常用于對磁盤信息的傳輸、存儲區(qū)的完整性校驗循環(huán)校驗,常用于對磁盤信息的傳輸、存儲區(qū)的完整性校驗等。這種校驗方法糾錯能力強,廣泛應(yīng)用于同步通信中。等
15、。這種校驗方法糾錯能力強,廣泛應(yīng)用于同步通信中。15 五、傳輸速率與傳輸距離五、傳輸速率與傳輸距離 1、傳輸速率、傳輸速率 比特率比特率是是每秒鐘傳輸二進制代碼的位數(shù)每秒鐘傳輸二進制代碼的位數(shù),單位是:,單位是:位秒(位秒(bps)。如每秒鐘傳送)。如每秒鐘傳送240個字符,而每個字符,而每個字符格式包含個字符格式包含10位位(1個起始位、個起始位、1個停止位、個停止位、8個數(shù)據(jù)位個數(shù)據(jù)位),這時的比特率為:,這時的比特率為: 10位位240個個/秒秒 = 2400 bps 波特率波特率表示表示每秒鐘調(diào)制信號變化的次數(shù)每秒鐘調(diào)制信號變化的次數(shù),單位是:,單位是:波特(波特(Baud)。波特率和
16、比特率不總是相同的,)。波特率和比特率不總是相同的,對于將數(shù)字信號對于將數(shù)字信號1或或0直接用兩種不同電壓表示的直接用兩種不同電壓表示的所謂基帶傳輸,比特率和波特率是相同的。所謂基帶傳輸,比特率和波特率是相同的。所以,所以,我們也經(jīng)常用波特率表示數(shù)據(jù)的傳輸速率。我們也經(jīng)常用波特率表示數(shù)據(jù)的傳輸速率。16 2、傳輸距離與傳輸速率的關(guān)系、傳輸距離與傳輸速率的關(guān)系 串行接口或終端直接傳送串行信息位流的串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性最大距離與傳輸速率及傳輸線的電氣特性有關(guān)。當(dāng)傳輸線使用每有關(guān)。當(dāng)傳輸線使用每0.3m(約(約1英尺)有英尺)有50PF電容的非平衡
17、屏蔽雙絞線時,傳輸距電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小。當(dāng)比特率超離隨傳輸速率的增加而減小。當(dāng)比特率超過過1000 bps 時,最大傳輸距離迅速下降,時,最大傳輸距離迅速下降,如如9600 bps 時最大距離下降到只有時最大距離下降到只有76m(約(約250英尺)。英尺)。17 7.1.2 7.1.2 串行通信接口標(biāo)準(zhǔn)串行通信接口標(biāo)準(zhǔn) 一、一、RS-232CRS-232C接口接口 RS-232C是是EIA(美國電子工業(yè)協(xié)會)(美國電子工業(yè)協(xié)會)1969年修訂年修訂RS-232C標(biāo)準(zhǔn)。標(biāo)準(zhǔn)。RS-232C定義了數(shù)據(jù)終端設(shè)備(定義了數(shù)據(jù)終端設(shè)備(DTE)與數(shù)據(jù)通信設(shè))與數(shù)據(jù)通
18、信設(shè)備(備(DCE)之間的物理接口標(biāo)準(zhǔn)。)之間的物理接口標(biāo)準(zhǔn)。 1、機械特性、機械特性 RS-232C接口規(guī)定使用接口規(guī)定使用25針連接器,連接器的尺寸及每個插針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。(陽頭)針的排列位置都有明確的定義。(陽頭) 18 2、功能特性 19 4、過程特性、過程特性 過程特性規(guī)定了信號之間的時序關(guān)系,以便正確地過程特性規(guī)定了信號之間的時序關(guān)系,以便正確地接收和發(fā)送數(shù)據(jù)接收和發(fā)送數(shù)據(jù) 。遠程通信連接遠程通信連接 20 近程通信連接近程通信連接 21 5、RS-232C電平與電平與TTL電平轉(zhuǎn)換驅(qū)動電路電平轉(zhuǎn)換驅(qū)動電路22 6、采用、采用RS-232C
19、接口存在的問題接口存在的問題 1、傳輸距離短,傳輸速率低、傳輸距離短,傳輸速率低 RS-232C總線標(biāo)準(zhǔn)受電容允許值的約束,使用時傳輸距離總線標(biāo)準(zhǔn)受電容允許值的約束,使用時傳輸距離一般不要超過一般不要超過15米(線路條件好時也不超過幾十米)。最高傳米(線路條件好時也不超過幾十米)。最高傳送速率為送速率為20Kbps。 2、有電平偏移、有電平偏移 RS-232C總線標(biāo)準(zhǔn)要求收發(fā)雙方共地。通信距離較大時,總線標(biāo)準(zhǔn)要求收發(fā)雙方共地。通信距離較大時,收發(fā)雙方的地電位差別較大,在信號地上將有比較大的地電流收發(fā)雙方的地電位差別較大,在信號地上將有比較大的地電流并產(chǎn)生壓降。并產(chǎn)生壓降。 3、抗干擾能力差、抗
20、干擾能力差 RS-232C在電平轉(zhuǎn)換時采用單端輸入輸出,在傳輸過程中在電平轉(zhuǎn)換時采用單端輸入輸出,在傳輸過程中當(dāng)干擾和噪聲混在正常的信號中。為了提高信噪比,當(dāng)干擾和噪聲混在正常的信號中。為了提高信噪比,RS-232C總線標(biāo)準(zhǔn)不得不采用比較大的電壓擺幅??偩€標(biāo)準(zhǔn)不得不采用比較大的電壓擺幅。23 二、二、RS-422A接口接口 RS-422A是是平衡型電壓數(shù)字接口電路平衡型電壓數(shù)字接口電路的電氣標(biāo)準(zhǔn)的電氣標(biāo)準(zhǔn) ,輸出驅(qū)動器為雙端平,輸出驅(qū)動器為雙端平衡驅(qū)動器。如果其中一條線為邏輯衡驅(qū)動器。如果其中一條線為邏輯“1”狀態(tài),另一條線就為邏輯狀態(tài),另一條線就為邏輯“0”,比采用單端不平衡驅(qū)動對電壓的放大
21、倍數(shù)大一倍。比采用單端不平衡驅(qū)動對電壓的放大倍數(shù)大一倍。 差分電路差分電路能從地線干擾中拾取有效信號,差分接收器可以分辨能從地線干擾中拾取有效信號,差分接收器可以分辨200mV以以上電位差。若傳輸過程中混入了干擾和噪聲,由于差分放大器的作用,上電位差。若傳輸過程中混入了干擾和噪聲,由于差分放大器的作用,可使干擾和噪聲相互抵消。因此可以避免或大大減弱地線干擾和電磁干可使干擾和噪聲相互抵消。因此可以避免或大大減弱地線干擾和電磁干擾的影響。擾的影響。 RS-422A傳輸速率(傳輸速率(90Kbps)時,傳輸距離可達)時,傳輸距離可達1200米米。 24 三、三、RS-485接口接口 RS-485是是
22、RS-422A的變型:的變型:RS-422A用于全雙工,而用于全雙工,而RS-485則用于半雙工。則用于半雙工。RS-485是一種多發(fā)送器標(biāo)準(zhǔn),在通信線是一種多發(fā)送器標(biāo)準(zhǔn),在通信線路上最多可以使用路上最多可以使用32 對差分驅(qū)動器對差分驅(qū)動器/接收器。如果在一個網(wǎng)絡(luò)接收器。如果在一個網(wǎng)絡(luò)中連接的設(shè)備超過中連接的設(shè)備超過32個,還可以使用中繼器。個,還可以使用中繼器。 RS-485的信號傳輸采用兩線間的電壓來表示邏輯的信號傳輸采用兩線間的電壓來表示邏輯1和邏輯和邏輯0。由于發(fā)送方需要由于發(fā)送方需要兩根傳輸線兩根傳輸線,接收方也需要兩根傳輸線。傳,接收方也需要兩根傳輸線。傳輸線采用差動信道,所以它
23、的干擾抑制性極好,又因為它的輸線采用差動信道,所以它的干擾抑制性極好,又因為它的阻抗低,無接地問題,所以阻抗低,無接地問題,所以傳輸距離可達傳輸距離可達1200米米,傳輸速率,傳輸速率可達可達1Mbps。25 RS-485是一點對多點的通信接口,一是一點對多點的通信接口,一般采用雙絞線的結(jié)構(gòu)。普通的般采用雙絞線的結(jié)構(gòu)。普通的PC機一般不機一般不帶帶RS485接口,因此要使用接口,因此要使用RS-232C/RS-485轉(zhuǎn)換器。對于單片機可以通過芯片轉(zhuǎn)換器。對于單片機可以通過芯片MAX485來完成來完成TTL/RS-485的電平轉(zhuǎn)換。的電平轉(zhuǎn)換。在計算機和單片機組成的在計算機和單片機組成的RS-4
24、85通信系統(tǒng)通信系統(tǒng)中,下位機由單片機系統(tǒng)組成,主要完成工中,下位機由單片機系統(tǒng)組成,主要完成工業(yè)現(xiàn)場信號的采集和控制,上位機為普通的業(yè)現(xiàn)場信號的采集和控制,上位機為普通的PC機,負(fù)責(zé)監(jiān)視下位機的運行狀態(tài),并對機,負(fù)責(zé)監(jiān)視下位機的運行狀態(tài),并對其狀態(tài)信息進行集中處理,以圖文方式顯示其狀態(tài)信息進行集中處理,以圖文方式顯示下位機的工作狀態(tài)以及工業(yè)現(xiàn)場被控設(shè)備的下位機的工作狀態(tài)以及工業(yè)現(xiàn)場被控設(shè)備的工作狀況。系統(tǒng)中各節(jié)點(包括上位機)的工作狀況。系統(tǒng)中各節(jié)點(包括上位機)的識別是通過設(shè)置不同的站地址來實現(xiàn)的。識別是通過設(shè)置不同的站地址來實現(xiàn)的。26 7.2 80C51的串行口的串行口 8.2.1 8
25、.2.1 80C51串行口的結(jié)構(gòu)串行口的結(jié)構(gòu) (P3.1)(P3.0)27 有兩個物理上獨立的接收、發(fā)送緩沖器有兩個物理上獨立的接收、發(fā)送緩沖器SBUFSBUF,它們占用同,它們占用同一地址一地址99H 99H ;一個用來發(fā)送,一個用來接收。發(fā)送緩沖器只;一個用來發(fā)送,一個用來接收。發(fā)送緩沖器只能寫不能讀出,接收緩沖器只能讀出不能寫入。能寫不能讀出,接收緩沖器只能讀出不能寫入。在進行異步通信時,數(shù)據(jù)的發(fā)送和接收分別在各自的時鐘在進行異步通信時,數(shù)據(jù)的發(fā)送和接收分別在各自的時鐘(TCLKTCLK和和RCLKRCLK)控制下進行,但必須與字符位數(shù)的波特率保)控制下進行,但必須與字符位數(shù)的波特率保持
26、一致。持一致。MCS-51MCS-51串行口的發(fā)送和接收時鐘可由兩種方式產(chǎn)生:串行口的發(fā)送和接收時鐘可由兩種方式產(chǎn)生:一種:由主機頻率一種:由主機頻率f fOSCOSC經(jīng)分頻后產(chǎn)生。經(jīng)分頻后產(chǎn)生。一種:是由內(nèi)部定時器一種:是由內(nèi)部定時器T1T1或或T2T2的溢出率經(jīng)的溢出率經(jīng)1616分頻后提供。分頻后提供。28 串行口的發(fā)送過程由指令串行口的發(fā)送過程由指令MOV SBUF,AMOV SBUF,A啟動,即啟動,即CPUCPU由一由一條寫發(fā)送緩沖器的指令把數(shù)據(jù)(字符)寫入串行口的條寫發(fā)送緩沖器的指令把數(shù)據(jù)(字符)寫入串行口的發(fā)送緩沖器發(fā)送緩沖器SBUFSBUF中;再由硬件電路自動在字符的始、中;再
27、由硬件電路自動在字符的始、末加上起始位(低電平)、停止位(高電平)及其它末加上起始位(低電平)、停止位(高電平)及其它控制位(奇偶位);然后在移位脈沖的控制下,低位控制位(奇偶位);然后在移位脈沖的控制下,低位在前,高位在后,從在前,高位在后,從TXDTXD端(方式端(方式0 0除外)一位位地向除外)一位位地向外發(fā)送。外發(fā)送。串行口的接收與否受制于允許接收位串行口的接收與否受制于允許接收位RENREN的狀態(tài),當(dāng)?shù)臓顟B(tài),當(dāng)RENREN被軟件置被軟件置“1”1”后,允許接收器接收。接收端后,允許接收器接收。接收端RXDRXD一一位位接收數(shù)據(jù),直到收到一個完整的字符數(shù)據(jù)后,控位位接收數(shù)據(jù),直到收到一
28、個完整的字符數(shù)據(jù)后,控制電路進行最后一次移位,自動去掉起始位,使接收制電路進行最后一次移位,自動去掉起始位,使接收中斷標(biāo)志位中斷標(biāo)志位RIRI置置“1”,1”,并向并向CPUCPU申請中斷。申請中斷。CPUCPU響應(yīng)中響應(yīng)中斷,用一條指令斷,用一條指令MOV A,SBUFMOV A,SBUF把接收緩沖器把接收緩沖器SBUFSBUF的內(nèi)容的內(nèi)容讀入累加器讀入累加器A A。29 SCON 是一個特殊功能寄存器,用以設(shè)定串行口是一個特殊功能寄存器,用以設(shè)定串行口的工作方式、接收的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志:發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志: 7.2.2 7.2.2 80C51串行口的控制寄存器
29、串行口的控制寄存器 SM0和和SM1為工作方式選擇位,可選擇四種工作方式:為工作方式選擇位,可選擇四種工作方式: 30 SM2,多機通信控制位,多機通信控制位,主要用于方式,主要用于方式2和方式和方式3。當(dāng)當(dāng)接收機的接收機的SM2=1時可以利用收到的時可以利用收到的RB8來控制是否來控制是否激活激活RI(RB80時不激活時不激活RI,收到的信息丟棄;,收到的信息丟棄;RB81時收到的數(shù)據(jù)進入時收到的數(shù)據(jù)進入SBUF,并激活,并激活RI,進而在,進而在中斷服務(wù)中將數(shù)據(jù)從中斷服務(wù)中將數(shù)據(jù)從SBUF讀走)。讀走)。當(dāng)當(dāng)SM2=0時,不時,不論收到的論收到的RB8為為0和和1,均可以使收到的數(shù)據(jù)進入,
30、均可以使收到的數(shù)據(jù)進入SBUF,并激活,并激活RI(即此時(即此時RB8不具有控制不具有控制RI激活的激活的功能)。通過控制功能)。通過控制SM2,可以實現(xiàn)多機通信。,可以實現(xiàn)多機通信。 在方式在方式0時,時,SM2必須是必須是0。在方式。在方式1時,若時,若SM2=1,則只有接收到有效停止位時,則只有接收到有效停止位時,RI才置才置1。 REN,允許串行接收位,允許串行接收位。由軟件置。由軟件置REN=1,則啟動,則啟動串行口接收數(shù)據(jù);若軟件置串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。,則禁止接收。31 TB8,在方式,在方式2或方式或方式3中,是發(fā)送數(shù)據(jù)的第九位中,是發(fā)送數(shù)據(jù)的第九位
31、,可以用,可以用軟件規(guī)定其作用。可以用作數(shù)據(jù)的奇偶校驗位,或在多機軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗位,或在多機通信中,作為地址幀通信中,作為地址幀/數(shù)據(jù)幀的標(biāo)志位。數(shù)據(jù)幀的標(biāo)志位。 在方式在方式0和方式和方式1中,該位未用。中,該位未用。 RB8,在方式,在方式2或方式或方式3中,是接收到數(shù)據(jù)的第九位中,是接收到數(shù)據(jù)的第九位,作,作為奇偶校驗位或地址幀為奇偶校驗位或地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式數(shù)據(jù)幀的標(biāo)志位。在方式1時,若時,若SM2=0,則,則RB8是接收到的停止位。是接收到的停止位。 TI,發(fā)送中斷標(biāo)志位,發(fā)送中斷標(biāo)志位。在方式。在方式0時,當(dāng)串行發(fā)送第時,當(dāng)串行發(fā)送第8位數(shù)位數(shù)據(jù)
32、結(jié)束時,或在其它方式,串行發(fā)送停止位的開始時,由據(jù)結(jié)束時,或在其它方式,串行發(fā)送停止位的開始時,由內(nèi)部硬件使內(nèi)部硬件使TI置置1,向,向CPU發(fā)中斷申請。在中斷服務(wù)程序中,發(fā)中斷申請。在中斷服務(wù)程序中,必須用軟件將其清必須用軟件將其清0,取消此中斷申請。,取消此中斷申請。 RI,接收中斷標(biāo)志位,接收中斷標(biāo)志位。在方式。在方式0時,當(dāng)串行接收第時,當(dāng)串行接收第8位數(shù)位數(shù)據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時,由據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時,由內(nèi)部硬件使內(nèi)部硬件使RI置置1,向,向CPU發(fā)中斷申請。也必須在中斷服務(wù)發(fā)中斷申請。也必須在中斷服務(wù)程序中,用軟件將其清程序中,用
33、軟件將其清0,取消此中斷申請。,取消此中斷申請。32 特殊功能寄存器特殊功能寄存器PCONPCON中只有一位中只有一位SMODSMOD與串行口工與串行口工作有關(guān)作有關(guān) ,無位尋址功能:,無位尋址功能: SMOD(PCON.7) 波特率倍增位。在串行口方式波特率倍增位。在串行口方式1、方、方式式2、方式、方式3時,波特率與時,波特率與SMOD有關(guān),當(dāng)有關(guān),當(dāng)SMOD=1時,波時,波特率提高一倍。復(fù)位時,特率提高一倍。復(fù)位時,SMOD=0。33 7.2.3 7.2.3 80C51串行口的工作方式串行口的工作方式 一、方式一、方式0 方式方式0時,串行口為同步移位寄存器的輸入輸出方式。主要用時,串行
34、口為同步移位寄存器的輸入輸出方式。主要用于擴展并行輸入或輸出口。數(shù)據(jù)由于擴展并行輸入或輸出口。數(shù)據(jù)由RXD(P3.0)引腳輸入或)引腳輸入或輸出,同步移位脈沖由輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收)引腳輸出。發(fā)送和接收均為均為8位數(shù)據(jù),低位在先,高位在后。波特率固定為位數(shù)據(jù),低位在先,高位在后。波特率固定為fosc/12。 1、方式、方式0輸出輸出發(fā)送操作在發(fā)送操作在TITI0 0的情況下開始,由指令的情況下開始,由指令MOV SBUF,AMOV SBUF,A啟動,啟動,8 8位數(shù)據(jù)發(fā)送完后,由硬件自動置位數(shù)據(jù)發(fā)送完后,由硬件自動置TI=1,TI=1,并向并向CPUCPU
35、發(fā)出中斷請求。發(fā)出中斷請求。34 2、方式、方式0輸入輸入滿足滿足REN=1REN=1和和RI=0RI=0的條件下,串行口處于方式的條件下,串行口處于方式0 0輸入。輸入。當(dāng)接收完當(dāng)接收完8 8位數(shù)據(jù)后,通過指令位數(shù)據(jù)后,通過指令MOV A,SBUFMOV A,SBUF將接收的數(shù)據(jù)將接收的數(shù)據(jù)傳送給累加器傳送給累加器A A。在再次接收之前,必須用軟件將。在再次接收之前,必須用軟件將RIRI清清0 0。35 8031的串行口外接串行輸入并行輸出移位寄存器的串行口外接串行輸入并行輸出移位寄存器74LS164,并行輸入串行輸出移位寄存器并行輸入串行輸出移位寄存器74LS165。工作于方式工作于方式0
36、的接收和發(fā)送電路的接收和發(fā)送電路36 二、方式二、方式1 方式方式1是是10位數(shù)據(jù)的異步通信口。位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中1位起始位,位起始位,8位數(shù)據(jù)位,位數(shù)據(jù)位,1位停止位。位停止位。 1、方式、方式1輸出輸出在在TITI0 0的條件下,由指令的條件下,由指令MOV SBUF,AMOV SBUF,A啟動,發(fā)送電路自動啟動,發(fā)送電路自動在在8 8位數(shù)據(jù)前后加一位起始、停止位,發(fā)送完成后置位數(shù)據(jù)前后加一位起始、停止位,發(fā)送完成后置TI=1TI=1。37 2、方式
37、、方式1輸入輸入 用軟件置用軟件置REN為為1時,接收器以所選擇波特率的時,接收器以所選擇波特率的16倍速率倍速率采樣采樣RXD引腳電平,檢測到引腳電平,檢測到RXD引腳輸入電平發(fā)生負(fù)跳變時,引腳輸入電平發(fā)生負(fù)跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數(shù)據(jù)從輸入移位寄存器這一幀信息的其余位。接收過程中,數(shù)據(jù)從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進行最后一次移位。當(dāng)進行最后一次移位。當(dāng)RI=0,且,且SM2=0(或
38、接收到的停止位(或接收到的停止位為為1)時,將接收到的)時,將接收到的9位數(shù)據(jù)的前位數(shù)據(jù)的前8位數(shù)據(jù)裝入接收位數(shù)據(jù)裝入接收SBUF,第第9位(停止位)進入位(停止位)進入RB8,并置,并置RI=1,向,向CPU請求中斷。請求中斷。38 三、方式三、方式2和方式和方式3 方式方式2或方式或方式3時為時為11位數(shù)據(jù)的異步通信口。位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送為數(shù)據(jù)發(fā)送 引腳,引腳,RXD為數(shù)據(jù)接收引腳為數(shù)據(jù)接收引腳 。 方式方式2和方式和方式3時起始位時起始位1位,數(shù)據(jù)位,數(shù)據(jù)9位(含位(含1位附加的第位附加的第9位,位,發(fā)送時為發(fā)送時為SCON中的中的TB8,接收時為,接收時為RB8),停
39、止位),停止位1位,一位,一幀數(shù)據(jù)為幀數(shù)據(jù)為11位。方式位。方式2的波特率固定為晶振頻率的的波特率固定為晶振頻率的1/64或或1/32,方式方式3的波特率由定時器的波特率由定時器T1的溢出率決定。的溢出率決定。 39 1、方式、方式2和方式和方式3輸出輸出發(fā)送開始時,先把起始位發(fā)送開始時,先把起始位0輸出到輸出到TXD引腳,然后發(fā)送移引腳,然后發(fā)送移位寄存器的輸出位(位寄存器的輸出位(D0)到)到TXD引腳。每一個移位脈沖引腳。每一個移位脈沖都使輸出移位寄存器的各位右移一位,并由都使輸出移位寄存器的各位右移一位,并由TXD引腳輸出。引腳輸出。 第一次移位時,停止位第一次移位時,停止位“1”移入
40、輸出移位寄存器的第移入輸出移位寄存器的第9位位上上 ,以后每次移位,左邊都移入,以后每次移位,左邊都移入0。當(dāng)停止位移至輸出位。當(dāng)停止位移至輸出位時,左邊其余位全為時,左邊其余位全為0,檢測電路檢測到這一條件時,使,檢測電路檢測到這一條件時,使控制電路進行最后一次移位,并置控制電路進行最后一次移位,并置TI=1,向,向CPU請求中請求中斷。斷。40 2、方式、方式2和方式和方式3輸入輸入 接收時,數(shù)據(jù)從右邊移入輸入移位寄存器,在起接收時,數(shù)據(jù)從右邊移入輸入移位寄存器,在起始位始位0移到最左邊時,控制電路進行最后一次移位。移到最左邊時,控制電路進行最后一次移位。當(dāng)當(dāng)RI=0,且,且SM2=0(或
41、接收到的第(或接收到的第9位數(shù)據(jù)為位數(shù)據(jù)為1)時,)時,接收到的數(shù)據(jù)裝入接收緩沖器接收到的數(shù)據(jù)裝入接收緩沖器SBUF和和RB8(接收數(shù)(接收數(shù)據(jù)的第據(jù)的第9位),置位),置RI=1,向,向CPU請求中斷。如果條件請求中斷。如果條件不滿足,則數(shù)據(jù)丟失,且不置位不滿足,則數(shù)據(jù)丟失,且不置位RI,繼續(xù)搜索,繼續(xù)搜索RXD引腳的負(fù)跳變。引腳的負(fù)跳變。41 四、波特率的計算四、波特率的計算 在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的速率在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的速率要有約定。通過軟件可對單片機串行口編程為四種要有約定。通過軟件可對單片機串行口編程為四種工作方式,其中方式工作方式,其中方式0和
42、方式和方式2的波特率是固定的,的波特率是固定的,而方式而方式1和方式和方式3的波特率是可變的,由定時器的波特率是可變的,由定時器T1的溢出率來決定。的溢出率來決定。 串行口的四種工作方式對應(yīng)三種波特率。由于輸入串行口的四種工作方式對應(yīng)三種波特率。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不相同。計算公式也不相同。 方式方式0的波特率的波特率 = fosc/12 方式方式2的波特率的波特率 =(2SMOD/64) fosc 方式方式1的波特率的波特率 =(2SMOD/32)(T1溢出率)溢出率) 方式方式3的波特率的波特率 =(2S
43、MOD/32)(T1溢出率)溢出率)42 定時器定時器T1T1溢出率的計算公式:溢出率的計算公式: T1溢出率溢出率 式中,式中,K K為定時器為定時器T1T1的位數(shù),它和定時器的位數(shù),它和定時器T1T1的設(shè)定方式有的設(shè)定方式有關(guān):關(guān):T1T1為方式為方式0 0,K=13K=13T1T1為方式為方式1 1,K=16K=16T1T1為方式為方式2 2或或3 3,K=8K=8)21(12fkosc初初值值43 當(dāng)當(dāng)T1作為波特率發(fā)生器時,最典型的用法是使作為波特率發(fā)生器時,最典型的用法是使T1工作在自動再裝入的工作在自動再裝入的8位定時器方式(即方式位定時器方式(即方式2,且,且TCON的的TR1
44、=1,以啟動定時器)。這時溢,以啟動定時器)。這時溢出率取決于出率取決于TH1中的計數(shù)值。中的計數(shù)值。 T1 溢出率溢出率 = fosc /12256 (TH1) 在單片機的應(yīng)用中,常用的晶振頻率為:在單片機的應(yīng)用中,常用的晶振頻率為:12MHz和和11.0592MHz。所以,。所以,選用的波特率也相對固定。常用的串行口波特率以及各參數(shù)的關(guān)系如表選用的波特率也相對固定。常用的串行口波特率以及各參數(shù)的關(guān)系如表所示。所示。44 串行口之前,應(yīng)對其進行初始化,主要是設(shè)串行口之前,應(yīng)對其進行初始化,主要是設(shè)置產(chǎn)生波特率的定時器置產(chǎn)生波特率的定時器1、串行口控制和中、串行口控制和中斷控制。具體步驟如下:
45、斷控制。具體步驟如下: n確定確定T1的工作方式(編程的工作方式(編程TMOD寄存器);寄存器); n計算計算T1的初值,裝載的初值,裝載TH1、TL1; n啟動啟動T1(編程(編程TCON中的中的TR1位);位); n確定串行口控制(編程確定串行口控制(編程SCON寄存器);寄存器); 串行口在中斷方式工作時,要進行中斷設(shè)置串行口在中斷方式工作時,要進行中斷設(shè)置(編程(編程IE、IP寄存器)。寄存器)。45 串行口發(fā)送程序串行口發(fā)送程序?qū)⑵瑑?nèi)將片內(nèi)RAM40H4FH中的數(shù)據(jù)串行發(fā)送,串行口設(shè)定為工作方式中的數(shù)據(jù)串行發(fā)送,串行口設(shè)定為工作方式2,TB8作奇偶校驗位。在寫入發(fā)送作奇偶校驗位。在寫
46、入發(fā)送SBUF之前,先將數(shù)據(jù)的奇偶位之前,先將數(shù)據(jù)的奇偶位P寫入寫入TB8,第,第9位數(shù)據(jù)作奇偶校驗位用。位數(shù)據(jù)作奇偶校驗位用。ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV SCON,#80H ;方式設(shè)定方式設(shè)定 MOV PCON,#80H ;取波特率為;取波特率為fosc/32 MOV R0,#40H ;首地址;首地址40H送送R0 MOV R7,#10H ;數(shù)據(jù)長度送;數(shù)據(jù)長度送R7 LOOP:MOV A,R0 ;取數(shù)據(jù)送;取數(shù)據(jù)送A MOV C,PSW.0 ;P寫入寫入TB8 MOV TB8,C MOV SBUF,A ;啟動發(fā)送;啟動發(fā)送 WAIT: J
47、BC TI,NEXT ;判斷發(fā)送中斷標(biāo)志;判斷發(fā)送中斷標(biāo)志TI SJMP WAIT NEXT: INC R0 DJNZ R7,LOOP RET46 串行口接收程序串行口接收程序?qū)⒔邮盏膶⒔邮盏?6個字節(jié)數(shù)據(jù)送片內(nèi)個字節(jié)數(shù)據(jù)送片內(nèi)RAM40H4FH單元中。設(shè)串行單元中。設(shè)串行口以方式口以方式3狀態(tài)工作,波特率為狀態(tài)工作,波特率為2400。T1用作波特率發(fā)生器,用作波特率發(fā)生器,工作于方式工作于方式2,SMOD=0,計數(shù)常數(shù)為計數(shù)常數(shù)為F4H,見表,見表2 REV: MOV TMOD,#20H;T1方式方式2,定時模式,定時模式 MOV TH1,#F4H ;裝入初值;裝入初值 MOV TL1,#F
48、4H SETB TR1 ;啟動;啟動T1 MOV R0,#40H ;R0置地址初值置地址初值 MOV R7,#10H ;數(shù)據(jù)長度至;數(shù)據(jù)長度至R7 MOV PCON,#00H ;置;置SMOD0 MOV SCON,#BOH ;串行口編程方式;串行口編程方式3接收接收 47 WAIT:JBC RI,PR ;等待接收到數(shù)據(jù);等待接收到數(shù)據(jù) SJMP WAIT PR: MOV A,SBUF ;奇偶校驗位判別:;奇偶校驗位判別:RB8=1? JNB PSW.0,PNP JNB RB8,ERR SJMP RIGHT PNP:JB RB8,PER RIGHT: MOV R0, A ;數(shù)據(jù)至緩沖器數(shù)據(jù)至緩沖
49、器 INC R0 DJNZ R7,WAIT ;判斷數(shù)據(jù)塊接收完否?;判斷數(shù)據(jù)塊接收完否? CLR PSW.5 ;正確接收;正確接收16個字節(jié)置標(biāo)志位個字節(jié)置標(biāo)志位F0=0 RET ERR:SETB PSW.5 ;置奇校驗出錯標(biāo)志置奇校驗出錯標(biāo)志F0=1 RET48 7.3 單片機串行口應(yīng)用舉例單片機串行口應(yīng)用舉例 在計算機分布式測控系統(tǒng)中,經(jīng)常要利用在計算機分布式測控系統(tǒng)中,經(jīng)常要利用串行通信方式進行數(shù)據(jù)傳輸。串行通信方式進行數(shù)據(jù)傳輸。80C51單片機的單片機的串行口為計算機間的通信提供了極為便利的條串行口為計算機間的通信提供了極為便利的條件。利用單片機的串行口還可以方便地擴展鍵件。利用單片機
50、的串行口還可以方便地擴展鍵盤和顯示器,對于簡單的應(yīng)用非常便利。這里盤和顯示器,對于簡單的應(yīng)用非常便利。這里僅介紹單片機串行口在通信方面的應(yīng)用,關(guān)于僅介紹單片機串行口在通信方面的應(yīng)用,關(guān)于鍵盤和顯示器的擴展將在下一章介紹。鍵盤和顯示器的擴展將在下一章介紹。49 7.3.1 7.3.1 單片機與單片機的通信單片機與單片機的通信 一、點對點的通信一、點對點的通信 1、硬件連接、硬件連接 50 二、應(yīng)用程序二、應(yīng)用程序 51 設(shè)設(shè)1號機是發(fā)送方,號機是發(fā)送方,2號機是接收方。當(dāng)號機是接收方。當(dāng)1號機發(fā)送時,先發(fā)送號機發(fā)送時,先發(fā)送一個一個“E1”聯(lián)絡(luò)信號,聯(lián)絡(luò)信號,2號機收到后回答一個號機收到后回答一
51、個“E2”應(yīng)答信號,應(yīng)答信號,表示同意接收。當(dāng)表示同意接收。當(dāng)1號機收到應(yīng)答信號號機收到應(yīng)答信號“E2”后,開始發(fā)送數(shù)后,開始發(fā)送數(shù)據(jù),每發(fā)送一個數(shù)據(jù)字節(jié)都要計算據(jù),每發(fā)送一個數(shù)據(jù)字節(jié)都要計算“校驗和校驗和”,假定數(shù)據(jù)塊長,假定數(shù)據(jù)塊長度為度為16個字節(jié),起始地址為個字節(jié),起始地址為40H,一個數(shù)據(jù)塊發(fā)送完畢后立即,一個數(shù)據(jù)塊發(fā)送完畢后立即發(fā)送發(fā)送“校驗和校驗和”。2號機接收數(shù)據(jù)并轉(zhuǎn)存到數(shù)據(jù)緩沖區(qū),起始號機接收數(shù)據(jù)并轉(zhuǎn)存到數(shù)據(jù)緩沖區(qū),起始地址也為地址也為40H,每接收到一個數(shù)據(jù)字節(jié)便計算一次,每接收到一個數(shù)據(jù)字節(jié)便計算一次“校驗和校驗和”,當(dāng)收到一個數(shù)據(jù)塊后,再接收當(dāng)收到一個數(shù)據(jù)塊后,再接收1
52、號機發(fā)來的號機發(fā)來的“校驗和校驗和”,并將,并將它與它與2號機求出的校驗和進行比較。若兩者相等,說明接收正號機求出的校驗和進行比較。若兩者相等,說明接收正確,確,2號機回答號機回答00H;若兩者不相等,說明接收不正確,;若兩者不相等,說明接收不正確,2號機號機回答回答0FFH,請求重發(fā)。,請求重發(fā)。1號機接到號機接到00H后結(jié)束發(fā)送。若收到的后結(jié)束發(fā)送。若收到的答復(fù)非零,則重新發(fā)送數(shù)據(jù)一次。雙方約定采用串行口方式答復(fù)非零,則重新發(fā)送數(shù)據(jù)一次。雙方約定采用串行口方式1進行通信,一幀信息為進行通信,一幀信息為10位,其中有位,其中有1個起始位、個起始位、8個數(shù)據(jù)位個數(shù)據(jù)位和一個停止位;波特率為和一
53、個停止位;波特率為2400波特,波特,T1工作在定時器方式工作在定時器方式2,振蕩頻率選用振蕩頻率選用11.0592MHZ,查表可得,查表可得TH1=TL1=0F4H,PCON寄存器的寄存器的SMOD位為位為0。 52 發(fā)送程序清單如下:發(fā)送程序清單如下: ASTART:CLR EA MOV TMOD,#20H ;定時器;定時器1置為方式置為方式2 MOV TH1,#0F4H ;裝載定時器初值,波特率;裝載定時器初值,波特率2400 MOV TL1,#0F4H MOV PCON,#00H SETB TR1 ;啟動定時器;啟動定時器 MOV SCON,#50H ;設(shè)定串口方式;設(shè)定串口方式1,且
54、準(zhǔn)備接收應(yīng)答信號,且準(zhǔn)備接收應(yīng)答信號 ALOOP1:MOV SBUF,#0E1H ;發(fā)聯(lián)絡(luò)信號;發(fā)聯(lián)絡(luò)信號 JNB TI,$ ;等待一幀發(fā)送完畢;等待一幀發(fā)送完畢 CLR TI ;允許再發(fā)送;允許再發(fā)送 JNB RI,$ ;等待;等待2號機的應(yīng)答信號號機的應(yīng)答信號 CLR RI ;允許再接收;允許再接收 MOV A,SBUF ;2號機應(yīng)答后,讀至號機應(yīng)答后,讀至A XRL A,#0E2H ;判斷;判斷2號機是否準(zhǔn)備完畢號機是否準(zhǔn)備完畢 JNZ ALOOP1 ;2號機未準(zhǔn)備好,繼續(xù)聯(lián)絡(luò)號機未準(zhǔn)備好,繼續(xù)聯(lián)絡(luò) ALOOP2:MOV R0,#40H ;2號機準(zhǔn)備好,設(shè)定數(shù)據(jù)塊地址指針初值號機準(zhǔn)備好,
55、設(shè)定數(shù)據(jù)塊地址指針初值 MOV R7,#10H ;設(shè)定數(shù)據(jù)塊長度初值;設(shè)定數(shù)據(jù)塊長度初值 MOV R6,#00H ;清校驗和單元;清校驗和單元53 ALOOP3:MOV SBUF,R0 ;發(fā)送一個數(shù)據(jù)字節(jié);發(fā)送一個數(shù)據(jù)字節(jié) MOV A,R6 ADD A,R0 ;求校驗和;求校驗和 MOV R6,A ;保存校驗和;保存校驗和 INC R0 JNB TI,$ CLR TI DJNZ R7,ALOOP3 ;整個數(shù)據(jù)塊是否發(fā)送完畢;整個數(shù)據(jù)塊是否發(fā)送完畢 MOV SBUF,R6 ;發(fā)送校驗和;發(fā)送校驗和 JNB TI,$ CLR TI JNB RI,$ ;等待;等待2號機的應(yīng)答信號號機的應(yīng)答信號 CL
56、R RI MOV A,SBUF ;2號機應(yīng)答,讀至號機應(yīng)答,讀至A JNZ ALOOP2 ;2號機應(yīng)答號機應(yīng)答“錯誤錯誤”,轉(zhuǎn)重新發(fā)送,轉(zhuǎn)重新發(fā)送 RET ;2號機應(yīng)答號機應(yīng)答“正確正確”,返回,返回54 接收程序清單如下:接收程序清單如下: BSTART:CLR EA MOV TMOD,#20H MOV TH1,#0F4H MOV TL1,#0F4H MOV PCON,#00H SETB TR1 MOV SCON,#50H ;設(shè)定串口方式;設(shè)定串口方式1,且準(zhǔn)備接收,且準(zhǔn)備接收 BLOOP1:JNB RI,$ ;等待;等待1號機的聯(lián)絡(luò)信號號機的聯(lián)絡(luò)信號 CLR RI MOV A,SBUF ;
57、收到;收到1號機信號號機信號 XRL A,#0E1H ;判是否為;判是否為1號機聯(lián)絡(luò)信號號機聯(lián)絡(luò)信號 JNZ BLOOP1 ;不是;不是1號機聯(lián)絡(luò)信號,再等待號機聯(lián)絡(luò)信號,再等待 MOV SBUF,#0E2H ;是;是1號機聯(lián)絡(luò)信號,發(fā)應(yīng)答信號號機聯(lián)絡(luò)信號,發(fā)應(yīng)答信號 JNB TI,$ CLR TI MOV R0,#40H ;設(shè)定數(shù)據(jù)塊地址指針初值;設(shè)定數(shù)據(jù)塊地址指針初值 MOV R7,#10H ;設(shè)定數(shù)據(jù)塊長度初值;設(shè)定數(shù)據(jù)塊長度初值 MOV R6,#00H ;清校驗和單元;清校驗和單元55 BLOOP2:JNB RI,$ CLR RI MOV A,SBUF MOV R0,A ;接收數(shù)據(jù)轉(zhuǎn)儲
58、;接收數(shù)據(jù)轉(zhuǎn)儲 INC R0 ADD A,R6 ;求校驗和;求校驗和 MOV R6,A DJNZ R7,BLOOP2 ;判數(shù)據(jù)塊是否接收完畢;判數(shù)據(jù)塊是否接收完畢 JNB RI,$ ;完畢,接收;完畢,接收1號機發(fā)來的校驗和號機發(fā)來的校驗和 CLR RI MOV A,SBUF XRL A,R6 ;比較校驗和;比較校驗和 JZ END1 ;校驗和相等,跳至發(fā)正確標(biāo)志;校驗和相等,跳至發(fā)正確標(biāo)志 MOV SBUF,#0FFH ;校驗和不相等,發(fā)錯誤標(biāo)志;校驗和不相等,發(fā)錯誤標(biāo)志 JNB TI,$ ;轉(zhuǎn)重新接收;轉(zhuǎn)重新接收 CLR TI END1:MOV SBUF,#00H RET56 二、多機通信
59、 1、硬件連接 單片機構(gòu)成的多機系統(tǒng)常采用總線型主從式結(jié)構(gòu)。所謂主從式,即在數(shù)個單片機中,有一個是主機,其余的是從機,從機要服從主機的調(diào)度、支配。80C31單片機的串行口方式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ù)據(jù)傳輸。 57 2、通信協(xié)議、通信協(xié)議 n所有從機的所有從機的SM2位置位置1,處于接收地址幀狀態(tài)。,處于接收地址幀狀態(tài)。 n主機發(fā)送一地址幀,其中主機發(fā)送一地址幀,其中8位是地址,第位是地址,第9位為地址位為地址/數(shù)據(jù)的區(qū)數(shù)據(jù)的區(qū)分標(biāo)志,該位置分標(biāo)志
60、,該位置1表示該幀為地址幀。表示該幀為地址幀。 n所有從機收到地址幀后,都將接收的地址與本機的地址比較。所有從機收到地址幀后,都將接收的地址與本機的地址比較。對于地址相符的從機,使自己的對于地址相符的從機,使自己的SM2位置位置0(以接收主機隨后(以接收主機隨后發(fā)來的數(shù)據(jù)幀),并把本站地址發(fā)回主機作為應(yīng)答;對于地址發(fā)來的數(shù)據(jù)幀),并把本站地址發(fā)回主機作為應(yīng)答;對于地址不符的從機,仍保持不符的從機,仍保持SM2=1,對主機隨后發(fā)來的數(shù)據(jù)幀不予,對主機隨后發(fā)來的數(shù)據(jù)幀不予理睬。理睬。 n從機發(fā)送數(shù)據(jù)結(jié)束后,要發(fā)送一幀校驗和,并置第從機發(fā)送數(shù)據(jù)結(jié)束后,要發(fā)送一幀校驗和,并置第9位(位(TB8)為為1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 印刷服務(wù)合同
- 手破碎機設(shè)備買賣合同
- 聘用出納合同增加多場景
- 生產(chǎn)車間承包合同協(xié)議
- 機械工程勞務(wù)分包合同
- 河北化工醫(yī)藥職業(yè)技術(shù)學(xué)院《中學(xué)生物課堂教學(xué)技能訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州華立科技職業(yè)學(xué)院《數(shù)據(jù)挖掘與決策管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 寧波衛(wèi)生職業(yè)技術(shù)學(xué)院《界面化學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 宜春學(xué)院《需求工程》2023-2024學(xué)年第二學(xué)期期末試卷
- 宿州職業(yè)技術(shù)學(xué)院《水質(zhì)工程學(xué)實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫新版
- 《研學(xué)旅行市場營銷》課件-研學(xué)旅行市場營銷之社群營銷
- 醫(yī)美機構(gòu)客戶滿意度調(diào)查表
- clsim100-32藥敏試驗標(biāo)準(zhǔn)2023中文版
- LNG加氣站質(zhì)量管理手冊
- 艱難梭菌感染動物模型的建立及其應(yīng)用評價
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計規(guī)范
- 2024年公安部直屬事業(yè)單位招聘筆試參考題庫附帶答案詳解
- 《旅游景點云南》課件2
- 2 我多想去看看(課件)-一年級下冊語文
- 《肺癌課件:基本概念與臨床表現(xiàn)》
評論
0/150
提交評論