版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
單原及接片理口技術(shù)機12第七章
串行口通信及應(yīng)用01串行通信概述02RS-232C電平與TTL電平的轉(zhuǎn)換03單片機串行口結(jié)構(gòu)04串行口的工作方式PrincipleandinterfacetechnologyofMicrocomputer05課后習(xí)題01串行通信概述中央處理器CPU與外界的信息交換(或數(shù)據(jù)傳送)稱為通信?;镜耐ㄐ欧绞接胁⑿型ㄐ藕痛型ㄐ艃煞N。所傳送數(shù)據(jù)的各位同時發(fā)送或接收,稱為并行通信;其優(yōu)點是傳送速度快,缺點是占用數(shù)據(jù)線多,有多少數(shù)據(jù)就需要多少根傳輸線,成本高,適用于近距離傳送信息,一般通信距離應(yīng)小于30米。所傳送數(shù)據(jù)的各位按順序一位一位地發(fā)送或接收,稱為串行通信;計算機與外界的通信大多數(shù)是串行的,串行通訊的距離可以從幾米到幾千米,最少只需要一根傳輸線就可以完成,成本低。串行通信線路形式在串行通信中數(shù)據(jù)是在兩個站之間進行傳送的,按照數(shù)據(jù)傳送方向,串行通信可分為單工、半雙工、全雙工3各方式。1.單工是指數(shù)據(jù)只能向一個方向傳輸,不能實現(xiàn)反向傳輸。通信線的一端是發(fā)送器,一端是接收器。2.半雙工是指數(shù)據(jù)傳輸可以沿兩個方向進行,但需要分時進行。系統(tǒng)的每個通信設(shè)備都由一個發(fā)送器和一個接收器組成,但同一時刻只能有一個站發(fā)送,一個站接收;兩個方向上的數(shù)據(jù)傳送不能同時進行,即只能一端發(fā)送,一端接收。3.全雙工是指數(shù)據(jù)可以同時雙向傳輸,同時發(fā)送和接收數(shù)據(jù)。通信系統(tǒng)的每端都有發(fā)送器和接收器,可以同時發(fā)送和接收,即數(shù)據(jù)可以在兩個方向上同時傳送。1.1異步通信和同步通信1.異步通信異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致。數(shù)據(jù)通常是以字符為單位組成字符幀傳送的。字符幀由發(fā)送端一幀一幀地發(fā)送,每一幀數(shù)據(jù)是低位在前,高位在后,通過傳輸線被接收端一幀一幀地接收。發(fā)送端和接收端可以由各自獨立的時鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個時鐘彼此獨立,互不同步。在通信過程中,接收方是依靠字符幀格式來判斷發(fā)送方是何時開始發(fā)送、何時結(jié)束發(fā)送的,因此,字符幀格式是異步通信的一個重要指標(biāo)。典型異步通信數(shù)據(jù)格式如圖7-3示。1.2異步通信和同步通信2.同步通信同步通信是一種連續(xù)串行傳送數(shù)據(jù)的方式,在同步通信方式中,發(fā)送方和接收方由同一個時鐘源控制(通常由發(fā)送方建立時鐘對接收方進行時鐘控制),從而使雙方達(dá)到完全同步。1.2在同步通信中,一次通信只傳輸一幀信息。發(fā)送方在數(shù)據(jù)或字符開始處就用同步字符(一種特定的二進制序列)指示一幀的開始,由時鐘來實現(xiàn)發(fā)送端和接收端同步,接收方一旦檢測到與規(guī)定的同步字符符合,下面就連續(xù)按順序傳送若干個數(shù)據(jù),最后發(fā)校驗字節(jié)。在同步通信中,同步字符可以采用統(tǒng)一的標(biāo)準(zhǔn)格式,也可以由用戶約定。同步通信格式如圖7-4。串行通信的波特率和錯誤校驗1.波特率在串行通信中,波特率是雙方對數(shù)據(jù)傳送速率的約定,表示每秒傳送的二進制位數(shù)(bit),是串行通信的一個重要指標(biāo),反映了串行通信的速率,也反映了對傳輸通道的要求。單位是bps(BitPerSecond)。1.3串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關(guān)。當(dāng)傳輸線使用每0.3m(約1英尺)有50PF電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小。當(dāng)比特率超過1000bps時,最大傳輸距離迅速下降,如9600bps時最大距離下降到只有76m(約250英尺)。因此,為了保證數(shù)據(jù)的安全傳輸,即使在較低傳輸率下,也不要使用太長的數(shù)據(jù)線。2.錯誤校驗⑴奇偶校驗。在發(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ù)進行校驗,若字符不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)錯誤。⑵代碼和校驗發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個字節(jié)的校驗字符(校驗和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)時,同時對數(shù)據(jù)塊(除校驗字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的“校驗和”進行比較,一致則無差,否則認(rèn)為數(shù)據(jù)傳輸過程中出現(xiàn)了差錯。⑶循環(huán)冗余校驗通過某種數(shù)學(xué)運算實現(xiàn)有效信息與校驗位之間的循環(huán)校驗,常用于對磁盤信息的傳輸、存儲區(qū)的完整性校驗。RS-232C電平與TTL電平的轉(zhuǎn)換RS-232C是目前最常用的串行接口標(biāo)準(zhǔn),用于實現(xiàn)計算機與計算機之間、計算機與外設(shè)之間的數(shù)據(jù)通信。02RS-232C提供了單片機與單片機、單片機與PC機間串行數(shù)據(jù)通信的標(biāo)準(zhǔn)接口。外觀是D形,對接的兩個接口雙分為針式和孔式兩種,如圖7-5。DB9的引腳定義如表7-1。單片機使用RS-232C標(biāo)準(zhǔn)串行通信時,必須進行TTL電平與RS-232C標(biāo)準(zhǔn)電平之間的轉(zhuǎn)換。目前常采用MAX232,它是全雙工發(fā)送器/接收器接口電路芯片,可實現(xiàn)TTL電平到RS-232C電平、RS-232C電平到TTL電平的轉(zhuǎn)換。MAX232A的引腳見圖7-6,內(nèi)部結(jié)構(gòu)及外部元件如圖7-7所示。由于芯片內(nèi)部有自升壓的電平倍增電路,將+5V轉(zhuǎn)換成-10V~+10V,滿足RS-232C標(biāo)準(zhǔn)對邏輯“1”和邏輯“0”的電平要求。工作時僅需單一的+5V電源。其片內(nèi)有2個發(fā)送器,2個接收器,有TTL信號輸入/RS-232C輸出的功能,也有RS-232C輸入/TTL輸出的功能。RS-232C與MAX323的轉(zhuǎn)換電路如圖7-8。目前,較新的個人計算機都沒有了DB9串行口,特別是筆記本電腦,而USB接口較多。在這種情況下,我們可以使用USB轉(zhuǎn)串口的芯片進行轉(zhuǎn)換,常見的USB轉(zhuǎn)串口芯片有CH340T,電路如圖7-9。單片機串行口結(jié)構(gòu)03MCS-51單片機中的串行接口是一個全雙工通信接口,即能同時進行數(shù)據(jù)的發(fā)送和接收。它可以作UART(UniversalAsynchronousReceiver&Transmitter)(通用異步接收和發(fā)送器)用,也可以用作同步移位寄存器。其幀格式和波特率均可通過軟件編程設(shè)置,在使用上非常方便靈活。串行口的結(jié)構(gòu)MCS-51單片機的串行口結(jié)構(gòu)如圖7-10所示。主要由2個獨立的串行數(shù)據(jù)緩沖器SBUF(1個發(fā)送緩沖器,1個接收緩沖器)、1個輸入移位寄存器、1個串行控制寄存器SCON和1個波特率發(fā)生器T1等組成。3.1MSC-5l單片機通過串行數(shù)據(jù)接收引腳RXD(P3.0)和串行數(shù)據(jù)發(fā)送引腳TXD(P3.l)與外界進行通信。圖中有兩個物理上獨立的接收/發(fā)送緩沖器SBUF,它們占用同一地址99H,可同時發(fā)送、接收數(shù)據(jù)。發(fā)送緩沖器SBUF只能寫入/不能讀出,CPU寫SBUF,一方面修改發(fā)送寄存器,同時啟動數(shù)據(jù)串行發(fā)送;接收緩沖器SBUF只能讀出/不能寫入,CPU讀SBUF,就是讀接收寄存器。因為發(fā)送時CPU是主動的,不會產(chǎn)生重疊錯誤。串行口的控制寄存器MCS-51單片機對串行口的控制是通過特殊功能寄存器實現(xiàn)的,與串行口相關(guān)的特殊功能寄存器有SBUF、SCON和PCON。3.21.串行口數(shù)據(jù)緩沖器SBUF兩個物理上獨立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H,可同時發(fā)送、接收數(shù)據(jù)。當(dāng)CPU允許接收(即SCON的REN位置“1”)且接收中斷標(biāo)志RI位復(fù)位時,就啟動一次接收過程。接收數(shù)據(jù)時,外界數(shù)據(jù)通過引腳RXD(P3.0)串行輸入,數(shù)據(jù)的最低位首先進入輸入移位寄存器,一幀數(shù)據(jù)接收完畢再并行送入緩沖器SBUF中,同時將接收中斷標(biāo)志RI置“1”。當(dāng)用軟件將輸入的數(shù)據(jù)讀走(接收指令A(yù)=SBUF)并將RI復(fù)位后,才能開始下一幀數(shù)據(jù)的輸入過程。這個過程重復(fù)進行直至所有數(shù)據(jù)接收完畢。當(dāng)發(fā)送中斷標(biāo)志TI位復(fù)位后,CPU執(zhí)行任何一條寫SBUF指令(SBUF=A),就啟動一次發(fā)送過程。CPU在執(zhí)行寫SBUF指令的同時啟動發(fā)送控制器開始發(fā)送數(shù)據(jù),被發(fā)送的數(shù)據(jù)由TXD(P3.1)引腳串行輸出,首先輸出最低位。當(dāng)一幀數(shù)據(jù)發(fā)送完即發(fā)送緩沖器空時,CPU自動將發(fā)送中斷標(biāo)志TI置“1”。當(dāng)用軟件將TI復(fù)位,同時又將下一幀數(shù)據(jù)寫入數(shù)據(jù)緩沖器SBUF后,CPU再次重復(fù)上述過程直至所有數(shù)據(jù)發(fā)送完畢。2.串行口控制寄存器SCON8051串行通信的方式選擇,接受和發(fā)送控制及串行口的標(biāo)志均由專用寄存器SCON控制和指示,存放串行口的控制和狀態(tài)信息,其格式如表7-2所示。SM0和SM1:串行口工作方式控制位,通過軟件置位或清零,MCS-51單片機的串行口共有4種工作方式,見表7-3。SM2:多機通信控制位,主要在方式2和方式3下使用。在方式0、1時,SM2不用,應(yīng)設(shè)置為“0”狀態(tài)。REN:允許接收控制位。REN=0,禁止串行口接收;REN=1,允許串行口接收。TB8:發(fā)送數(shù)據(jù)的第9位,用于在方式2和方式3時存放發(fā)送數(shù)據(jù)第9位。TB8由軟件置“1”或清“0”。RB8:接收數(shù)據(jù)的第9位,用于在方式2和方式3時存放接收數(shù)據(jù)第9位。方式0下不使用RB8,方式1下,若SM2=0,則RB8用于存放接收到的停止位。TI:發(fā)送中斷標(biāo)志位,用于指示一幀數(shù)據(jù)發(fā)送是否完成。在方式0下,發(fā)送電路發(fā)送完第8位數(shù)據(jù)時,TI由硬件置“1”;在其他方式下,TI在發(fā)送電路發(fā)送停止位時置“1”。也就是說,TI在發(fā)送前必須用軟件復(fù)位,發(fā)送完一幀數(shù)據(jù)后由硬件置位。因此,CPU查詢TI狀態(tài)便可知曉一幀數(shù)據(jù)是否已發(fā)送完畢。RI:接收中斷標(biāo)志位,用于指示一幀數(shù)據(jù)是否接收完。在方式1下,RI在接收電路接收到第8位數(shù)據(jù)時由硬件置“1”;在其他方式下,RI是在接收電路接收到停止位的中間位置時置位的。RI也可供CPU查詢以決定CPU是否從接收緩沖器SBUF中取接收到的數(shù)據(jù)。RI也應(yīng)由軟件復(fù)位。3.電源及波特率控制寄存器PCON電源控制寄存器PCON中只有SMOD位與串行口工作有關(guān),字節(jié)地址為87H,不可以位尋址,復(fù)位值:00000000B。其格式如表7-4所示。SMOD為波特率選擇位。在方式1、2和3時,串行通信的波特率與SMOD有關(guān)。當(dāng)SMOD=1時,通信波特率乘2,當(dāng)SMOD=0時,波特率不變。GF1、GF0用戶可自行定義使用的通用標(biāo)志位;PD與IDL用于節(jié)電方式控制位。PD掉電方式控制位,PD=0單片機處于正常工作狀態(tài);PD=1進入掉電模式,可由外部中斷觸或硬件復(fù)位模式喚醒,進入掉電模式后,外部晶振停振,CPU、定時器、串行口全部停止工作,只有外部中斷繼續(xù)。IDL待機方式(空閑方式)控制位。IDL=0正常工作狀態(tài);IDL=1進入待機模式,除CPU不工作外,其余正常工作,可由中斷和復(fù)位能退出待機重新喚醒。串行口的工作方式04方式0在方式0時,串行口用作同步移位寄存器使用。數(shù)據(jù)從RXD(P3.0)端串行輸入或輸出,同步移位信號從TXD(P3.1)端輸出,波特率固定不變,為振蕩頻率的1/12。該方式是以8位數(shù)據(jù)為一幀,沒有起始位和停止位,先發(fā)送或接收最低位。方式0主要用于擴展并行輸入/輸出口。方式0發(fā)送數(shù)據(jù)時,SBUF相當(dāng)于一個并入串出的移位寄存器。當(dāng)TI=0時,通過指令向發(fā)送緩沖器SBUF寫入一個數(shù)據(jù),啟動串行口的發(fā)送過程。從RXD(P3.0)引腳逐位移出SBUF中的數(shù)據(jù),同時從TXD(P3.1)引腳同步移位脈沖。這個移位脈沖提供與串口通信的外設(shè),作為輸入移位脈沖移入數(shù)據(jù)。當(dāng)SBUF中的8位數(shù)據(jù)完全移出后,硬件電路自動將中斷標(biāo)志TI置“1”,產(chǎn)生串口中斷請求。如要再發(fā)送數(shù)據(jù),必須用指令將TI清“0”,再重復(fù)上述過程。其發(fā)送時序如圖7-11所示。4.1方式0接收數(shù)據(jù)時,SBUF相當(dāng)于一個串入并出的移位寄存器。當(dāng)SCON中的接收允許位REN=1時,并用指令使RI為“0”時,啟動串行口的接收過程。外設(shè)送來的串行數(shù)據(jù)從RXD(P3.0)引腳輸入,同步移位脈沖從TXD(P3.1)引腳輸出,供給外設(shè)用于移出數(shù)據(jù)。當(dāng)一幀數(shù)據(jù)完全移入SBUF后,由硬件電路將中斷標(biāo)志RI置“1”,產(chǎn)生串口中斷請求。接收端可以在查詢RI=1后,或在串口中斷服務(wù)程序中,將SBUF中的數(shù)據(jù)讀走。如要再接收數(shù)據(jù),必須用指令將RI清“0”,再重復(fù)上述過程。其接收時序如圖7-12所示。1.擴展并行輸出擴展并行輸出時的外接電路如圖7-13所示。74LS164是一個8位的串入并出移位寄存器,串行數(shù)據(jù)高位在前、低位在后。串行數(shù)據(jù)通過D1、D2端子輸入,并行數(shù)據(jù)從D0~D7引腳輸出。TXD引腳輸出移位時鐘。CLR為輸出控制端,為1時打開并行輸出,為0時關(guān)閉并行輸出。發(fā)送操作是在TI=0時進行的,CPU通過SBUF=A指令給發(fā)送緩沖器SBUF送出數(shù)據(jù)后,RXD引腳上即可逐位發(fā)出8位數(shù)據(jù),低位在前、高位在后(74LS164的數(shù)據(jù)順序相反)。TXD引腳上發(fā)送同步移位脈沖。8位數(shù)據(jù)發(fā)送完后,TI由硬件置“1”。2.擴展并行輸入擴展并行輸入時的外接電路如圖7-14所示。74LS165是一個8位的并入串出移位寄存器,并行數(shù)據(jù)通過從A~F引腳輸入,數(shù)據(jù)在時鐘的同步下從Q端串行輸出,高位在前、低位在后。當(dāng)S/L=0時,允許74LS165置入并行數(shù)據(jù),當(dāng)S/L=1時,允許74LS165串行移位輸出數(shù)據(jù)。接收過程是在RI=0和REN=1條件下啟動的。此時,串行數(shù)據(jù)由RXD引腳輸入,TXD引腳輸出同步移位脈沖。接收的數(shù)據(jù)按低位在前、高位在后的順序(74LS165的數(shù)據(jù)順序相反)存放,接收電路接收到8位數(shù)據(jù)后,RI自動置“1”。用8051單片機的串行口外接串入并出的芯片CD4094擴展并行輸出口控制一組發(fā)光二極管,使發(fā)光二極管從左至右延時輪流顯示,電路如圖7-15。例1流程圖如圖7-16所示:方式1方式1為10位異步通信方式,即一個起始位0、8個有效數(shù)據(jù)位和一個停止位1。其幀格式見圖7-17。TXD(P3.1)為數(shù)據(jù)的發(fā)送引腳,RXD(P3.0)為數(shù)據(jù)的接收引腳。傳輸波特率可以改變,由定時器T1的溢出頻率決定。通常在單片機與單片機串口通信、單片機與計算機串口通信時選方式1。發(fā)送時序如圖7-18所示。在軟件置TI為“0”時,當(dāng)執(zhí)行一條寫SBUF指令后,就可以啟動串行口發(fā)送數(shù)據(jù)。發(fā)關(guān)電路自動在寫入SBUF中的8位數(shù)據(jù)前、后分別添加1位起始位和1位停止位,在發(fā)送移位脈沖的作用下,從TXD(P3.1)引腳逐位發(fā)送起始位、數(shù)據(jù)位和停止位。發(fā)送完一個字符幀后,自動維持TXD為高電平,并使發(fā)送中斷標(biāo)志位TI置“1”,產(chǎn)生串口中斷請求。要繼續(xù)發(fā)送,必須用軟件將TI清“0”。4.2接收時序如圖7-18所示。在軟件置RI為“0”,接收允許標(biāo)志位REN為“1”時,允許接收。接收器以選定波特率的16分頻的速率采樣串行接收端口RXD(P3.0),當(dāng)檢測到RXD引腳電平發(fā)生負(fù)跳變時,則說明起始位有效,將其移入移位寄存器,并開始接收這一幀信息的其余位。數(shù)據(jù)全部寫入SBUF后,電路自動使接收標(biāo)志位RI置“1”,并向CPU請求中斷,CPU將SBUF中的數(shù)據(jù)及時讀走。要繼續(xù)接收,必須用軟件將RI清“0”。方式1的波特率計算公式為:波特率=(2SMOD/32)′T1的溢出率(MSC-51單片機只有定時器T1可作串行口波特率發(fā)生器)。其中溢出率為溢出周期的倒數(shù),即:T1溢出一次所需時間的倒數(shù)。定時器T1溢出率=(T1計數(shù)速率)/(產(chǎn)生溢出所需機器周期數(shù)),T1計數(shù)速率=focs/12。假定計數(shù)初值為X,則計數(shù)溢出周期數(shù)=定時器最大計數(shù)值-計數(shù)初值,公式為:初值X=2^8-(2^SMOD×f_OSC)/(32×波特率×12)表7-6列出了最常用的波特率及T1的工作方式和初值。電路如圖7-19所示。當(dāng)單片機的P1口的8個按鍵有按鍵按下時(每次最多一個按鍵按下),通過TXD引腳將這個按鍵號發(fā)送出去,再通過RXD引腳將數(shù)據(jù)接收回來,在P0口的數(shù)碼管上顯示是哪個按鍵按下。例2流程圖如圖7-20所示:方式2和方式3方式2和方式3都是11位異步通信方式,即1個起始位、8個有效數(shù)據(jù)位、1個附加數(shù)據(jù)位(TB8/RB8)和1個停止位。二者都是TXD(P3.1)為數(shù)據(jù)的發(fā)送引腳,RXD(P3.0)為數(shù)據(jù)的接收引腳,其差異僅在于通信波特率有所不同:方式2的波特率由MCS-51單片機的主頻fOSC經(jīng)32或64分頻后提供;方式3的波特率由定時器T1的溢出經(jīng)32分頻后提供,故方式3的波特率是可調(diào)的。方式2和方式3的發(fā)送時序如圖7-21所示。發(fā)送前,先根據(jù)通信協(xié)議由軟件設(shè)置TB8(如作奇偶校驗位或地址/數(shù)據(jù)標(biāo)志位),然后將要發(fā)送的數(shù)據(jù)寫入SBUF,即可啟動發(fā)送過程。串行口能自動把TB8取出,并裝入到第9位數(shù)據(jù)位的位置,再逐一發(fā)送出去。發(fā)送完畢,使TI=1。4.3方式2和方式3的接收時序如圖7-22所示。接收時,使SCON中的REN=1,允許接收。當(dāng)檢測到RXD(P3.0)端有1→0的跳變(起始位)時,開始接收9位數(shù)據(jù),送入移位寄存器(9位)。當(dāng)滿足RI=0且SM2=0,或接收到的第9位數(shù)據(jù)為1時,前8位數(shù)據(jù)送入SBUF,附加的第9位數(shù)據(jù)送入SCON中的RB8,置RI為1;否則,這次接收無效,也不置位RI。方式2的波特率=fosc′2SMOD/64即:fosc/32或fosc/64兩種。方式3的波特率可以根據(jù)需要進行設(shè)定,按前面的公式計算:波特率=(2SMOD/32)′T1的溢出率,則初值X=2^8-(2^SMOD×f_OSC)/(32×波特率×12)PC機通過RS232接口向單片機先發(fā)送數(shù)據(jù),并存儲在單片機RAM中。同時,單片機將每次接收到的數(shù)據(jù)通過P1口LED燈顯示出來,并將接收到的數(shù)據(jù)返回到PC機。若數(shù)據(jù)出錯,則LED全燈亮。要求通信波特率為9700,進行偶檢驗。仿真電路如圖7-23。例3流程圖如圖7-24所示:1、串行口設(shè)有幾個控制寄存器它們的作用是什么?2、異步通信和同步通信的主要區(qū)別是什么,單片機串行口有沒有同步通信的功能?3、單片機串行口有幾種工作方式各自的特點是什么?4、單片機串行口各種工作方式的波特率如何設(shè)置,怎樣計算定時器的初值?5、假定串行口串行發(fā)送的字符格式為1位起始位,8位數(shù)據(jù)位,1位校驗位,1位停止位,請畫出字符“A”的幀格式。6、若fosc=6MHz,波特率為2400波特,設(shè)SMOD?=1,則定時/計數(shù)器T1的計數(shù)初值為多少并進行初始化編程。7、請使用中斷方法編寫串行口方式1下的接收程序,設(shè)主頻是11.0592MHz,波特率為1200b/s,采用偶校驗。習(xí)題05單原及接片理口技術(shù)機47第八章節(jié)單總線通信協(xié)議與典型電路應(yīng)用01單總線(1-wire)通信過程02單總線通信溫濕度傳感器芯片DHT11介紹03溫濕度傳感器芯片DHT1
1數(shù)據(jù)傳輸格式和時序04溫濕度傳感器芯片DH
T11與單片機通信的典型實例PrincipleandinterfacetechnologyofMicrocomputer05單總線通信溫度傳感器芯片DS18B2006溫度傳感器芯片DS18B20數(shù)據(jù)傳輸格式和時序07溫度傳感器芯片DS18B20與單片機通信的典型實例08習(xí)題單總線通信協(xié)議與典型電路應(yīng)用單片機通信協(xié)議中,單總線(1-wire)通信協(xié)議是指主機和從機通過1根總線進行通信,但是在一條總線上可掛接的從器件數(shù)量幾乎不受限制的一種通信協(xié)議,該協(xié)議是由達(dá)拉斯半導(dǎo)體公司(DALLAS)推出的一項通信技術(shù),其特點是采用單根信號線,既可傳輸時鐘,又能傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,由此帶來具有線路簡單,硬件開銷少,成本低廉,便于總線擴展和維護等優(yōu)點。單總線(1-wire)通信過程單總線通信初始化過程初始化過程=復(fù)位脈沖+從機應(yīng)答脈沖。主機通過拉低單總線一定時間產(chǎn)生復(fù)位脈沖(例如480~960us),然后釋放總線,進入接收模式。主機釋放總線時,會產(chǎn)生低電平跳變?yōu)楦唠娖降纳仙兀瑔慰偩€器件檢測到上升沿之后,延時(例如15~60us)后,單總線器件拉低總線(例如60~240us)來產(chǎn)生應(yīng)答脈沖。主機接收到從機的應(yīng)答脈沖說明單總線器件就緒,初始化過程完成。單總線通信初始化過程如圖8-1所示。1.1單總線通信寫數(shù)據(jù)過程單總線通信寫數(shù)據(jù)有兩種,包括寫數(shù)據(jù)“0”和數(shù)據(jù)“1”。當(dāng)數(shù)據(jù)線拉低后,在一定時間窗口(例如15~60us)內(nèi)對數(shù)據(jù)線進行采樣。如果數(shù)據(jù)線為低電平,就是寫0,如果數(shù)據(jù)線為高電平,就是寫1。主機要產(chǎn)生一個寫1的數(shù)據(jù),就必須把數(shù)據(jù)線拉低,在寫數(shù)據(jù)開始后的15us內(nèi)允許數(shù)據(jù)線拉高。主機要產(chǎn)生一個寫0的數(shù)據(jù),就必須把數(shù)據(jù)線拉低并保持60us。單總線通信寫數(shù)據(jù)時序圖如圖8-2所示。1.2單總線通信讀數(shù)據(jù)過程單總線通信讀數(shù)據(jù)格式和寫數(shù)據(jù)格式類似有兩種,包括讀數(shù)據(jù)“0”和數(shù)據(jù)“1”,當(dāng)主機把總線拉低,并保持至少時間(例如1us)后釋放總線,必須在時間(例如15us)內(nèi)讀取數(shù)據(jù)。單總線通信讀數(shù)據(jù)時序圖如圖8-3所示。1.3單總線通信溫濕度傳感器芯片DHT11介紹02溫濕度傳感器芯片DHT11概述2.1DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強、性價比極高等優(yōu)點。每個DHT11傳感器都在極為精確的濕度校驗室中進行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲存在OTP內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達(dá)20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。產(chǎn)品為4針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供.DHT11實物圖如圖8-4所示。DHT11引腳說明如表8-1所示。溫濕度傳感器芯片DHT11與單片機典型電路圖2.2為了數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,建議在數(shù)據(jù)傳輸線(DATA)使用上拉電阻(建議距離小于20米使用5K),DHT11的供電電壓為3~5.5V。傳感器上電后,要等待1s以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個100nF的電容,用以去耦濾波,DHT11與單片機的典型連接電路圖如圖8-5所示。溫濕度傳感器芯片DHT11數(shù)據(jù)傳輸格式和時序03溫濕度傳感器芯片DHT引腳DATA用于微處理器與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次完整的數(shù)據(jù)傳輸為40bit,高位先出,一次通訊時間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體數(shù)據(jù)傳輸格式和時序如下說明。溫濕度傳感器芯片DHT11傳輸數(shù)據(jù)格式3.1數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗和,實際使用過程中,一般不使用溫濕度數(shù)據(jù)的小數(shù)部分;數(shù)據(jù)傳送正確時校驗和數(shù)據(jù)等于“8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)”所得結(jié)果的末8位。溫濕度傳感器芯片DHT11傳輸數(shù)據(jù)時序3.2當(dāng)單片機發(fā)送一次開始信號后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機開始信號結(jié)束后,DHT11發(fā)送響應(yīng)信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,用戶可選擇讀取部分?jǐn)?shù)據(jù)。從模式下,DHT11接收到開始信號觸發(fā)一次溫濕度采集,如果沒有接收到主機發(fā)送開始信號,DHT11不會主動進行溫濕度采集。采集數(shù)據(jù)后轉(zhuǎn)換到低速模式,該過程啟動時序圖如圖8-6所示??偩€空閑狀態(tài)為高電平,主機把總線拉低等待DHT11響應(yīng),主機把總線拉低必須大于18毫秒,保證DHT11能檢測到起始信號。DHT11接收到主機的開始信號后,等待主機開始信號結(jié)束,然后發(fā)送80us低電平響應(yīng)信號。主機發(fā)送開始信號結(jié)束后,延時等待20-40us后,讀取DHT11的響應(yīng)信號,主機發(fā)送開始信號后,可以切換到輸入模式,或者輸出高電平均可,總線由上拉電阻拉高。當(dāng)總線為低電平,說明DHT11發(fā)送響應(yīng)信號,DHT11發(fā)送響應(yīng)信號后,再把總線拉高80us,準(zhǔn)備發(fā)送數(shù)據(jù),每一bit數(shù)據(jù)都以50us低電平時隙開始,高電平的長短定了數(shù)據(jù)位是0還是1.格式見下面圖示。如果讀取響應(yīng)信號為高電平,則DHT11沒有響應(yīng),請檢查線路是否連接正常。當(dāng)最后一bit數(shù)據(jù)傳送完畢后,DHT11拉低總線50us,隨后總線由上拉電阻拉高進入空閑狀態(tài),DHT11傳感器響應(yīng)時序圖如圖8-7所示。DHT11傳感器傳輸信號“0”圖如圖8-8所示。DHT11傳感器傳輸信號“1”圖如圖8-9所示。溫濕度傳感器芯片DHT11與單片機通信的典型實例04典型實例要求簡介:利用單片機(示例型號AT89C51)的P0引腳連接顯示部分(LCD1602),P1引腳連接溫濕度傳感器芯片(DHT11),最終效果在顯示部分(LCD1602)上顯示溫濕度傳感器芯片(DHT11)的溫濕度數(shù)據(jù),注意,因為是模擬仿真過程,溫濕度傳感器芯片DHT11的數(shù)據(jù)來源也是用戶輸入,并不是實際場地的溫濕度信息。溫濕度傳感器芯片DHT11與單片機連接仿真和電路圖設(shè)計4.1通過Proteus繪制項目電路圖,并且通過該軟件能夠制作PCB板的功能,實現(xiàn)電路的設(shè)計、仿真和實現(xiàn),Proteus仿真電路圖如圖8-10所示。利用Proteus仿真基于DHT11的溫濕度數(shù)據(jù)采集仿真電路圖有以下器件:LM016L:2行16列液晶(EN三個控制端口(共14線),工作電壓為5V。無背光,可顯示2行16列英文字符,有8位數(shù)據(jù)總線D0-D7);RESPACK:排阻;DHT11:溫濕度傳感器單總線傳輸芯片;CRYSTAL:晶體振蕩器;其他型號的電容電阻。溫濕度傳感器芯片DHT11采集信號實訓(xùn)軟件設(shè)計4.2根據(jù)本章主要內(nèi)容是對溫濕度傳感器芯片DHT11使用的單總線通信協(xié)議進行詳細(xì)講解,而本程序中涉及到的LCD1602和串行數(shù)據(jù)傳輸?shù)裙δ艹绦蛞呀?jīng)在前序章節(jié)介紹,所以在本次程序講解過程中不詳解,請主要關(guān)注的是如何通過控制單片機I/O端口的高低電平實現(xiàn)對溫濕度傳感器DHT11的啟動、終止、響應(yīng)和傳輸。下面我們就寫一個程序,模擬單片機I/O端口的高低電平轉(zhuǎn)換實現(xiàn)從P1端口的溫濕度傳感器DHT11的數(shù)據(jù)傳送到P0端口的顯示部分LCD1602中。溫濕度傳感器芯片DHT11采集信號實訓(xùn)軟件設(shè)計4.3經(jīng)過對單總線通信協(xié)議的理解和針對溫濕度傳感器芯片DHT11通信時序的學(xué)習(xí),我們通過編寫繪制電路仿真圖和編寫程序,最終實現(xiàn)將用戶輸入的模擬溫濕度數(shù)據(jù)在顯示部分LCD1602中顯示出來,實現(xiàn)效果如圖8-11所示。單總線通信溫度傳感器芯片DS18B2005傳感器芯片DS18B20概述和特性5.1DS18B20是常用的數(shù)字溫度傳感器,其輸出的是數(shù)字信號,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。該芯片電路接線方便,封裝后的DS18B20可用于電纜溝測溫,高爐水循環(huán)測溫,鍋爐測溫,機房測溫,農(nóng)業(yè)大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。該芯片有以下主要特性:獨特的單總線接口僅需一個端口引腳即可進行通信;簡單的多點分布式測溫應(yīng)用場景;可通過數(shù)據(jù)線供電,供電范圍為3.0V~5.5V;測溫范圍為-55℃~+125℃(華氏溫度-67℉~257℉);在-10℃~+85℃范圍內(nèi)精確度可達(dá)±5℃;應(yīng)用范圍包括溫度控制、工業(yè)系統(tǒng)、消費零售或者任何熱感知系統(tǒng)。傳感器芯片DS18B20與單片機連接電路與實物圖5.2DS18B20與單片機連接依然采用單總線連接方式,為了保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,可以在其數(shù)據(jù)端口(DQ總線)通過上拉電阻(例如4.7K)連接外部電源,DS18B20與單片機連接電路如圖8-12所示。DS18B20通過一個單總線接口發(fā)送或者接收信息,而且根據(jù)使用場景不同也有不同的封裝形式,具體引腳說明請見表8-2。DS18B20的供電電壓可從3.0V~5.5V,因此VDD被描述為可選電源電壓,在日常使用中,經(jīng)常遇到的封裝形式如圖13所示,左邊圖形示意是TO-92封裝,右邊圖形示意是SOIC封裝,請注意,在TO-92封裝圖中,沒有NC引腳,其他引腳可以直接使用,DS18B20芯片的常用封裝形式如圖8-13所示。溫度傳感器芯片DS18B20數(shù)據(jù)傳輸格式和時序06溫度傳感器芯片DS18B20數(shù)據(jù)傳輸格式6.1DS18B20通過編程,可以實現(xiàn)最高12位的溫度存儲值,在寄存器中,以補碼的格式存儲,如圖8-14所示。寄存器數(shù)據(jù)包含2個字節(jié),LSB是低字節(jié),MSB是高字節(jié),其中MSB是字節(jié)的高位,LSb是字節(jié)的低位。大家可以看出來,二進制數(shù)字,每一位代表的溫度的含義,都表示出來了。其中S表示的是符號位,低11位都是2的冪,用來表示最終的溫度,溫度數(shù)據(jù)的表現(xiàn)形式,有正負(fù)溫度,寄存器中每個數(shù)字如同卡尺的刻度一樣分布,如表8-3所示。溫度傳感器芯片DS18B20信號傳輸時序6.2DS18B20依然是單總線通信協(xié)議的傳感器芯片,因此需要遵循嚴(yán)格的單總線協(xié)議以確保數(shù)據(jù)的完整性,協(xié)議包括啟動/終止信號、響應(yīng)信號、寫和讀“0”信號,下面將上述信號的時序列出。1初始化時序與DS18B20之間的通信都從初始化時序開始,初始化時序圖示見圖8-15所示,一個復(fù)位脈沖緊跟一個存在脈沖表示DS18B20芯片已經(jīng)初始化完成,做好了發(fā)送和接收數(shù)據(jù)的準(zhǔn)備。在初始化序列期間,總線控制器拉低總線并且保持480us發(fā)出一個復(fù)位脈沖,然后釋放總線,進入接收狀態(tài),當(dāng)DS18B20探測到I/O引腳上的上升沿后,等待15-60us,然后發(fā)出一個由60~240us低電平信號
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 消防培訓(xùn)方案
- 2024年醫(yī)用設(shè)備維修合同范本
- 等級保護三級相關(guān)要求
- 股權(quán)轉(zhuǎn)讓協(xié)議書范本 格式 樣本 樣式 協(xié)議
- 住宅租賃合同撰寫指南
- 員工專業(yè)技能培訓(xùn)合同
- 2024年委托貸款協(xié)議合同
- 出口代理協(xié)議范本模板
- 個人融資協(xié)議書合同范本撰寫指南
- 2024年簡單店面租賃合同2
- 掃黃打非主題班會 課件
- 中華民族精神智慧樹知到答案2024年中央民族大學(xué)
- 中學(xué)教師評職稱述職報告
- 上海大學(xué)繼續(xù)教育市場營銷網(wǎng)課答案更新版
- 民警工地安全知識講座
- 古代詩詞與傳統(tǒng)文化
- 服裝行業(yè)國際競爭對手分析
- (高清版)DZT 0430-2023 固體礦產(chǎn)資源儲量核實報告編寫規(guī)范
- 邯鄲學(xué)步(成語故事)-高瑞佳
- 煙花爆竹經(jīng)營企業(yè)安全風(fēng)險分級管控與事故隱患排查治理雙重預(yù)防機制構(gòu)建方案指南
- 商鋪宣傳方案
評論
0/150
提交評論