第6章串行接口及串行通信技術(shù)
《第6章串行接口及串行通信技術(shù)》由會員分享,可在線閱讀,更多相關(guān)《第6章串行接口及串行通信技術(shù)(82頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、,,第二級,,第三級,,第四級,,第五級,,,第,9,章,,串行接口及串行通信技術(shù),,第,6,章 串行接口及串行通信技術(shù),6.1,串行通信基礎(chǔ)知識,,6.2 AT89C51,的串行接口,,6.3 AT89C51,串行接口的應(yīng)用與編程,,,習(xí)題與思考題,6.1,串行通信基礎(chǔ)知識,,一、,串行通信基本概念,,1.,并行通信和串行通信,,,1,),并行通信,,并行通信是指構(gòu)成信息的二進(jìn)制字符的各位數(shù)據(jù)采用多條數(shù)據(jù)線同時(shí)傳送的通信方法,如圖,6.1,所示。,,特點(diǎn):傳輸控制簡單、速度快。但距離長時(shí)傳輸線多,成本高。,,,2,),串行通信,,串行通信是指構(gòu)成信息的二進(jìn)制字符的各位數(shù)據(jù)一位一位順序地
2、傳送的通信方式,如圖,6.2,所示。,,特點(diǎn):傳輸控制復(fù)雜、速度慢,但傳輸線少,成本低。,,圖,6.1,并行通信示意圖,,,圖,6.2,串行通信示意圖,2.,異步通信和同步通信,,串行通信又分為兩種基本通信方式,即異步通信和同步通信。,,,1,),異步通信,,在異步通信中,被傳送的信息通常是一個(gè)字符代碼或一個(gè)字節(jié)數(shù)據(jù),它們都以規(guī)定的相同傳送格式,(,字符幀格式,),一幀一幀地發(fā)送或接收。,,字符幀格式由四部分組成:起始位,數(shù)據(jù)位,奇偶校驗(yàn)位和停止位,如圖,6.3,所示。下面介紹各部分的功能。,,,圖,6.3,異步通信幀格式,(1),起始位:在沒有數(shù)據(jù)傳送時(shí),通信線上處于邏輯“,1”,狀態(tài)。,,
3、,(2),數(shù)據(jù)位:在起始位之后,發(fā)送端發(fā)出,(,接收端接收,),的是數(shù)據(jù)位,數(shù)據(jù)的位數(shù)沒有嚴(yán)格限制,如,5,位、,6,位、,7,位或,8,位等。由低位到高位逐位傳送。,,,(3),奇偶校驗(yàn)位:數(shù)據(jù)位發(fā)送完,(,接收完,),之后,可發(fā)送奇偶校驗(yàn)位,它只占幀格式的一位,用于傳送數(shù)據(jù)的有限差錯(cuò)檢測或表示數(shù)據(jù)的一種性質(zhì),是發(fā)送和接收雙方預(yù)先約定好的一種檢驗(yàn),(,檢錯(cuò),),方式。,,(4),停止位:字符幀格式的最后部分為停止位,邏輯“,1”,電平有效,位數(shù)可以是,1,位、,1/2,位或,2,位。表示一個(gè)字符幀信息的結(jié)束,也為發(fā)送下一個(gè)字符幀信息做好準(zhǔn)備。,,異步通信的特點(diǎn):不要收發(fā)雙方時(shí)鐘嚴(yán)格一致,易于
4、實(shí)現(xiàn),但每個(gè)字符要附加,2~3,位的起止位,各幀之間還有間隔,因此傳輸效率不高。,,2,)同步通信,,同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳輸一幀信息。這里的信息幀和異步通信的字符幀不同,通常有若干個(gè)數(shù)據(jù)字符,如圖,6.4,所示。其格式由同步字符、數(shù)據(jù)字符和校驗(yàn)字符,CRC,三部分組成。在同步通信中,同步字符可以采用統(tǒng)一的標(biāo)準(zhǔn)格式,也可以由用戶約定。,,同步通信時(shí)要建立發(fā)送方時(shí)鐘對接收方時(shí)鐘的直接控制,使數(shù)據(jù)傳送完全同步。其特點(diǎn)是傳輸速率高,但硬件復(fù)雜。,同步,,字符,,,數(shù)據(jù),,字符,1,,,數(shù)據(jù),,字符,2,,,…,,,數(shù)據(jù)字符,n-1,,,數(shù)據(jù),,字符,n,,,校驗(yàn),,字
5、符,,,校驗(yàn),,字符,,,,圖,6.4,同步通信數(shù)據(jù)傳送格式,3.,串行通信的制式,,,1,)單工,(Half duplex),制式,,在單工方式下,通信線的,A,端只有發(fā)送器,,B,端只有接收器,信息數(shù)據(jù)只能單方向傳送,即只能由,A,端傳送到,B,端而不能反傳。如圖,6.5,所示。,,,圖,6.5,單工方式,2,)半雙工,( Half duplex),制式,,半雙工方式中,通信線路兩端的設(shè)備都有一個(gè)發(fā)送器和一個(gè)接收器,如圖,6.6,所示。數(shù)據(jù)可雙方向傳送但不能同時(shí)傳送,即,A,端送,B,端收或,B,端送,A,端收,,A,、,B,兩端的發(fā)送,/,接收只能通過半雙工通信協(xié)議切換交替工作。,,,圖
6、,6.6,半雙工方式,,3,)全雙工,(Full duplex),制式,,在全雙工方式下,通信線路,A,、,B,兩端都有發(fā)送器和接收器,,A,、,B,之間有兩個(gè)獨(dú)立通信的回路,兩端數(shù)據(jù)不是交替發(fā)送和接收,而是同時(shí)發(fā)送和接收。因此通信效率比前兩種要高。該方式下所需的傳輸線至少要有三條,一條用于發(fā)送,一條用于接收,一條用于公用信號地,如圖,6.7,所示。,,,圖,6.7,全雙工方式,4.,信號的調(diào)制與解調(diào),,計(jì)算機(jī)的通信要求傳送的是數(shù)字信號。在遠(yuǎn)程數(shù)據(jù)通信時(shí),通常要借用現(xiàn)存的公用電話網(wǎng)。但是電話網(wǎng)是為,300 - 3 400 Hz,的音頻模擬信號設(shè)計(jì)的,對二進(jìn)制數(shù)據(jù)的傳輸是不合適的。為此在發(fā)送時(shí)需
7、要對二進(jìn)制數(shù)據(jù)進(jìn)行調(diào)制,使之適合在電話網(wǎng)上傳輸。在接收時(shí),需要進(jìn)行解調(diào)以將模擬信號還原成數(shù)字信號。,,1,)調(diào)制器,,把數(shù)字信號轉(zhuǎn)換成模擬信號,然后送到通信線路上去。,,2,)解調(diào)器,,把從通信線路上收到的模擬信號轉(zhuǎn)換成數(shù)字信號。,,由于通信是雙向的,調(diào)制器和解調(diào)器合并在一個(gè)裝置中,這就是調(diào)制解調(diào)器,MODEM,,如圖,6.8,所示。由圖可見,調(diào)制器和解調(diào)器是進(jìn)行數(shù)據(jù)通信所需的設(shè)備,因此把它叫做數(shù)據(jù)通信設(shè)備(,DCE,)。通信線路是電話線,也可以是專用線。,圖,6.8,調(diào)制解調(diào)通信圖,5.,串行通信數(shù)據(jù)的校驗(yàn),,,在通信過程中往往要對數(shù)據(jù)傳送的正確與否進(jìn)行校驗(yàn)。以保證準(zhǔn)確無誤的傳輸數(shù)據(jù)。常用的
8、校驗(yàn)方法有奇偶校驗(yàn)及循環(huán)冗余碼校驗(yàn)。,,,,1,),奇偶校驗(yàn),,奇偶校驗(yàn)的特點(diǎn)是按字符校驗(yàn),即在數(shù)據(jù)發(fā)送時(shí),在每一個(gè)字符的最高位之后都附加一個(gè)奇偶校驗(yàn)位“,1”,或“,0”,,使被傳送字符,(,包括奇偶校驗(yàn)位,),中含“,1”,的位數(shù)都為偶數(shù),(,偶校驗(yàn),),或都為奇數(shù),(,奇校驗(yàn),),。,,例:當(dāng)約定為奇校驗(yàn)時(shí),數(shù)據(jù)中“,1”,的個(gè)數(shù)與校驗(yàn)位“,1”,的個(gè)數(shù)之和應(yīng)為奇數(shù);當(dāng)約定為偶校驗(yàn)時(shí),數(shù)據(jù)中“,1”,的個(gè)數(shù)與校驗(yàn)位“,1”,的個(gè)數(shù)之和應(yīng)為偶數(shù)。接收方與發(fā)送方的校驗(yàn)裝置和方式應(yīng)一致。接收字符時(shí),對“,1”,的個(gè)數(shù)進(jìn)行校驗(yàn),若二者不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯(cuò)。,2,)和校驗(yàn),,所謂
9、和校驗(yàn)是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個(gè)字節(jié)的校驗(yàn)字符(校驗(yàn)和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時(shí)對數(shù)據(jù)塊(除校驗(yàn)字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的“校驗(yàn)和”進(jìn)行比較,相符則無差錯(cuò),否則即認(rèn)為傳送過程中出現(xiàn)了差錯(cuò)。,,,,6.,傳輸速率與傳輸距離,,,1,) 波特率,,波特率(也叫比特率),即數(shù)據(jù)傳輸?shù)乃俾省K硎久棵腌妭魉投M(jìn)制代碼的位數(shù)。其單位是,b /s,。,,在串行通信中,發(fā)送設(shè)備和接收設(shè)備之間除了采用相同的字符幀格式,(,異步通信,),或相同的同步字符,(,同步通信,),來協(xié)調(diào)同步工作外,兩者之間發(fā)送數(shù)據(jù)的速度和接收數(shù)據(jù)的速度也必須相同,這樣才能保
10、證被傳送數(shù)據(jù)的成功傳送。,,波特率是串行通信的重要指標(biāo),對數(shù)據(jù)的成功傳送至關(guān)重要。,舉例:設(shè)數(shù)據(jù)的傳送率是,240,字符,/s,,而每個(gè)字符格式包含,10 bit(1,個(gè)起始位、,1,個(gè)停止位、,8,個(gè)數(shù)據(jù)位,),,這時(shí)傳送的波特率是:,,,10b×240,-1,= 2400 b/s,,,,標(biāo)準(zhǔn)波特率為:,110bps,、,300bps,、,600bps,、,1200bps,、、,2400bps,、,9600kbps,19.2kbps,、,56kbps,等。,2,)傳輸距離與傳輸速率的關(guān)系,,傳輸距離與波特率及傳輸線的電氣特性有關(guān)。通常傳輸距離隨波特率的增加而減小。,,當(dāng)傳輸線使用每,0.3
11、m,(約,1,英尺)有,50 pF,電容的非平衡屏蔽雙絞線時(shí),傳輸距離是隨波特率增加而減小。當(dāng)波特率超過,1 000 bit/s,時(shí),最大傳輸距離迅速下降,如,9600 bit/s,時(shí)最大距離下降到只有,76 m,(約,250,英尺)。,二、串行通信的標(biāo)準(zhǔn)接口,,,,RS-232C,通信接口是一種標(biāo)準(zhǔn)的串行接口,它定義了數(shù)據(jù)終端設(shè)備(,DTE,)與數(shù)據(jù)通信設(shè)備(,DCE,)之間的物理接口標(biāo)準(zhǔn)。普遍用于計(jì)算機(jī)之間及計(jì)算機(jī)與外設(shè)之間的串行通信。由于它符合,EIA,(電子工業(yè)協(xié)會)規(guī)格要求,在國際上得到了廣泛的應(yīng)用。,,,RS-232C,接口具有如下,特點(diǎn):信號線少,,在某些場合,完成雙工通信只需使
12、用幾根線就即可;,有多種可供選擇的信息傳輸速率,:,110,、,150,、,300,、,600,、,1 200,、,2 400,、,4 800,、,9 600,和,19 200 bps,。,,,RS-232C,接口特性包括電氣特性、機(jī)械特性、功能特性和過程特性四個(gè)方面內(nèi)容。,1.,機(jī)械特性,,,RS-232C,接口,規(guī)定使用,25,針連接器,,稱為,DB-25,插頭或插座。如圖,6.9,所示。,,,RS-232C,接口,對標(biāo)準(zhǔn)的,25,針接口定義了,22,條可以與外界連接的信號線,,,并對它們的功能作了具體的規(guī)定。,,實(shí)際用戶并不一定用到,RS- 232C,標(biāo)準(zhǔn)的全部信號線,,常常使用,9,針
13、非標(biāo)準(zhǔn)連接器替代,25,針連接器,稱為,DB-9,。,,,,DTE,:數(shù)據(jù)終端設(shè)備,(,如個(gè)入計(jì)算機(jī),),,DCE,:數(shù)據(jù)電路通信設(shè)備,(,如調(diào)制解調(diào)器,),,,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,方向 名稱,,第,2,路發(fā)送數(shù)據(jù),,發(fā)送時(shí)鐘,,第,2,路接收數(shù)據(jù),,接收時(shí)鐘,未用,,第,2,路請求發(fā)送,,數(shù)據(jù)終端就緒,,數(shù)據(jù)信號檢測,,振鈴指示,,數(shù)據(jù)信號速率選擇,,發(fā)送時(shí)鐘,未用,未用,保護(hù)地,N.A,發(fā)送數(shù)據(jù) 到,DCE,接收數(shù)據(jù)
14、 到,DCE,請求發(fā)送 到,DCE,允許發(fā)送 到,DTE,數(shù)據(jù)置位就緒 到,DTE,信號地,N.A,載波檢測 到,DTE,留作調(diào)試用,第,2,路載波檢測 到,DTE,第,2,路允許發(fā)送 到,DTE,名稱 方向,,,,,,,,,,,,,,,,,,,,,,,,,,,到,DCE,到,DTE,到,DTE,到,DTE,到,DCE,到,DCE,到,DTE,到,DTE,到,DCE,到,DCE,圖,6.9,RS-232C,引腳圖,2.,功能特性,,,RS-2
15、32C,接口的主要信號線定義如表,6-1,。,3.,電氣特性,,,RS-232C,的每一個(gè)引腳的信號性質(zhì)和電平均由標(biāo)準(zhǔn)規(guī)定,采用,負(fù)邏輯電平,,如:,,1),規(guī)定,DC,(,-3~ -15 V,)為邏輯,1,DC(+3~ +15 V),為邏輯,0,。,,,(,簡稱,EIA,電平,),,2,)其邏輯電平與通常的,TTL,和,MOS,電平(用,0V~0.8V,表示‘,0’,2V~+5V,表示“,1”,)不兼容,。因此為了實(shí)現(xiàn),TTL,或,MOS,電路的連接,要外加電路(如,MAX232,)實(shí)現(xiàn)電平轉(zhuǎn)換。,,由于,RS - 232C,發(fā)送端和接收端之間的信號采用多芯信號線,而多芯信號線的總負(fù)載電容不
16、能超過,2 500 pF,,所以,RS-232C,的,信號傳輸距離僅為幾十米,傳輸速率小于,20kbps,。,4.,過程特性,,過程特性,規(guī)定了信號之間的時(shí)序關(guān)系,以便正確地接收和發(fā)送數(shù)據(jù),。如果通信雙方均具備,RS-232C,接口,則二者可以直接連接,不必考慮電平轉(zhuǎn)換問題。 但是,對于單片機(jī)與計(jì)算機(jī)通過,RS-232C,的連接,必須考慮電平轉(zhuǎn)換問題,,因?yàn)?MCS-51,系列單片機(jī)串行口不是標(biāo)準(zhǔn),RS-232C,接口 。,,遠(yuǎn)程,RS - 232C,通信需要調(diào)制解調(diào)器,如圖,6.10,所示。近程通信,RS-232C(,通信距離,15 m,內(nèi),),可以不使用
17、調(diào)制解調(diào)器,其連接方法可有以下幾種,如圖,6.11,所示。,圖,6.10,遠(yuǎn)程,RS-232C,通信連接,圖,6.11,近程,RS-232C,通信連接,5. RS-232C,電平與,TTL,電平轉(zhuǎn)換驅(qū)動電路,,單片機(jī)與計(jì)算機(jī)通過,RS-232C,的連接,必須考慮電平轉(zhuǎn)換問題。早期常用的電平轉(zhuǎn)換芯片為,MC1488,、,MC1489,。近年來多采用片內(nèi)帶有自升壓電路的芯片。如,MAXM232,,它僅需,+5V,電源,內(nèi)置電子升壓泵將,+5V,轉(zhuǎn)換成,-10V~+10V,。該芯片內(nèi)含,2,個(gè)發(fā)送器,,2,個(gè)接收器,且與,TTL/CMOS,電平兼容,使用非常方便。,6.,采用,RS-232C,接口存
18、在的問題,,1,)傳輸距離短、速率低,,,RS-232C,標(biāo)準(zhǔn)受電容允許值的約束,傳輸距離一般不超過,15,米。最高傳輸速率為,20bps,。,,2,)有電平偏移,,,RS-232C,接口收發(fā)雙方共地的情況下,當(dāng)通信距離較遠(yuǎn)時(shí),兩端的地電位差別較大,信號地上會有較大的地電流并產(chǎn)生壓降,一方輸出的邏輯電平到達(dá)對方時(shí),其邏輯電平可能偏移較大,嚴(yán)重時(shí)會發(fā)生邏輯錯(cuò)誤。,3,)抗干擾能力差,,,RS-232C,采用單端輸入輸出,傳輸過程中的干擾和噪聲會混在正常的信號中。為了提高信噪比,,RS-232C,標(biāo)準(zhǔn)不得不采用較大的電壓擺幅。,,針對,RS-232C,總線標(biāo)準(zhǔn)存在的問題,,EIA,協(xié)會制定了新的串
19、行通信標(biāo)準(zhǔn),RS-422A,和,RS-485,。它們是平衡型電壓數(shù)字接口電路的電氣標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)改善了串行通信的傳輸特性。,6.2 AT89C51,的串行接口,,一、,串行接口的結(jié)構(gòu)及功能,,,AT89C51,串行口的結(jié)構(gòu)框圖如圖,6.12,所示,主要由發(fā)送器、接收器和串行控制寄存器組成。,,,,圖,6.12 AT89C51,串行口結(jié)構(gòu)框圖,,圖中有,兩個(gè)物理上獨(dú)立的接收、發(fā)送緩沖器,SBUF,,它們占用同一地址,99H,,可同時(shí)發(fā)送、接收數(shù)據(jù)。發(fā)送緩沖器只能寫入,不能讀出;接收緩沖器只能讀出,不能寫入。,,接收器主要由接收緩沖寄存器,SBUF,,接收移位寄存器和接收控制器組成。接收器是雙
20、緩沖結(jié)構(gòu),在前一個(gè)字節(jié)被從接收緩沖器讀出之前,第二個(gè)字節(jié)即開始被接收(串行輸入至移位寄存器),但是在第二個(gè)字節(jié)接收完畢而前一個(gè)字節(jié),CPU,未讀取時(shí),會丟失前一個(gè)字節(jié)的內(nèi)容。,,發(fā)送器主要由發(fā)送緩沖寄存器,SBUF,和發(fā)送控制器組成。對于發(fā)送緩沖器,因?yàn)榘l(fā)送時(shí),CPU,是主動的,不會產(chǎn)生重疊錯(cuò)誤。,,二、,串行口控制寄存器,,串行口控制寄存器,SCON,用于設(shè)置串行口的工作方式、監(jiān)視串行口工作狀態(tài)、發(fā)送與接收的狀態(tài)控制等。它是一個(gè)既可字節(jié)尋址又可位尋址的特殊功能寄存器。其格式如圖,6.13,所示。,,,圖,6.13,控制寄存器,SCON,的格式,,位名稱,,位號,,SM0,,SM1,,SM2,
21、,REN,,TB8,,RB8,,TI,,RI,,7,,6,,5,,4,,3,,2,,1,,0,SCON,寄存器各位的功能如下:,,,(1) ?SM0,、,SM1,:串行口工作方式選擇位,可構(gòu)成四種工作方式,如表,6-2,所示。,,,(2) ?SM2,:在方式,2,和方式,3,中多機(jī)通信的控制位。,,,(3) ?REN,:串行接收允許位。由軟件置,REN = 1,,則啟動串行口接收數(shù)據(jù);若軟件置,REN = 0,,則禁止接收。,,,(4) ?TB8,:在方式,2,或方式,3,中,是將要發(fā)送的第九位數(shù)據(jù),由軟件置位或清零,它可作為數(shù)據(jù)奇偶校驗(yàn)位,也可在多機(jī)通信中作為地址幀或數(shù)據(jù)幀的標(biāo)志位使用。,,
22、表,6-2,串行口工作方式選擇,SM0 SM1,,,工作方式,,,功 能,,,波特率,,,0 0,,0 1,,1 0,,1 1,,,方式,0,,方式,1,,方式,2,,方式,3,,,移位寄存器,,10,位異步收發(fā),,11,位異步收發(fā),,11,位異步收發(fā),,,fosc/12,,可變,,fosc/6,或,fosc/32,,可變,,,,(5) ?RB8,:在方式,2,或方式,3,中,是已接收到的第九位數(shù)據(jù),可作為奇偶校驗(yàn)位。,,,(6) ?TI,:發(fā)送中斷標(biāo)志位。在方式,0,當(dāng)串行發(fā)送第,8,位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串行發(fā)送停止位的開始時(shí),由內(nèi)部硬件
23、使,TI,置,1,,向,CPU,發(fā)中斷申請。在中斷服務(wù)程序中,必須用軟件將其清,0,,取消此中斷申請。,,,(7) ?RI,:接收中斷標(biāo)志位。方式,0,中,在接收完第,8,位數(shù)據(jù)時(shí)由硬件置位。在方式,0,當(dāng)串行接收第,8,位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串行接收停止位的中間時(shí),由內(nèi)部硬件使,RI,置,1,,向,CPU,發(fā)中斷申請。也必須在中斷服務(wù)程序中,用軟件將其清,0,,取消此中斷申請,,,(8) ?SMOD,:,為波特率選擇位,。電源控制寄存器,PCON,中的第八位也與串行口有關(guān),如圖,6.14,所示。當(dāng),SMOD=1,時(shí),波特率提高一倍,復(fù)位時(shí),,SMOD=0,。,,,圖,6.14,電源控制
24、寄存器,PCON,的格式,位號,7,6,5,4,3,2,1,0,位名稱,SMOD,,,,,,,,,三、 串行通信的工作方式,,,1,.工作方式,0,,,在方式,0,下,串行口是作為,同步移位寄存器使用的,。其,波特率固定為單片機(jī)振蕩頻率,(fosc),的,1/12,,,串行傳送數(shù)據(jù),8,位為一幀,(,沒有起始、停止、奇偶校驗(yàn)位,),。,,,數(shù)據(jù)由,RXD,端輸出或輸入,,低位在前,高位在后。,TXD,端輸出同步移位脈沖,,可以作為外部擴(kuò)展的移位寄存器的移位時(shí)鐘,因而串行口方式,0,常用于擴(kuò)展外部并行,I/O,口。,,,1,)工作原理,,(,1,)發(fā)送(輸出),,執(zhí)行指令(如,MOV SBUF
25、, A,),,,就啟動發(fā)送。,,在發(fā)送過程中由,RXD,端將寫入,SBUF,寄存器中的,數(shù)據(jù)依照從低位到高位的次序按位送出,,同時(shí)由,TXD,端輸出移位時(shí)鐘脈沖。,,一個(gè)字節(jié)的,數(shù)據(jù)發(fā)送完畢,,串行口自動停止發(fā)送數(shù)據(jù)和移位時(shí)鐘脈沖,,并置位,TI,申請中斷。,TI,必須由軟件清零。以便下一次傳送。,,從寫,SBUF,到,TI,置位,相隔,9,個(gè)機(jī)器周期,完成了發(fā)送,1,幀數(shù)據(jù)的全過程。如圖,6.15,所示。,圖,6.15,方式,0,數(shù)據(jù)輸出時(shí)序,,圖,6.16,方式,0,擴(kuò)展并行輸出口,,串行發(fā)送時(shí),外部可擴(kuò)展一片,(,或幾片,),串入并出,的移位寄存器,,(如,74LS164),,如圖,6.
26、16,所示。,,,RXD,TXD,89C51,A,B,CLK,,,,,數(shù)據(jù)輸出,移位脈沖,1,2,3,,,,,,,,,3,4,5,6,10,11,12,13,74LS164,D7,D6D5D4D3D2D1,D0,,(,2,)接收(輸入),,當(dāng),REN= 1,RI=0,時(shí),就啟動串行口接收。,,在接收過程中,由,TXD,端輸出移位時(shí)鐘脈沖,控制外圍設(shè)備將,8,位數(shù)據(jù)按位移入串行口的,RXD,端,并通過串行口內(nèi)部的輸入移位寄存器將數(shù)據(jù)存入,SBUF,接收寄存器。,,當(dāng)串行口控制電路檢測到最后一次移位,結(jié)束,后,接收過程告終,并,置位,RI,申請中斷,。,RI,也必須由軟件清零。從啟動接收到,RI,
27、置位,相隔,9,個(gè)機(jī)器周期,完成了接收,1,幀數(shù)據(jù)的全過程。 時(shí)序圖如圖,6.17,所示。,圖,6.17,方式,0,數(shù)據(jù)輸入時(shí)序,,圖,6.18,方式,0,擴(kuò)展并行輸入口,,串行接收時(shí),外部可擴(kuò)展一片,(,或幾片,),并入串出,的移位寄存器(如,74LS165,),如圖,6.18,所示。,,,Q,CLK,6,5,4,3,14,13,12,11,數(shù)據(jù)輸入,,移位脈沖,RXD,TXD,80C51,74LS165,,,D7,D6,D5,D4,D3,D2,D1,D0,,,,,,,,,2,.工作方式,1,,,在方式,1,下,串行口工作在,10,位幀格式,,發(fā)送或接收一幀信息中,,除,8,位數(shù)據(jù)移位外,還
28、包含一個(gè)起始位,(0),和一個(gè)停止位,(1),,其格式如圖,6.19,所示,。,,工作方式,1,的波特率是可變的,由定時(shí)器,T1,的計(jì)數(shù)溢出率決定。相應(yīng)的公式為:,,波特率,= ×,定時(shí)器,T1,溢出率,,,圖,6.19,串行口方式,1,的幀格式,定時(shí)器,T1,的計(jì)數(shù)溢出率計(jì)算公式為:,,定時(shí)器,T1,溢出率,=,,,式中,,K,為定時(shí)器,T1,的位數(shù),與定時(shí)器,T1,的工作方,,式有關(guān),(,見第,5,章介紹,),,則波特率計(jì)算公式為:,波特率,=,,1),發(fā)送,,發(fā)送時(shí),數(shù)據(jù)從,TXD,端輸出,當(dāng)數(shù)據(jù)寫入發(fā)送緩沖器,SBUF,后,啟動發(fā)送器發(fā)送。當(dāng)發(fā)送完一幀數(shù)據(jù)后,
29、置中斷標(biāo)志,TI,為,1,。方式,1,所傳送的波特率取決于定時(shí)器,1,的溢出率和,PCON,中的,SMOD,位。,,2),接收,,接收時(shí),由,REN,置,1,,允許接收,串行口采樣,RXD,,當(dāng)采樣由,1,到,0,跳變時(shí),確認(rèn)是起始位“,0”,,開始接收一幀數(shù)據(jù)。當(dāng),RI=0,,且停止位為,1,或,SM2=0,時(shí),停止位進(jìn)入,RB8,位,同時(shí)置中斷標(biāo)志,RI,;否則信息將丟失。所以,方式,1,接收時(shí),應(yīng)先用軟件清除,RI,或,SM2,標(biāo)志。,,方式,1,時(shí)串行口的發(fā)送和接收時(shí)序如圖,6.20,所示。,圖,6.20,串行口方式,1,的時(shí)序圖,3,.方式,2,和方式,3,,,在方式,2,和方式,3
30、,下,串行口工作在,11,位異步通信方式。,一幀信息包含一個(gè)起始位“,0”,,八個(gè)數(shù)據(jù)位,一個(gè)可編程第九數(shù)據(jù)位和一個(gè)停止位“,1”,。其中可編程位是,SCON,中的,TB8,位,在八個(gè)數(shù)據(jù)位之后,可作奇偶校驗(yàn)位或地址,/,數(shù)據(jù)幀的標(biāo)志位使用,由使用者確定。其幀格式如圖,6.21,所示。,,,區(qū)別:方式,2,的波特率固定為晶振頻率的,1/64,或,1/32,;方式,3,的波特率由定時(shí)器,T1,的計(jì)數(shù)溢出率決定,確定方法與工作方式,1,中的完全一樣。,,,圖,6.21,串行口方式,2,、,3,幀格式圖,1,)方式,2,和方式,3,輸出,,當(dāng),CPU,向發(fā)送,SBUF,寫入一個(gè)數(shù)據(jù)時(shí),串行口發(fā)送過程
31、就被啟動了。,TB8,寫入輸出移位寄存器的第,9,位,,8,位數(shù)據(jù)裝入,SBUF,。,,發(fā)送開始時(shí),先把起始位,0,輸出到,TXD,端。經(jīng)一位時(shí)間后,發(fā)送移位寄存器的輸出位(,D0,)到,TXD,端。之后,每一個(gè)移位脈沖都使輸出移位寄存器的各位右移一位,并由,TXD,端輸出。,,結(jié)束時(shí),控制電路進(jìn)行最后一次移位,并置,T1,=,1,,向,CPU,請求中斷。,,2,)方式,2,和方式,3,輸入,,軟件使接收允許位,REN,為,1,后,接收開始啟動。,,接收時(shí),數(shù)據(jù)從右邊移入輸入移位寄存器,,1,從左邊移出,在起始位,0,移到最左邊時(shí),控制電路進(jìn)行最后一次移位。,,當(dāng),RI,=,0,,且,SM2=
32、0,時(shí),接收到的數(shù)據(jù)裝入接收,SBUF,和,RB8,,置,RI = 1,,向,CPU,請求中斷。如果條件不滿足,則數(shù)據(jù)丟失,且不置位,RI,,一位時(shí)間后繼續(xù)搜索,RXD,端的負(fù)跳變。,,時(shí)序如圖,6.22,所示 。,圖,6.22,串行口方式,2,、,3,時(shí)序圖,四、串行口波特率確定和初始化,,1.,波特率計(jì)算,,串行口的四種工作方式對應(yīng)三種波特率。由于輸入的移位時(shí)鐘的來源不同,所以,各種方式的,波特率計(jì)算公式,也不相同。,,具體如下:,2.,波特率的選擇,,實(shí)際應(yīng)用中,波特率要選擇為,標(biāo)稱值,,又由于,TH1,的初值是整數(shù),為了減小波特率計(jì)算誤差,,晶振頻率要選擇為,11.0592MHZ,。所
33、以方式,1,和方式,3,波特率與,TH1,初值的對應(yīng)基本上是確定的,如表,6-3,所示。,波特率(,bps,),19.2K,9600,4800,2400,1200,TH1,初值,FDH,FDH,FAH,F4H,E8H,SMOD,1,0,0,0,0,表,6-3,方式,1,、,3,常用波特率與,TH1,的初值關(guān)系表,注,:,此時(shí),,T1,工作在方式,2,,晶振頻率為,11.0592MHZ,。,3.,串行口的初始化,,具體步驟如下:,,1,)確定定時(shí)器,1,的工作方式(編程,TMOD,寄存器);,,2,)計(jì)算定時(shí)器,1,的初值,裝載,TH1,、,TL1;,,3,)啟動定時(shí)器,1(,編程,TCON,中
34、的,TRl,位,),;,,4,)確定串行口控制(編程,SCON,寄存器),,5,)串行口在中斷方式工作時(shí),須開,CPU,的中斷源(編程,IE,、,IP,寄存器)。,,五、,多機(jī)通信,,,AT89C51,單片機(jī)串行口工作在方式,2,或方式,3,時(shí),可實(shí)現(xiàn)多機(jī)通信功能,即一臺主機(jī)和多臺從機(jī)之間通信,如圖,6.23,所示。,,當(dāng)主機(jī)向從機(jī)發(fā)送信息時(shí),主機(jī)首先發(fā)送一個(gè)地址幀,此幀數(shù)據(jù)的第九數(shù)據(jù)位,TB8,應(yīng)設(shè)置為“,1”,,以表示是地址幀,,8,位數(shù)據(jù)位是某臺從機(jī)的地址。,,圖,6.23,多機(jī)通信連接圖,,這種通信只能在主從機(jī)之間進(jìn)行,從機(jī)之間的通信需經(jīng)主機(jī)作中介才能實(shí)現(xiàn)。經(jīng)過上面分析,多機(jī)通信的過程
35、可總結(jié)如下:,,,(1),主、從機(jī)均初始化為方式,2,或方式,3,,且置,SM2=1,,,REN=1,,串行開中斷。,,,(2),主機(jī)置位,TB8=1,,向從機(jī)發(fā)送尋址地址幀,各從機(jī)因滿足接收條件,(SM2=1,,,RB8=1),,從而接收到主機(jī)發(fā)來的地址,并與本機(jī)地址比較。,(3),地址一致的從機(jī)將,SM2,清零,并向主機(jī)返回地址,供主機(jī)核對,不一致的從機(jī)恢復(fù)初始狀態(tài)。,,,(4),主機(jī)核對返回的地址,若與剛才發(fā)出的地址一致則準(zhǔn)備發(fā)送數(shù)據(jù),若不一致則返回,(1),重新開始。,,,(5),主機(jī)向從機(jī)發(fā)送數(shù)據(jù),此時(shí)主機(jī),TB8=0,,只有被選中的那臺從機(jī)能接收到該數(shù)據(jù),其他從機(jī)則舍棄該數(shù)據(jù)。,,
36、,(6),本次通信結(jié)束后,主從機(jī)重新置,SM2=1,,又可進(jìn)行新一次的通信。,6.3 AT89C51,串行接口的應(yīng)用與編程,,一、利用單片機(jī)串行口,擴(kuò)展并行,I/O,口,,,串行口工作方式,0,主要用于擴(kuò)展并行,I/O,口,擴(kuò)展成并行輸出口時(shí),需要外接一片,8,位串行輸入并行輸出的同步移位寄存器,74HC164,。擴(kuò)展成并行輸入口時(shí),需要外接一片或幾片并行輸入串行輸出的同步移位寄存器,74HC165,。,,,數(shù)據(jù)的串行輸出或輸入可采用中斷方式,也可采用查詢標(biāo)志位,TI,、,RI,的方法,在移位初始化時(shí),要進(jìn)行相應(yīng)的設(shè)置。,,,[,例,],利用串行口工作在方式,0,,外擴(kuò)一片,74HC164,
37、構(gòu)成一個(gè)三位,LED,動態(tài)顯示器,并將內(nèi)部,RAM,顯示單元,65H,、,66H,、,67H,中的內(nèi)容輸出顯示。如圖,6.24,所示。,,,圖,6.24,串行動態(tài)顯示圖,主程序如下:,,ORG 0000H,,LJMP MAIN,,ORG 0030H,,MAIN,:,MOV SCON,,,#00H,;串行口初始化為方式,0,,SETB P1.2,;消去最高顯示位,,,SETB P1.1,,MOV SBUF,,,65H,;傳送最低顯示位,,,JNB TI,,,$,;傳送沒結(jié)束,等待,,CLR P1.0,;最低位顯示,,,CLR TI,;清中斷標(biāo)志位,,,LC
38、ALL,D10ms,,;調(diào)延時(shí)子程序,維持狀態(tài),,,SETB P1.0,;消去最低顯示位,,,MOV SBUF,,,66H,;傳送中間顯示位,,,JNB TI,,,$,;等待傳送結(jié)束,,,CLR P1.1,;顯示中間位,,,CLR TI,;清中斷標(biāo)志位,,LCALL,D10ms,,;調(diào)延時(shí)子程序,維持狀態(tài),,,SETB P1.1,;消去中間顯示位,,,MOV SBUF,,,67H,;傳送最高顯示位,,,JNB TI,,,$,;等待傳送結(jié)束,,,CLR P1.2,;顯示最高顯示位,,,CLR TI,;清中斷標(biāo)志位,
39、,D10ms: MOV R5, #10,,D1ms: MOV R4,#249,,DL: NOP,,NOP,,DJNZ R4,DL,,DJNZ R5,D1ms,,RET,,END,二、單片機(jī)與單片機(jī)的通信,,有兩個(gè)單片機(jī)子系統(tǒng),它們均能獨(dú)立地完成主系統(tǒng)的某一功能,且這兩個(gè)子系統(tǒng)具有一定的信息交換需求,這時(shí)就可以用串行通信的方式將兩個(gè)子系統(tǒng)連接起來。,,1.,硬件連接,,若兩個(gè)單片機(jī)系統(tǒng)距離近,只要將兩個(gè)單片機(jī)系統(tǒng)的,TXD,和,RXD,引出線交叉相連即可;若兩個(gè)單片機(jī)系統(tǒng)距離較遠(yuǎn),要采用,RS-232C,接口進(jìn)行連接,如圖,6.25,所示。,圖,6.25,雙機(jī)通信連接圖,2.,
40、通信協(xié)議,,采用方式,1,進(jìn)行通信,每幀信息為,10,位,波特率為,2400bps,,,T1,作定時(shí)器用,工作在方式,2,,晶振頻率用,11.0592MHZ,,查表,6.3,得,TH1=TL1=0F4H,,,PCON,寄存器的,SMOD,位為,0,。,,通信時(shí),首先,A,機(jī)發(fā)送“,E1H”,請求傳輸數(shù)據(jù)。,B,機(jī)收到后回答一個(gè)”,E2H”,應(yīng)答信號,表示同意接收。當(dāng),A,機(jī)收到應(yīng)答信號”,E2H“,后,開始發(fā)送數(shù)據(jù),每發(fā)送一個(gè)數(shù)據(jù)字節(jié)都要計(jì)算”校驗(yàn)和“,假定數(shù)據(jù)塊長度為,15,個(gè)字節(jié),起始地址為,40H,,數(shù)據(jù)塊發(fā)送完畢后立即發(fā)送”校驗(yàn)和“。,,然后,B,機(jī)接收數(shù)據(jù)并轉(zhuǎn)存到數(shù)據(jù)緩沖區(qū),起始地址
41、也為,40H,,每接收到一個(gè)數(shù)據(jù)字節(jié)便計(jì)算一次”校驗(yàn)和“,當(dāng)收完數(shù)據(jù)塊后,再接收,A,機(jī)發(fā)來的”校驗(yàn)和“,并將它與,B,機(jī)求出的校驗(yàn)和進(jìn)行比較。若兩者相等,說明接收正確,,B,機(jī)回答,00H,;若兩者不等,說明接收不正確,,B,機(jī)回答,FFH,,請求重發(fā)。,A,機(jī)收到答復(fù)為,00H,則結(jié)束發(fā)送。若答復(fù)非,0,,則重新發(fā)送數(shù)據(jù)。,3.,程序及流程圖,,A,機(jī)程序:,,ORG 0000H,,LJMP AMAIN,,ORG 0030H,,AMAIN,:,MOV SP,#5FH,,MOV TMOD, # 20H ;,初始化定時(shí)器,1,為模式,2,,MOV TH1, #0F4H;,裝載定時(shí)器初
42、值,,MOV TLl,#0F4H,,MOV SCON,#50H,,MOV PCON, # 00H,,SETB TR1;,啟動定時(shí)器,,CALL INIT;,生成調(diào)試用數(shù)據(jù),,DIALOG: MOV A,#0E1H;,發(fā)聯(lián)絡(luò)信號,,CALL TXBYTE,,CALL RXBYTE;,接收,B,機(jī)返回信號,,CJNE A,#0E2H,DIALOG ;B,機(jī)允許發(fā)送?,,RETX: CALL TXDATA,,CALL RXBYTE,,CJNE A,#00H,DIALOG ;B,機(jī)接收正確?,,AJMP DIALOG,TXBYTE: MOV SBUF,A;,發(fā)送子程序,,JNB TI,
43、$,,CLR TI,,RET,,RXBYTE: JNB RI,$;,接收子程序,,MOV A,SBUF,,CLR RI,,RET,,TXDATA: MOV R7,#15;,發(fā)送數(shù)據(jù)塊子程序,,MOV R0,#40H,,MOV R6,#00H,,LDATA: MOV A,@R0,,CALL TXBYTE,,MOV A,R6,,ADD A,@R0;,求校驗(yàn)和,,MOV R6,A;,保存校驗(yàn)和,,INC R0,,DJNZ R7,LDATA;,數(shù)據(jù)塊傳送完否?,MOV A,R6;,發(fā)送校驗(yàn)和,,CALL TXBYTE,,RET,,INIT: MOV R0,#40H;,測試數(shù)據(jù),,MOV R7,#15
44、,,MOV A,#30H,,L0: MOV @R0,A,,INC A,,INC R0,,DJNZ R7,L0,,RET,,END,,B,機(jī)程序:,,ORG 0000H,,LJMP BMAIN,,ORG 0030H,,BMAIN,:,MOV SP,#5FH,,MOV TMOD, # 20H;,初始化定時(shí)器,1,為模式,2,,MOV TH1, #0F4H;,裝載定時(shí)器初值,,MOV TLl,# 0F4H,,MOV SCON,#50H,,MOV PCON, # 00H,,SETB TR1;,啟動定時(shí)器,,WDIALOG: CALL RXBYTE,,CJNE A,#0E1H,WDIALOG;
45、,等待聯(lián)絡(luò)信號,,MOV A,#0E2H,,CALL TXBYTE,;發(fā)送應(yīng)答信號,,RERX: CALL RXDATA;,接收數(shù)據(jù)塊,,XRL A,R6;,和校驗(yàn)正確否?,,JNZ NO;,不正確轉(zhuǎn),NO,,MOV A,#00H;,正確,,CALL TXBYTE,,AJMP WDIALOG,,NO: MOV A,#0FFH,,CALL TXBYTE,,AJMP RERX,TXBYTE: MOV SBUF,A;,發(fā)送子程序,,JNB TI,$,,CLR TI,,RET,,RXBYTE: JNB RI,$;,接收子程序,,MOV A,SBUF,,CLR RI,,RET,,RXDATA: MOV
46、 R7,#15;,接收數(shù)據(jù)塊子程序,,MOV R0,#40H,,MOV R6,#00H,,LDATA: CALL RXBYTE,,MOV @R0,A,,MOV A,R6,,ADD A,@R0,,MOV R6,A,,INC R0,,DJNZ R7,LDATA,,CALL RXBYTE,,RET,,END,,圖,6.26,雙機(jī)通信流程圖,習(xí)題與思考題,6.1,串行通信有幾種基本通信方式?它們有什么區(qū)別?,,6.2,什么是串行通信的波特率?,,6.3,串行通信有哪幾種制式?各有什么特點(diǎn)?,,6.4,簡述,AT89C51,串行口控制寄存器,SCON,各位的定義。,,6.5 AT89C51,單片機(jī)串行
47、通信有幾種工作方式?簡述它們各自的特點(diǎn)。,,,6.6,簡述,AT89C51,單片機(jī)串行口在四種工作方式下波特率的產(chǎn)生方法。,,,6.7,假設(shè)異步通信接口按方式,1,傳送,每分鐘傳送,6000,個(gè)字符,則其波特率是多少?,,,6.8,串行口工作在方式,1,和方式,3,時(shí),其波特率由定時(shí)器,T1,產(chǎn)生,為什么常選,T1,工作在方式,2,?若已知,fosc=6 MHz,,需產(chǎn)生的波特率為,2400 b/s,,則如何計(jì)算,T1,的計(jì)數(shù)初值?實(shí)際產(chǎn)生的波特率是否有誤差?,6.9,說明單片機(jī)多機(jī)通信的工作原理。,,,6.10,試用查詢法編寫,AT89C51,串行口在方式,2,下的接收程序。設(shè)波特率為,fosc/32,,接收數(shù)據(jù)塊長,20H,,接收后存在于片內(nèi),RAM,的,40H,開始單元,采用奇偶校驗(yàn),放在接收數(shù)據(jù)的第九位上。,,,6.11,設(shè)計(jì)一個(gè)發(fā)送程序,將芯片內(nèi),RAM,中的,30H,~,3FH,單元數(shù)據(jù)從串行口輸出,要求將串行口定義為方式,3,,,TB8,作奇偶校驗(yàn)位。,,6.12 PC,機(jī)與單片機(jī)間的串行通信為什么要進(jìn)行電平轉(zhuǎn) 換?,,,6.13 RS,-,232C,總線標(biāo)準(zhǔn)邏輯電平是怎樣規(guī)定的?,,,6.14,繪出用,MAX232,芯片實(shí)現(xiàn)兩片,AT89C51,單片機(jī)之間遠(yuǎn)距離串行通信的接口電路圖。,,
- 溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高考物理一輪總復(fù)習(xí)第九章電磁感應(yīng)第1節(jié)課時(shí)1電磁感應(yīng)現(xiàn)象楞次定律:電磁感應(yīng)現(xiàn)象的判斷課件魯科版
- 教育專題:三年級數(shù)學(xué)位置與方向
- 幼兒繪本故事《我們的媽媽在哪里》課件
- 《安全生產(chǎn)基礎(chǔ)知識》PPT課件
- 雨潤南京農(nóng)產(chǎn)品批發(fā)中心優(yōu)秀PPT
- 第三章直流電阻電路的基本定理ppt課件
- RAAS抑制劑應(yīng)用價(jià)值
- 鋼化玻璃工藝培訓(xùn)ppt課件
- 九年級物理上冊焦耳定律
- 《養(yǎng)生健康食物》PPT課件
- 新機(jī)械制圖國家標(biāo)準(zhǔn)解讀課件
- NSAIDs所致消化道粘膜損傷的防治
- 《體外膜肺氧合》PPT課件
- 正常人體結(jié)構(gòu)-細(xì)胞
- 教育專題:從中日甲午戰(zhàn)爭都八國聯(lián)侵華