串行通信与串行接口技术ppt课件.ppt

串行通信与串行接口技术ppt课件.ppt

ID:58853107

大小:1.08 MB

页数:62页

时间:2020-09-30

上传者:U-5097
串行通信与串行接口技术ppt课件.ppt_第1页
串行通信与串行接口技术ppt课件.ppt_第2页
串行通信与串行接口技术ppt课件.ppt_第3页
串行通信与串行接口技术ppt课件.ppt_第4页
串行通信与串行接口技术ppt课件.ppt_第5页
资源描述:

《串行通信与串行接口技术ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

8串行通信 及串行接口技术串行通信概述89C51串行通信接口串行接口技术1 1.通信方式计算机与外界(计算机与计算机之间、计算机与外围设备之间)的信息交换称为通信。并行通信串行通信串行通信概述2 数据位:根据情况可取5位、6位、7位或8位,低位在前高位在后。2串行通信(1)分类(按数据格式分)异步通信停止位:通常可取1位、1.5位或2位,用于向接收端表示一帧字符信息已发送完毕,也为发送下一帧字符作准备。3 同步通信*在同步通信中,同步字符可以采用统一标准字符,也可由用户约定。在单同步字符帧结构中,同步字符常采用ASCII码中规定的SYN(即16H)代码;在双同步字符帧结构中,同步字符一般采用国际通用标准代码EB90H。4 (2)波特率(baudrate)波特率是串行通信的重要指标,用于表征数据传输的速度,定义为每秒钟传送二进制数码的位数(bit),单位是波特,即1波特=1bit/s(bps)。【例】某异步通信的传输速率为7200字符帧/分钟,每个字符帧的长度为10位。则传输速率为:720010位60秒=1200bps每位传输时间(位宽):5 (3)串行通信的差错校验奇偶校验发送数据时,数据后尾随一位奇偶校验位(0或1)。当设置为奇校验时,数据中1的个数与校验位1的个数之和应为奇数;当设置为偶校验时,数据中1的个数与校验位1的个数之和应为偶数。接收时,接收方采用与发送方一样的差错校验方法对接收到的数据进行校验。和校验发送方对发送的数据块求和,产生一个字节的校验和,并将其尾随数据块发送;接收方将接收的数据求和,将结果与发送方发送的“校验和”进行比较以判断是否出错。6 89C51串行通信接口一、串行通信及接口1.结构:89C51内部有全双工的异步通讯串行口(UART);两个独立的接收、发送缓冲器SBUF(属于特殊功能寄存器),一个用作发送,一个用作接收。发送缓冲器只能写入不能读出;接收缓冲器只能读出不能写入,两者共用一个字节地址(99H)。7 2.串行口控制寄存器SCON用于串行通信的方式选择、接收和发送控制以及串行口的状态标志指示。SM0SM1--串行口工作方式选择位D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRISM0SM1工作方式功能描述波特率00011011方式0方式1方式2方式38位同步移位寄存器10位UART11位UART11位UARTfosc/12可变(定时器控制)fosc/64、fosc/32可变(定时器控制)8 SM2:多机通信控制位*主要用于方式2和方式3。当串行口以方式2和方式3接收数据时:SM2=1,则只有在接收到的第9位数据(RB8)为1时才将接收到的前8位数据送入SBUF,并置位RI产生中断请求;否则将接收到的前8位数据丢弃。SM2=0,则不论第9位数据是0还是1,都将前8位数据装入SBUF中,并产生中断请求。在方式0,SM2必须为0。REN:允许接收控制位REN=0时禁止串行口接收。REN=1时允许串行口接收。该位由软件置位或复位。9 TB8:发送数据位*在方式2或方式3时,TB8是发送数据的第9位,根据发送数据的需要由软件置位或复位。可作为奇偶校验位(单机通信)。可在多机通信中作为发送地址帧或数据帧的标志位。多机通信时,一般约定:发送地址帧时,设置TB8=1;发送数据帧时,设置TB8=0。在方式0和方式1中,该位未用。RB8:接收数据位*在方式2和方式3时,存放接收数据的第9位。可以是约定的奇偶校验位。可以是约定的地址/数据标志位,可根据RB8被置位的情况对接收到的数据进行某种判断。在多机通信时,若RB8=1,说明收到的数据为地址帧;RB8=0,说明收到的数据为数据帧。在方式1下,若SM2=0,则RB8用于存放接收到的停止位方式;方式0下,该位未用。10 TI:发送中断标志位用于指示一帧数据发送完否。方式0下,发送电路发送完第8位数据时,TI由硬件置位。其他方式下,TI在发送电路开始发送停止位时置位,这就是说:TI在发送前必须由软件复位,发送完一帧后由硬件置位。因此,CPU查询TI状态便可知一帧信息是否已发送完毕。RI:接收中断标志位用于指示一帧信息是否接收完。在方式1下,RI在接收电路接收到第8位数据时由硬件置位。在其他方式下,RI是在接收电路接收到停止位的中间位置时置位的,RI也可供CPU查询,以决定CPU是否需要从SBUF中提取接收到的字符或数据。RI也由软件复位。11 3.电源控制寄存器PCONSMOD--串行口波特率倍增位PCON不可位寻址。可用下列指令设置SMOD位:ANLPCON,#7FH;SMOD=0ORLPCON,#80H;SMOD=1D7D6D5D4D3D2D1D0SMOD---GF1GF0PDIDL12 4.串行通信工作方式(1)串行工作方式0*工作原理串行口作为同步移位寄存器使用;以RXD(P3.0)端作为数据移位的输入端和输出端;TXD(P3.1)端输出移位脉冲;8位为一帧,不设起始位和停止位,低位在前,高位在后;帧格式如下:每个机器周期发送或接收一位,故波特率为fosc/12;...D0D1D2D3D4D5D6D7...13 发送时,只需将数据写入串行口缓冲寄存器SBUF,即启动发送,串行口把8位数据以fosc/12的波特率从RXD端送出(低位在前),发送完置中断标志TI为“1”;接收时,软件置REN=1时,串行口即开始从RXD端以fosc/12波特率输入数据(低位在前),当接收到8位数据时,置中断标志RI为“1”,用户可从SBUF读数据。应用串行工作方式0常用于扩展I/O接口。14 (2)串行工作方式1工作原理串行口作为通用异步接收和发送器(UART)使用;10位为一帧,帧格式如下:定时器T1作为波特率发生器,通常选用方式2(自动重装入初值方式)、定时、禁止中断;..0D0D1D2D3D4D5D6D71..起始位停止位15 波特率={T1溢出率}2SMOD/32T1溢出周期=(256-初值)12/foscT1溢出率=fosc/[12(256-初值)]波特率=2SMODfosc/[384(256-初值)]则定时器T1方式2的初值为:初值=256-2SMODfosc/[384波特率]发送时,数据从引脚TXD输出,当数据写入串行口缓冲寄存器SBUF,即启动发送,发送完一帧数据置中断标志TI为“1”;接收时,软件置REN=1时,串行口即开始采样RXD端,当检测到起始位时开始接收一帧数据,接收到停止位时置中断标志RI为“1”,用户可从SBUF读数据。16 【例】由内部RAM单元30H~4FH取出ASCII码数据,在最高位上加奇偶校验位后由串行口输出,采用10位异步通信,波特率为1200bit/s,fosc=11.0592MHz。解:由题意可知,应把串行口置为方式1;采用定时器T1,以方式2工作,作波特率发生器,预置值(TH1)=(TL1)=0E8H。初值=256-2SMODfosc/[384波特率]=256-2011059200/(3841200)=256-24=0E8H17 TX:MOVC,P;设置奇校验位CPLCMOVACC.7,CMOVSBUF,A;启动串行口发送JNBTI,$;等待发送完CLRTI;清TI标志,允许再发送RETMOVTMOD,#20H;设T1为模式2MOVTL1,#0E8H;装入时间常数MOVTH1,#0E8HSETBTR1;启动定时器T1MOVSCON,#40H;设串行口为方式1MOVR0,#30H;发送数据首地址MOVR7,#32;发送个数LOOP:MOVA,@R0;发送数据送累加器ALCALLTX;调发送子程序INCR0;指向下一步个地址DJNZR7,LOOP……18 工作原理串行口作为通用异步接收和发送器(UART)使用;11位为一帧,帧格式如下:可编程位(第9数据位)D8由软件置“1”或清“0”,可作检验位,也可作它用。发送方发送时将TB8装入D8,接收方接收时将D8装入RB8;波特率=2SMODfosc/64..0D0D1D2D3D4D5D6D7D81..起始位停止位(3)串行工作方式2*19 (4)串行工作方式3*工作原理串行工作方式3的波特率与方式1相同;其他功能与方式2完全相同。20 二、89C51串行通信应用1.双机串行通信技术如果两个8031应用系统相距很近,将它们的串行口直接相连,即可实现双机通信。AT89S51AT89S51(P3.0)(P3.0)(P3.1)(P3.1)21 【例】双机通信RTX.DSN22 ORG0000H;发送端程序tx.asmLJMPMAINORG0030HMAIN:MOVTMOD,#20H;设T1为模式2MOVTL1,#0FDHMOVTH1,#0FDH;波特率9600ANLPCON,#7FH;SMOD=0SETBTR1;启动定时器T1MOVSCON,#40H;设串行口为方式1MOVA,#0FEHL1:MOVSBUF,A;发送数据JNBTI,$;发送完?CLRTILCALLD1S;延时1秒RLASJMPL123 ORG0000H;接收端程序rx.asmLJMPMAINORG0030HMAIN:MOVSP,#60HMOVTMOD,#20HMOVTL1,#0FDHMOVTH1,#0FDH;波特率9600ANLPCON,#7FH;SMOD=0SETBTR1MOVSCON,#50H;串口方式1,允许接收L2:JNBRI,$;接收到数据?CLRRIMOVA,SBUFMOVP1,ASJMPL224 相互转换232C接口采用EIA电平(负逻辑)“0”电平为+3V~+15V“1”电平为-3V~-15V实际常用±12V或±15V标准TTL电平(正逻辑)“1”电平:+2.4V~+5V“0”电平:0V~0.8V2.单片机与PC机的通信为了增加通信距离,减少通道及电源干扰,可以在通信线路上采取光电隔离的方法,利用RS-232C、RS-422或RS485标准进行双机通信。25 MAX232:+5V供电,RS-232驱动器/接收器单片机TXDRXDPC机RXDTXDDB-9(P3.0)(P3.1)(2)(3)(5)26 PC端软件:串口调试工具(可显示从串口接收的数据)显示窗口通信协议设置27 串行接口器件与单片机接口时需要的I/O口线很少(仅需1~4条),极大地简化了器件间的连接,进而提高了可靠性。串行接口器件体积小,因而占用电路板的空间小,仅为并行接口器件的10%,明显减少了电路板空间和成本。串行接口工作电压宽、抗干扰能力强、功耗低、数据不易丢失。串行扩展技术在IC卡、智能仪器仪表以及分布式控制系统等领域得到了广泛的应用。串行接口技术28 一、1-Wire(单总线)接口单总线(1-Wirebus)是由DALLAS公司推出的外围串行扩展总线。它只有一条数据输入/输出线DQ,总线上的所有器件都挂在DQ上,电源也可通过这条信号线供给,称为单总线技术。1-Wire器件按照串行协议进行供电和数据通信。 优势:通过单线接口提供器件控制及操作每个器件具有全球唯一的工厂光刻ID(64位ROM)通过单总线供电(“寄生电源”)可挂接多点:单一总线可挂接多个器件(长度≤200M)29 DS18B20—ProgrammableResolution1-WireDigitalThermometer30 Unique1-WireInterfaceRequiresOnlyOnePortPinforCommunicationEachDevicehasaUnique64-BitSerialCodeStoredinanOn-BoardROMMultidropCapabilitySimplifiesDistributedTemperature-SensingApplicationsRequiresNoExternalComponentsCanBePoweredfromDataLine;PowerSupplyRangeis3.0Vto5.5VMeasuresTemperaturesfrom-55°Cto+125°C(-67°Fto+257°F)±0.5°CAccuracyfrom-10°Cto+85°CThermometerResolutionisUserSelectablefrom9to12BitsConvertsTemperatureto12-BitDigitalWordin750ms(Max)User-DefinableNonvolatile(NV)AlarmSettingsAlarmSearchCommandIdentifiesandAddressesDevicesWhoseTemperatureisOutsideProgrammedLimits(TemperatureAlarmCondition)Availablein8-PinSO(150mils),8-PinµSOP,and3-PinTO-92PackagesSoftwareCompatiblewiththeDS1822ApplicationsIncludeThermostaticControls,IndustrialSystems,ConsumerProducts,Thermometers,orAnyThermallySensitiveSystem31 典型应用测温范围:-55℃~+125℃;(9/12位二进制码表示)测温精度:±0.5℃(-10℃~+85℃);用户自设定温度报警上下限,其值是非易失性的测温距离:≤200M;32 封装及引脚33 温度寄存器34 温度—数字量关系小数整数负温度为补码表示35 存储器36 配置寄存器37 DS18B20操作38 串行接口技术-1-Wire总线39 串行接口技术-1-Wire总线40 操作时序DALLAS公司为单总线的寻址及数据的传送提供了严格的时序规范,具体内容可查阅数据手册。主机发复位脉冲接收器件“存在”脉冲41 串行接口技术-1-Wire总线写“0”写“1”读“1”读“0”42 串行接口技术-1-Wire总线43 【例】温度传感器DS18B20的DQ与P3.4相连。下列为读温度和转换程序。(P3.4)44 ;---------------------------------------------------------------------------;**DS18B20读温度子程序;12位分辨率,MSB存入65H,LSB存入64H;转换为BCD码存入6FH(符号位,FFH负,00H正),6EH(百位);6DH(十位),6CH(个位),6BH(小数);---------------------------------------------------------------------------RD_TEMP:SETBP3.4LCALLRST1820;读温度之前必须先复位JBF0,YES;查看标志位看18B20是否存在,1为存在,0为不存在RET;不存在则返回YES:MOVA,#0CCH;存在则开始读温度,跳过ROM匹配LCALLWRB;调写子程序MOVA,#44H;发出温度转换命令LCALLWRB;调写子程序MOVB,#150WT:LCALLDISPDJNZB,WT;等待AD转换完成,现在分辨率为12位,温度最大转换时间为750MSLCALLRST1820;读温前需要复位MOVA,#0CCH;跳过ROM匹配LCALLWRBMOVA,#0BEH;发读温度命令LCALLWRBLCALLRD2B;将温度数据读回LCALLBTOD;将温度值转换为BCD码RET45 ;18B20复位子程序;18B20复位需要将数据位拉低500us;18B20收到信号后要等待16-60us,然后发出60-240us的低脉冲RST1820:SETBP3.4NOPCLRP3.4MOVR6,#3RST0:MOVR7,#105;设一个537us延时DJNZR7,$DJNZR6,RST0SETBP3.4;拉高数据线,等待回应NOPNOPNOPMOVR6,#23RST1:JNBP3.4,RST2;延时延时50us等待18B20回应,若返回低脉冲则说明18B20存在DJNZR6,RST1LJMPRST3;经过反应时间而没检测到18B20的存在,则跳转去清零标志位RST2:SETBF0;检测到18B20存在,置1标志位LJMPRST4RST3:CLRF0;没检测到18B20,清零标志位LJMPRST5RST4:MOVR6,#111;延时240us,确定回应信号已发完DJNZR6,$RST5:SETBP3.4RET46 ;-------------------------------------------------------------------;写18B20子程序;-------------------------------------------------------------------WRB:MOVR6,#8;写计数寄存器,一共有8位数据CLRCWRB1:CLRP3.4MOVR7,#6;设一个延时DJNZR7,$RRCA;右循环,先输出低位MOVP3.4,CMOVR7,#23;设延时50usDJNZR7,$SETBP3.4NOPNOPDJNZR6,WRB1;判断是否完成数据传送SETBP3.4;完成传送拉高数据位RET47 ;--------------------------------------------------------;从18B20中读出温度数据子程序,存入65H,64H;--------------------------------------------------------RD2B:MOVR5,#2;设读回数据个数指针MOVR0,#64H;把温度数据低位存入64HRD2B0:MOVR6,#8;设数据长度指针RD2B1:CLRCSETBP3.4NOPNOPCLRP3.4NOPNOPNOPSETBP3.4MOVR7,#9DJNZR7,$MOVC,P3.4MOVR7,#23DJNZR7,$RRCADJNZR6,RD2B1MOV@R0,AINCR0;高位存入65HDJNZR5,RD2B0RET48 ;--------------------------------------------------------;将温度数据转换为BCD码子程序;--------------------------------------------------------BTOD:MOVA,65HJNBACC.7,PLUS;判断正负CPLAMOV67H,AMOVA,64HCPLAADDA,#01HMOV66H,AMOVA,67HADDCA,#00HMOV67H,A;若为负数,求绝对值存入67H,66HMOV6FH,#0FFH;置负数标志SJMPBTOD0PLUS:MOV6FH,#00H;置正数标志MOV67H,65HMOV66H,64H49 BTOD0:MOVA,66HANLA,#0FHMOVDPTR,#POINTMOVCA,@A+DPTRMOV6BH,AMOVA,66HANLA,#0F0HSWAPAMOV63H,AMOVA,67HANLA,#07HSWAPAORLA,63HMOVB,#100DIVABMOV6EH,AMOVA,#10XCHA,BDIVABMOV6DH,AMOV6CH,BRETPOINT:DB00H,01H,01H,02H,02H,03H,04H,04H,05H,06H,06H,07H,07H,08H,09H,09H50 SPI(SerialPeriperalInterface)是Motorola公司推出的同步串行外设接口,允许单片机与多个厂家生产的带有该接口的设备直接连接,以串行方式交换信息。使用4条线:串行时钟SCK,主器件输入/从器件输出数据线MISO(简称SO),主器件输出/从器件输入数据线MOSI(简称SI)和从器件选择线(CS)。SPI的典型应用是单主系统。该系统只有一台主器件,从器件通常是外围接口器件,如存储器、I/O接口、A/D、D/A、键盘、日历/时钟和显示驱动等。二、SPI总线接口简介51 典型应用时序主从从从主器件与从器件的SCK、MISO、MOSI都是同名端相连52 只有两条信号线,一条是数据线SDA,另一条是时钟线SCL,所有连接到I2C总线上器件的数据线都接到SDA线上,各器件的时钟线均接到SCL线上。标准I2C普通模式,数据的传输速率为100kb/s,高速模式可达400kb/s。三、I2C总线接口典型应用53 24C02引脚54 I2C总线协议55 56 57 虚拟方式应用89C51单片机没有I2C接口,用I/O口结合软件实现。58 起始信号SSTART:SETBP1.7;SDA=1SETBP1.6;SCL=1NOPNOPNOPCLRP1.7;SDA=0NOPNOPNOPCLRP1.6;SCL=0RET59 停止信号SSTOP:CLRP1.7;SDA=0SETBP1.6;SCL=1NOPNOPNOPSETBP1.7;SDA=1NOPNOPNOPCLRP1.6CLRP1.7RET60 发送1字节数据子程序S1BYTE:MOVR6,#08H;8位数据长度送入R6中WLP:RLCA;A左移,发送位进入CMOVP1.7,C;将发送位送入SDA引脚SETBP1.6;SCL=1,使SDA引脚上的数据有效NOPNOPCLRP1.6;SDA线上数据变化DJNZR6,WLPRET61 接收1字节数据子程序R1BYTE:MOVR6,#08H;8位数据长度送入R6中RLP:SETBP1.7;置SDA数据线为输入方式SETBP1.6;SCL=1,使SDA数据线上的数据有效MOVC,P1.7;读入SDA引脚状态MOVA,R2RLCA;将C读入AMOVR2,A;将A存入R2CLRP1.6;SCL=0,继续接收数据DJNZR6,RLPRET62

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭