第八章常用串行总线分析及应用
串行SPI接口应用
( 2 ) CPHA =1时,表示同步时钟的前沿串行移出数据, 后沿对信号采样锁存
上一页 下一页 返回
第二节 SPI串行总线介绍
在这里,同步时钟的前沿是指通信开始时,SCLK信号脱离 空闲态的第一个电平跳变为同步时钟的前沿,随后的第2个 跳变为同步时钟的后沿。由于SCLK信号在空闲态有两种情 况,所以当CPOL =0时,前沿就是SCLK的上升沿,后沿 为时钟的下降沿;CPOL = 1时,前沿就是SCLK的下降沿, 后沿就是SCLK的上升沿
第八章 串行SPI接口应用
第一节 串行接口与 串行通信基础知识 第二节 SPI串行总线介绍 第三节 AVR的SPI接口原理 第四节 与SPI相关的寄存器 第五节 SPI接口设计的应用要点 第六节 编写SPI基木操作函数 第七节 实例12端口扩展
第一节 串行接口与 串行通信基础知识
一、并行传输
系统的微型化成为可能。
上一页 下一页 返回
第一节 串行接口与 串行通信基础知识
下面我们以发送端A要发送一个字节0x5 B给接收端B为 例,对串行传输的工作方式和其中可能遇到的问题简要描述 如下。串行通信通常是在一个时钟信号的控制下进行,发送 端A参考时钟信号,每一个时钟通过将数据信号线设置为相 应的高低电平来发送一个二进制位,接收端也参考某一个时 钟信号检测数据信号线的电平状态来依次接收每一个二进制 位,整个过程可用图8一1描述
习惯上,我们将只能从A给B发送数据的通信方式,称为 单工通信;在某一时刻A可以给B发送数据,而在另外一个时 刻又能够从B给A发送数据(但A, B不能同时给对方发送数 据)的通信方式,称为半双工通信;能够在任意时刻同时实现 A和B双向通信的方式,称为全双工通信。
单片机常用的串行总线及特例
单片机与外设备之间数据传输的串行总线:(1).SPI:高速同步串行口。
3~4线接口,收发独立、可同步进行.SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。
也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。
(1)SDO –主设备数据输出,从设备数据输入(2)SDI –主设备数据输入,从设备数据输出(3)SCLK –时钟信号,由主设备产生(4)CS –从设备使能信号,由主设备控制其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。
这就允许在同一总线上连接多个SPI设备成为可能。
接下来就负责通讯的3根线了。
通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。
这就是SCK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。
数据输出通过SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。
完成一位数据传输,输入也使用同样原理。
这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。
要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。
同样,在一个基于SPI 的设备中,至少有一个主控设备。
这样传输的特点:这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。
也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。
SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。
不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。
详细解析串行总线
边是地平面存在波动的时候的单端信号与差分信号。
图 6
可以清楚的看到,单端信号受到地的干扰很大。但是这些干
扰经过差分之后就被抵消了。差分对抗外部电磁干扰的原理也是一样,这也
就是我们常说的:差分形式传播,在返回路径中对付串扰和突变的鲁棒性更
好。
差分线优点 3:差分对内每根信号都有自己的返回路径,能够
以相互作为返回路径。
以上三点就是本人理解的差分线最明显的优点,这些优点奠
定了串行信号稳定传输的基础。当然,差分信号也存在一些缺点,最大的缺
点就是与单端信号传输相比,差分互连需要两倍数量的信号线。再者,如果
差分信号不对称,会产生潜在的 EMI。
差分线优点 2:差分信号的值很大程度上与地的精确值无关,
能很好的抵抗电源的干扰。就像下面这幅图,差分信号关注的是两根线之间
的电压差值,与海平面的高度关系不大。
图 4
我们还是通过仿真来验证下,如下图 5 所示:
图 5
如下图所示,左边是理想 GND 时的单端与差分信号波形,右
低,从而减小了潜在的电磁干扰(EM。紫色的是差分电压。我们
可以看到,使用差分方式传输,信号的电压峰峰值被放大了一倍,但是单根
线上的电流却保持不变。如果采用传统的单线传输方式,单根线的 dI/dt 也会
增加一倍,这样更容易造成 EMI 问题。
减轻信号跨分割带来的影响。单根线和差分线跨分割分别会怎样?我们还是
来验证一下。在仿真的时候,我们让单线和差分对线长都为 1inch,使用普通
Fr4 板材,来看看跨分割对信号的影响。
图 7
图 8
由上图可知,单线跨分割对传输线的影响很大,差分线对跨
分割就不是那幺敏感,主要原因就是,差分对两线可以互为参考,两根线可
微机原理第八章 串行通信及串行接口
1. 可编程串行接口典型结构
✓状态寄存器
✓控制寄存器
✓数据输入寄存器--串行输入/并行 输出移位寄存器
✓数据输出寄存器--并行输入/串行 输出移位寄存器
2. 串行通信基本概念
在串行通信时,数据和联络信号使用同一条信号线 来传送,所以收发双方必须考虑解决如下问题: ❖ 波特率---双方约定以何种速率进行数据的发送和接收 ❖ 帧格式---双方约定采用何种数据格式 ❖ 帧同步---接收方如何得知一批数据的开始和结束 ❖ 位同步--- -接收方如何从位流中正确地采样到位数据 ❖ 数据校验--- -接收方如何判断收到数据的正确性 ❖差错处理---收发出错时如何处理 收发双方必须遵守一些共同的通信协议才能解决上述问题。
串行通信适于长距离、中低速通信
并行通信
将数据的各位同时在多根并行传输线上进行传输。
D0 0
D1 1
D2 0
源
D3 1
D4 D5
0 1
D6 1
D7 0
D0 D1 D2 D3 目 D4 的 D5 D6 D7
数据的各位同时由源到达目的地 → 快 多根数据线 → 短距离(远程费用高)
并行通信适于短距离、高速通信
工作方式下。
(8)错误检测 • 传输错误 • 覆盖错误
二、 接口与系统的连接
从结构上,可把接口分为两个部分,其中和 外设相连的接口结构与具体外设的传输要求及数 据格式相关,因此,各接口的该部分互不相同; 而与系统总线相连的部分,各接口结构类似,一 般都包括:
1. 总线收发器和相应的逻辑电路
2. 联络信号逻辑电路
接收端需要一个时钟来测定每一位的
时间长度。
波特率/位传输率---每秒传输的离散信号 的数目/每秒传输的位数。 波特率因子---
串行总线详解
单总线的时序
One-Wire协议定义了复位脉冲、应答 脉冲、写0、读0和读1时序等几种信号类型 。所有的单总线命令序列(初始化,ROM 命令,功能命令)都是由这些基本的信号 类型组成的。在这些信号中,除了应答脉 冲外,其他均由主机发出同步信号,并且 发送的所有命令和数据都是字节的低位在 前。
数字化温度传感器DS18B20
One-Wire总线(单总线)
One-Wire总线是DALLAS公司研制开发的协议。 它由一个总线主节点、一个或多个从节点组成系统, 通过一根信号线对从芯片进行数据的读取。每一个 符合 One-Wire协议的从芯片都有一个唯一的地址, 包括48位的序列号、8位的家族代码和8位的CRC代 码。主芯片对各个从芯片的寻址依据这64位的不同 来进行。One-Wire总线利用一根线实现双向通信。 因此其协议对时序的要求较严格,如应答等时序都 有明确的时间要求。基本的时序包括复位及应答时 序、写一位时序、读一位时序。 在复位及应答时序 中,主器件发出复位信号后,要求从器件在规定的 时间内送回应答信号;在位读和位写时序中,主器 件要在规定的时间内读回或写出数据。
-10.125
-25.0625 -55
1111 1111 0101 1110
1111 1110 0110 1111 1111 1100 1001 0000
FF5EH
FE6FH FC90H
2 I C-BUS
I2C总线是PHLIPS公司推出的一种串行总线,是具备多 主机系统所需的包括总线裁决和高低速器件同步功能的高 性能串行总线。
基本的数据传输格式
在图 4 和图 5 中,各种符号的意义为
:
S:起始位(START) SA:从机地址(Slave Address) ,7 位从机地址 W:写标志位(Write) ,1 位写标志 R:读标志位(Read) ,1位读标志 A:应答位(Acknowledge) ,1 位应答 /A:非应答位(Not Acknowledge) ,1位非应答 D:数据(Data) ,每个数据都必须是 8 位 P:停止位(STOP) 阴影:主机产生的信号 无阴影:从机产生的信号
第8章_AT89C51串行通信及其应用1
例如: 例如:
数据传送的速率是120字符/s,若每个字符为10位的二进制数,则传送波 特率为 1200 波特率。
8.2.1 AT89C51串行口的结构 串行口的结构
AT89C51片内有一个全双工的串行通讯接口。
由发送缓冲寄存器SBUF、接收缓冲寄存器SBUF和移位寄存器三部分构成。
8.2.2 AT89C51串行口控制寄存器 串行口控制寄存器
8.1.2 异步通信和同步通信
异步通信
串行通信的通信方式
同步通信 1.异步通信的数据传送 .
异步通信数据传送按帧传输,一帧数据包含起始位、数据位、校验位和停止位。 异步通信数据传送按帧传输,一帧数据包含起始位、数据位、校验位和停止位。 传送用一个起始位表示字符的开始,用停止位表示字符的结束。 传送用一个起始位表示字符的开始,用停止位表示字符的结束。
2.工作方式1 方式1为波特率可变的10位异步通讯接口方式。发送或接收一帧信息, 包括1个起始位0,8个数据位和1个停止位1。
第n字字字
… D7 1 0 D0 D1 D2 D3 D4 8位位位 D5 D6 D7 1 0
第n+1字字字
D0 D1 …
起 始 位
停 止 位
输出:当CPU执行一条指令将数据写入发送缓冲SBUF时,就启动发送。串行数据 从TXD引脚输出,发送完一帧数据后,就由硬件置位TI。 输入:在(REN)=1时,串行口采样RXD引脚,当采样到1至0的跳变时,确认 开始位0,就开始接收一帧数据。在方式1接收时,应先用软件清零RI和SM2标志。
8.1.2 异步通信和同步通信
2.同步通信的数据传送 .
同步数据传送时,发送端和接收端必须使用同一时钟源才能保证它们之间的准确 同步,因此发送方除了传送数据外,还要同时传送时钟信号。
串行通信总线技术的研究与应用
串行通信总线技术的研究与应用随着科技的不断发展,计算机和电子设备已成为人们生活中不可或缺的一部分。
而串行通信总线技术的发展也在极大地推动着计算机和电子设备的进步和发展。
本文将从串行通信总线的定义开始,介绍串行通信总线技术的原理、发展和应用以及未来发展趋势。
串行通信总线是将数据以位的形式按位发送的总线。
与并行总线相比,串行总线的优点在于极大地降低了通信的成本和复杂度。
串行通信总线能够实现对于计算机和各种电子设备的快速、高效、可靠的数据传输。
串行通信总线技术的原理是将数据分解为一个个的位元,按照一定的规则进行编码后通过单根数据线来传输。
这种传输方式虽然速度相对于并行通信总线来说较慢,但是却允许更长距离的传输和更低的功耗。
串行通信总线的发展经历了很长的时间,最早出现在20世纪60年代,仅被用于实验室和特定领域的设备间数据传输。
随着计算机及其他电子设备的广泛普及,串行通信总线技术也得到了快速的发展。
最初的串行总线技术是RS-232C,该技术在传输距离方面的局限性非常大,仅适用于短距离传输且速度较慢。
在上世纪80年代和90年代,串行总线技术得到了极大发展,出现了许多新的技术,其中最为重要、影响最大的技术是USB和Ethernet。
USB是一种广泛应用于电子设备之间直接连接的串行总线标准。
2000年,USB2.0标准开始使用,该标准在传输速度、功率和频率等方面有了很大的提升。
USB的应用范围也越来越广,几乎所有的个人电脑、手机、平板电脑等电子设备都使用了USB连接,使得电子设备的互连性得到了极大的改善。
虽然USB已经被广泛应用,但随着设备类型和数据传输需求的不断增加,USB的标准也在不断升级和发展。
Ethernet是一种广泛应用于局域网的串行总线标准。
Ethernet最早于20世纪70年代末、80年代初开发出来,经过多次升级已成为今天最主流的局域网技术之一。
Ethernet技术的发展主要经历了10M Ethernet、100M Fast Ethernet、1G Gigabit Ethernet等多个阶段。
单片机常用总线讲解
产的 AT24C 系列 PROM。主要型号有 AT24C01/02/04/08/16 等,其对应的存储容量分别为 128x8/256x8/521x8/1024x8/2048x8。采用这类芯片可解决掉电数据保存问题,可对所存数据保 存 100 年.并可多次擦写,擦写次数可达 10 万次以上。 在一些应用系统设计中,有时需要对工作数据进行掉电保护,如电子式电能表等智能化产品。 若采用普通存储器,在掉电时需要备引电池供电,并需要在硬件上增加掉电检测电路。但存在 电池不可靠及扩展存储芯片占用单片机过多口线的缺点。采用具有 总线接口的串行
(6) 读一个字节 uchar readbyte()
{
uchar i,k;
SCL=0;
delay(); SDA=1; for(i=0;i<8;i++) {
SCL=1; delay();
k=(k<<1)|SDA;
.v
..
..
第八章 单片机常用总线讲解
SCL=0; delay(); } delay(); return k; } 同样的,串行接收——个字节时需将 8 位一位一位地接收,然后再组合成一个字节,上面代 码中我们定义了一个临时变量 k,将 k 左移一位后与 SDA 进行“或″运算,依次把 8 个独立的 位放入一个字节中来完成接收。 8.1.4 总线实例应用(AT24C02)
需要说明的是,当主控器接收数据时,在最后一个数据字节,必须发送一个非应答位,使受 控器释放 SDA 线,以便主控器产生一个停止信号来终止总线数据传输。
3.
总线数据的读写格式
总线上传送数据的格式是指为被传送的各项有用数据安排的先后顺序,这种格式是人们
第8章串行口及其应用优秀PPT
11
3 11位异步收发,波特率可变(T1溢出率/n,
n=32或16)
(2) SM2:多机通信控制器位
位地址 9F 9E 9D 9C 9B 9A 99 98 HHHHHHHH
SCO SM SM SM RE TB RB TI RI N 0 1 2N8 8
在方式0中,SM2必须设成0。
在方式1中,当处于接收状态时,若SM2=1,则只有接收 到有效的停止位“1”时,RI才能被激活成“1”(产生中断 请求)。
(3) REN:串行允许接受控制位。该位由软件置位或复位。 当REN=1,允许接收;当REN=0,禁止接收。
REN=0,禁止接收。
位地址 9F 9E 9D 9C 9B 9A 99 98 HHHHHHHH
SCO SM SM SM RE TB RB TI RI N 0 1 2N8 8
(4) TB8:方式2和方式3中要发送的第9位数据。该位由软件置 位或复位。在方式2和方式3时,TB8是发送的第9位数 据。在多机通信中,以TB8位的状态表示主机发送的 是地址还是数据:TB8=1表示地址,TB8=0表示数据。 TB8还可用作奇偶校验位。
同步 数 据 数 据 … 数据字 数 据 校 验 (校验
字符 字符1 字符2
符n-1 字符n 字 符 字符)
图3 同步通信数据传送格式
2. 异步通信(Asynchronous Communication)
在异步传输中,传输的数据如会被:
1个start bit 0和1个stop bit 打包, 新的数据称为1帧.
(2) 数据接收 REN=1,RI=0时,启动接收
①若SM2=0,接收到的8位数据送SBUF,第9位数 据送RB8。
② 若SM2=1,接收到的第9位数据为0,数据不送 SBUF;接收到的第9位数据为1,数据送SBUF,第9 位送RB8。
串行总线是什么?(优点和作用)
串行总线是什么?(优点和作用)串行总线是什么?(优点和作用)任何一个微处理器都要与一定数量的部件和外围设备连接,但如果将各部件和每一种外围设备都分别用一组线路与CPU直接连接,那么连线将会错综复杂,甚至难以实现。
为了简化硬件电路设计、简化系统结构,常用一组线路,配置以适当的接口电路,与各部件和外围设备连接,这组共用的连接线路被称为总线。
采用总线结构便于部件和设备的扩充,尤其制定了统一的总线标准则容易使不同设备间实现互连。
微机中总线一般有内部总线、系统总线和外部总线。
内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。
图串行通信另外,从广义上说,计算机通信方式可以分为并行通信和串行通信,相应的通信总线被称为并行总线和串行总线。
并行通信速度快、实时性好,但由于占用的口线多,不适于小型化产品;而串行通信速率虽低,但在数据通信吞吐量不是很大的微处理电路中则显得更加简易、方便、灵活。
串行通信一般可分为异步模式和同步模式。
-随着微电子技术和计算机技术的发展,总线技术也在不断地发展和完善,而使计算机总线技术种类繁多,各具特色。
下面仅对微机各类总线中目前比较流行的总线技术分别加以介绍。
一、内部总线1.I2C总线I2C(Inter-IC)总线10多年前由Philips公司推出,是近年来在微电子通信控制领域广泛采用的一种新型总线标准。
它是同步通信的一种特殊形式,具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点。
在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。
2.SPI总线串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同。
【很好】第八章常用串行总线及应用解读
5)配置寄存器 暂存器的第五字节是配置寄存器,可以通过相应的写命令 进行配置其内容如下表:
低五位一直都是“1”,TM是测试模式位,用于设置 DS18B20在工作模式还是在测试模式。在DS18B20出厂 时该位被设置为0,用户不要去改动。R1和R0用来设置 DS18B20的分辨率 。
8.1.3
单总线开发使用
单总线的开发使用过程分三步:1)单总线的 硬件连接结构;2)单总线的操作命令序列;3) 单总线的通信协议,总线的操作时序。 1.硬件结构 主机或从机通过一个漏极开路或三态端口连接 至该数据线,这样允许设备在不发送数据时释 放数据总线,以便总线被其它设备所使用。
为了使总线上所有电路的输出能完成“线与” 的功能,连接到总线上的器件的输出级必须为 “开漏”或“开集”的形式。其内部等效电路 如图8-3所示
2 . DS18B20的构成
DS18B20内部结构图如图8-2所示。主要包括: 寄生电源、温度传感器、64位激光(lasered)ROM、存放 中间数据的高速暂存器RAM、非易失性温度报警触发器 TH和TL、配置寄存器等部分。
1)寄生电源 寄生电源由二极管VD1、VD2、寄生电容C和电源检测电路 组成,电源检测电路用于判定供电方式,DS18B20有两种 供电方式:3V~5.5V的电源供电方式和寄生电源供电方式。 在寄生电源供电方式下,DS18B20从单线信号线上汲取能 量:在信号线DQ处于高电平期间把能量储存在内部电容里, 在信号线处于低电平期间消耗电容上的电能工作,直到高 电平到来再给寄生电源(电容)充电。该寄生电源有两个 优点:第一,检测远程温度时无需本地电源;第二,缺少 正常电源时也能读ROM。 2)64位只读存储器ROM ROM中的64位序列号是出厂前被光刻好的,它是该 DS18B20的地址序列码。光刻ROM的作用是使每一个 DS18B20都各不相同,可以实现一根总线上挂接多个 DS18B20。64位光刻ROM序列号的排列是:开始8位 (28H)是产品类型标号,接着的48位是该DS18B20自身 的序列号,最后8位是前面56位的循环冗余校验码 (CRC=X8+X5+X4+1)。
第八章串行通信技术
第八章串行通信技术§8。
1串行通信的概述及RS-232C总线教学方法:讲授法教学目的:1、了解单片机串行通信的基本方法。
2、掌握单片机串行通信的相关概念。
3、了解RS-232C总线。
4、了解RS-232C总线电平及计算机信号电平教学重点:串行通信的方式教学难点:波特率的理解和信号电平的理解教学过程:组织教学:授课课时:(2课时)扳书课题:§8。
1串行通信的概述及RS-232C总线引入新课:一、串行通信概述1、什么叫串行通信?并行、串行举生活中的例子(排横队行走,排纵队行走)说明;引出并行通信,串行通信的概念。
P00P01 外设1P02P0389C51RXD外设2TXD串行通信就是使计算机中的数据一位一位地按先后顺序在一根传输线上传送。
通常有两种基本的通信方式:异步通信和同步通信。
2、异步通信和同步通信回顾在数字电路中所学的移位寄存器工作原理。
可提问学生。
异步通信:异步——发送时钟不一定等于接收时钟。
如下图:数据传送是帧的形式传送,每一帧数据包括起始位、数据位、奇偶校验位、停止位四部分。
其中数据位可以是5位、6位、7位、8位。
在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(可以省略),最后是停止位1。
用这种格式表示字符,则字符可以一个接一个地传送。
特点:不同速度的外设可相互传送,但传送数据比实际数据位数多(加起始位、停止位等),占用CPU时间,传送速度较慢。
同步通信同步——发送设备时钟等于接收设备时钟。
在同步通信中,每个字符要用起始位和停止位作为字符开始和结束的标志,占用了时间;所以在数据块传递时,为了提高速度,常去掉这些标志,采用同步传送。
由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。
发送方和接收方时钟完全一样,只要双方同时准备好(同步),可直接传送数据,无需附加多余的控制位,传送数据效率高,但设备要求高。
串行总线通信协议的分析和usb应用
五、端点缓冲器RAM的接口端点缓冲器RAM由USB256R核访问,包括两种情况:1.数据包通过USB传输;2.微控制器读写端点缓冲器。
3.2USB协议层的设计和实现3.2.1字段和包一、同步字段(SYNC)和包结束分隔符EOP完整的SYNC是0xS0,由KJKJKJKK八个比特组成,第一个比特由于集线器重放等原因可能产生畸变,因此检钡9SYNC时可以只检测最后几个比特。
从DPLL状态机的讨论中我们知道在第一个SYNC时DPLL从第二个状态J开始才能有时钟输出,而以后的SYNC则从第一个状态K就有时钟输出,观察一下SYNc的组成,不难看出只要最后四个比特KJKK就可以完全检测到SYNC了。
由此,给出图3.3所示的SYNC检测状态机以及它的仿真波形。
图3-3SYNC检测状态机图3-4中,elk为48MHZ的时钟,elkusb是由DPLL检出的12MHZ时钟,di是输入的差分数据,sync__st是SYNC检测状态机所处的状态。
当di连续出现KJKJKJKK的变化,这时syne_st为100状态,表明状态机检测到SYNC同步码。
图3-4SYNC检测状态机的仿真波形EOP的检测也存在同样的问题,USB规定全速率接收器必须将后跟的一个变化大于等于82us宽的SE0(即仿真图中的di信号)作为一个有效的EOP来予以接收。
对于低速收发器来说,这个宽度是670us。
图3.5给出了EOP检测状态机以及相应的仿真波形。
从仿真波形中可以看出,当SE0持续4个12MHZ的时钟(clkusb)并且后面紧跟一个J变化。
cop被拉高,表明检测到EOP。
图3-6中eop_s“eop_nxt是eop状态机的状态。
图3-5EOP状态机图图3-6EOP仿真波形图二、NRZI编解码因为NRZI编码中电平的跳变代表“0”,而没有跳变则代表“l”,所以对编码后的信号延时一个比特周期后再和原来的信号异或,就可以得到解码后的数据了。
图3.7给出了利用这一规则进行NRZI解码的仿真波形。
串行接口及应用
• 8.1 串行接口及应用 • 8.2 定时与计数技术 • 8.3 红外 • 8.4 Wi − Fi
返回
8.1 串行接口及应用
• 串行通信是计算机系统中常用的通信机制之一。使用串行通信的计算 机或外设,都需要使用串行通信接口。通过串行接口,数据发送方将 并行数据转换成按照二进制数据位排列的串行形式的数据送到传输线 上。数据接收方的串行接口接收到这些二进制位后,再将它们转换成 字节形式的并行数据。值得注意的是,串行接口和并行接口的定义指 的是接口和外设侧的数据传送,接口和外设之间串行传输叫作串行接 口,接口和外设之间并行传输叫作并行接口,接口和CPU 侧的数据 传送总是并行的。串行接口如图8 -1 所示。
上一页 下一页 返回
8.1 串行接口及应用
• 面向字符同步协议的一帧数据格式如图8 -5 所示。 • 在BSC 协议中,数据块的前后都加了几个特定字符,在数据块中,
还需要转义字符。一帧信息包括如下的字段。 • ① SYN 同步字符(Synchronous Character)。每一帧开始处都有
SYN 字符,加一个SYN的称为单同步,加两个SYN 的称为双同步。 设置同步字符的目的是在收发双方起联络作用,传送数据时,接收端 不断检测,一旦出现同步字符,就知道是一帧开始了。 • ② SOH 序始字符(Start Of Header)。它表示标题的开始。标题中 包括源地址、目标地址和路由指示等信息。
• (1)面向字符的同步协议
上一页 下一页 返回
8.1 串行接口及应用
• 面向字符型的同步协议被传送的数据块是由字符组成的,字符是基本 信息传输单位,这也是它名字的由来。面向字符的同步协议,不像异 步协议那样需在每个字符前后附加起始和停止位,因此传输效率提高 了。此类协议在20 世纪60 年代初开始出现,其中的典型代表是IBM 公司的二进制同步通信协议(Binary Synchronous Communication,BSC)。它规定了10个特殊字符作为通信控制字 。通信控制字包括数据块的开始、结束标志及整个传输过程的控制信 息。这些通信控制字不能在帧格式的标题及数据块中出现,否则会产 生错误判断,如数据块中正好有一个与ETX 相同的数据字符,接收 端就不会把它当作数据字符处理,而误认为是正文结束,因而产生差 错。
SPI、I2C、UART三种串行总线的原理、区别及应用
SPI、I2C、UART三种串行总线的原理、区别及应用1、UART就是两线,一根发送一根接收,可以全双工通信,线数也比较少。
数据是异步传输的,对双方的时序要求比较严格,通信速度也不是很快。
在多机通信上面用的最多。
2、SPI接口和上面UART相比,多了一条同步时钟线,上面UART的缺点也就是它的优点了,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。
一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。
3、I2C接口也是两线接口,它是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复杂。
一般单片机系统里主要用来和24C02等小容易存储器连接。
SPI:高速同步串行口。
3~4线接口,收发独立、可同步进行UART:通用异步串行口。
按照标准波特率完成双向通讯,速度慢SPI:一种串行传输方式,三线制,网上可找到其通信协议和用法的3根线实现数据双向传输串行外围接口 Serial peripheral interfaceUART:通用异步收发器UART是用于控制计算机与串行设备的芯片。
有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。
作为接口的一部分,UART还提供以下功能:将由计算机内部传送过来的并行数据转换为输出的串行数据流。
将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。
在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。
在输出数据流中加入启停标记,并从接收数据流中删除启停标记。
处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)。
可以处理计算机与外部串行设备的同步管理问题。
有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART是8250。
8.4 串行通讯标准总线
第八章串行口及串行通信技术8.4 串行通讯标准总线►在智能控制中,对某些数据要做较复杂的处理。
由于单片机的运算功能较差,对数据进行较复杂的处理时,往往需要借助计算机系统。
因此,需要用89C51单片机的串行口与PC机的串行口COM1或COM2进行串行通信,将单片机采集的数据传送到PC机中,由PC机的高级语言或数据库语言对数据进行整理及统计等复杂处理;或者实现PC机对远程前沿单片机进行控制。
►但是因为PC机与单片机的电气特性不一样,所以,它们需要通过标准的串行总线进行通信。
8.4 串行通讯标准总线►在实现计算机与计算机、计算机与外设间的串行通信时,通常采用标准通信接口、这样就能很方便地把各种计算机、外部设备、测量仪器等有机地连接起来,进行串行通信。
►串行总线是连接外部设备的一个串口总线标准,当不同类型的微机之间进行串行通讯时,均以此标准来进行,常用的有►RS232、RS485、RS422、、I2C、SPI、IEEE 1394、USB ►汽车上常见的串行总线:CAN总线 LIN总线8.4 串行通讯标准总线►RS-232是由美国电子工业协会(EIA)正式公布的,在异步串行通信中应用最广的标准总线。
它包括了按位串行传输的电气和机械方面的规定,适用于短距离或带调制解调器的通信场合,一般用于20m以内的通信。
►为了提高数据传输率和通信距离,EIA又公布了RS-422,RS -423和RS-485串行总线接口,理论上RS485的最长传输距离能达到1200米。
8.4 串行通讯标准总线8.4.1 RS-232C标准接口总线8.4.2信号电气特性与电平转换8.4.3单片机与PC机通信的接口电路5 8.4.1 RS-232C标准接口总线►ELA RS-232C是目前最常用的串行接口标准,用于实现计算机与计算机之间、计算机与外设之间的数据通信。
►该标准的目的是定义数据终端设备(DTE)之间接口的电气特性。
一般的串行通信系统是指微机和调制解调器(modem),调制解调器叫数据电路终端设备(简称DCE)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3)内部存储器
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和 一个非易失性的可电擦除的EEPROM,EEPROM用于存放 高温度和低温度触发器TH、TL和配置寄存器的内容。高速 暂存存储器由9个字节组成。
4)温度传感器 D7 D6 D5 D4 D3 D2 D1 D0 DS18B20中的温度传感器可 23 22 21 2-0 2-1 2-2 2-3 2-4 以完成对温度的测量。 DS18B20的温度测量范围是55℃~+125℃,分辨率的默认 D15 D14 D13 D12 D11 D10 D9 D8 值是12位。DS18B20温度采 集转化后得到16位数据,存储 S S S S S 26 25 24 在DS18B20的两个8位RAM中, 高字节的高5位S代表符号位, 如果温度值大于或等于零,符 对应的温度计算:当符号位S=0时,直 号位为0;温度值小于零,符 接将二进制位转换为十进制;当S=1时, 号位为1。低字节的第四位是 先将补码变为原码,再计算十进制值。 小数部分,中间7位是整数部 分。
(1)读ROM[33h]命令(仅适合于单节点) (2)报警搜索[ECh]命令(仅少数1-wire 器件支持) (3)跳越ROM[CCh]命令(仅适合于单 节点)
4.RAM功能命令 在主机发出ROM命令,以访问某个指定的DS18B20, 接着就可以发出DS18B20支持的某个RAM功能命令。这些 命令允许主机写入或读出DS18B20暂存器、启动温度转换 以及判断从机的供电方式。
2.单总线操作命令序列
典型的单总线命令序列如图8-4所示,每次访问单 总线器件,必须严格遵守这个命令序列,否则,单总 线器件不会响应主机。但是,这个准则对于搜索 ROM命令和报警搜索命令例外,在执行两者中任 何一条命令之后,主机不能执行其后的功能命令, 必须返回,从初始化开始。
根据DS18B20的通讯协议,主机(单 片机)控制DS18B20完成温度转换必须 经过三个步骤:每一次读写之前都要对 DS18B20进行复位操作,复位成功后发 送一条ROM指令,最后发送RAM指令, 这样才能对DS18B20进行预定的操作。
8.1.2 DS18B20的引脚及内部结构
1 .DS18B20的封装 DS18B20的封装采用TO-92和8-Pin SOIC封装,外形及管脚排列如图 8-1。 DS18B20引脚定义: GND 为电源地。 DQ 为数字信号输入/输出端。 VDD 为外接供电电源输入端 (在寄生电源接线方式时接地)。 NC 空引脚。
第八章 常用串行总线介绍及 应用
目前单片机应用系统比较常见的串行扩展接口 和串行扩展总线有:1-Wair单总线、SPI串行 总线、IIC总线。
8.1
1-wire总线
1-wire单总线采用单根信号线,既可以传输时钟又可以传 输数据,而且数据传输是双向的。它具有节省I/O口资源、 结构简单、成本低廉、便于总线扩展和维护等诸多优点。 1-wire单总线适用于单个主机系统,能够控制一个或多个 从机设备。当只有一个从机位于总线上时,系统可按照单 节点系统操作,而当多个从机位于总线上时则系统按照多 节点系统操作。 我们以单总线温度传感器DS18B20的应 用为例,详细介绍1-wire的应用。
总线初始化脉冲时序图如图8-5:
//温度传感器 bit init_ds18b20(void) { uchar j; DQ=1; DQ=0; j=250; while(--j); DQ=1; j=40; while(--j); j=110;
while(DQ!=0) { j--; if(!j) return 0; } j=250; while(--j); return 1; }
/*读时序(位)*/ bit rdbit_ds18b20(void) { uchar j; bit b; DQ=1; _nop_(); DQ=0; _nop_();_nop_();_nop_(); DQ=1; _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();
控制器对18B20操作流程
3.ROM操作命令
在主机检测到应答脉冲后, 就可以发出ROM命令。这 些命令与各个从机设备的唯 一64位ROM代码相关,允 许主机在单总线上连接多个 从机设备时,指定操作某个 从机设备。这些命令还允许 主机能够检测到总线上有多 少个从机设备以及其设备类 型,或者有没有设备处于报 警状态。从机设备可能支持 5种ROM命令(实际情况与 具体型号有关)每种命令长 度为8位,主机在发出功能 命令之前,必须送出合适的 ROM命令。以下为几个 ROM命令的功能:
控制器对18B20操作流程
总流程:初始化1-WIRE 总线——>发送ROM 命令——>发送Memory 命令——>提取数据(可以没有) 1.复位:首先我们必须对DS18B20芯片进行复位,复位就是由控制器 (单片机)给DS18B20单总线至少480uS的低电平信号。当18B20接 到此复位信号后则会在15~60uS后回发一个芯片的存在脉冲。 2.存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以 便于在15~60uS后接收存在脉冲,存在脉冲为一个60~240uS的低电 平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制 器与18B20间的数据通信。如果复位低电平的时间不足或是单总线的 电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。
//写时序
void wtbyte_ds18b20(uchar wdat) { uchar i,j; for(i=0;i<8;i++) { if(wdat&0x01)//写1时序 { DQ=1; _nop_(); DQ=0; _nop_();_nop_();_nop_(); DQ=1; j=30; while(--j); }
2)写时隙 当主机将单总线DQ从逻辑高(空闲状态)拉为逻 辑低时,即启动一个写时序。存在两种写时隙: “写1”和“写0”。主机采用写1时隙向从机写入1, 而采用写0时隙向从机写入0。所有写时隙至少需 要60us,且在两次独立的写时隙之间至少需要 1us的恢复时间。
两种写时隙均起始于主机拉低总线(图8-6所示)。 产生 写1时隙的方式:主机在拉低总线后,接着必须在15 us之 内释放总线(向总线写1),由4.7K上拉电阻将总线拉至 高电平;而产生写0时隙的方式:在主机拉低总线后,只 需在整个时隙期间保持低电平即可(至少60us)。 在写时隙起始后15-60 us期间,单总线器件采样总线电平 状态。如果在此期间采样为高电平,则逻辑1被写入该器 件;如果为0,则写入逻辑0。
5)配置寄存器 暂存器的第五字节是配置寄存器,可以通过相应的写命令 进行配置其内容如下表:
低五位一直都是“1”,TM是测试模式位,用于设置 DS18B20在工作模式还是在测试模式。在DS18B20出厂 时该位被设置为0,用户不要去改动。R1和R0用来设置 DS18B20的分辨率 。
8.1.3
单总线开发使用
if(DQ) { b=1; } else {
b=0;
} j=30; while(--j); return b; }
/*读字节*/ uchar rdbyte_ds18b20(void) { uchar i,dat; for(dat=0,i=0;i<8;i++) { dat>>=1; if(rdbit_ds18b20()) dat|=0x80; } return dat; }
8.1.1 DS18B20的简介
DALLAS(达拉斯)公司生产的DS18B20温度传感器具有超小的 体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强。 DS18B20的优势是我们学习单片机技术和开发温度相关的小产品的 不二选择。
DS18B20的主要特征:
������ 全数字温度转换及输出。 ������ 先进的单总线数据通信。 ������ 最高12位分辨率,精度可达土0.5摄氏度。 ������ 12位分辨率时的最大工作周期为750毫秒。 ������ 可选择寄生工作方式。 ������ 检测温度范围为–55°C ~+125°C (–67°F ~+257°F) ������ 内置EEPROM,限温报警功能。 ������ 64位光刻ROM,内置产品序列号,方便多机挂接。 ������ 多样封装形式,适应不同硬件系统。
单总线的开发使用过程分三步:1)单总线的 硬件连接结构;2)单总线的操作命令序列;3) 单总线的通信协议,总线的操作时序。 1.硬件结构 主机或从机通过一个漏极开路或三态端口连接 至该数据线,这样允许设备在不发送数据时释 放数据总线,以便总线被其它设备所使用。
为了使总线上所有电路的输出能完成“线与” 的功能,连接到总线上的器件的输出级必须为 “开漏”或“开集”的形式。其内部等效电路 如图8-3所示
else//写0时序 { DQ=1; _nop_(); DQ=0; j=35; while(--j); DQ=1; } wdat>>=1; } }
ቤተ መጻሕፍቲ ባይዱ
3)读时隙 总线器件仅在主机发出读时隙时,才向主机传输数据,所 以,在主机发出读数据命令后,必须马上产生读时隙,以 便从机能够传输数据。所有读时隙至少需要60us, 且在 两次独立的读时隙之间至少需要1us的恢复时间。每个读 时隙都由主机发起,至少拉低总线1us 图8-7所示。
温度转换
//温度转换函数 unsigned char display_7leds[7]; /*用数组保存转换后的温度,第1位保 存符号,第2,3,4保存整数,第5位 保存小数点,6,7位保存小数值*/ void convert_t(char uct_l,char uct_h) { uchar tm_dot; tm_dot=(uct_l>>2)&0x03; uct_h=(uct_h<<4)&0xf0; tm=uct_h|((uct_l>>4)&0x0f); if(uct_h&0x80) { display_7leds[0]='-'; tm=~tm+1; } else display_7leds[0]=' ';