版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1,第7章 串行口與串行通信,(學(xué)生事先必須預(yù)習(xí),本章是一個(gè)難點(diǎn)、重點(diǎn),注意學(xué)習(xí)的層次性) 7.1 串行通信概述 7.2 MCS-51的串行口結(jié)構(gòu) 7.3 和串行通信有關(guān)的8個(gè)寄存器 SCON TCON PCON TMOD SBUF IE TH1 TL1 7.4 串行口四種工作方式 7.5 串行口的應(yīng)用編程 7.6 串行通信總線標(biāo)準(zhǔn)及接口(了解),2,7.1 串行通信概述 單片機(jī)應(yīng)用與數(shù)據(jù)采集或工業(yè)控制時(shí),往往作為前端機(jī)(下位機(jī))安裝在工業(yè)現(xiàn)場(chǎng),遠(yuǎn)離主機(jī),現(xiàn)場(chǎng)數(shù)據(jù)采用串行通信方式發(fā)往主機(jī)(上位機(jī))進(jìn)行處理,以降低通信成本,提高通信可靠性.如下圖所示.,3,7.1.1 并行通信與串行通信 1.并
2、行通信(Parallel):所傳送數(shù)據(jù)的各位同時(shí)發(fā)送或接收,數(shù)據(jù)有多少位就需要多少根數(shù)據(jù)線. 特點(diǎn):速度快,成本高,適合近距離傳輸(相距數(shù)米) 如計(jì)算機(jī)并口,打印機(jī),8255 . 2.串行通信(Serial):所傳送數(shù)據(jù)的各位按順序一位一位地發(fā)送或接收.只需一根數(shù)據(jù),一根地線,共2根(如雙向通信發(fā)送和接收各需1根數(shù)據(jù)線.) 特點(diǎn):成本低,硬件方便,串行通訊的距離可以從幾米到幾千米,傳輸速度低.,4,5,6,7.1.2 串行通訊的數(shù)據(jù)傳輸方向 按通信方向分類:單工、半雙工、全雙工通信方式 1. 單工方式(Simplex Mode):如果在通信過程的任意時(shí)刻,信息只能由一方A傳到另一方B,則稱為單
3、工.一端是發(fā)送端,另外一端是接收端:如廣播電臺(tái)和收音機(jī),7,2.半雙工方式 (Half Duplex) 如果在任意時(shí)刻,信息既可由A傳到B,又能由B傳A,但只能由一個(gè)方向上的傳輸存在,稱為半雙工傳輸.每端口有一個(gè)發(fā)送器和一個(gè)接收器,通過開關(guān)連接在線路上,數(shù)據(jù)可以雙向傳送,但不能同時(shí)發(fā)送和接收. 要通過換向器轉(zhuǎn)換方向.如對(duì)講機(jī).,8,全雙工方式(Full Duplex) 如果在任意時(shí)刻,線路上存在A到B和B到A的雙向信號(hào)傳輸,則稱為全雙工.通信雙方用兩個(gè)獨(dú)立的收發(fā)器單獨(dú)連接,可以同時(shí)發(fā)送和接收數(shù)據(jù),因而提高了速度.如電話機(jī).,9,7.1.3 同步串行通信和異步串行通信(前提),1.異步通信:as
4、ynchronous 異步串行通信一幀(Frame)數(shù)據(jù)格式: 起始位+數(shù)據(jù)位+奇偶校驗(yàn)位+停止位 起始位: “0”(space)表示字符的開始(使通信雙方協(xié)調(diào)同步); 數(shù)據(jù)位:58位即該字符的代碼,規(guī)定低位在前,高位在后; 奇偶校驗(yàn)位:(可選),奇校驗(yàn):數(shù)據(jù)位和奇偶校驗(yàn)位的1的個(gè)數(shù)是奇數(shù); 偶校驗(yàn):數(shù)據(jù)位和奇偶校驗(yàn)位的1的個(gè)數(shù)是偶數(shù); 停止位: “1”表示字符的結(jié)束. 字符與字符之間可能存在長(zhǎng)度不等的空閑位狀態(tài)“1”(Mark),10,優(yōu)點(diǎn):硬件結(jié)構(gòu)簡(jiǎn)單 缺點(diǎn):因?yàn)橐郊右恍?biāo)志信息,傳輸效率低,一般應(yīng)用在低速通信系統(tǒng).,第n個(gè)字符(一幀),n-1,n+1,起始位,數(shù)據(jù)位(58位),奇偶校驗(yàn)
5、位,停止位,異步串行通信的幀格式,11,2.同步通信 synchronous 在同步通信中,發(fā)送方在數(shù)據(jù)或字符開始處就用同步字符(一種特定的二進(jìn)制序列)指示一幀的開始(比如:HDLC協(xié)議將0111 1110作為同步字符,檢出了同步字符就找到了數(shù)據(jù)的起始位置),由時(shí)鐘來實(shí)現(xiàn)發(fā)送端和接收端同步,接收方一旦檢測(cè)到與規(guī)定的同步字符符合,下面就連續(xù)按順序傳送若干個(gè)數(shù)據(jù),最后發(fā)校驗(yàn)字節(jié).見下圖:,SYN字符1,因?yàn)椴徊捎闷鹗嘉缓屯V刮?所以有較高的傳輸效率,速度快,但是硬件復(fù)雜,成本高,使用與高速率、大容量的數(shù)據(jù)通信中,12,7.1.4 波特率(Baudrate) 波特率是雙方對(duì)數(shù)據(jù)傳送速率的約定,表示每
6、秒傳送的二進(jìn)制位數(shù)(bit),是串行通信的一個(gè)重要指標(biāo),反映了串行通信的速率,也反映了對(duì)傳輸通道的要求.單位是bps (Bit Per Second), bit/s 例如:120字符/秒,1個(gè)字符10位, 波特率為:12010=1200bps 平均每一位傳送占用時(shí)間:Td=1/1200=0.833ms,常用的波特率有:(離散) 19200/9600/4800/2400/1200/600/300/150/100/50, 還有10M/100M,13,7.1.5 通信協(xié)議(了解) 雙機(jī)通信必須要有協(xié)議,所謂通信協(xié)議就是通信雙方必須共同遵守的一種約定,約定包括數(shù)據(jù)的格式、同步的方式、傳送的步驟、檢糾錯(cuò)
7、方式及控制字符的定義等(ADSL 貓).在串行傳輸中,通信的雙方都按通信協(xié)議進(jìn)行,串行接口的基本任務(wù)就是: 1.實(shí)現(xiàn)數(shù)據(jù)格式化 因?yàn)镃PU發(fā)出的數(shù)據(jù)是并行數(shù)據(jù),接口電路應(yīng)實(shí)現(xiàn)不同串行通信方式下的數(shù)據(jù)格式化任務(wù),如自動(dòng)生成起止方式的幀數(shù)據(jù)格式(異步方式)或在待傳送的數(shù)據(jù)塊前加上同步字符等.,14,2.進(jìn)行串、并轉(zhuǎn)換 在發(fā)送端,接口將CPU送來的并行信號(hào)轉(zhuǎn)換成串行數(shù)據(jù)進(jìn)行傳送; 在接收端,接口要將接收到串行數(shù)據(jù)變成并行數(shù)據(jù)送往CPU,由CPU進(jìn)行處理. 3.控制數(shù)據(jù)的傳輸速率 接口應(yīng)具備對(duì)數(shù)據(jù)傳輸率-波特率的控制選擇能力,即具有波特率發(fā)生器. 4.進(jìn)行傳送錯(cuò)誤檢測(cè) 在發(fā)送時(shí),對(duì)傳送的數(shù)據(jù)自動(dòng)生成校
8、驗(yàn)位或校驗(yàn)碼,在接收端能檢查校驗(yàn)位或校驗(yàn)碼,以確定傳送中是否有誤碼.,15,能夠完成上述“串并”轉(zhuǎn)換功能的電路,通常稱為“通用異步收發(fā)器” (UART: Universal Asynchronous Receiver and Transmitter),串口通訊-接口電路,16,7.2 MCS-51的串行口結(jié)構(gòu)及傳送過程 51單片機(jī)有一個(gè)可編程的全雙工異步串行通信接口,它可作UART用(Universal Asynchronous Receiver 接收緩沖器SBUF只能讀出/不能寫入,CPU讀SBUF,就是讀接收寄存器.,19,(2)波特率發(fā)生器 可以有兩種選擇: 1.定時(shí)器T1作波特率發(fā)生器
9、,改變計(jì)數(shù)初值就可以改變串行通信的速率,稱為可變波特率.(variable) 2. 以內(nèi)部時(shí)鐘的分頻器作波特率發(fā)生器,因內(nèi)部時(shí)鐘頻率一定,稱為固定波特率.(fixed),20,2.串行通信的傳送過程,21,發(fā)送和接受過程的敘述: 甲方發(fā)送時(shí),CPU執(zhí)行指令MOV SBUF,A,就啟動(dòng)了發(fā)送過程,數(shù)據(jù)并行送入SBUF,在發(fā)送時(shí)鐘shift的控制下由低位到高位一位一位發(fā)送; 乙方在接收時(shí)鐘shift的控制下,由低位到高位順序進(jìn)入移位寄存器SBUF; 甲方一幀數(shù)據(jù)發(fā)送完畢,置位發(fā)送中斷標(biāo)志TI,該位可作為查詢標(biāo)志(或引起中斷),CPU可再發(fā)送下一幀數(shù)據(jù). 乙方一幀數(shù)據(jù)到齊,即接收緩沖器滿,置位接收中
10、斷標(biāo)志RI,該位可作為查詢標(biāo)志(或引起接收中斷),通過MOV A,SBUF, CPU將這幀數(shù)據(jù)并行讀入.,22,由上述可知: 1.甲、乙方的移位時(shí)鐘頻率應(yīng)相同,即應(yīng)具有相同的波特率,否則會(huì)造成數(shù)據(jù)丟失. 2.發(fā)送方是先發(fā)數(shù)據(jù)再查標(biāo)志, 接收方是先查標(biāo)志再收數(shù)據(jù). 3.接收/發(fā)送數(shù)據(jù),無論是否采用中斷方式工作,每接收/發(fā)送一個(gè)數(shù)據(jù)都必須用指令對(duì)RI/TI清0,以備下一次收/發(fā)(CLR TI,CLR RI),23,7.3 與串行通信有關(guān)的8個(gè)寄存器,24,1.串行口控制寄存器 SCON Serial Port Control Register. Bit Addressable(98H) 8051串
11、行通信的方式選擇,接受和發(fā)送控制及串行口的標(biāo)志均由專用寄存器SCON控制和指示,存放串行口的控制和狀態(tài)信息,其格式如下(難點(diǎn)),25,SM0 SM1 SM2 REN TB8 RB8 TI RI,SM0 SM1:串行口4種工作方式的選擇位.(具體介紹在下一節(jié)) 方式0(00):8位移位寄存器I/O, 波特率固定=fosc/12 方式1(01):8位UART(1+8+1位), 波特率可變,按公式計(jì)算 方式2(10):9位UART(1+8+1+1位),波特率固定=fosc/32或fosc/64 方式3(11):9位UART(1+8+1+1位),波特率可變,按公式計(jì)算,SCON,26,SM0: SCO
12、N.7 Serial port Mode specifier. SM1: SCON.6 Serial port Mode specifier.,(*) NOTE: The baud rate indicated in this table is doubled if PCON.7 (SMOD) is set.,27,SM2:(難點(diǎn))多機(jī)通信控制位(作為方式2、方式3的附加控制位).當(dāng)選擇方式2或方式3時(shí),發(fā)送機(jī)設(shè)置SM2=1,以發(fā)送第九位TB8=1作為地址幀尋找從機(jī),以TB8=0作為數(shù)據(jù)幀進(jìn)行通信,從機(jī)初始化時(shí)設(shè)置SM2=1,若接收到的第九位數(shù)據(jù)RB8=0,不置位RI,即不引起接收中斷,亦既不
13、接收數(shù)據(jù)幀,繼續(xù)監(jiān)聽,如接收到的RB8=1,置位RI,引起接收中斷,中斷程序中判斷所接收的地址幀和本機(jī)的地址是否符合,若不符合,維持SM2=1,繼續(xù)監(jiān)聽,若符合,則清SM2,接收對(duì)放發(fā)來的后續(xù)信息.,SCON,28,SM2: Enable the multiprocessor communication feature in modes 2 在方式0中,SM2應(yīng)置為0.,29,SM0 SM1 SM2 REN TB8 RB8 TI RI,REN:串行口接收允許控制位 Set/Cleared by software to Enable/Disable reception =1 允許接收; (SET
14、B REN) =0 禁止接收. 系統(tǒng)復(fù)位后,REN=0,不允許接受,SCON,30,RB8:在串行工作方式2 =0 不申請(qǐng)中斷,SCON,33,2.SBUF: Serial Buffer Register (99H) 兩個(gè)物理上獨(dú)立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H,可同時(shí)發(fā)送、接收數(shù)據(jù). 發(fā)送緩沖器SBUF只能寫入、不能讀出,CPU寫SBUF, MOV SBUF,A 一方面修改發(fā)送寄存器,同時(shí)啟動(dòng)數(shù)據(jù)串行發(fā)送; 接收緩沖器SBUF只能讀出、不能寫入,CPU讀SBUF, MOV A,SBUF 就是讀接收寄存器.,34,3.電源控制寄存器 PCON Power Control R
15、egister. Not Bit Addressable (87H) 最高位SMOD位和串行通信有關(guān)(了解),(1)只能字節(jié)尋址,初始化時(shí)SMOD=0. (2)SMOD: Double baud rate bit. 在串行口工作方式1/2/3中,波特率加倍位 =1時(shí),波特率加倍 (MOV PCON,#80H 加倍) =0時(shí),波特率不加倍.(MOV PCON,#00H 默認(rèn)是不加倍的) (串行通信只用其中的最高位SMOD) If Timer1 is used to generate baud rate and SMOD=1, the baud rater is doubled when the
16、Serial Port is used in modes 1,2,3.,PCON,35,GF1,GF0:用戶可自行定義使用的通用標(biāo)志位 GF1: General purpose Flag bit. GF0 :General purpose Flag bit.,SMOD GF1 GF0 PD IDL,PCON,PD:掉電方式控制位 Power Down bit. =0:常規(guī)工作方式. =1:進(jìn)入掉電方式:振蕩器停振片內(nèi)RAM和SRF的值保持不變P0P3口維持原狀程序停止 只有復(fù)位能使之退出掉電方式. Setting this bit activates Power Down operation
17、in the 80C51BH. (Available only in CHMOS),36,IDL (Idle Mode bit) 待機(jī)方式(空閑方式)控制位. =0:常規(guī)工作方式. =1:進(jìn)入待機(jī)方式:振蕩器繼續(xù)振蕩中斷、定時(shí)器、串口功能繼續(xù)有效片內(nèi)RAM和SRF保持不變CPU狀態(tài)保持、P0P3口維持原狀程序停頓. 中斷和復(fù)位能退出待機(jī),繼續(xù)后面的程序. Setting this bit activates Idle Mode operation in the 80C51BH. (Available only in CHMOS),SMOD GF1 GF0 PD IDL,37,4.TMOD 定時(shí)
18、器方式寄存器 Timer/Counter Mode control register. Not bit addressable (89H) 用于控制T0和T1的操作模式 (MOV TMOD,#20H),38,方式0: 00:13位 Timer 方式1: 01:16位 Timer 方式2: 10:8位自動(dòng)重裝的Timer波特率發(fā)生器 方式3: 11:T0 分為2個(gè)8位 Timer;,(1)M1,M0:工作方式定義位 ( 定義4種方式 ):,39,(2)GATE:門控位 Timer可由軟件與硬件兩者控制 GATE=0 普通用法 Timer的啟/停由軟件對(duì)TR1位寫“1”/“0”控制(SETB TR
19、1) (3)C/T* :計(jì)數(shù)器/定時(shí)器選擇位 =0 (Timer) 片內(nèi)時(shí)鐘定時(shí)器.對(duì)機(jī)器周期脈沖計(jì)數(shù)定時(shí),5-6.TH1 (Timer High) :定時(shí)器/計(jì)數(shù)器1高字節(jié)(8Dh) TL1 (Timer Low) :定時(shí)器/計(jì)數(shù)器1低字節(jié)(8Bh),MOV TH1,#*H MOV TL1,#*H(相同的初值),40,(1) TF1:Timer 1 overflow flag 定時(shí)器溢出中斷申請(qǐng)標(biāo)志位 Set by hardware when the Timer/Counter 1 overflows. Cleared by hardware as processor vectors to
20、the interrupt service routine. =0:定時(shí)器未溢出; =1:定時(shí)器溢出申請(qǐng)中斷,進(jìn)中斷后自動(dòng)清零.,7.TCON:定時(shí)器/計(jì)數(shù)器控制寄存器,用于T/C的管理與控制 TIMER/COUNTER CONTROL REGISTER. BIT DDRESSABLE (88h),41,(2) TR1: T1運(yùn)行控制位Timer 1 run control bit. note: Set/cleared by software to turn Timer/Counter 1 ON/OFF TR1=1, 啟動(dòng)T1計(jì)數(shù) setb tr1 TR1=0, 停止T1計(jì)數(shù) clr tr1,
21、42,8.IE 中斷允許寄存器 (0A8H) Interrupt Enable register. Bit addressable,EA:總的中斷允許控制位(總閥門) (Enable All interrupt) ES:串行口中斷允許位 (Enable or disable the Serial port interrupt) SETB EA SETB ES,IE,43,7.4 串行口四種工作方式(難點(diǎn))回顧:定時(shí)器也有四種工作方式,不要混淆,7.4.1 工作方式0 SM0 SM1=00 (常用) (special,記憶)串行口作為同步移位寄存器使用,數(shù)據(jù)傳輸波特率固定為fosc/12,串行數(shù)
22、據(jù)由RxD(P3.0)輸入輸出,同步移位脈沖由TxD(P3.1)輸出,數(shù)據(jù)的發(fā)送和接受以8位為一幀數(shù)據(jù),低位在前,高位在后,無起始位、奇偶位和停止位.,44,1.發(fā)送:SBUF中的串行數(shù)據(jù)由RxD逐位移出; TxD輸出移位時(shí)鐘,頻率=fosc/12; 每送出8位數(shù)據(jù),TI就自動(dòng)置1; 需要用軟件對(duì)TI清零 (CLR TI) 2.接收:串行數(shù)據(jù)由RxD逐位移入SBUF中; TxD輸出移位時(shí)鐘,頻率=fosc/12; 每接收8位數(shù)據(jù),RI就自動(dòng)置1; 需要用軟件對(duì)RI清零(CLR RI),45,3.經(jīng)常配合“串入并出的移位寄存器芯片74LS164/CD4094 ” “并入串出的移位寄存器芯片74L
23、S165/CD4014” 一起使用,達(dá)到擴(kuò)展一個(gè)I/O口使用的目的.,46,QA-QH: 并行輸出端; A,B: 串行輸入端(聯(lián)到一起) CLR*: 清除端,低電平時(shí)輸出端清零,一般 接高電平 CLK:時(shí)鐘脈沖輸入端,在脈沖的上升沿實(shí)現(xiàn)移位當(dāng)CLEAR*=1,CLK=0,74LS164保持原來的數(shù)據(jù)狀態(tài),47,48,4.方式0工作時(shí),多用查詢方式編程: 發(fā)送: MOV SBUF,A 接收: JNB RI,$ JNB TI,$ CLR RI CLR TI MOV A, SBUF,5.復(fù)位時(shí),SCON=00H 缺省值:方式0,6.接收前,務(wù)必先置位REN=1,允許接收數(shù)據(jù),因?yàn)橄到y(tǒng)復(fù)位后,SCON
24、.4=0,SCON,49,7.串行口方式0的應(yīng)用(經(jīng)常用到),串行口常用工作方式0擴(kuò)展出并行I/O口,而工作方式1、2、3則常用于串行通信.,74LS164是串入并出芯片;74LS165是并入串出芯片,50,共陽極,介紹:共陽LED數(shù)碼管 公共端(字位) 接高電平, 筆劃(字段) 置為低電平 就被點(diǎn)亮了,h g f e d c b a,1 1 0 0 0 0 0 0,0C0H = “0”,比如要顯示“0” 須令a b c d e f 為“0” 電平,g h為“1”電平.,再比如要顯示“3” 須令a b c d g 為“0” 電平,e f h為“1”電平.,1 0 1 1 0 0 0 0,0B0
25、H = “3”,h g f e d c b a,a,b,c,d,g,e,f,h,51,例1:利用串行口工作方式0擴(kuò)展出8位并行I/O口,驅(qū)動(dòng)共陽LED數(shù)碼管顯示09.,AB,CLK,h g f e d c b a,CLR,+5V,Vcc,TxD,RxD,51單片機(jī),74LS164,共陽LED數(shù)碼管,52,根據(jù)上圖編寫的通過串行口和74LS164驅(qū)動(dòng)共陽LED數(shù)碼管顯示0-9數(shù)字的子程序(查表) : 入口參數(shù):A,DISPLAY:MOV DPTR, #TABLE MOVC A, A+DPTR MOV SBUF, A;發(fā)送 JNB TI, $ CLR TI RET TABLE:DB 0C0H,0F
26、9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H ;共陽極段碼表,53,例2 采用串行通信方式0,擴(kuò)展I/O接口,接八個(gè)數(shù)碼管,使內(nèi)部數(shù)據(jù)存儲(chǔ)器58H5FH單元的內(nèi)容送數(shù)碼管顯示;,分析:由于TXD,RXD運(yùn)行在工作方式0時(shí),可方便的連接串入并出寄存器74LS164,RXD發(fā)送數(shù)據(jù),TXD發(fā)送移位脈沖,P3.3用于顯示器的輸入控制,通過74LS164接八個(gè)數(shù)碼管,電路如下圖所示.,54,55,ORG 0050H SETB P3.3 ;允許移位寄存器工作 MOV SCON,#00h ; 0000 0000 選串行通信方式0 MOV R7,#08H ;顯示八個(gè)字符
27、MOV R0,#5FH ;先送最后一個(gè)顯示字符 MOV DPTR,#TAB ;DPTR指向字形表首址 DLO: MOV A,R0 ;取待顯示數(shù)碼 MOVC A,A+DPTR ;查字形表 MOV SBUF,A ;送出顯示 JNB TI, $ ;一幀輸出完? CLR TI;已完,清中斷標(biāo)志 DEC R0 ;修改顯示數(shù)據(jù)地址 DJNZ R7, DLO CLR P3.3 ;8位送完,關(guān)發(fā)送脈沖(軟件控制硬件) SJMP $ TAB: DB 0C0H,0F9H,0A4H,B0H,99H,92H ;共陽極段碼 DB 82H,0F8H,80H,90H,83H,83H,0C6H DB 0A1H,86H,84H
28、,0FFH,0BFH,56,7.4.2 工作方式1 SM0 SM1=01 方式1是10位(記憶)為一幀的異步串行通信方式,包括1個(gè)起始位,8個(gè)數(shù)據(jù)位和1個(gè)停止位,波特率可變,由TxD端發(fā)送數(shù)據(jù),RxD端接受數(shù)據(jù).(和方式0不一樣),57,SM0 SM1 SM2 REN TB8 RB8 TI R1,SCON,(1)SM0/SM1:串行口工作方式選擇位. 0 1 :方式1,10位UART(1+8+1位) (2)SM2:串行口多機(jī)通信控制位,作為方式2、3的附 加控制位,此處不用,可寫成“0” (3)REN:串行口接收允許位. REN=1 允許接收 (4)TB8/RB8/TI/RI等位由運(yùn)行中間的情
29、況決定,可先寫成“0”,串行口控制寄存器SCON,0 1 0 1 0 0 0 0,58,NOTE:,1.常用于串行通訊,除發(fā)/收8位數(shù)據(jù)外, 在D0位前有一個(gè)起始位“0”; 在D7位后有一個(gè)停止位“1”. 2.方式1工作時(shí): 發(fā)送端自動(dòng)添加一個(gè)起始位和一個(gè)停止位; 接收端自動(dòng)去掉一個(gè)起始位和一個(gè)停止位. 3.波特率可變用定時(shí)器T1,以工作方式2,8位自動(dòng)重新加載做為波特率發(fā)生器(系統(tǒng)規(guī)定的),可以省去重新加載初始值的麻煩和誤差.,59,波特率=(2SMOD/32)T1的溢出率,溢出率:溢出周期的倒數(shù),即:T1溢出一次所需時(shí)間的倒數(shù).假定計(jì)數(shù)初值為X,則計(jì)數(shù)溢出周期為:,4.初值的計(jì)算:,記憶,
30、60,例3:要求用T1工作于方式2來產(chǎn)生波特率1200,已知晶振頻率=6MHz.要求出T1的初值. 解:1200=(20/32)T1的溢出率 T1的溢出率=32*1200=38400 T1的溢出周期=1/38400s=1000/38400ms=1000,000/38400us 6MHz下轉(zhuǎn)成計(jì)數(shù)值是: 1000,000/38400/2=13.02(有誤差) 256-13=243=0F3H(小軟件) (后面用到),61,例4:要求用T1工作于方式2來產(chǎn)生波特率1200,已知晶振頻率fosc=11.0592MHz,要求出T1的初值: (11.0592=212*27),解:1200=(20/32)T
31、1的溢出率 T1的溢出率=32*1200 T1的溢出周期=1/38400s=1000/38400ms=1000,000/38400us 11.0592MHz下轉(zhuǎn)成計(jì)數(shù)值是: 6MHZ-2us12 11.0592MHz-Xus X= 12MHZ-1us 11.0592 1000,000 12 1000,000*11.0592 38400 11.0592 38400*12 256-24=232=0E8H(小軟件),62,NOTE:晶振也止一種,表格有多種,5.常用波特率和T1初值速查表,63,6.工作方式1的接收/發(fā)送 (1)RxD引腳為接收端,TxD引腳為發(fā)送端,由波特率發(fā)生器T1控制發(fā)送速度;
32、不同于方式0下,收/發(fā)都需要由TxD送出移位時(shí)鐘; (2)串行口的初始化包括: a.對(duì)SCON選工作方式; b.對(duì)PCON波特率加倍位“SMOD”進(jìn)行設(shè)定(缺省值=0); c.如果是接收數(shù)據(jù),仍要先置“1”REN位; (3)T1作波特率發(fā)生器時(shí)初始化包括: TMOD設(shè)置為定時(shí)器工作方式2(8位自動(dòng)重裝); 將計(jì)算(或查表)出的初值X賦給TH1,TL1; 啟動(dòng)T1 (SETB TR1); 對(duì)T1不要開中斷 !,64,例6.在內(nèi)部數(shù)據(jù)存儲(chǔ)器20H3FH單元中共有32個(gè)數(shù)據(jù),要求采用串行方式1發(fā)送出去,傳送速率為1200波特,設(shè)fosc=12MHz.(采用查詢方式) 解:T1工作于方式2,作波特率發(fā)
33、生器,取SMOD=0,T1的時(shí)間常數(shù)計(jì)算如下: 波特率= 1200=(1/32)12106/12(256-x) x=230=E6H(小軟件),65,發(fā)送程序: ORG 0000H MOV TMOD,#20H ;T1方式2 0010 0000 MOV TH1,#0E6H MOV TL1,#0E6H ;T1時(shí)間常數(shù) SETB TR1 ;啟動(dòng)T1 MOV SCON,#40H ; 0100 0000串行口工作于方式1 MOV R0,#20H ;R0指發(fā)送緩沖區(qū)首址 MOV R7,#32 ;R7作發(fā)送數(shù)據(jù)計(jì)數(shù) LOOP: MOV SBUF,R0 ;發(fā)送數(shù)據(jù) JNB TI, ;一幀未發(fā)完繼續(xù)查詢 CLR
34、TI ;一幀發(fā)完清TI INC R0 DJNZ R7,LOOP ;數(shù)據(jù)塊未發(fā)完繼續(xù) SJMP ,66,接收程序: ORG 0000H MOV TMOD,#20H ;T1方式2 0010 0000 MOV TH1,#0E6H MOV TL1,#0E6H ;初始化T1, T1時(shí)間常數(shù) SETB TR1 ;啟動(dòng)T1 MOV SCON,#50H ;0101 0000設(shè)定串行方式1,并允許接收MOV R0,#20H MOV R7,#32 LOOP:JNB RI, ;一幀收完? CLR RI ;收完清RI MOV R0, SBUF ;將數(shù)據(jù)讀入 INC R0 DJNZ R7, LOOP SJMP ,67,
35、(1)11位UART(1+8+1+1位)(記憶),兩種波特率,由TxD端發(fā)送數(shù)據(jù),RxD端接受數(shù)據(jù).,7.4.3 工作方式2 SM0,SM1=10,(2)由于波特率固定,常用于單片機(jī)間通訊. 數(shù)據(jù)位由8+1位=9位組成,通常附加的一位(TB8/RB8 在SCON寄存器中)用于“奇偶校驗(yàn)”.,68,(3)方式2的波特率=fosc2SMOD/64 即:fosc/32或fosc/64 兩種 (4)奇偶校驗(yàn)是檢驗(yàn)串行通信雙方傳輸?shù)臄?shù)據(jù)正確與否的一個(gè)措施,并不能保證通信數(shù)據(jù)的傳輸一定正確. 換言之:如果奇偶校驗(yàn)發(fā)生錯(cuò)誤,表明數(shù)據(jù)傳輸一定出錯(cuò)了; 如果奇偶校驗(yàn)沒有出錯(cuò),絕不等于數(shù)據(jù)傳輸完全正確. (5)奇
36、校驗(yàn):8位有效數(shù)據(jù)連同1位附加位中,“1”的個(gè)數(shù)為奇數(shù) 偶校驗(yàn):8位有效數(shù)據(jù)連同1位附加位中,“1”的個(gè)數(shù)為偶數(shù),69,約定接收采用奇校驗(yàn): 若接收到的9位數(shù)據(jù)中“1”的個(gè)數(shù)為奇數(shù), 則表明接收正確,取出8位有效數(shù)據(jù)即可; 若接收到的9位數(shù)據(jù)中“1”的個(gè)數(shù)為偶數(shù), 則表明接收出錯(cuò)!應(yīng)當(dāng)進(jìn)行出錯(cuò)處理.,約定發(fā)送采用奇校驗(yàn): 若發(fā)送的8位有效數(shù)據(jù)中“1”的個(gè)數(shù)為偶數(shù), 則要人為添加一個(gè)附加位“1”一起發(fā)送; 若發(fā)送的8位有效數(shù)據(jù)中“1”的個(gè)數(shù)為奇數(shù), 則要人為添加一個(gè)附加位“0”一起發(fā)送.,70,約定發(fā)送采用偶校驗(yàn): 如果ACC中1的個(gè)數(shù)是奇數(shù)(P=1),將TB8寫成“1”發(fā)出去; 如果ACC中1
37、的個(gè)數(shù)是偶數(shù)(P=0),將TB8寫成“0”發(fā)出去. 約定接收采用偶校驗(yàn): 若收到的數(shù)中P=0,且檢查到RB8=0就可能對(duì)了 若收到的數(shù)中P=1,且檢查到RB8=1就可能對(duì)了 若P=0且RB8=1或P=1且RB8=0就一定出錯(cuò)了!,71,回顧:程序狀態(tài)字寄存器PSW中有一個(gè)奇偶狀態(tài)位P,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,P (PSW.0):奇偶狀態(tài)位(Parity Flag). P=1 表示目前ACC中“1”的個(gè)數(shù)為奇數(shù) P=0 表示目前ACC中“1”的個(gè)數(shù)為偶數(shù) CPU隨時(shí)監(jiān)視著Acc的“1”的個(gè)數(shù)并自動(dòng)反映在P中,串口工作方式2的奇偶校驗(yàn)用法,72,例7:程
38、序段選用偶校驗(yàn)方式發(fā)送 PIPL: PUSH PSW ;保護(hù)現(xiàn)場(chǎng) PUSH ACC CLR TI ;清發(fā)送中斷標(biāo)志以備下次發(fā)送 MOV A,R0 ;取由R0所指向的單元中的數(shù)據(jù) MOV C, P ;將奇偶標(biāo)志位通過C放進(jìn)TB8 MOV TB8, C ;一起發(fā)送出去 MOV SBUF,A ;啟動(dòng)發(fā)送(分析,看懂) INC R0 ;指針指向下一個(gè)數(shù)據(jù)單元 POP ACC ;恢復(fù)現(xiàn)場(chǎng) POP PSW RETI ;中斷返回,73,選用偶校驗(yàn)方式接收:(分析,看懂) PIPL:PUSH PSW ;保護(hù)現(xiàn)場(chǎng) PUSH ACC CLR RI ;清發(fā)送中斷標(biāo)志以備下次發(fā)送 MOV A,SBUF;讀進(jìn)收到的數(shù)據(jù)
39、 MOV C, P ;奇偶標(biāo)志位C JNC L1 ;C=0時(shí)轉(zhuǎn)到L1,即P=0時(shí)轉(zhuǎn)到L1 JNB RB8,ERR;P=1,RB8=0“出錯(cuò)”,P=1,RB8=1順序執(zhí)行 SJMP L2 ;RB8=1 則表明接收正確,轉(zhuǎn)L2 L1: JB RB8,ERR;P=0且RB8=1表明“出錯(cuò)” L2: MOV R0, A ;P=0且RB8=0表明接收正確 INC R0 ;指針指向下一個(gè)數(shù)據(jù)單元 POP ACC ;恢復(fù)現(xiàn)場(chǎng) POP PSW RETI ;中斷返回 ERR: ;出錯(cuò)處理,74,7.4.4 工作方式3 SM0,SM1=11,(1)11位UART(1+8+1+1) 波特率可變(記憶!) (2)其通
40、信過程和方式2完全相同,唯一的區(qū)別是波特率機(jī)制不同;方式2的波特率固定的,為時(shí)鐘周期的32或64分頻,不可變.此工作方式與其他串行通訊設(shè)備連接困難,因此方式2不常用. (3)方式3的波特率可以根據(jù)需要進(jìn)行設(shè)定,按前面的公式計(jì)算:,波特率=(2SMOD/32)T1的溢出率,波特率=,2SMOD fosc 32 12(2n - X),其中:X 是定時(shí)器初值,75,7.5 串行口的應(yīng)用編程,1.串行口的波特率有兩種方式: 固定波特率(fixed) 可變波特率(variable) 注意:使用可變波特率時(shí),先確定T1的計(jì)數(shù)初值,并對(duì)T1進(jìn)行初始化. 2.串行通信的編程方式: (1)查詢方式: 查TI或R
41、I是否為“1”. (2)中斷方式:如果預(yù)先開了中斷,當(dāng)TI、RI 為“1”,會(huì)自動(dòng)產(chǎn)生中斷. 注意:兩種方式中當(dāng)發(fā)送或接受數(shù)據(jù)后都要注意清TI或RI,76,3.查詢方式發(fā)送程序:(先發(fā)后查) 發(fā)送一個(gè)數(shù)據(jù)查詢TI發(fā)送下一個(gè)數(shù)據(jù) 查詢方式接收程序:(先查后收) 查詢RI讀入一個(gè)數(shù)據(jù)查詢RI讀下一個(gè)數(shù)據(jù) 4.中斷方式發(fā)送程序: 發(fā)送一個(gè)數(shù)據(jù)等待中斷,在中斷中再發(fā)送下一個(gè)數(shù)據(jù). 中斷方式接收程序: 等待中斷,在中斷中再接收一個(gè)數(shù)據(jù).,77,查詢方式發(fā)送流程圖,7.5.1 查詢方式,78,查詢方式接收流程圖,79,7.5.2 中斷方式,中斷方式的初始化編程同查詢方式,不同的是要開中斷,即置位EA和ES
42、,編寫中斷服務(wù)程序. 中斷方式串行通信的程序流程見下圖:,80,中斷方式發(fā)送流程圖,T1初始化、啟動(dòng)T1工作,設(shè)定串行通信方式,置發(fā)送數(shù)據(jù)塊首址 數(shù)據(jù)塊長(zhǎng)度計(jì)數(shù)器,發(fā)送數(shù)據(jù),全部數(shù)據(jù)發(fā)送完?,等待中斷,1EA,1ES,發(fā)送數(shù)據(jù),中斷返回,0EA,0ES,中斷服務(wù)程序,主程序,修改地址指針 和塊長(zhǎng)度計(jì)數(shù)器,清TI,Y,N,81,中斷方式接收流程圖,82,例7.接線如圖,編一個(gè)自發(fā)自收程序,檢查單片機(jī)的串行口是否完好,f=12MHz,波特率=600,取SMOD=0,解:依據(jù)公式 波特率= 求得,小軟件,83,MOV TMOD,#20H ;0010 0000 T1工作在方式2 MOV TH1, #0
43、CCH MOV TL1, #0CCH ;設(shè)定波特率 SETB TR1;啟動(dòng)TR1 MOV SCON, #50H ;0101 0000設(shè)定串行方式1,并允許接收 ABC: CLR TI CLR P1.0 ;LED滅 ACALL DELDAY ;延時(shí) MOV A, #0FFH MOV SBUF, A ;發(fā)送數(shù)據(jù)FFH JNB RI, $ ;RI=0等待,84,CLR RI MOV A, SBUF ;接收數(shù)據(jù),A=FFH MOV P1, A ;燈亮 JNB TI, $ ;TI=0 等待 ACALL DELDAY ; 延時(shí) SJMP ABC DELDAY:MOV R0, #0 DAL: MOV R1,
44、 #0 DJNZ R1, $ DJNZ R0, DAL RET ;如果發(fā)送接收正確,可觀察到P1.0接的發(fā)光二極管閃亮.,85,根據(jù)串行通信的格式及約定(如:同步方式、通訊速率、數(shù)據(jù)塊格式、信號(hào)電平等)不同,形成了多種串行通信的協(xié)議與接口標(biāo)準(zhǔn).常見的有:通用異步收發(fā)器(UART)本課程介紹的串口RS-232C/RS-485/RS422A標(biāo)準(zhǔn)SPI總線USB通用串行總線I2C總線CAN總線,7.6 串行通信總線標(biāo)準(zhǔn)及接口(了解),86,近距離 傳送電路,1.通信線的連接 通信速率和通信距離這兩個(gè)方面是相互制約的,降低通信速率,可以提高通信距離.不同的通信距離,串行通信電路有不同的連接方法,87,
45、88,微 機(jī),接 口,調(diào) 制 解 調(diào) 器,調(diào) 制 解 調(diào) 器,接 口,微 機(jī),電 話 分 機(jī),電 話 分 機(jī),遠(yuǎn)距離傳送電路,數(shù)字信號(hào)通過調(diào)制器變成模擬信號(hào)通過電話線傳送到對(duì)方,接收方通過解調(diào)器將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)接收(Modem 貓),89,2.串行通信接口總線標(biāo)準(zhǔn),測(cè)控系統(tǒng)中,計(jì)算機(jī)通信主要采用異步串行通信方式,常用的異步總線標(biāo)準(zhǔn)有三種: RS-232(RS-232A/RS-232B/RS-232C) RS-449(RS422/RS423/RS485) 20mA電流環(huán),90,抗干擾能力 采用標(biāo)準(zhǔn)的通信接口,本身具有一定的抗干擾能力,但是工業(yè)現(xiàn)場(chǎng)的情況往往很惡劣,因而要根據(jù)具體情況進(jìn)行選
46、擇. RS232C:一般場(chǎng)合 RS422: 抗共模干擾比較強(qiáng) 光纖: 電磁干擾較強(qiáng),91,3.RS-232C通信總線,RS-232C總線是由美國(guó)電子工業(yè)協(xié)會(huì)EIA (Electronic Industry Association)于1969年修定的一種通信接口標(biāo)準(zhǔn),專門用于數(shù)據(jù)終端設(shè)備DTE (Data Terminal Equipment)和數(shù)據(jù)通信設(shè)備DCE (Data Communication Equipment)之間的串行通信. 目前RS-232C接口已成為計(jì)算機(jī)的標(biāo)準(zhǔn)配置,如串行口COM1、COM2均為RS-232C總線接口標(biāo)準(zhǔn). Recommend Standard 推薦標(biāo)準(zhǔn),2
47、32 總線代號(hào),C修訂次數(shù),92,數(shù)據(jù)終端設(shè)備DTE:數(shù)據(jù)的源點(diǎn)或歸宿,通常是指輸入、輸出設(shè)備和傳輸控制器或者計(jì)算機(jī)等數(shù)據(jù)處理裝置及其通信控制器. 數(shù)據(jù)通信設(shè)備DCE的任務(wù)是實(shí)現(xiàn)由源點(diǎn)到目的點(diǎn)的傳輸,通常是指自動(dòng)呼叫應(yīng)答設(shè)備、調(diào)制解調(diào)器以及其它一些中間裝置的集合.,93,94,串口延長(zhǎng)線,USB串口 筆記本電腦,95,美國(guó)電子工業(yè)協(xié)會(huì)(EIA)公布的一種異步通信標(biāo)準(zhǔn). RS232C標(biāo)準(zhǔn)是: 設(shè)備之間通信的距離不大于15米 最大傳輸速率20k bps 在TxD和RxD上,采用負(fù)邏輯: TTL “1”(MARK) -5V-15V 2.4V “0”(SPACE) +5V+15V 0.4V 在RTS、
48、CTS、DSR、DTR和DCD等控制線上: 信號(hào)有效(接通,ON狀態(tài),正電壓)=+3V+15V 信號(hào)無效(斷開,OFF狀態(tài),負(fù)電壓) =-3V-15V 不帶負(fù)載時(shí)輸出電平:-25V+25V 輸出短路電流: 0.5A 最大負(fù)載電容: 2500pF,96,1信號(hào)定義 標(biāo)準(zhǔn)的RS-232C接口定義了25個(gè)信號(hào)針,采用25針接插件DB-25,并規(guī)定DTE的接插件為凸形,DCE的接插件為凹形,如圖7-14(a)所示. 對(duì)不需要25針的系統(tǒng)來說,常用9針的簡(jiǎn)化接插件DB-9,如圖7-14(b)所示.表9-2給出了常用的9根引腳的信號(hào)功能.,97,(a)25針凸形DB-25P(淘汰) (b)9針凸形DB-9
49、P 圖9-14 RS2332-C接插件,連接器的機(jī)械特性,98,串口通信基本接線方法,99,RS-232C規(guī)標(biāo)準(zhǔn)接口有25條線,4條數(shù)據(jù)線、11條控制線、3條定時(shí)線、7條備用和未定義線,常用的只有9根,它們是: (1)數(shù)據(jù)發(fā)送與接收線: TxD (Transmitted data)發(fā)送數(shù)據(jù)通過TxD終端將串行數(shù)據(jù)發(fā)送到MODEM(DTEDCE) RxD (Received data) 接收數(shù)據(jù)通過RxD線終端接收從MODEM發(fā)來的串行數(shù)據(jù)(DCEDTE) (2)地線 兩根線SG (Signal Ground)、PG (Protect Ground)信號(hào)地和保護(hù)地信號(hào)線,無方向.,RS-232C的接口信號(hào)(了解),100,2.電氣特性,由于RS-232C是早期為促進(jìn)公用電話網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)通信而制定的標(biāo)準(zhǔn).為了增加信號(hào)在線路上的傳輸距離和提高抗干擾能力,RS-232C采用了較高的傳輸電平,且為雙極性、公共地和負(fù)邏輯,即規(guī)定邏輯“1”狀態(tài)電平為-15V-5V,邏輯“0”狀態(tài)電平為+5+15V,其中-5+5V用作信號(hào)狀態(tài)的變遷區(qū). 而計(jì)算機(jī)均采用TTL邏輯電平.TTL電平規(guī)定低電平“0”在0+0.4V之間,高電平“1”在+2.4+5V之間,因此在TTL電路與RS-232C
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年及未來5年市場(chǎng)數(shù)據(jù)中國(guó)電動(dòng)車租賃行業(yè)發(fā)展監(jiān)測(cè)及投資前景展望報(bào)告
- 郵政安全防范制度
- 國(guó)企剪輯崗位面試題目及答案
- 數(shù)據(jù)庫性能監(jiān)控技巧分享
- 區(qū)塊鏈應(yīng)用落地實(shí)現(xiàn)關(guān)鍵步驟
- 互聯(lián)網(wǎng)智能農(nóng)業(yè)物聯(lián)網(wǎng)發(fā)展及市場(chǎng)競(jìng)爭(zhēng)分析
- 超聲科質(zhì)控制度
- 診所內(nèi)部治安保衛(wèi)制度
- 設(shè)備定期巡回檢查制度
- 要建立完善形成工作機(jī)制制度
- 2025年農(nóng)產(chǎn)品跨境電商運(yùn)營(yíng)中心供應(yīng)鏈金融解決方案
- 海事組織航標(biāo)知識(shí)培訓(xùn)課件
- 網(wǎng)吧安全生產(chǎn)知識(shí)培訓(xùn)課件
- 2025-2030高端汽車品牌營(yíng)銷策略與消費(fèi)者畫像分析報(bào)告
- 心肺復(fù)蘇指南2025版
- 發(fā)酵車間安全知識(shí)培訓(xùn)課件
- 2026屆江西省南昌一中英語高三上期末教學(xué)質(zhì)量檢測(cè)試題
- 電梯井消防知識(shí)培訓(xùn)總結(jié)課件
- 2025高中英語學(xué)業(yè)水平考試會(huì)考復(fù)習(xí)必背詞匯表
- 供貨時(shí)間及進(jìn)度安排
- 電氣工程師中級(jí)職稱課件
評(píng)論
0/150
提交評(píng)論