单片机原理与应用系统设计第09章 串行总线技术-01

上传人:hjk****65 文档编号:246485834 上传时间:2024-10-14 格式:PPT 页数:63 大小:2.60MB
返回 下载 相关 举报
单片机原理与应用系统设计第09章 串行总线技术-01_第1页
第1页 / 共63页
单片机原理与应用系统设计第09章 串行总线技术-01_第2页
第2页 / 共63页
单片机原理与应用系统设计第09章 串行总线技术-01_第3页
第3页 / 共63页
点击查看更多>>
资源描述
*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2024/10/14,1,第,9,章 串行总线技术,单片机原理与应用系统设计,电子工业出版社 ,,2009.7,欧伟明 何静 凌云 刘剑 等编著,2024/10/14,2,本章主要内容,串行通信基本知识,RS-232/422/485,总线,I,2,C,、,SPI,、,MICROWIRE,、,1-Wire,总线,CAN,总线,USB,总线,2024/10/14,3,9.1,串行通信基本知识,并行通信和串行通信,串行通信的传输方式,通信协议,2024/10/14,4,9.1.1,并行通信和串行通信,并行通信:把一个字符的各位用几条线同时进行传输, 传输速度快 连接线多,P0,、,P1,、,P2,、,P3,串行通信:把一个字符的各位按顺序依次一位接一位地进行传输, 传输速度慢 连接线简单,成本低,UART,2024/10/14,5,9.1.2,串行通信的传输方式,串行通信的线路传输方式, 单工方式, 半双工方式, 全双工方式,串行通信的信号传输方式, 幅移键控(,ASK,):由两种幅度正弦波表示,“,0,”,和,“,1,”,频移键控(,FSK,):由两种频率正弦波表示,“,0,”,和,“,1,”,相移键控(,PSK,):由正弦波两种相位表示,“,0,”,和,“,1,”,2024/10/14,6,9.1.3,通信协议,通信双方对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出的一种约定。,1.,起止式异步通信协议,帧格式由起始位、数据位、奇偶校验位、停止位组成,帧与帧之间是空闲位。,2024/10/14,7,2.,面向比特的同步协议,HDLC,高级数据通信链路控制协议,HDLC,(,High level Data Link Control,),起始标志,地址场,控制场,信息场,帧校验场,结束标志,01111110,A,C,I,FC,01111110,3.,Modbus,协议简介,Modbus,的数据通信采用主,/,从方式,传输模式可设置为,ASCII,或,RTU,,规定每个控制器都有自己的设备地址。,模式,开始标志,地址,功能代码,数据数量,校验码,结束标志,ASCII,:,2,字符,2,字符,n,字符,2,字符,LRC,CR,,,LA,RTU,无,1,字节,1,字节,n,字节,2,字节,CRC,无,2024/10/14,8,Modbus,的数据校验,ASCII,模式采用纵向冗余码,LRC,校验,,RTU,模式采用,16bits,循环冗余码,CRC,校验。,LRC,校验:,每,2,个,ASCII,字符转换成一个,8,位二进制数据,将所有的二进制数据字节相加后再取反加,1,即得到,LRC,校验码。,CRC,校验:,将待校验的一个二进制数据除以一个多项式,得到的余数即为,CRC,校验码。具体的计算方法有逐位运算法和查表法。,Modbus,数据校验的,CRC,生成多项式为,G(x,)=x,16,+x,15,+x,2,+1,2024/10/14,9,9.2,串行通信,EIA,系列总线标准及其接口,RS-232C,总线,RS-422/485,总线,单片机与,PC,机之间的通信,2024/10/14,10,9.2.1 RS-232C,总线,1. RS-232C,总线简介, 点对点串行通信, 采取不平衡传输方式, 信号电平范围是,3V,15V,和,+3V,+15V,2.,单片机扩展,RS-232C,总线接口,实现,RS-232C,电平,与,5V TTL/CMOS,电平,之间的转换,2024/10/14,11,9.2.2,RS-422/485总线,1.,RS-422总线简介, 单机发送、多机接收, 采取平衡传输(差分)方式,驱动器输出为,(2,6)V,,接收器可检测最小输入为,200mV,最大通信速率,10Mb/s,(通信距离小于,15m,);最大传输距离,1200m,(通信速率为,90kb/s),四线制的全双工工作方式,2024/10/14,12,2.,RS-4,85,总线简介, 多点双向通信, 采取平衡传输(差分)方式,驱动器输出为,(2,6)V,,接收器可检测最小输入为,200mV,最大通信速率,10Mb/s,(通信距离小于,15m,);最大传输距离,1200m,(通信速率为,90kb/s),二线制的半双工工作方式,2024/10/14,13,9.2.3,单片机与PC机之间的通信,MCS-51,系列单片机内部的,UART,经扩展,RS-232C,接口后,可直接与,PC,机串行口,COM1,、,COM2,之间进行通信。,单片机扩展RS-485接口,进行,远距离通信,时,,需要在PC机端接入一个485/232通信接口转换器,。,1.,PC机通信软件设计,MSComm,控件的常用属性,CommPort,:设置并返回通信端口号。,Settings,:以字符串的形式设置并返回初始化参数。,PortOpen,:设置或返回通信端口的状态。,Input,:返回或清除接收缓冲区中的数据。,Output,:向发送缓冲区中写入数据。,InputLen,:确定被,Input,属性读取的字符数。,MSComm,控件通信方式,事件驱动(中断)方法 查询法,2024/10/14,14,PC通信程序,发送初始化,Private Sub Form1_send(),MSComm1.Commport = 1,设置串口,1,MSComm1. Settings =,“,9600, n, 8, 1,”,波特率,9600b/s,,无校验,,8,数据位,,1,停止位,MSComm1.OutBufferSize = 512,512,字节输出缓冲区,MSComm1.SThreshold = 0,不触发发送事件,MSComm1.PortOpen = True,打开串口,MSComm1.InBufferCount = 0,清除发送缓冲区,End Sub,发送文本框中的字符串。发送以,“,:,”,引导,以,“,$,”,结束。,Private Sub Command1_Click(),Dim,OutS,as String,OutS,=,“,:,”,+ Text1.Text +,“,$,”,加入引导和结束符,MSComm1.Output=,OutS,发送数据,MSComm1.portOpen = False,关闭串口,End Sub,2024/10/14,15,2.,单片机软件设计,STADDREQU30H,RECEIVE:MOVSCON, #50H; UART,为方式,1,,允许接收,MOVTMOD, #20H;,定时器,T1,为波特率发送器,MOVPCON, #00H;,波特率不加倍,MOVTH1, #253;,波特率,9600,,,11.0592MHz,SETBTR1,MOVR0, #STADDR,RECE1:JNBRI, RECE1;,等待接收字符,CLRRI,MOVA, SBUF;,读字符,CJNEA, #3AH, RECE1;,不是引导符,“,:,”,则返回等待,SJMPRECE3;,转向开始接收字符,RECE2:MOVR0, A ;,存储一个字符,INCR0,RECE3:JNBRI, RECE3;,等待接收字符,CLRRI,MOV A, SBUF;,读字符,CJNEA, #24H, RECE2;,不是结束符,“,$,”,,存储字符,RET,2024/10/14,16,9.3,三线制同步串行总线接口,SPI,总线简介,MICROWIRE,接口简介,SPI,接口单片机,P89LPC93x,与,ADC,器件,AD7810,的通信,MICROWIRE,接口,E,2,PROM,器件,AT93C46,的应用,2024/10/14,17,9.3.1 SPI,总线简介,SPI,(,Serial Peripheral Interface,串行外围设备接口)是一种三线同步总线,接口协议要求接口设备按主,/,从方式进行配置,同一时间内,总线上只能有一个主设备。,1. SPI,总线接口系统,MOSI,:,主设备数据输出、从设备数据输入线。,MISO,:,主设备数据输入、从设备数据输出线。,SCK,:,同步时钟,由主设备产生,每个时钟的宽度可不相同。,SS,:,从设备使能信号,低电平有效,由主设备控制。,SPI 8,位移位寄存器,SPI 8,位移位寄存器,MSB,主设备,LSB,MSB,从设备,LSB,SPI,时钟发生器,MOSI MISO,MISO MOSI,CLK,CLK,SPI,总线原理,主设备和从设备的两个移位寄存器可以看作是一个,16bits,的循环移位寄存器,当数据从主设备移位传送到从设备的同时,数据也以相反的方向移入。这意味着在一个移位周期中,主设备和从设备的数据相互交换。,2024/10/14,19,2. SPI,总线接口时序,SPI,主设备为了和从设备进行数据交换,根据从设备工作要求,其输出的串行同步时钟极性(,CPOL,)和相位(,CPHA,)可以进行配置。,2024/10/14,20,9.3.2 MICROWIRE,接口简介,SO,:,数据输出线。,SI,:,数据输入线。,CK,:,同步时钟。,CS,:,从设备使能信号,高电平有效,由主设备控制。,一般情况下,,MICROWIRE,接口可以看成是时钟极性和时钟相位固定的(,CPOL=0,和,CPHA=0,),SPI,接口。,2024/10/14,21,9.3.3 SPI,接口单片机,P89LPC93x,与,ADC,器件,AD7810,的通信,1. P89LPC93x,单片机,SPI,模块特殊功能寄存器,控制寄存器,SPTCL,、,状态寄存器,SPSTAT,、数据寄存器,SPDAT,SPR1,、,SPR0,:,选择控制,SPI,的时钟速率。,SPEN,:,SPI,使能。,CPHA,:,SPI,时钟相位选择。,CPOL,:,SPI,时钟极性。,MSTR,:,主,/,从模式选择。,SSIG,:,SS,管脚忽略。,SPIF,:,SPI,传输完成标志。,WCOL,:,SPI,写冲突标志。,通过软件向相应位写入“,1,”可将,SPIF,和,WCOL,标志清零。,D7,D6,D5,D4,D3,D2,D1,D0,SPCTL,SSIG,SPEN,DORG,MSTR,CPOL,CPHA,SPR1,SPR0,SPSTAT,SPIF,WCOL,SPDAT,D7,D6,D5,D4,D3,D2,D1,D0,0E1H,0E3H,0E3H,2024/10/14,22,2. 10,位,SPI,接口,ADC,器件,AD7810,10,位低功耗高速串行,A/D,转换器,带内部时钟,外围接线极其简单,转换时间,2S,,采用,SPI,同步串行接口输出,单一电源(,+2.7V,+5.5V,)供电。,AD7810,工作模式与时序,2024/10/14,23,#include /* LPC900,单片机的,SFR,与标准,80C51,兼容 *,/,#include /* C51,内部函数描述 *,/,#define uint unsigned int,sfr SPTCL = 0xe2; /*,定义控制寄存器 *,/,sfr SPSTAT = 0xe1; /*,定义状态寄存器 *,/,sfr SPDAT = 0xe3; /*,定义数据寄存器 *,/,sbit CONVST = P26; /*,定义转换控制引脚 *,/,3.,自动低功耗模式,A/D,转换,C51,/*,启动,AD7810,转换一次,返回值为转换结果,*,/,uint ad7810(),uint x;,SPCTL= 0xd1;/*,设置为主机,确定时钟模式及速率,*,/,SPSTAT=0xc2 ; /*,向标志位写,1,,清除标志,*,/,CONVST=1; /*,唤醒器件并启动,A/D,转换,*,/,CONVST=0;,_nop_();,_nop_(); /*,等待,A/D,转换结束,*,/,SPDAT= 0xff; /*,发送任意数据,启动,SPI,接收高,8,位数据,*,/,while (SPSTAT=127) ;/* SPI,接收未结束,等待,*,/,SPSTAT=0xc2 ; /*,向标志位写,1,,清除标志,*,/,x= SPDAT*4; /*,读取高,8,位数据,*,/,SPDAT= 0xff; /*,发送任意数据,启动,SPI,接收低,8,位数据,*,/,while (SPSTAT=127); /* SPI,接收未结束,等待,*,/,SPSTAT=0xc2 ; /*,向标志位写,1,,清除标志,*,/,x = x+SPDAT/64; /*,读取低,2,位数据,与高,8,位数据合并,*,/,return(x);,2024/10/14,24,9.3.4 MICROWIRE,接口器件,AT93C46,的应用,1024B,的,E,2,PROM,,可通过,ORG,管脚配置成,12816,或,2568,两种结构,,ORG,端接,VCC,或悬空时,输出为,16bits,;接,GND,时,输出为,8bits,。,AT89S51,本身不含,SPI,接口,将其作为主机使用时,可采用普通,I/O,口线模拟,SPI,或,MICROWIRE,总线功能。,2024/10/14,25,AT93C46,的指令功能表,指令,起始位,操作码,地址位,数据位,指令功能,8 16,8 16,READ,1,10,A6A 5A0,从指定的单元读数,EWEN,1,00,11xxxxx 11xxxx,允许擦,/,写操作指令,ERASE,1,11,A6A 5A0,擦除指定单元,WRIET,1,01,A6A 5A0,D7D0 D15D0,写入指定存储单元,ERAL,1,00,10xxxxx 10xxxx,擦除存储器所有单元,WRAL,1,00,01xxxxx 01xxxx,D7D0 D15D0,写入存储器所有单元,EWDS,1,00,00xxxxx 00xxxx,禁止擦,/,写操作指令,2024/10/14,26,9.4 I,2,C,总线,I,2,C总线简介,P89C66x系列单片机I,2,C总线编程规范,I,2,C,接口,DAC,转换器,MAX517,的应用,2024/10/14,27,9.4.1 I,2,C,总线简介,1. I,2,C,总线特点,多主机总线,。, 二线制(,SDA,、,SCL,),具线与功能。,总线上器件具有唯一地址,用寻址字节来寻址器件。,总线仲裁功能。,读写传输应答机制。, 半双工工作方式。,2024/10/14,28,2. I,2,C,总线协议,总线不忙:,SCL和SDA保持为高电平,。,开始条件:,SCL,为高电平时,,SDA,由高电平向低电平的跳变。,结束条件:,SCL,为高电平时,,SDA,由低电平向高电平的跳变。,应答信号:,接收数据的IC在接收到一个字节后,向发送数据的IC发出特定的低电平脉冲,即ACK=0,表示已收到数据,为此主机必须产生一个与此信号相应的额外时钟脉冲,。,数据有效:,在开始条件以后,时钟信号,SCL,的高电平期间,当数据线,SDA,稳定时表示数据有效。,2024/10/14,29,3. I,2,C,应答时序,每次传送的数据字节数不限,。, 第一个字节数据是寻址字节。,每一个字节必须为,8bits,,,先传,送字节,最高位,。,每个传送的字节后面必须跟一个应答信号,。,2024/10/14,30,9.4.2,P89C66x系列单片机I,2,C总线编程规范,1.,P89C66x单片机I,2,C功能模块特殊功能寄存器,地址寄存器,S1ADR:,P89C66x,作为从器件时,用于存放自身的器件地址。最低位,GC,置“,1”,,则响应广播呼叫地址,00H,;,GC,清“,0”,时,仅响应符合自身地址的呼叫。,数据寄存器,S1DAT,:,发送/接收一个数据字节的寄存器,P89C66x通过该寄存器向总线移位发送数据或从总线接收数据,。,0DAH,0D8H,0DBH,D7,D6,D5,D4,D3,D2,D1,D0,S1ADR,GC,S1DAT,D7,D6,D5,D4,D3,D2,D1,D0,S1CON,CR2,ENS1,STA,STO,SI,AA,CR1,CR0,S1SAT,SD4,SD3,SD2,SD1,SD0,0,0,0,0D9H,2024/10/14,31,控制寄存器,S1CON,:,ENS1,串行总线接口,SIO1,使能位。,STA,启动起始标志。,STO,停止标志。,SI,SIO1,串行中断标志。,AA,接收应答响应标志位。,CR2,、,CR1,、,CR0,确定主控操作模式下串行时钟速率。,状态寄存器,S1SAT,:,S1STA,是一个只读寄存器,高,5,位有效,存放了,26,个,I2C,总线的状态码,其中在主发送方式下,可产生,7,个总线状态码;在主接收方式下,可产生,5,个总线状态码;在从接收方式下,可产生,9,个总线状态码;在从发送方式下,可产生,5,个总线状态码。,SIO1,的中断入口地址为,002BH,,中断服务程序根据这些状态码进行相应的处理。,0DAH,0D8H,0DBH,D7,D6,D5,D4,D3,D2,D1,D0,S1ADR,GC,S1DAT,D7,D6,D5,D4,D3,D2,D1,D0,S1CON,CR2,ENS1,STA,STO,SI,AA,CR1,CR0,S1SAT,SD4,SD3,SD2,SD1,SD0,0,0,0,0D9H,2024/10/14,32,#include / * P89C668,的硬件,I2C,定义与,8XC552,的一样 *,/,#define uchar unsigned char,/*,申请占用总线,进行,I,2,C,时钟速率、使能、发送起始信号等初始化*,/,void GetBus(),S1CON=0xc5; /*,设置时钟为,100k,,,MCU,主频为,12M,,,ENS1,和,AA,置位 *,/,STA=1; /*,申请成为主机,起动总线 *,/,while(SI=0); /*,等待起始位的发送 *,/,/*,发送数据函数,用于向总线发送数据 *,/,void SendByte(uchar c),S1DAT=c;,S1CON=0xc5; /*,清除,SI,位等 *,/,while(SI=0); /*,等待数据发送完成 *,/,2.,P89C66x,单片机,I,2,C,通信主方式,C51,语言程序,2024/10/14,33,/*,向无子地址器件发送字节数据函数,从器件地址,sla,(最低位为,0,),待发送的数据为,c,;如果返回,1,,表示操作成功,否则操作有误 *,/,bit ISendByte(uchar sla,uchar c),GetBus();/*,启动总线 *,/,SendByte(sla);/*,发送器件地址,若无应答则返回 *,/,if (S1STA!=0x18),S1CON=0xd5; return(0);,SendByte(c);/*,发送数据 *,/,if (S1STA!=0x28),S1CON=0xd5; return(0);,S1CON=0xd5;/*,结束总线 *,/,return(1);,2024/10/14,34,/*,向无子地址器件读字节数据函数,从器件地址,sla,(最低位为,0,),返回字节值在,c,;如果返回,1,,表示操作成功,否则操作有误 *,/,bit IRcvByte(uchar sla,uchar*c),GetBus();/ *,启动总线 *,/,SendByte(sla+1);/*,发送器件地址 *,/,if (S1STA!=0x40),S1CON=0xd5; return(0);,S1CON=0xc1; /*,接收一字节数据即发送非应答位 *,/,while(SI=0);/*,等待接收数据 *,/,if (S1STA!=0x58),S1CON=0xd5; return(0);,*c=S1DAT;/*,读取数据 *,/,S1CON=0xd5;/*,结束总线 *,/,return(1);,2024/10/14,35,9.4.3,I,2,C接口DAC转换器MAX517的应用,8位电压输出型数模转换器DAC,它带有总线接口,采用单5V电源工作,。,AT89S51,本身不含,I,2,C,接口,将其作为主机使用时,可采用普通,I/O,口线模拟,I,2,C,总线条件,发送,/,接收数据。,2024/10/14,36,2.,MAX517的工作时序,控制字节:,R2、R1、R0,是保留位,已预先设定为0;,RST,为复位位,该位为1时复位DAC器件的所有寄存器;,PD,为电源工作状态位,为1时,MAX517工作在4A的休眠模式,为0时,返回正常的操作状态;,A0,为MAX518/519的通道地址位,对于MAX517,该位应设置为0。,D7,D6,D5,D4,D3,D2,D1,D0,地址字节,0,1,0,1,1,AD1,AD0,0,控制字节,R2,R1,R0,RST,PD,A0,地址字节中前4位是类型识别符,后3位则由器件地址输入端的状态来决定。MAX517出厂时已设定前5位为01011。地址字节的最后一位为读写控制,“0”时表明接下来是器件写,“1”时表明接下来是器件读操作。MAX517只有器件写操作。,2024/10/14,37,SCL BITP1.0;,定义,I,2,C,串行时钟线,SDA BIT P1.1;,定义,I,2,C,串行数据线,START: SETB SDA;,产生开始条件子程序,SETB SCL;,释放总线,NOP;,延时降低总线速率,CLR SDA;,产生开始条件,NOP,CLR SCL;,数据修改准备,RET,3.,软件模拟,I,2,C,接口程序设计,STOP: CLR SDA; 产生结束条件子程序,NOP,SETB SCL; 准备产生结束条件,NOP,SETB SDA; 产生结束条件,NOP,RET,2024/10/14,38,; 接收MAX517应答信号子程序,返回时应答结果在Cy中,ACK: CLR SCL; 保证时钟为低,SETB SDA,SETB SCL; 释放总线,NOP,MOV C, SDA; 接收MAX517应答信号,CLR SCL,RET,;,发送字节子程序,待发送数据在,ACC,中,返回应答在,Cy,中,OUTBYTE: MOV R0, #8;,输出一个字节,LOOP0: CLR SCL;,保证时钟为低,RLC A;,一位数据送入,Cy,中,MOV SDA, C;,准备发送一位数据,NOP,SETBSCL;,发送一位数据,NOP,CLR SCL;,一位数据发送完成,DJNZ R0, LOOP0,LCALLACK;,接收应答信号,RET,2024/10/14,39,; MAX517,输出转换子程序,输出数据在,ACC,中,返回,Cy=0,时发送正确,OUT517: PUSH ACC;,保存输出数据,LCALL START;,输出开始条件,MOVA, #01011010B; MAX517,地址字节内容,LCALLOUTBYTE;,输出地址字节,JC OUTEND;,无应答,提前结束,MOV A, #00H;,控制字节,LCALLOUTBYTE;,输出控制字节,JC OUTEND;,无应答,提前结束,POPACC;,恢复输出数据,LCALLOUTBYTE;,输出,DAC,数据,PUSHACC,OUTEND: POPACC,LCALLSTOP;,输出结束条件,RET,2024/10/14,40,9.5,CAN总线,CAN,总线简介,CAN,总线控制器,CAN,总线通信接口设计实例,2024/10/14,41,9.5.1 CAN,总线简介,1. CAN,总线特点,不分主从的,多主,工作方式。, 分优先级的点对点,点对多点通信。,非破坏性总线仲裁技术。,最多为,8,个字节的短帧格式。, CRC,检验及相应的错误处理功能。, 通信距离,10km,(速率在,5 k/s,以下),,通信速率,1 Mb/s,(通信距离,40m,) 。,2024/10/14,42,2. CAN,总线协议,CAN,协议模型结构为,OSI,底层的物理层、传输层和对象层。,对象层:,查找并确定接收,/,发送的报文,为应用层相关硬件提供接口。,传输层:,负责报文的收发,包括位定时及同步、报文分帧、仲裁、应答、错误检测和标定、故障界定。,物理层:,定义实际信号的传输方法。,3. CAN,总线报文传输的帧结构,数据帧:,由,7,帧起始(,SOF,)、仲裁场、控制场、数据场、,CRC,场、应答场、帧结尾(,EOF,)组成。其中,数据场的长度可以为,0,。,远程帧:,对不同的数据传送进行初始化设置,由,6,个不同的位场组成,分别为帧起始、仲裁场、控制场、,CRC,场、应答场和帧结尾。,错误帧:,报告传输错误,由错误标志的叠加和错误界定符组成。,过载帧:,用于请求延时数据帧或远程帧,由过载标志和过载界定符组成。,2024/10/14,43,9.5.2 CAN,总线控制器,微控制器承担节点的控制任务,负责上层应用和系统控制,包括通信协议的实现、系统控制、人机接口等。,CAN,控制器执行完整的,CAN,协议,控制,CAN,数据报文的收发与缓冲,完成错误界定。,CAN,控制器由上层微处理器控制,向微处理器提供中断和状态信息。,CAN,收发器用于提供,CAN,控制器与物理总线之间的接口,完成逻辑电平的控制和接口电气特性的处理。,2024/10/14,44,9.5.3 CAN,总线通信接口设计实例,AD0,AD7,:,多路地址,/,数据总线。,ALE,:,地址锁存信号输入。,MODE,:,1,Intel,模式,,0,Motorola,模式。,RS,:,斜率电阻输入端,连接一个小于,140k,的电阻至地可降低速率。,微控制器通过对,SJA1000,片内寄存器编程来实现对,CAN,总线的控制。,2024/10/14,45,9.6,USB总线,USB,总线原理,USB,总线通信接口设计实例,2024/10/14,46,9.6.1 USB,总线原理,1. USB,总线简介,用两根差分信号线,D+,、,D,传送串行数据。,VBUS,和,GND,线缆可提供最大,500mA,电流的,+5V,电源。, 2,种接口规范,USB1.1,和,USB 2.0,。,USB 2.0,允许数据以,480Mb/s,的速度进行传输。, PC,接口,即插即用。, 星形结构,点点连接。,2024/10/14,47,2. USB,总线系统,USB,总线上的设备分为网络集线器和功能外设,他们分享,USB,带宽。,网络集线器用于增加节点,功能外设为系统添加具体功能。,主机识别,USB,设备枚举过程:, 使用预设的地址,0,获得设备描述符;, 设定设备的新地址;, 使用新地址获得设备描述符;, 获得配置描述符;, 设定配置描述符。,USB,系统的基本软件包括,USB,设备驱动程序、,USB,驱动程序和,USB,控制器驱动程序。,2024/10/14,48,3. USB,总线协议,主机控制端口用轮询方式负责初始化所有的数据传输。, 主机控制器发送一个描述传输运作的种类、方向以及,USB,设备地址和终端号的标志包;,USB,设备根据标志包内容对该次传输初始化;, 发送端发送数据包;, 接收端发送一个握手的数据包。,USB,协议采用了两种,CRC,校验码:规定用,5-bit,的,CRC,码来校验令牌包中的,11-bit,数据,其生成多项式为,G(x)=x,5,+x,2,+1,;用,16-bit,的,CRC,码来校验,USB,数据包中的最多达,1024,字节的数据,其生成多项式为,G(x)=x,16,+x,15,+x,2,+1,。,2024/10/14,49,4. USB,总线数据传输类型,USB,通过通道在主机和一个,USB,设备的指定端口之间传输数据,通道有两种类型:流和消息。,一个指定的,USB,设备可有许多通道,例如,一个发送数据的通道和一个接收数据的通道。,USB,定义了四种基本的数据传输类型。, 控制数据传送,对设备或通道进行设置与控制。, 批量数据传送,用于进行大批量数据传输。, 中断数据的传送。, 同步数据的传送。,2024/10/14,50,9.6.2 USB,总线通信接口设计实例,TXE:,有效则当前,FIFO,发送缓冲区空。,RXF,:,有效表示当前,FIFO,接收缓冲区有数据。,PWREN,:,区别总线是处于挂起状态还是正常状态。,AT93C46,用于存储产品的,VID,(供应商,ID,)、,PID,(产品识别码)、设备序列号及一些说明性文字等信息。可不用。,2024/10/14,51,USBDATAEQU P0,USBRDEQU P1.0,USBWR EQU P1.1,USBTXE EQU P1.2,USBRXF EQU P1.3,USBREN EQU P1.4,;,从,FIFO,接收缓冲区读一个字节送入累加器,A,RDBYTE:JBUSBRXF, RDBYTE;,等待接收数据,低电平有效,CLR USBRD ;,发出读信号,MOVA, USBDATA;,读字节,SETB USBRD,RET,;,将累加器,A,中内容写入,FIFO,发送缓冲区,WRBYTE:JBUSBTXE, WRBYTE;,等待发送数据,低电平有效,MOVUSBDATA, A;,输出字节内容,CLR USBWR ;,发出写信号,SETB USBWR,RET,设备端单片机字节接收与发送子程序,2024/10/14,52,9.7,1-Wire单总线,1-Wire,单总线简介,单总线温度传感器,DS18B20,及其应用,2024/10/14,53,9.7.1 1-Wire,单总线简介,1.,单总线特点,通过一根信号线传送信息并为单总线芯片提供电源。, 每个单总线芯片通过全球唯一的访问序列号区分。,独特的,“,总线窃电,”,技术。,2.,单总线工作原理,单总线数据波形类似于脉冲宽度调制信号,利用宽脉冲或窄脉冲来实现写“,0”,或写“,1”,。主机与从机之间的通信通过,3,个步骤完成:系统主机初始化,1-Wire,器件、识别,1-Wire,器件和数据交换。,2024/10/14,54,3.,单总线通信的初始化时序,基于单总线的所有传输过程都是以初始化开始的。初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成,应答脉冲使主机知道总线上有从机设备且准备就绪。,2024/10/14,55,4.,单总线的读、写时隙,在每一个时隙,总线只能传输一位数据。,2024/10/14,56,9.7.2,单总线温度传感器,DS18B20,及其应用,1. DS18B20,性能特点及内部结构,测温范围:,55,+125,。, 测温分辨率为,12bits,,可达,0.0625,。,可自设定非易失性的报警上下限值。,供电电压范围:,3.0,5.5V,。,2024/10/14,57,2. DS18B20,存储器,ROM,中,28H,是产品厂家代号,,48bits,器件序列号全球唯一。, 电可擦写,E,2,PROM,用于存储,TH,、,TL,和配置寄存器的值,通过,DS18B20,功能命令对,RAM,进行操作,数据先写入,RAM,,经校验后再传给,E,2,PROM,。,地址,ROM,RAM,E,2,PROM,0,28H,温度低,8,位,1,温度高,8,位,2,48,位,TH,TH,3,器件序列号,TL,TL,4,配置寄存器,配置寄存器,5,保留,6,保留,7,CRC,保留,8,CRC,D7,D6,D5,D4,D3,D2,D1,D0,字节,0,2,3,2,2,2,1,2,0,2,-1,2,-2,2,-3,2,-4,字节,1,S,S,S,S,S,2,6,2,5,2,4,字节,4,TM,R1,R0,1,1,1,1,1,2024/10/14,58,3. DS18B20,测温过程,初始化:主机发出复位脉冲,,DS18B20,响应应答脉冲。,ROM,命令:读芯片序列号。单点系统可执行跳过,ROM,命令。,功能命令:有启动温度转换(,44H,)、写暂存器(,4EH,)、读暂存器(,0BEH,),、复制暂存器(,48H,)、恢复,E,2,PROM,(,0B8H,)、读取电源供电方式(,0B4H,) 。,4. DS18B20,与单片机的连接,2024/10/14,59,INIT: CLRDQ,;,初始化程序,MOVR2, #240;,拉低总线至少,480,s,LCALLDELAY,SETBDQ,MOVR2, #30;,释放总线,60,s,LCALLDELAY,MOVC, DQ;,读取应答信息至,Cy,RET,4. DS18B20,单总线通信接口程序,WRBIT: CLRDQ;,写一位子程序,MOVR2, #2;,拉低总线不超过,15s,LCALLDELAY,MOVDQ, C;,写,Cy,至,DQ,MOVR2, #30;,保持,60s,LCALLDELAY,SETBDQ;,释放总线,RET,DQ,定义为单片机的,I/O,口线,单片机的晶体振荡频率为,12MHz,,机器周期为,1s,。,2024/10/14,60,DBIT: CLRDQ;,读一位子程序,NOP;,拉低总线,2s,SETBDQ,MOVR2, #3,LCALLDELAY;,延时,MOVC, DQ; 15s,之内采样,RET,DELAY: DZNZR2, $;,延时子程序,RET,RDBYTE: MOVR3, #8;,读字节子程序,RDLP1: LCALLRDBIT;,读一位数据,RRCA;,移位到,A,中,DJNZR3, RDLP1,RET,WRBYTE: MOVR3, #8;,写字节子程序,WRLP1: RRCA; A,中位数据移位到,Cy,LCALLWRBIT;,写一位数据,DJNZR3, WRLP1,RET,2024/10/14,61,;,温度转换及读取子程序,DQBITP1.0; I/O,管脚定义,SNCODEEQU30H;,存放该,DS18B20,序列号的首地址,TM18B20: LCALLINIT;,初始化总线,JCTM18B20;,等待应答信号,MOVA, #55H;,匹配相应,ROM,LCALLWRBITE;,发送匹配,ROM,命令,MOVR4, #8,MOVR0, #SNCODE,LOOP: MOVA, R0,LCALLWRBITE;,发送,8,字节,ROM,序列号,INCR0,DJNZR4, LOOP,MOVA, #44H;,启动温度转换命令,LCALLWRBITE,MOVA, #0BEH;,读,RAM,命令,LCALLWRBITE,LCALLRDBITE,MOVR6, A;,存放温度低字节,LCALLRDBITE,MOVR7, A;,存放温度高字节,RET,2024/10/14,62,思考题与习题,1.,并行通信和串行通信各有什么特点?,2.,什么叫同步通信方式?什么叫异步通信方式?它们各有什么区别?,3.,设异步传输时,一帧信息包括,1,位起始位、,7,位信息位、,1,位奇偶校验位和,1,位停止位,如果波特率为,9600bit/s,,则每秒能传输多少个字符?,4.,在串行通信中的数据传送方向有单工、半双工和全双工之分,请叙述各自功能。,5. RS-232C,的最基本数据传送引脚是哪几根?,6.,为什么要在,RS-232C,与,TTL,之间加电平转换器件。一般采用那些转换器件,请画图说明。,7.,比较,RS-232C,和,RS-485,的特点。,8.,在利用,RS -485,通信的过程中,如果通信距离(波特率固定)过长,应如何处理?,9. SPI,总线与,MICROWIRE,总线相比有何异同?,10. I,2,C,总线的寻址方式如何?,11. I,2,C,总线的优点是什么?其起始信号和终止信号是如何定义的?,12.,有哪些单片机具备,I,2,C,总线接口?,13. SPI,有何特性?它与,I,2,C,总线相比较有何特点?,14.,简述,CAN,总线的基本特性。,15.,简述,USB,的特点和数据流传输发送。,16.,简述,1-Wire,总线的基本工作原理。,2024/10/14,63,谢谢大家!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 机械制造 > 工业自动化


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!