串口通信MAX232課件_第1頁
串口通信MAX232課件_第2頁
串口通信MAX232課件_第3頁
串口通信MAX232課件_第4頁
串口通信MAX232課件_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1

RS-232C該標(biāo)準(zhǔn)的全稱是EIA-RS-232C標(biāo)準(zhǔn)(ElectronicIndustrialAssociate-RecommendedStandard232C)是美國EIA(電子工業(yè)聯(lián)合會(huì))與BELL等公司一起開發(fā)的1969年公布的通信協(xié)議。232標(biāo)準(zhǔn)與CCITT的V.24基本相同。它適合于數(shù)據(jù)傳輸速率在0~20kbit/s范圍內(nèi)、傳輸距離在15m以內(nèi)的通信。由于通信設(shè)備廠商大都生產(chǎn)與RS-232C制式兼容的通信設(shè)備,因此,它作為一種標(biāo)準(zhǔn)。常用異步串行通訊接口標(biāo)準(zhǔn)

DCEDCE計(jì)算機(jī)DTEDCEDCEDTE電話線

Modem

Modem計(jì)算機(jī)

RS232C

RS232C計(jì)算機(jī)計(jì)算機(jī)

TXD

TXD

RXD

RXD

GND

GND目前已在標(biāo)準(zhǔn)規(guī)定了數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通信設(shè)備(DCE)間串行通信接口的物理(電平)、信號(hào)和機(jī)械連接標(biāo)準(zhǔn)EIARS-232C串行口RS232C的電氣標(biāo)準(zhǔn):

3V~15V:邏輯0-3V~-15V:邏輯19600bps①電氣特性DTE插針式DCE內(nèi)孔式25針DB插連接器DTE插針式DCE內(nèi)孔式9針DB插連接器②機(jī)械特性232C標(biāo)準(zhǔn)規(guī)定了25針連接器DB-25,并且規(guī)定在DTE一端的插座為插針型,在DCE一端為插孔型。既可以用于同步通信,也可以用于異步通信。在進(jìn)行異步通信時(shí),最多也只需9個(gè)信號(hào):2個(gè)數(shù)據(jù)信號(hào)、6個(gè)控制信號(hào)、1個(gè)公共信號(hào)地。因此從286微機(jī)到現(xiàn)在的微機(jī)一般都采用DB-9型連接器,作為多功能I/O卡或主板上COM1和COM2兩個(gè)串行口的連接器。在通信速率低于20kbit/s時(shí),RS-232C所能直接連接的最大物理距離為15m(50英尺)。232C標(biāo)準(zhǔn)規(guī)定,若不使用MODEM,在碼元畸變小于4%的情況下,DTE和DCE之間最大傳輸距離為15m(50英尺)??梢娺@個(gè)最大的距離是在碼元畸變小于4%的前提下給出的。為了保證碼元畸變小于4%的要求,接口標(biāo)準(zhǔn)在電氣特性中規(guī)定,驅(qū)動(dòng)器的負(fù)載電容應(yīng)小于2500pF。然而,在異步通信實(shí)際應(yīng)用中,碼元畸變超過4%,甚至為10%~20%時(shí),也能正常傳輸信息,這意味著驅(qū)動(dòng)器的負(fù)載電容可以超過2500pF;而且由于工藝的改進(jìn),每英尺電纜的電容值也遠(yuǎn)遠(yuǎn)小于40~50pF。因而傳輸距離往往可大大超過15m。信號(hào)定義(25針)RS-232C接口信號(hào)定義引腳(9針)引腳(25針)信號(hào)信號(hào)源類型描述18CDDCE控制載波信號(hào)檢測23RxDDCE數(shù)據(jù)接收數(shù)據(jù)32TxDDTE數(shù)據(jù)發(fā)送數(shù)據(jù)420DTRDTE控制終端準(zhǔn)備好57GND--信號(hào)地66DSRDCE控制數(shù)據(jù)機(jī)準(zhǔn)備好74RTSDTE控制請求發(fā)送85CTSDCE控制清除以便發(fā)送922RIDCE控制振鈴信號(hào)2號(hào)線發(fā)送數(shù)據(jù)(TxD——Transmitteddata):通過TxD線DTE終端將串行數(shù)據(jù)發(fā)送到MODEM。3號(hào)線接收數(shù)據(jù)(RxD——Receiveddata):通過RxD線DTE終端接收從MODEM發(fā)來的串行數(shù)據(jù)。4號(hào)線請求發(fā)送(RTS——Requesttosend):用來表示DTE請求DCE發(fā)送數(shù)據(jù),即當(dāng)終端要發(fā)送數(shù)據(jù)時(shí),使該信號(hào)有效(ON狀態(tài)),向MODEM請求發(fā)送。它用來控制MODEM是否要進(jìn)入發(fā)送狀態(tài)。5號(hào)線允許發(fā)送(CTS——Cleartosend):用來表示DCE準(zhǔn)備好接收DTE發(fā)來的數(shù)據(jù)。是對請求發(fā)送信號(hào)RTS的響應(yīng)信號(hào)。當(dāng)MODEM已準(zhǔn)備好接收終端傳來的數(shù)據(jù),并向前發(fā)送時(shí),使該信號(hào)有效,通知DTE終端開始沿發(fā)送數(shù)據(jù)線TxD發(fā)送數(shù)據(jù)。4號(hào)線和5號(hào)線這對RTS/CTS請求應(yīng)答聯(lián)絡(luò)信號(hào)是用于半雙工采用MODEM的系統(tǒng)中作發(fā)送方式和接收方式之間的切換。在全雙工系統(tǒng)中,因配置雙向通道,因此不需RTS/CTS聯(lián)絡(luò)信號(hào),使其處于高電平狀態(tài)。6號(hào)線數(shù)據(jù)通信設(shè)備準(zhǔn)備就緒(DSR——Datasetready):有效時(shí)(ON狀態(tài)),表明MODEM處于可以使用的狀態(tài)。7號(hào)線信號(hào)地(SG——SignalGround):所有公共信號(hào)地。8號(hào)線數(shù)據(jù)載波檢測(DCD—DataCarrierdetection)線:用來表示DCE已接通通信鏈路,告之DTE準(zhǔn)備接收數(shù)據(jù)。當(dāng)本地的MODEM收到由通信鏈路另一端(遠(yuǎn)地)的MODEM送來的載波信號(hào)時(shí),使DCD信號(hào)有效,通知DTE終端準(zhǔn)備接收,并且由MODEM將接收下來的載波信號(hào)解調(diào)成數(shù)字?jǐn)?shù)據(jù)后,沿接收數(shù)據(jù)線RxD送到DTE終端。20號(hào)線數(shù)據(jù)終端設(shè)備準(zhǔn)備就緒(DTR——DataSetready):有效時(shí)(ON狀態(tài)),表明數(shù)據(jù)終端可以使用。6號(hào)線和20號(hào)線這對DSR和DTR信號(hào)有時(shí)連到電源上,一上電就立即有效。目前有些RS-232C接口甚至省去了用以指示設(shè)備是否準(zhǔn)備好的這類信號(hào),認(rèn)為設(shè)備是始終都準(zhǔn)備好的。可見這兩個(gè)設(shè)備狀態(tài)信號(hào)有效,只表示設(shè)備本身可用,并不說明通信鏈路可以開始進(jìn)行通信了。22號(hào)線振鈴指示(RI——RingingIndicator):當(dāng)MODEM收到交換臺(tái)送來的振鈴呼叫信號(hào)時(shí);使該信號(hào)有效(ON狀態(tài)),通知終端,已被呼叫。計(jì)算機(jī)間RS232C通信的常用連接方法全握手無握手計(jì)算機(jī)計(jì)算機(jī)

TXD

TXD

RXD

RXD

GND

GNDTxDRxDRTSCTSDTRDSRCDRIGNDTxDRxDRTSCTSDTRDSRCDRIGND接口連接TTL/CMOS<—>RS232電平轉(zhuǎn)換芯片:MAX202MAX232/MAX233MC1488(+/-12V)/SN75150MC1489(+5V)MCl488、SN75150芯片可完成TTL電平—>EIA電平的轉(zhuǎn)換MCl489、SN75154芯片可實(shí)現(xiàn)EIA電平->TTL電平的轉(zhuǎn)換MAX232芯片可完成TTL←→EIA雙向電平轉(zhuǎn)換由于MCl488要求使用±12V高壓電源,不太方便。電平轉(zhuǎn)換芯片MAX232,可以實(shí)現(xiàn)TTL電平與RS-323電平雙向轉(zhuǎn)換。MAX232內(nèi)部有電壓倍增電路和轉(zhuǎn)換電路,僅需+5V電源便可工作,使用十分方便。PC機(jī)COM口接8051機(jī)11p(TXD)10p(RXD)PC機(jī)和單片機(jī)串口通訊的硬件電路

PC機(jī)RXDTXDMAX232T1OUTR1INT1IN(R1OUTRXDTXDMCS-512.RS-449接口標(biāo)準(zhǔn)為了改善RS-232C的電氣特性、延長零MODEM方式的傳輸距離并最大限度地提高數(shù)據(jù)傳輸速率,EIA又發(fā)布了RS-449接口標(biāo)準(zhǔn)。RS-449標(biāo)準(zhǔn)定義了一個(gè)37條引腳的連接器,增加了10條信號(hào)線,但是它只規(guī)定了接口的功能、機(jī)械特性和規(guī)程特性,接口的電氣特性則由RS-422A和RS-423A這兩個(gè)標(biāo)準(zhǔn)規(guī)定。(1)RS-423A接口標(biāo)準(zhǔn)RS-423A采用非平衡線路,每一路信號(hào)均為單端輸出,差分輸入。電路按傳輸方向分成兩組,每個(gè)方向共用一條回線。當(dāng)傳輸距離在12m以內(nèi)時(shí),數(shù)據(jù)速率可達(dá)到300kbit/s。(2)RS-422A接口標(biāo)準(zhǔn)RS-422A標(biāo)準(zhǔn)是一種平衡方式傳輸。所謂平衡方式,是指雙端發(fā)送和雙端接收。RS-422A標(biāo)準(zhǔn)由于采用了雙線傳輸,大大增強(qiáng)了共模抗干擾的能力。當(dāng)傳輸距離在12m以內(nèi)時(shí),數(shù)據(jù)速率可達(dá)到10Mbit/s.傳輸距離增加則速率降低,當(dāng)傳輸距離為1km時(shí),允許的最大傳輸速率為100kbit/s。該標(biāo)準(zhǔn)規(guī)定電路中只許有1個(gè)發(fā)送器,可有多個(gè)接收器。RS422的連接線路……R主站RRS422多采用1:N的全雙工連接方式從站1從站N3.RS-485接口標(biāo)準(zhǔn)RS-485與RS-422A標(biāo)準(zhǔn)一樣,也是一種平衡傳輸方式的串行接口標(biāo)準(zhǔn),它和RS-422A兼容,并且擴(kuò)展了RS-422A的功能。兩者主要差別是,RS-422A標(biāo)準(zhǔn)只許電路中有一個(gè)發(fā)送器,而RS-485標(biāo)準(zhǔn)允許在電路中可有多個(gè)發(fā)送器,因此,它是一種多發(fā)送器/多接收器的標(biāo)準(zhǔn)。RS-485允許一個(gè)發(fā)送器驅(qū)動(dòng)多個(gè)負(fù)載設(shè)備,負(fù)載設(shè)備可以是驅(qū)動(dòng)發(fā)送器、接收器、收發(fā)器組合單元。RS-485的共線電路結(jié)構(gòu)是在一對平衡傳輸線的兩端都配置終端電阻,其發(fā)送器、接收器、組合收發(fā)器可掛在平衡傳輸線上的任何位置,實(shí)現(xiàn)在數(shù)據(jù)傳輸中多個(gè)驅(qū)動(dòng)器和接收器共用同一傳輸線的多點(diǎn)應(yīng)用,其配置如圖8.11所示。RS-485標(biāo)準(zhǔn)的特點(diǎn)有:由于RS-485標(biāo)準(zhǔn)采用平衡發(fā)送/差分接收,所以,共模抑制比高,抗干擾能力強(qiáng)。傳輸速率高,它允許的最大傳輸速率可達(dá)10Mbit/s。傳輸信號(hào)的擺幅小(200mv)。傳送距離遠(yuǎn)(指無MODEM的直接傳輸),采用雙絞線,在不用MODEM的情況下,當(dāng)傳輸速率為100Kbit/s時(shí),可傳送的距離為1.2km,若傳輸速率降低,還可傳送更遠(yuǎn)的距離。能實(shí)現(xiàn)點(diǎn)對點(diǎn)、點(diǎn)對多點(diǎn)、多點(diǎn)對多點(diǎn)的通信RS-485允許平衡電纜上共連接32個(gè)發(fā)送器、接收器、組合收發(fā)器。RS-485標(biāo)準(zhǔn)目前已在許多方面得到應(yīng)用,尤其是在多點(diǎn)通信系統(tǒng)中,如工業(yè)集散分布系統(tǒng)、商業(yè)POS收款機(jī)和考勤機(jī)的聯(lián)網(wǎng)中用得很多,是一個(gè)很有發(fā)展前途的串行通信接口標(biāo)準(zhǔn)。RS485的連接線路……RRRS485多半雙工的連接方式RS422和RS485接口標(biāo)準(zhǔn)規(guī)格RS422RS485傳輸模式平衡平衡差動(dòng)輸出(V)±2±1.5接收器敏感度(V)±0.2±0.2驅(qū)動(dòng)器負(fù)載,最?。é福?0060最大驅(qū)動(dòng)器數(shù)量132最大接收器數(shù)量1032最大傳輸速度(bps)10M10M最大電纜長度@90Kbps(ft)40004000最大電纜長度@10Mbps(ft)50506.3PC機(jī)與單片機(jī)通信

PC機(jī)在與單片機(jī)串行接口后,可以方便地構(gòu)成主從分布式多機(jī)系統(tǒng)。從機(jī)(單片機(jī))作數(shù)據(jù)采集或?qū)崟r(shí)控制,主機(jī)作數(shù)據(jù)處理或中央管理等

這種多機(jī)系統(tǒng)在過程控制、儀表生產(chǎn)、生產(chǎn)自動(dòng)化和企業(yè)管理等方面都有廣泛的應(yīng)用。此外微機(jī)和單片機(jī)串行接口后,可以大大方便單片機(jī)的開發(fā)過程。一、PC機(jī)串口資源及編程使用方法

PC機(jī)一般有COM1和COM2兩個(gè)串口。寄存器名稱端口地址復(fù)位后初始值COM1COM2發(fā)送器保持寄存器(TBR)3F8H2F8HXXXXXXXXB接收器數(shù)據(jù)寄存器(RBR)3F8H2F8HXXXXXXXXB波特率因子低位寄存器(DLL)3F8H2F8H00000000B波特率因子高位寄存器(DLH)3F9H2F9H00000001B中斷允許寄存器(IER)3F9H2F9H00000000B中斷標(biāo)識(shí)寄存器(IIR)3FAH2FAH00000000B線路控制寄存器(LCR)3FBH2FBH01100000B調(diào)制解調(diào)器控制寄存器(MCR)3FCH2FCHXXXX0000B線路狀態(tài)寄存器(LSR)3FDH2FDHXXXXXXXXB調(diào)制解調(diào)器狀態(tài)寄存器(MSR)3FEH2FEHXXXXXXXXB使用串口必須先初始化,有以下4個(gè)步驟。DLHDLL波特率DLHDLL波特率DLHDLL波特率09H00H5000HC0H60000H18H480006H00H7500H60H120000H10H720004H17H11000H40H180000H0CH960003H59H134.500H3AH200000H06H1920003H00H15000H30H240000H03H3840001H80H30000H20H360000H01H115200例:設(shè)COM1的波特率為9600,則outportb(0x3fb,0x80);/*寫線路控制寄存器,訪問波特率因子寄存器*/

outportb(0x3f8,0x0c);/*寫入波特率因子低字節(jié)*/

outportb(0x3f9,0x00);/*寫入波特率因子高字節(jié)*/

⒈設(shè)置波特率PC機(jī)串口初始化⒉設(shè)置數(shù)據(jù)格式例:設(shè)數(shù)據(jù)為7位,1位起始位,1位停止位,偶校驗(yàn),則設(shè)置如下:outportb(0x3fb,0x1a);⒊設(shè)置操作方式不允許中斷:outportb(0x3fc,0x03);允許中斷:outportb(0x3fc,0x0b);自測試工作方式,且不允許中斷:outportb(0x3fc,0x13);⒋設(shè)置中斷允許寄存器開放中斷語句:outportb(0x3f9,0x0f);

例1將PC機(jī)的COM1初始化為9600波特率、7位數(shù)據(jù)、偶校驗(yàn)、1位停止位、不中斷,則初始程序如下:initcom1(){outportb(0x3fb,0x80);/*寫線路控制寄存器,訪問波特率因子寄存器*/

outportb(0x3f8,0x0c);/*寫入波特率因子低字節(jié)*/

outportb(0x3f9,0x00);/*寫入波特率因子高字節(jié)*/

outportb(0x3fb,0x1a);/*設(shè)數(shù)據(jù)為7位,1位起始位,1位停止位,偶校驗(yàn)*/

outportb(0x3fc,0x03);/*不允許中斷*/}PC機(jī)的發(fā)送、接收程序例2PC機(jī)從COM1發(fā)送一個(gè)字符,程序如下:send(charsendchar){int

coms;do{ /*查詢發(fā)送緩沖器是否空*/coms=inportb(0x3fd)&0x20;}while(coms!=0x20);outportb(0x3f8,sendchar);}⒈PC機(jī)的通信軟件#include“stdio.h”main(){charc1,c2;

int

coms;outportb(0x3fb,0x80);/*初始化8250*/outportb(0x3f8,0x30);outportb(0x3f9,0x00);outportb(0x3fb,0x03);/*8位數(shù)據(jù),1位停止位*/outportb(0x3fc,0x03);c1=getchar();開始初始化8250有鍵輸入嗎?取鍵盤字符發(fā)送寄存器空否?向單片機(jī)發(fā)送字符接收單片機(jī)發(fā)回的字符接收的數(shù)據(jù)有效碼?顯示發(fā)回的字符NNNYYY結(jié)束PC機(jī)發(fā)送程序do{ /*查詢發(fā)送緩沖器是否空*/coms=inportb(0x3fd)&0x20;}while(coms!=0x20);outportb(0x3f8,c1);waitok: /*查詢接收數(shù)據(jù)是否有效*/coms=inportb(0x3fd);if((coms&0x01)==0)goto

waitok;c2=inportb(0x3f8);printf(“Thereturncharis:”);putchar(c2);}開始初始化定時(shí)器T1初始化串行口啟動(dòng)定時(shí)器T1開放中斷主程序踏步中斷服務(wù)程序關(guān)中斷清接收中斷標(biāo)志RI保護(hù)現(xiàn)場接收PC機(jī)發(fā)來的字符將字符發(fā)送回PC機(jī)開中斷,恢復(fù)現(xiàn)場中斷返回MCS-51單片機(jī)通信軟件主程序中斷服務(wù)程序主程序:

ORG 0000H LJMP MAIN ORG 0023H LJMP SERVEMAIN:

MOV TMOD,#20H;初始化T1 MOV TH1,#0F3H MOV TL1,#0F3H MOV SCON,#50H ;串行口為方式1,REN=1 MOV PCON,#80H ;SMOD=1 SETB TR1 SETB EA SETB ESHERE:

SJMP HERE單片機(jī)接收程序中斷服務(wù)程序:SERVE: CLR EA ;中斷服務(wù)程序

CLR RI PUSH PSW ;保護(hù)現(xiàn)場

SETB RS0 CLR RS1 PUSH ACC MOV A,SBUF ;接收PC機(jī)發(fā)來的字符

MOV SBUF,A ;將字符回送給PC機(jī)WAIT:JNB TI,WAIT ;等待發(fā)送完畢

CLR TI POP ACC ;恢復(fù)現(xiàn)場

POP PSW SETB EA RETI END中斷服務(wù)程序:SERVE: CLR EA ;中斷服務(wù)程序

CLR RI PUSH PSW ;保護(hù)現(xiàn)場

SETB RS0 CLR RS1 PUSH ACC MOV A,SBUF ;接收PC機(jī)發(fā)來的字符MOV SBUF,A ;將字符回送給PC機(jī)WAIT: JNB TI,WAIT ;等待發(fā)送完畢

CLR TI POP ACC ;恢復(fù)現(xiàn)場

POP PSW SETB EA RETI END⒈PC機(jī)軟件設(shè)計(jì)

開始初始化8250輸入單片機(jī)編號(hào)發(fā)送單片機(jī)編號(hào)接收單片機(jī)送回的編號(hào)取鍵盤字符編號(hào)一致嗎?向單片機(jī)發(fā)送字符接收單片機(jī)發(fā)回的字符顯示發(fā)回的字符NY結(jié)束多機(jī)通訊程序設(shè)計(jì)程序清單:#include“stdio.h”main(){charc1,c2,n1,n2;

int

coms;

outportb(0x3fb,0x80); /*初始化8250*/

outportb(0x3f8,0x30);

outportb(0x3f9,0x00);

outportb(0x3fb,0x2b); /*8位數(shù)據(jù),1位停止,奇偶校驗(yàn)位為1*/

outportb(0x3fc,0x03); /*PC機(jī)處于發(fā)送地址狀態(tài)*/

outportb(0x3f9,0x00); /*禁止8250中斷*/

printf(“PleaseinputthenumberofMCS:\n”);

scanf(“%c”,&n1);

do{ /*查詢發(fā)送移位寄存器是否空*/

coms=inportb(0x3fd)&0x40;

}while(coms!=0x40);

outportb(0x3f8,n1); /*PC機(jī)發(fā)送單片機(jī)地址編號(hào)*/

outportb(0x3fc,0x01); /*PC機(jī)處于接收狀態(tài)*/waitok1: /*查詢單片機(jī)返回的編號(hào)是否有效*/

coms=inportb(0x3fd);

if((coms&0x01)==0)PC機(jī)端的程序gotowaitok1;

n2=inportb(0x3f8); /*讀入單片機(jī)返回的編號(hào)*/if(n1!=n2)

printf(“ThenumberofMCSiserror!\n”);

break;else {outportb(0x3fc,0x03); /*PC機(jī)處于發(fā)送狀態(tài)*/

outportb(0x3fb,0x3b); /*PC機(jī)處于發(fā)送數(shù)據(jù)狀態(tài)*/c1=getchar();

do{ /*查詢發(fā)送移位寄存器是否空*/coms=inportb(0x3fd)&0x40;}while(coms!=0x40);outportb(0x3f8,c1);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論