單片機(jī)_3串口_第1頁
單片機(jī)_3串口_第2頁
單片機(jī)_3串口_第3頁
單片機(jī)_3串口_第4頁
單片機(jī)_3串口_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1. 簡(jiǎn)單收發(fā),使用串口調(diào)試工具2. 使用數(shù)碼管顯示發(fā)送過來的數(shù)據(jù)3. 協(xié)議制定,效驗(yàn)和,地址 單片機(jī)串行數(shù)據(jù)通信第一節(jié) 概 述一、串行通信基本原理計(jì)算機(jī)與外界的信息交換稱為通信。基本的通信方法有并行通信和串行通信兩種。并行通信的特點(diǎn)是:各數(shù)據(jù)位同時(shí)傳送,傳送速度快、效率高。但并行數(shù)據(jù)傳送有多少數(shù)據(jù)位就需多少根數(shù)據(jù)線,因此傳送成本高。并行數(shù)據(jù)傳送的距離小于30米。并行通信依靠并行1/O接口實(shí)現(xiàn)。串行通信的特點(diǎn)是:數(shù)據(jù)傳送按位順序進(jìn)行,最少只需一根傳輸線即可完成,成本低但速度慢。計(jì)算機(jī)與外界的數(shù)據(jù)傳送大多數(shù)是串行的,其傳送的距離可以從幾米到幾千公里。二、兩種串行通信方式串行通信根據(jù)通訊雙方是否采

2、用同一個(gè)時(shí)鐘,又分為異步通信和同步通信兩種方式。1、異步通信方式異步通信用起始位"0”表示字符的開始,然后從低位到高位逐位傳送數(shù)據(jù),最后用停止位“1”表示字符結(jié)束,見圖。一個(gè)字符又稱一幀。圖中a,一幀信息包括1位起始位、8位數(shù)據(jù)位和1位停止位。圖b中,數(shù)據(jù)位增加到9位。在MCS-51計(jì)算機(jī)系統(tǒng)中,第九位數(shù)據(jù)D8可以用作奇偶校驗(yàn)位,也可以用作地址/數(shù)據(jù)幀標(biāo)志,D81表示該幀信息傳送的是地址,D8=0表示傳送的是數(shù)據(jù)。兩幀信息之間可以無間隔,也可以有間隔,且間隔時(shí)間可任意改變,間隔用空閑位1來填充。1)、波特率(Baud rate):每秒傳送的位數(shù)。每秒傳送一個(gè)格式位就是1波特。即: 1

3、波特=lbps(位秒)例如電傳打字機(jī)的傳送速率每秒10個(gè)字符,若每個(gè)字符為11位,則波特率為11位字符×10字符/s110位/s2)、幀(frame):從起始位開始到停止位結(jié)束的全部?jī)?nèi)容稱之為一幀,幀是一個(gè)字符的完整通信格式,因此也就把串行通信的字符格式稱之為幀格式。起始位:發(fā)送器是通過發(fā)送起始位而開始一個(gè)字符的傳送。起始位使數(shù)據(jù)線處于“space”狀態(tài)。數(shù)據(jù)位:起始位之后就傳送數(shù)據(jù)位。在數(shù)據(jù)位中,低位在前(左),高位在后(右)。數(shù)據(jù)位可以是5、6、7或8位。奇偶校驗(yàn)位:用于對(duì)字符傳送作正確性檢查。共有3種可能,即奇校驗(yàn)、偶校驗(yàn)和無校驗(yàn)。停止位:停止位在最后,用以標(biāo)志一個(gè)字符傳送的結(jié)

4、束,它對(duì)應(yīng)于mark狀態(tài)。停止位可能是1、1. 5或2位,在實(shí)際應(yīng)用中根據(jù)需要確定。2、同步通信方式在同步通信中,數(shù)據(jù)中的每一位的傳送都是在同一個(gè)時(shí)鐘的控制下進(jìn)行的。每一數(shù)據(jù)塊開頭時(shí)發(fā)送一個(gè)或兩個(gè)同步字符,使發(fā)送與接收雙方取得同步。數(shù)據(jù)塊的各個(gè)字符間取消了起始位和停止位,所以通信速度得以提高,見圖7一3。同步通信時(shí),如果發(fā)送的數(shù)據(jù)塊之間有間隔時(shí)間,則發(fā)送同步字符填充。三、串行通信的數(shù)據(jù)通路形式串行數(shù)據(jù)通信共有以下幾種數(shù)據(jù)通路形式。1、單工(Simplex)形式單工形式的數(shù)據(jù)傳送是單向的。通信雙方中一方固定為發(fā)送端,另一方則固定為接收端。單工形式的串行通信,只需要一條數(shù)據(jù)線。如圖8.4所示。例如

5、計(jì)算機(jī)與打印機(jī)之間的串行通信就是單工形式,因?yàn)橹荒苡杏?jì)算機(jī)向打印機(jī)傳送數(shù)據(jù),而不可能有相反方向的數(shù)據(jù)傳送。2、全雙工(Full-duplex)形式全雙工形式的數(shù)據(jù)傳送是雙向的,且可以同時(shí)發(fā)送和接收數(shù)據(jù),因此全雙工形式的串行通信需要兩條數(shù)據(jù)線。如圖8. 5所示。3.半雙工(Half-duplex)形式半雙工形式的數(shù)據(jù)傳送也是雙向的。但任何時(shí)刻只能由其中的一方發(fā)送數(shù)據(jù),另一方接收數(shù)據(jù)。因此半雙工形式既可以使用一條數(shù)據(jù)線,也可以使用兩條數(shù)據(jù)線。如圖86所示。MCS-51串行結(jié)構(gòu)與工作原理串行口結(jié)構(gòu)如上所述,MCS - 51串行1/O接口的基本工作是:發(fā)送時(shí),將CPU送來的并行數(shù)據(jù)轉(zhuǎn)換成一定格式的串行

6、數(shù)據(jù),從引腳TXD(P31)上按規(guī)定的波特率逐位輸出;接收時(shí),要監(jiān)視引腳RXD(P3.0),一旦出現(xiàn)起始位“0”,就將外圍設(shè)備送來的一定格式的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù),等待CPU讀人。接收緩沖器是雙緩沖的,是為了避免在接收下一幀數(shù)據(jù)之前,CPU未能及時(shí)響應(yīng)接收器的中斷,把上幀數(shù)據(jù)讀走,而產(chǎn)生兩幀數(shù)據(jù)重疊的問題而設(shè)置的雙緩沖結(jié)構(gòu)。對(duì)于發(fā)送緩沖器,為了保持最大傳輸率,一般不需要雙緩沖,這是因?yàn)榘l(fā)送時(shí)CPU是主動(dòng)的,不會(huì)產(chǎn)生寫重疊的問題。 第二節(jié) 串行接口控制與狀態(tài)寄存器1、串行口控制寄存器SCON功能說明如下:·SM0、SM1串行口工作方式選擇位其狀態(tài)組合所對(duì)應(yīng)的工作方式為:·S

7、M2多機(jī)通信控制位SM2位主要用于方式2和方式3。當(dāng)串行口方式2或方式3接收時(shí),如SM2=1,則只有當(dāng)接收到的第九位數(shù)據(jù)(RB8)為1,才將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI產(chǎn)生中斷請(qǐng)求;否則,將接收到的前8位數(shù)據(jù)丟棄。而當(dāng)SM2=0時(shí),則不論第九位數(shù)據(jù)為0還是為1,都將前8位數(shù)據(jù)裝入SBUF中,并產(chǎn)生中斷請(qǐng)求。 ·REN允許接收位 REN=0 禁止接收 REN=1 允許接收該位由軟件置位或復(fù)位。·TB8發(fā)送數(shù)據(jù)位8在方式2和方式3時(shí),TB8的內(nèi)容是要發(fā)送的第9位數(shù)據(jù),其值由用戶通過軟件設(shè)置。在雙機(jī)通信時(shí),TB8一般作為奇偶校驗(yàn)位使用;在多機(jī)通信中,常以TB8位的狀

8、態(tài)表示主機(jī)發(fā)送的是地址幀還是數(shù)據(jù)幀,且一般約定:TB8=0為數(shù)據(jù)幀 TB8=1為地址幀。·RB8接收數(shù)據(jù)位8在方式2或方式3時(shí),RB8存放接收到的第9位數(shù)據(jù),代表著接收數(shù)據(jù)的某種特征(與TB8的功能類似),故應(yīng)根據(jù)其狀態(tài)對(duì)接收數(shù)據(jù)進(jìn)行操作。·TI發(fā)送中斷標(biāo)志當(dāng)方式0時(shí),發(fā)送完第8位數(shù)據(jù)后,該位由硬件置位。在其它方式下,于發(fā)送停止位之前,由硬件置位。因此TI=1,表示幀發(fā)送結(jié)束,其狀態(tài)既可供軟件查詢使用,也可請(qǐng)求中斷。TI位由軟件清“0”。·RI接收中斷標(biāo)志當(dāng)方式0時(shí),接收完第8位數(shù)據(jù)后,該位由硬件置位。在其它方式下,當(dāng)接收到停止位時(shí),該位由硬件置位。因此RI=1,

9、表示幀接收結(jié)束。其狀態(tài)既可供軟件查詢使用,也可以請(qǐng)求中斷。RI位由軟件清“0”。2、電源控制寄存器PCONSMOD串行口波特率的倍增位當(dāng)SMOD=1時(shí),串行口波特率加倍。系統(tǒng)復(fù)位時(shí),SMOD0。3、中斷允許寄存器IEES=0 禁止串行中斷 ES=1 允許串行中斷 一、 方式21、電路邏輯結(jié)構(gòu)初始化時(shí),8位計(jì)數(shù)初值同時(shí)裝入TL0和TH0中。當(dāng)TL0計(jì)數(shù)溢出時(shí),置位TF0,同時(shí)把保存在預(yù)置寄存器TH0中的計(jì)數(shù)初值自動(dòng)加載TL0,然后TL0重新計(jì)數(shù)。串行口的工作方式MCS - 51單片機(jī)中的異步通信串行接口能方便地與其他計(jì)算機(jī)或傳送信息的外圍設(shè)備(如串行打印機(jī)、CPU終端等)實(shí)現(xiàn)雙機(jī)、多機(jī)通信。串行

10、口有4種工作方式,見表7一1。方式0并不用于通信,而是通過外接移位寄存器芯片實(shí)現(xiàn)擴(kuò)展并行1/O接口的功能。該方式又稱為移位寄存器方式。方式1、方式2、方式3都是異步通信方式。方式1是8位異步通信接口。一幀信息由10位組成,其格式見圖7一2a。方式1用于雙機(jī)串行通信。方式2、方式3都是9位異步通信接口、一幀信息中包括9位數(shù)據(jù),1位起始位,1位停止位,其格式見圖7一2b。方式2、方式3的區(qū)別在于波特率不同,方式2、方式3主要用于多機(jī)通信,也可用于雙機(jī)通信。一、串行接口的工作方式0SM00、SM10串行口工作于方式0, 即串行寄存器方式或稱為同步移位寄存器輸入輸出方式。CPU執(zhí)行一條寫SBUF的指令

11、如MOV SBUF ,A就啟動(dòng)了發(fā)送過程。發(fā)送的時(shí)序見圖7-1。接收時(shí)序見圖7-2 圖7-1 方式0發(fā)送時(shí)序圖7-2 方式0接收時(shí)序串行口方式0不適用于兩個(gè)8051之間的數(shù)據(jù)通信,但可通過外接移位寄存器來擴(kuò)展單片機(jī)的接口。例如,可以采用74LS164可以擴(kuò)展并行輸出口,74LS165可以擴(kuò)展輸入口。二、串行口工作方式1SM00,SM11串行口接口工作于方式1,即將8位異步通信接口方式,RXD為接收端,TXD為發(fā)送端。一幀信息由10位組成,方式1的波特率可變,由定時(shí)器計(jì)數(shù)器1或定時(shí)器計(jì)數(shù)器2的溢出速率以及SMOD(PCON.7)決定。1.發(fā)送CPU執(zhí)行一條寫SBUF指令后便啟動(dòng)了串行口發(fā)送,數(shù)據(jù)

12、從TXD輸出,時(shí)序見圖7-8a。在指令執(zhí)行期間,CPU送來“寫SBUF”信號(hào),將并行數(shù)據(jù)送入SBUF,并啟動(dòng)發(fā)送控制器,經(jīng)一個(gè)機(jī)器周期,發(fā)送控制器的SEND、DATA相繼有效,通過輸出控制門從TXD上逐位輸出一幀信號(hào)。一幀信號(hào)發(fā)送完畢后,SEND、DATA失效,發(fā)送控制器硬件置發(fā)送中斷標(biāo)志TI1,向CPU申請(qǐng)中斷。2.接收方式1的接收時(shí)序見圖7-8b。允許接收位REN被置1接收器就開始工作,跳變檢測(cè)器以波特率16倍的速率采樣RXD引腳上電平,當(dāng)采樣到從1到0的負(fù)跳變時(shí),啟動(dòng)接收控制器接收數(shù)據(jù),由于發(fā)送、接收雙方各自使用自己的時(shí)鐘,兩者的頻率總有少許差異。為了避免這種影響,控制器將1位送時(shí)間等分

13、成16分、位檢測(cè)器在7、8、9三個(gè)狀態(tài)也就是在位信號(hào)中央采樣RXD三次。 而且,三次采樣中至少兩次相同的值被確認(rèn)為數(shù)據(jù),這是為了減小干擾的影響。如果起始位接收到的值不是0,由起始位無效,復(fù)位接收電路。如果起始位為0,則開始開始接收本幀其他數(shù)據(jù)??刂破靼l(fā)出的內(nèi)部移位脈沖將RXD上的數(shù)據(jù)逐位移入移位寄存器,當(dāng)8位數(shù)據(jù)及停止位全移入后:(1)如果RI0、SM20,接收控制器發(fā)出“裝載SBUF”信號(hào),將8位數(shù)據(jù)裝入接收數(shù)據(jù)緩沖器SBUF,停止裝入RB8,并置RI1,向CPU申請(qǐng)中斷。(2)如果RI0、SM21,那么只有停止位為1時(shí)才發(fā)生上述動(dòng)作。(3)如果RI0、SM21且停止位為0,(通常由傳輸過程

14、中的干擾所致)所接收的數(shù)據(jù)應(yīng)會(huì)丟失,不再恢復(fù)。(4)如果RI1,則所接收的數(shù)據(jù)在任何情況下都會(huì)丟失。無論出現(xiàn)哪一種情況,跳變檢測(cè)器將繼續(xù)采樣RXD引腳的負(fù)跳變,以便接收下一幀信息。接收器采用移位寄存器和SBUF雙緩沖結(jié)構(gòu),以避免在接收后一幀數(shù)據(jù)之前,CPU尚未及時(shí)響應(yīng)中斷將前一幀數(shù)據(jù)取走,造成兩幀數(shù)據(jù)重疊問題。采用雙緩沖器后,前、后兩幀數(shù)據(jù)進(jìn)入SBUF的時(shí)間間隔至少有10個(gè)位傳送周期。在后一幀數(shù)據(jù)送入SBUF之前,CPU有足夠的時(shí)間將前一幀數(shù)據(jù)取走。三、串行接口工作方式2和與方式3串行口工作在方式2、方式3時(shí),為9位異步通信接口。發(fā)送或接收的一幀信息由11位組成,見圖7-2b。方式2與方式3僅

15、波特率不同,方式2的波特率為fosc/32(SMOD1時(shí))或fosc/64(SMOD0時(shí)),而方式3的波特率由定時(shí)器計(jì)數(shù)器具或定時(shí)器計(jì)數(shù)器2及SMOD決定。1.發(fā)送方式2、方式3發(fā)送時(shí),數(shù)據(jù)從TXD引腳輸出,附加的第九位數(shù)據(jù)由SCON中的TB8提供。CPU執(zhí)行一條寫入SBUF的指令后立即啟動(dòng)發(fā)送器發(fā)送。發(fā)送完一幀信息后由硬件置TI=1。2.接收與方式1相似,REN置1后,跳變檢測(cè)器不斷對(duì)RXD引腳采樣。當(dāng)采樣到負(fù)跳變后就啟動(dòng)接收控制器。位檢測(cè)器對(duì)每位數(shù)據(jù)采集3個(gè)值,用采3取2辦法確定每位的數(shù)值。當(dāng)?shù)诰盼粩?shù)據(jù)移入移位寄存器后,將8位數(shù)據(jù)裝入SBUF,第九位數(shù)據(jù)裝入RB8,并置RI=1,其時(shí)序見圖2-26b。與方式1相同,方式2、方式3中也設(shè)置有數(shù)據(jù)辨別功能,即當(dāng)RI1或SM21且第九位數(shù)據(jù)為0時(shí)所接收的一幀信息被丟失。四、波特率的設(shè)計(jì) 方式1的波特率是可變的,以定時(shí)器T1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論