【很好】第八章常用串行总线及应用解读
IIC串行总线的工作原理及应用讲解

三、在51上用P1口模拟I2C (c语言)
/* 电平模拟函数和基本读写函数 void IIC_Start(void); void IIC_Stop(void); void SEND_0(void); void SEND_1(void); bit Check_Acknowledge(void); void Write_Byte(uchar b); bit Write_N_Bytes(uchar *buffer,uchar n); bit Read_N_Bytes(uchar SlaveAdr,uchar n,uchar *buffer); uchar Read_Byte(void); */
一、典型信号模拟 为了保证数据传送的可靠性,标准的I2C
总线的数据传送有严格的时序要求。I2C总 线的起始信号、终止信号、发送“0”及发 送“1”的模拟时序 :
I2C总线信号类型
▪ 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开 始传送数据。
▪ 结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结 束传送数据。
▪在起始信号后的应答时钟脉冲仅仅是为了和总线所 使用的格式一致,并不要求器件在这个脉冲线器件的接口
一、总线数据传送的模拟
主机可以采用不带I2C总线接口的单片机,如 80C51、AT89C2051等单片机,利用软件实现I2C 总线的数据传送,即软件与硬件结合的信号模拟。
引导过程由起始信号、起始字节、应答位、 重复起始信号(Sr)组成。
▪请求访问总线的主机发出起始信号后,发送起始字 节(0000 0001),另一个单片机可以用一个比较低 的速率采样SDA线,直到检测到起始字节中的7个 “0”中的一个为止。在检测到SDA线上的高电平后, 单片机就可以用较高的采样速率,以便寻找作为同 步信号使用的第二个起始信号Sr。
串行总线

PCF8563是PHILIPS公司推出的一款工业级内含I2C总线接口 功能的具有极低功耗的多功能时钟/日历芯片。 PCF8563的多种报警功能、定时器功能、时钟输出功能以及 中断输出功能。 内部时钟电路、内部振荡电路、内部低电压检测电路1.0V 以及两线制I2C总线通讯方式,不但使外围电路极其简洁, 而且也增加了芯片的可靠性。 每次读写数据后内嵌的字地址寄存器会自动产生增量。 是一款性价比极高的时钟芯片,它已被广泛用于电表、水 表、气表、电话、传真机、便携式仪器以及电池供电的仪 器仪表等产品领域。
I2C总线工作特点
SDA、SCL 启动条件 终止条件 应答信号 典型应用系统图(可挂接不同功能的芯片,不同类型的芯片 有不同的器件地址)
串行E 一 串行E2PROM 24C**
I2C总线工作特点
启动条件 终止条件 应答信号
串行E 一 串行E2PROM 24C**
24C**典型芯片管脚
串行E 一 串行E2PROM 24C**
POT非易失性数字电位器 五 E2POT非易失性数字电位器 X9313 管脚
POT非易失性数字电位器 五 E2POT非易失性数字电位器
内部结构
X9313
POT非易失性数字电位器 五 E2POT非易失性数字电位器 X9313
管脚描述
POT非易失性数字电位器 五 E2POT非易失性数字电位器 X9313 典型应用:程控放大器
典型应用图
POT非易失性数字电位器 五 E2POT非易失性数字电位器 X9313 概述
E2POT X9313非易失性数控电位器,端电压±5V,32 个抽头,X9313是固态非易失性电位器,把它用作数 字控制的微调电阻器是理想的。 X9313是一个包含有31个电阻单元的电阻阵列。在 每个单元之间和二个端点都有可以被滑动单元访问的 抽头点。滑动单元的位置由CS 、U/D和INC 三个输入 端控制。滑动端的位置可以被贮存在一个非易失性存 贮器中,因而在下一次上电工作时可以被重新调用。 X9313的分辨率等于最大的电阻值被31除。例如 X9313W(10kΩ)的每个抽头间的阻值为323Ω。 所有的Xicor非易失性存贮器都设计成并经过测试 能够用于持久地保存数据的应用场合。
单片机常用的串行总线及特例

单片机与外设备之间数据传输的串行总线:(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设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。
微机原理第八章 串行通信及串行接口

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) 阴影:主机产生的信号 无阴影:从机产生的信号
电子系统设计中常用串行接口及其应用

电子系统设计中常用串行接口及其应用在电子系统设计中,串行接口是一种常用的通信协议,用于在多个设备之间传输数据。
与并行接口相比,串行接口只需使用一条信号线来传输数据,因此可以减少硬件复杂度、节省成本,并且具有更好的扩展性和可靠性。
下面将介绍一些常见的串行接口及其应用。
1. 串行通用总线(Serial General Purpose Interface,SGPI):SGPI是一种开放标准的串行总线接口,可以在各种应用中使用,包括计算机、通信设备、工业自动化等。
它支持高速的全双工数据传输,可以连接多个设备,并提供了可靠的错误检测和纠正机制。
SGPI还支持热插拔功能,方便设备的添加和移除。
2. 串行外设接口(Serial Peripheral Interface,SPI):SPI是一种常用的串行通信接口,常用于连接微控制器和外设设备,如存储器、传感器、显示器等。
SPI接口使用4条信号线实现全双工的数据传输:主设备输出SCLK时钟信号,从设备接收数据(MISO)、主设备发送数据(MOSI)和主设备选择从设备(SS)。
SPI接口具有高速传输、简单灵活、可靠性高等特点,适用于多种应用场景。
3. 串行高速接口(Serial Advanced Technology Attachment,SATA):SATA是一种用于连接计算机硬盘驱动器和光盘驱动器的串行接口,取代了传统的并行接口(IDE)。
SATA接口使用7条信号线进行数据传输,支持高达6 Gbps的传输速度。
SATA接口具有高速传输、抗干扰能力强、线缆长度灵活等特点,广泛应用于个人电脑、服务器等领域。
4. 通用串行总线(Universal Serial Bus,USB):USB是一种广泛应用于计算机和消费电子产品中的串行接口标准。
USB接口可以连接各种外部设备,如键盘、鼠标、打印机、摄像头等。
USB接口提供了简单易用的插拔功能,支持高速数据传输和供电能力。
USB接口还定义了各种协议和设备类别,方便不同设备的互联互通。
第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。
串行通信和并行通信的详解

串行通信
通信双方使用一根或两根数据信号线相连,同一 时刻,数据在一根数据信号线上一位一位地顺序 传送,每一位数据都占据一个固定的时间长度. 与并行通信相比,串行通信的优点是传输线少、 成本低、适合远距离传送及易于扩展.缺点是速 度慢、传输时间长等. 如计算机上常用的COM设备、USB设备和网络 通信等设备都采用串行通信.
17:18:24
并行通信
以字节Byte或字节的倍数为传输单位 一次传送一个或一个以上字节的数据,数据的各 位同时进行传送 适合于外部设备与微机之间进行近距离、大量 和快速的信息交换.计算机的各个总线传输数据 时就是以并行方式进行的. 并行通信的特点就是传输速度快,但当距离较远、 位数较多时,通信线路复杂且成本高.
半双工通信方式类似对讲机,某时刻A发送B接
收,另一时刻B发送A接收,双方不能同时进行发送
A 和接收.
B
A
K
K
a)单工通信b方 )半 式双工通
17:18:24
图c为全双工通信方式Full Duplex.在这种方式 中,分别用2根独立的传输线来连接发送方和接 收方,A、B既可同时发送,又可同时接收.
17:18:24
外同步
外同步通信的数据格式中没有同步字符,而是用 一条专用控制线来传送同步字符,使接收端及发 送端实现同步.当每一帧信息结束时均用两个字 节的循环控制码CRC为结束.
17:18:24
②面向比特型的数据格式 根据同步数据链路控制规程SDLC,面向比特型 的数据每帧由六个部分组成.
第一部分是开始标志7EH; 第二部分是一个字节的地址场; 第三部分是一个字节的控制场; 第四部分是需要传送的数据,数据都是位bit的集 合; 第五部分是两个字节的循环控制玛CRC; 最后部分又是7EH,作为结束标志.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)。
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位是整数部 分。
控制器对18B20操作流程
总流程:初始化1-WIRE 总线——>发送ROM 命令——>发送Memory 命令——>提取数据(可以没有) 1.复位:首先我们必须对DS18B20芯片进行复位,复位就是由控制器 (单片机)给DS18B20单总线至少480uS的低电平信号。当18B20接 到此复位信号后则会在15~60uS后回发一个芯片的存在脉冲。 2.存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以 便于在15~60uS后接收存在脉冲,存在脉冲为一个60~240uS的低电 平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制 器与18B20间的数据通信。如果复位低电平的时间不足或是单总线的 电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。
8.1.1 DS18B20的简介
DALLAS(达拉斯)公司生产的DS18B20温度传感器具有超小的 体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强。 DS18B20的优势是我们学习单片机技术和开发温度相关的小产品的 不二选择。
DS18B20的主要特征:
������ 全数字温度转换及输出。 ������ 先进的单总线数据通信。 ������ 最高12位分辨率,精度可达土0.5摄氏度。 ������ 12位分辨率时的最大工作周期为750毫秒。 ������ 可选择寄生工作方式。 ������ 检测温度范围为–55°C ~+125°C (–67°F ~+257°F) ������ 内置EEPROM,限温报警功能。 ������ 64位光刻ROM,内置产品序列号,方便多机挂接。 ������ 多样封装形式,适应不同硬件系统。
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的应用。