8串行通信及串行接口技术_第1页
8串行通信及串行接口技术_第2页
8串行通信及串行接口技术_第3页
8串行通信及串行接口技术_第4页
8串行通信及串行接口技术_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、8串行通信 及串行接口技术 串行通信概述 89C51串行通信接口 串行接口技术11.通信方式计算机与外界(计算机与计算机之间、计算机与外围设备之间)的信息交换称为通信。 并行通信 串行通信串行通信概述2数据位:根据情况可取5位、6位、7位或8位,低位在前高位在后。2串行通信(1)分类(按数据格式分) 异步通信 停止位:通常可取1位、1.5位或2位,用于向接收端表示一帧字符信息已发送完毕,也为发送下一帧字符作准备。3 同步通信 * 在同步通信中,同步字符可以采用统一标准字符,也可由用户约定。 在单同步字符帧结构中,同步字符常采用ASCII码中规定的SYN(即16H)代码; 在双同步字符帧结构中,

2、同步字符一般采用国际通用标准代码EB90H。4(2)波特率(baud rate) 波特率是串行通信的重要指标,用于表征数据传输的速度,定义为每秒钟传送二进制数码的位数(bit),单位是波特,即1波特=1bit/s(bps)。【例】某异步通信的传输速率为7200字符帧/分钟,每个字符帧的长度为10位。则传输速率为:720010 位 60秒=1200bps 每位传输时间(位宽):5(3)串行通信的差错校验 奇偶校验 发送数据时,数据后尾随一位奇偶校验位(0或1)。当设置为奇校验时,数据中1的个数与校验位1的个数之和应为奇数;当设置为偶校验时,数据中1的个数与校验位1的个数之和应为偶数。 接收时,接

3、收方采用与发送方一样的差错校验方法对接收到的数据进行校验。 和校验 发送方对发送的数据块求和,产生一个字节的校验和,并将其尾随数据块发送;接收方将接收的数据求和,将结果与发送方发送的“校验和”进行比较以判断是否出错。6 89C51串行通信接口一、串行通信及接口1.结构:89C51内部有全双工的异步通讯串行口( UART );两个独立的接收、发送缓冲器SBUF(属于特殊功能寄存器),一个用作发送,一个用作接收。发送缓冲器只能写入不能读出;接收缓冲器只能读出不能写入,两者共用一个字节地址(99H)。72.串行口控制寄存器SCON用于串行通信的方式选择、接收和发送控制以及串行口的状态标志指示。SM0

4、 SM1-串行口工作方式选择位D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRISM0SM1工作方式功能描述波特率0 00 11 01 1方式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

5、还是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位。可以是约定的奇偶校验位。可以是约定的地址/数据标志

6、位,可根据RB8被置位的情况对接收到的数据进行某种判断。在多机通信时,若RB8=1,说明收到的数据为地址帧;RB8=0,说明收到的数据为数据帧。在方式1下,若SM2=0,则RB8用于存放接收到的停止位方式;方式0下,该位未用。 10 TI:发送中断标志位用于指示一帧数据发送完否。方式0下,发送电路发送完第8位数据时,TI由硬件置位。其他方式下,TI在发送电路开始发送停止位时置位,这就是说:TI在发送前必须由软件复位,发送完一帧后由硬件置位。因此,CPU查询TI状态便可知一帧信息是否已发送完毕。 RI:接收中断标志位用于指示一帧信息是否接收完。在方式1下,RI在接收电路接收到第8位数据时由硬件置

7、位。在其他方式下,RI是在接收电路接收到停止位的中间位置时置位的,RI也可供CPU查询,以决定CPU是否需要从SBUF中提取接收到的字符或数据。RI也由软件复位。 113.电源控制寄存器PCON SMOD-串行口波特率倍增位 PCON不可位寻址。可用下列指令设置SMOD位:ANL PCON,#7FH ;SMOD=0ORL PCON,#80H ;SMOD=1D7D6D5D4D3D2D1D0SMOD-GF1GF0PDIDL124. 串行通信工作方式(1)串行工作方式0 *工作原理串行口作为同步移位寄存器使用;以RXD(P3.0)端作为数据移位的输入端和输出端;TXD(P3.1)端输出移位脉冲;8位

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工作原理 串行口作为通用异步接收和发送器(

9、UART)使用; 10位为一帧,帧格式如下: 定时器T1作为波特率发生器,通常选用方式2(自动重装入初值方式)、定时、禁止中断;15 波特率=T1溢出率2SMOD/32 T1溢出周期=(256-初值)12/fosc T1溢出率=fosc/12 (256-初值)波特率=2SMOD fosc/384 (256-初值)则定时器T1方式2的初值为:初值=256- 2SMOD fosc/384 波特率 发送时,数据从引脚TXD输出,当数据写入串行口缓冲寄存器SBUF,即启动发送,发送完一帧数据置中断标志TI为“1”; 接收时,软件置REN=1时,串行口即开始采样RXD端,当检测到起始位时开始接收一帧数据

10、,接收到停止位时置中断标志RI为“1”,用户可从SBUF读数据。16【例】 由内部RAM单元30H4FH取出ASCII码数据,在最高位上加奇偶校验位后由串行口输出,采用10位异步通信,波特率为1200bit/s,fosc=11.0592MHz。解:由题意可知,应把串行口置为方式1;采用定时器T1,以方式2工作,作波特率发生器,预置值(TH1)=(TL1)=0E8H。初值=256- 2SMOD fosc/384 波特率 =256-20 11059200/(384 1200) =256-24 =0E8H1718工作原理 串行口作为通用异步接收和发送器(UART)使用; 11位为一帧,帧格式如下:可

11、编程位(第9数据位)D8由软件置“1”或清“0”,可作检验位,也可作它用。发送方发送时将TB8装入D8,接收方接收时将D8装入RB8; 波特率=2SMOD fosc/64(3)串行工作方式2 *19(4)串行工作方式3 *工作原理 串行工作方式3的波特率与方式1相同;其他功能与方式2完全相同。20二、 89C51串行通信应用1.双机串行通信技术 如果两个8031应用系统相距很近,将它们的串行口直接相连,即可实现双机通信。AT89S51AT89S51(P3.0)(P3.0)(P3.1)(P3.1)21【例】 双机通信RTX.DSN22ORG0000H;发送端程序 tx.asmLJMPMAINOR

12、G0030HMAIN:MOV TMOD,#20H;设T1为模式2MOV TL1,#0FDHMOV TH1,#0FDH;波特率9600ANLPCON,#7FH;SMOD=0SETB TR1;启动定时器T1MOV SCON,#40H ;设串行口为方式1MOVA,#0FEH L1:MOV SBUF,A;发送数据JNB TI,$;发送完?CLR TI LCALLD1S;延时1秒RLASJMP L123ORG 0000H ;接收端程序 rx.asmLJMP MAINORG 0030HMAIN:MOV SP,#60HMOV TMOD,#20HMOV TL1,#0FDHMOV TH1,#0FDH;波特率96

13、00ANLPCON,#7FH;SMOD=0SETB TR1MOV SCON,#50H;串口方式1,允许接收 L2:JNBRI,$;接收到数据?CLRRIMOV A,SBUFMOV P1,ASJMP L224相互转换232C接口采用EIA电平(负逻辑)“0” 电平为3V15V“1”电平为3V15V实际常用12V或15V标准TTL电平(正逻辑)“1”电平:2.4V5V“0”电平:0V0.8V2.单片机与PC机的通信 为了增加通信距离,减少通道及电源干扰,可以在通信线路上采取光电隔离的方法,利用RS-232C、RS-422或RS485标准进行双机通信。25MAX232 :+5V供电,RS-232驱动

14、器/接收器单片机TXDRXDPC机RXDTXDDB-9(P3.0)(P3.1)(2)(3)(5)26PC端软件:串口调试工具(可显示从串口接收的数据)显示窗口通信协议设置27 串行接口器件与单片机接口时需要的I/O口线很少(仅需14条),极大地简化了器件间的连接,进而提高了可靠性。串行接口器件体积小,因而占用电路板的空间小,仅为并行接口器件的10%,明显减少了电路板空间和成本。 串行接口工作电压宽、抗干扰能力强、功耗低、数据不易丢失。 串行扩展技术在IC卡、智能仪器仪表以及分布式控制系统等领域得到了广泛的应用。 串行接口技术28一、 1-Wire(单总线)接口 单总线(1-Wire bus)是

15、由DALLAS 公司推出的外围串行扩展总线。它只有一条数据输入/输出线DQ,总线上的所有器件都挂在DQ上,电源也可通过这条信号线供给,称为单总线技术。1-Wire器件按照串行协议进行供电和数据通信。 优势: 通过单线接口提供器件控制及操作 每个器件具有全球唯一的工厂光刻ID (64位ROM) 通过单总线供电(“寄生电源”) 可挂接多点:单一总线可挂接多个器件 (长度200M)29 DS18B20 Programmable Resolution 1-Wire Digital Thermometer30 Unique 1-Wire Interface Requires Only One Port

16、Pin for Communication Each Device has a Unique 64-Bit Serial Code Stored in an On-Board ROM Multidrop Capability Simplifies Distributed Temperature-Sensing Applications Requires No External Components Can Be Powered from Data Line; Power Supply Range is 3.0V to 5.5V Measures Temperatures from -55C t

17、o +125C (-67F to +257F) 0.5C Accuracy from -10C to +85C Thermometer Resolution is User Selectable from 9 to 12 Bits Converts Temperature to 12-Bit Digital Word in 750ms (Max) User-Definable Nonvolatile (NV) Alarm Settings Alarm Search Command Identifies and Addresses Devices Whose Temperature is Out

18、side Programmed Limits (Temperature Alarm Condition) Available in 8-Pin SO (150 mils), 8-Pin SOP, and 3-Pin TO-92 Packages Software Compatible with the DS1822 Applications Include Thermostatic Controls, Industrial Systems, Consumer Products, Thermometers, or Any Thermally Sensitive System 31 典型应用测温范

19、围:-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【例】温度

20、传感器DS18B20的DQ与P3.4相连。 下列为读温度和转换程序。(P3.4)44;-;*DS18B20读温度子程序;12位分辨率,MSB存入65H,LSB存入64H;转换为BCD码存入6FH(符号位,FFH负,00H正),6EH(百位);6DH(十位),6CH(个位),6BH(小数);-RD_TEMP:SETB P3.4 LCALL RST1820 ;读温度之前必须先复位 JB F0,YES ;查看标志位看18B20是否存在,1为存在,0为不存在 RET ;不存在则返回 YES:MOV A,#0CCH ;存在则开始读温度,跳过ROM匹配 LCALL WRB ;调写子程序 MOV A,#44

21、H ;发出温度转换命令 LCALL WRB ;调写子程序 MOV B,#150 WT:LCALL DISP DJNZ B,WT;等待AD转换完成,现在分辨率为12位,温度最大转换时间为750MS LCALL RST1820 ;读温前需要复位 MOV A,#0CCH ;跳过ROM匹配 LCALL WRB MOV A,#0BEH ;发读温度命令 LCALL WRB LCALL RD2B ;将温度数据读回 LCALL BTOD;将温度值转换为BCD码 RET45;18B20复位子程序;18B20复位需要将数据位拉低500us;18B20收到信号后要等待16-60us,然后发出60-240us的低脉冲

22、RST1820:SETB P3.4 NOPCLR P3.4MOV R6,#3 RST0:MOV R7,#105 ;设一个537us延时 DJNZ R7,$DJNZ R6,RST0 SETB P3.4 ;拉高数据线,等待回应NOP NOPNOP MOV R6,#23 RST1:JNB P3.4,RST2 ;延时延时50us等待18B20回应,若返回低脉冲则说明18B20存在 DJNZ R6 ,RST1 LJMP RST3 ;经过反应时间而没检测到18B20的存在,则跳转去清零标志位 RST2:SETB F0 ;检测到18B20存在,置1标志位 LJMP RST4 RST3:CLR F0 ;没检测

23、到18B20,清零标志位 LJMP RST5 RST4:MOV R6,#111;延时240us,确定回应信号已发完 DJNZ R6,$ RST5:SETB P3.4 RET 46;-;写18B20子程序;- WRB:MOV R6,#8 ;写计数寄存器,一共有8位数据 CLR C WRB1:CLR P3.4MOV R7,#6;设一个延时 DJNZ R7,$ RRC A;右循环,先输出低位 MOV P3.4,C MOV R7,#23;设延时50us DJNZ R7,$ SETB P3.4 NOP NOP DJNZ R6,WRB1 ;判断是否完成数据传送 SETB P3.4 ;完成传送拉高数据位 R

24、ET47;-;从18B20中读出温度数据子程序,存入65H,64H;- RD2B:MOV R5,#2 ;设读回数据个数指针 MOV R0,#64H ;把温度数据低位存入64H RD2B0:MOV R6,#8 ;设数据长度指针 RD2B1:CLR C SETB P3.4 NOP NOP CLR P3.4NOPNOPNOPSETB P3.4MOV R7,#9 DJNZ R7,$MOV C,P3.4MOV R7,#23 DJNZ R7,$RRC ADJNZ R6,RD2B1MOV R0,A INC R0;高位存入65HDJNZ R5,RD2B0RET48;-;将温度数据转换为BCD码子程序;- BT

25、OD:MOVA,65HJNBACC.7,PLUS;判断正负CPLAMOV67H,AMOVA,64HCPLAADDA,#01HMOV66H,AMOVA,67HADDCA,#00HMOV67H,A;若为负数,求绝对值存入67H,66HMOV 6FH,#0FFH;置负数标志SJMPBTOD0 PLUS:MOV 6FH,#00H;置正数标志MOV67H,65HMOV66H,64H49BTOD0:MOVA,66HANLA,#0FHMOVDPTR,#POINTMOVCA,A+DPTRMOV 6BH,AMOVA,66HANLA,#0F0HSWAPAMOV63H,AMOVA,67HANLA,#07HSWAPA

26、ORLA,63HMOVB,#100DIVABMOV6EH,AMOVA,#10XCHA,BDIVABMOV6DH,AMOV6CH,BRET POINT:DB 00H,01H,01H,02H,02H,03H,04H,04H,05H,06H,06H,07H,07H,08H,09H,09H50 SPI(Serial Periperal Interface)是Motorola公司推出的同步串行外设接口,允许单片机与多个厂家生产的带有该接口的设备直接连接,以串行方式交换信息。 使用条线:串行时钟SCK,主器件输入/从器件输出数据线MISO(简称SO),主器件输出/从器件输入数据线MOSI(简称SI)和从器件选择线(CS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论