12 串行总线扩展技术
串行通信及串行扩展技术
传感器数据采集
01
串行通信接口可以连接各种模拟或数字传感器,实现数据的实
时采集和传输。
数据处理与存储
02
通过串行通信将采集到的数据传输到上位机或数据中心,进行
进一步的处理、分析和存储。
系统监控与控制
03
串行通信可用于实现远程监控和控制,提高数据采集系统的灵
活性和可维护性。
在远程监控系统中的应用
01
特点
传输线少,成本低,适用于远距 离通信,但传送速度较慢。
串行通信协议
异步通信协议
以字符为单位进行传输,字符间通过 特定的起始位和停止位进行同步。
同步通信协议
以数据块为单位进行传输,通过同步 字符或同步信号实现收发双方的时钟 同步。
串行通信接口标准
RS-232C接口标准
定义了数据终端设备(DTE)和数据通信设备(DCE)之间的接口标准,采用 负逻辑电平,最大传输距离约15米。
串行扩展工作原理
01
数据传输
在串行通信中,数据以位为单位进行传输。发送端将数据按位依次发送
到传输线上,接收端按位接收并组合成完整的数据。数据传输过程中需
要遵循特定的通信协议和数据格式。
02
同步与异步通信
串行通信可分为同步通信和异步通信两种方式。同步通信需要发送端和
接收端保持严格的时钟同步,而异步通信则通过特定的起始位和停止位
无线化发展趋势
无线通信技术的普
及
随着无线通信技术的不断发展, 串行通信逐渐实现无线化,使得 设备间的通信更加灵活方便。
低功耗无线通信技
术
针对低功耗设备的需求,发展出 低功耗无线通信技术,延长设备 的续航时间。
无线通信安全性增
第11章串行扩展技术
11.3 I2C总线扩展
11.3.1 I2C总线基础
1、I2C总线架构 – I2C总线 (Inter-Integrated Circuit BUS)是PHILIPS公司开发 的一种双向两线制同步串行总线,用于连接微控制器及其外 围设备,实现连接于总线上的器件之间的信息传送,是近年 来微电子通信控制领域广泛采用的一种总线标准。 – 目前许多接口器件采用了I2C总线接口,如AT24C系列 2PROM器件、LED驱动器SAA1064等。PHILIPS公司推出 的包括LED驱动器、LCD驱动器、A/D转换器、D/A转换器、 RAM、EPROM及I/O接口在内的I2C接口电路芯片。 – I2C总线只有两根双向信号线。一根是数据线SDA,另一根是 时钟线SCL。所有连接到I2C总线上器件的数据线都接到 SDA线上,各器件的时钟线均接到SCL线上。
11.2 SPI总线串行扩展
DJNZ R2,LOOP1 ;是否完成8次转换结果读入和命令输出?未 完则跳 MOV ADOUTL,A ;读入的8位转换结果存人ADOUTL单元 MOV A,#00H ;A清0 MOV R2,#04H ;为读入4位转换结果做准备 LOOP2:MOV C,P1.2 ;读入高4位转换结果中的1位 RRC A ;带进位位循环右移 SETB P1.0 ;产生1个时钟 NOP CLR P1.0 NOP DJNZ R2,LOOP2 ;是否完成4次读入?末完则跳LOOP2 MOV ADOUTH,A ;高4位转换结果存人ADOUTH单元中 的高4位 SWAP ADOUTH ;ADOUTH单元中的高4位与低4位互换 SETB P1.0 ;时钟无效 RET
第11章 目录
11.3 I2C总线扩展
11.3.1 I2C总线基础 11.3.2 80C51的I2C总线时序模拟 11.3.3 80C51与AT24C02的接口
第九章串行总线扩展技术
第九章串行总线扩展技术后参考答案(9)1、I2C 总线的优点是什么?答:lie总线的优点:(1)具有多主机系统所需的包括总线裁决(2)高低速器件同步功能的高性能串行总线。
2、I 2 C总线的起始信号和终止信号是如何定义的?答:SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL 线为高电平期间,SDA线由低电平向高电平的变化表示终止信号‘3、I C总线的数据传送方向如何控制?答:IIC 总线的数据传送方向由寻址字节的第8位来控制的,第8位为“0”时,表示主机向从机写数据,为“ 1 ”时表示主机由从机读数据。
4、常用的I C总线接口器件有哪些?答:常用的IIC 总线接口期间有EEPROM、A/D 转换器、D/A 转换器、LED 及LCD 驱动器、日历时钟电路等。
5、I C总线的寻址方式如何?答:IIC 总线的寻址方式有三种:(1)主机向从机发送数据,数据传送方向在整个传送过程中不变;(2)主机在第一个字节后,立即由从机读数据(3)在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向正好反向。
6、I C总线的数据传送时,应答是如何进行的?答:由于某种原因从机不对从机寻址信号应答时(如从机正在进行实时的处理工作而无法接收总线上的数据),它必须将数据线置于高电平,而由主机产生一个终止信号以结束总线的数据传送。
如果从机对主机进行了应答,当在数据从送一段时间后无法继续接收更多的数据,从机可以通过对无法接收的第一个数据字节的“非应答”通知主机,主机则应发出终止信号以结束数据的继续发送。
当主机接收数据时,它收到最后一个数据字节后,必须向从机发出一个结束传送的信号。
这个信号时由对从机的“非应答”来实现的。
然后,从机释放SDA 线,以允许主机产生终止信号。
27、有哪些单片机具备I C总线接口?答:由一些品种的片上配置了IIC 总线接口,如Philips 的80c552. 228、具备I C总线接口的E PROM芯片有哪几咱型号?容量如何?寻址方法如何? 答:带IIC总线接口的EEPROM芯片常用的有:Philips公司的PCF8582、ATMEL 公司的AT24C系列和NS公司的NM24C系列。
第七章串行扩展之三单总线
寄存器内容 温度值低位(LS Byte) 温度值高位(MS Byte) 高温限值(TH) 低温限值(TL) 配置寄存器 保留 保留
字节地址 0 1 2 3 4 5 6
保留
CRC校验值
7
8
(4)配置寄存器。配置寄存器的格式如 表所示。
TM R1 R0 1 1 1 1 1
低5位一直都是“1”,TM是测试模式位,用于设置 DS18B20在工作模式还是在测试模式。在 DS18B20出厂时该位被设置为0,用户不要去改 动。R1和R0用来设置分辨率,如右表所示 (DS18B20出厂时被设置为12位)。
+25.0625
+10.125 +0.5 0 -0.5
0000 0001 1001 0001
0000 0000 1010 0010 0000 0000 0000 1000 0000 0000 0000 0000 1111 1111 1111 1000
0191H
00A2H 0008H 0000H FFF8H
DS18B20的主要特性
(1)适应电压范围更宽,电压范围:3~5.5V,在寄生电源方式下可由数据线 供电。 (2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即 可实现微处理器与DS18B20的双向通信。 (3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上, 实现组网多点测温。 (4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成 在形如一只三极管的集成电路内。 (5)测温范围55℃~+125℃,在10℃~+85℃时精度为0.5℃。 (6)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、 0.125℃和0.0625℃,可实现高精度测温。 (7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多 在750ms时间内把温度值转换为数字,速度更快。 (8)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时 可传送CRC校验码,具有极强的抗干扰纠错能力。 (9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
单片机应用系统的串行扩展PPT课件
精品课件
34
精品课件
图11-5 SPI数据传送格式
35
35
目前世界各大公司为用户提供了一系列具有SPI接口的单片 机和外围接口芯片,例如Motorola公司存储器MC2814、显示驱 动器MC14499和MC14489等各种芯片;美国TI公司的8位串行 A/D转换器TLC549、10位串行A/D转换器TLC1549、12位串行 A/D转换器TLC2543等。
辨率和转换时间的关系。用户可通过修改R1、R0位的编码,
获得合适的分辨率。
精品课件
11
由表11-1可看出,DS18B20的转换时间与分辨率有关。当设 定分辨率为9位时,转换时间为93.75ms;……;当设定分辨率 为12位时,转换时间为750ms。
表11-2列出了DS18B20温度转换后所得到的16位转换结果的
单总线串行扩展11单总线系统的典型应用ds18b20的温度测量系统12单总线ds18b20温度测量系统的设计i2c总线的串行扩展31i2c串行总线系统的基本结构32i2c总线的数据传送规定33at89s52的i2c总线系统扩展34i2c总线数据传送的模拟35利用i2c总线扩展e2promat24c02的ic卡设计内容概要单片机应用系统除并行扩展外1.1 单总线串行扩展
单总线也称1-Wire bus,由美国DALLAS公司推出的外围串 行扩展总线。它只有一条数据输入/输出线DQ,总线上的所有 器件都挂在DQ上,电源也通过这条信号线供给,这种只使用一 条信号线的串行扩展技术,称为单总线技术。
单总线系统中配置的各种器件,由DALLAS公司提供的专用 芯片实现。每个芯片都有64位ROM,厂家对每一芯片都用激光 烧写编码,其中存有16位十进制编码序列号,它是器件的地址 编号,确保它挂在总线上后,可唯一地被确定。
单片机的串行扩展技术
精选ppt
(一)I2C总线工作方式
I2C总线上进行一次数据传输的通信格式如下图9-2所示。
SDA
SCL
起始信号
17 地址
8 读/写
9 应答
17
8
数据
9
17 8
应答
数据
9 应答
终止信号
精选ppt
(二)I2C总线数据传输方式模拟
目前已有多家公司生产具有I2C总线的单片机,如 Philips 、Motorola、韩国三星、日本三菱等公司。这类单 片机在工作时,总线状态由硬件监测,无须用户介入,应 用非常方便。对于不具有I2C总线接口的MCS-51单片机, 在单主机应用系统中可以通过软件模拟I2C总线的工作时 序,在使用时,只需正确调用该软件包就可很方便地实现 扩展I2C总线接口器件。
精选ppt
9.1.1串行扩展的特点
串行扩展总线技术是新一代单片机技术发展的一个显著特点。与 并行扩展总线相比,串行扩展总线有突出的优点:电路结构简单,程 序编写方便,易于实现用户系统软硬件的模块化、标准化等。
9.1.2串行扩展的种类
目前在新一代单片机中使用的串行扩展接口有Motorola的SPI, NS公司的Microwire/Plus和Philips公司的I2C总线、其中总线I2C具有 标准的规范以及众多带I2C 接口的外围器件,形成了较为完备的串行 扩展总线。
单片机原理及应用第二版张毅刚--课后习题标准答案
单片机原理及应用第二版张毅刚--课后习题答案————————————————————————————————作者:————————————————————————————————日期:第1章单片机概述参考答案1.答:微控制器,嵌入式控制器2.答:CPU、存储器、I/O口、总线3.答:C4.答:B5.答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。
嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。
目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。
嵌入式微处理器相当于通用计算机中的CPU。
与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。
而嵌入式微处理器仅仅相当于单片机中的中央处理器。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。
6.答:MCS-51系列单片机的基本型芯片分别:8031、8051和8071。
它们的差别是在片内程序存储器上。
8031无片内程序存储器、8051片内有4K字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM。
7.答:因为MCS-51系列单片机中的“MCS”是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。
8.答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash存储器取代了87C51片内的4K字节的EPROM。
9.单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。
单片机在嵌入式处理器市场占有率最高,最大特点是价格低,体积小。
I2C总线串行扩展技术
二、80C51单主系统虚拟I2C总线软件包
80C51只能采用虚拟I2C总线方式,并且只能用 于单主系统,虚拟 I2C 总线接口可用通用 I/O 口中 任一端线充任,数据线定义为 VSDA ,时钟线定义 为VSCL。
§8-3 I2C总线串行扩展技术
一、I2C总线串行扩展概述
1、扩展连接方式
具有I2C总线结构的器件,不论SRAM、E2PROM、 ADC/DAC、I/O口或MCU,均可通过SDA、SCL连接 (同名端相连)。 无I2C总线结构的器件,如LED/LCD显示器、 键盘、码盘、打印机等也可通过具有I2C总线结 构的I/O接口电路成为串行扩展器件。
;取接收数据字节数N(存在内RAM NUMB单元) ;启动I2C总线 ;读接收寻址字节(存在内RAM SLA单元) ;发送接收寻址字节 ;检查应答位 ;应答不正常,返回重新开始 ;应答(A)正常,取接收数据存储区首址 ;接收一个字节数据 ;存一个字节数据 ;判N个数据接收完毕否?未完转发送应答位 ;N个数据接收完毕,发送应答非位(A) ;发送终止信号 ;子程序结束返回 ;发送应答位(A) ;指向下一接收数据存储单元地址 ;转接收下一字节数据
3、虚拟I2C总线软件包VIIC小结
⑴ VIIC软件包共有9个归一化子程序组成。 ⑵ VIIC 软件包仅适用单主系统即主方式下 I2C 总线外围扩 展。且应fosc≤6MHz ,若 fosc > 6MHz ,则应相应调整 NOP指令个数,以满足I2C总线数据传送时序要求。 ⑶ VIIC软件包可嵌入到80C51 ROM中任一空间,作为I2C总 线扩展应用程序设计的软件支持平台。 ⑷ 在应用VIIC软件包初始化中,应对软件包中标记符号用 伪指令定义。 ⑸ VIIC软件包占用资源: F0、Cy、Acc、R1、R1、R3。在 调用VIIC软件包之前,若涉及这些存储单元中原有数据 尚需保存,应采取保护现场措施,在调用结束后恢复现 场。
第9章 单片机系统常用串行扩展技术
3.I C总线的器件寻址方式
2
I2C 总线上连接的器件都是总线上的节点,每个时刻只 有一个主控器件操控总线。每个器件都有一个唯一确定的地 址,主控器件通过这个地址实现对从器件的点对点数据传输。 器件的地址由7位组成,其后附加了1位方向位,确定数据的 传输方向。这8位构
成了传输起始状态S后的
第一个字节,如图所示。
3
9.1.1 I2C串行总线
----特性
由于I2C总线的双向特性,总线上的主器件和从器件都可能 成为发送器和接收器。
在主器件发送数据或命令时,主器件是发送器(主发送 器); 在主器件接收从器件的数据时,主器件为接收器(主接收 器); 从器件在接收主器件命令或数据时,从器件是接收器(从 接收器); 从器件向主器件返回数据时则是发送器(从发送器)。
2
9.1 常用串行总线协议
9.1.1 I C串行总线
2
----术语
为了简化集成电路之间的互连,Philips公司开发出一种 标准外围总线互连接口,称为“集成电路间总线”或“内部 2 2 集成电路总线” I C( Inter-IC)。 I C 总线是一个两线双向 串行总线接口标准,采用这种接口标准的器件只需要使用两 条信号线与单片机进行连接,就可以完成单片机与接口器件 之间的信息交互。 其相关的术语有: 发送器(Transmitter):发送数据到总线的器件; 接收器(Receiver):从总线接收数据的器件; 主器件(Master):即主控器件,初始化发送、产 生时钟信号和终止发送的器件; 从器件(Slave):被主控器件寻址的器件。
15
9.1.1 I2C串行总线
----数据传输方式
(3) 复合模式。主器件向从器件发送命令或数据后,再次向
sstl12 标准
sstl12标准
SSTL-12标准,全称为串行同步传输线路接口标准(Serial Synchronous Seria lInterface),是一种用于高速串行数据传输的接口标准。
该标准在电子通信领域广泛应用,尤其在嵌入式系统、计算机、消费电子等领域。
SSTL-12标准的主要特点包括:
1、高速传输:SSTL-12标准支持高达12Mbps的数据传输速率,适用于高速数据传输应用。
2、串行同步:该标准采用串行同步方式,通过一根时钟线实现数据的同步传输,降低了信号的复杂性。
3、简单的接口:SSTL-12标准的接口相对简单,只需一根时钟线和一根数据线即可实现数据的传输。
4、适用于多种应用:由于其高速传输和简单的接口特点,SSTL-12标准适用于多种应用,如内存模块、网络接口卡等。
在具体应用中,SSTL-12标准通常与DIMM(双列直插内存模块)一起使用,用于高速内存模块的接口连接。
通过SSTL-12标准,内存模块可以以高速、稳定的方式与计算机或其他设备进行连接,实现高速数据传输。
需要注意的是,虽然SSTL-12标准具有许多优点,但在实际应用中,还需要考虑其他因素,如信号的完整性、电源管理、热设计等。
因此,在使用SSTL-12标准时,需要综合考虑各种因素,以确保系统的稳定性和可靠性。
总之,SSTL-12标准是一种高速串行同步传输线路接口标准,具有广泛的应用前景。
在未来的发展中,随着技术的不断进步和应用需求的不断提高,SSTL-12标准将会不断发展和完善,为电子通信领域的发展做出更大的贡献。
单片机的串行扩展技术
Loop:
CLR MOVC CJNE AJMP
A A, @A+DPTR A, #0x55, Loop1 Start
; 清0累加器A ; 查表,取待传送的数据 ; 是否“结束码”?否,则跳转到Loop1
输入数据为0
传送前8位数据,即段选位 ACALL HC164_Serial_Change_Parallel ; 先传数段选位 MOV A, #0x00 理想的实验效果: 位选位全部置“0” 将选通所有数码管 ACALL HC164_Serial_Change_Parallel ; 后传送位选位,全部置“0” Loop1: ACALL Delay ; 增加延时时间,动态显示效果更明显 输入数据 ACALL Delay INC 0x6F, DPTR0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F ; 0~9字符表 ; 数据指针加1,取下一个码 .DB 0x06, 列 AJMP Loop .DB 0x55 表 ……
HC164_Serial_Change_Parallel: MOV Send_1_bit_Data: RLC MOV R6, #0x08
A中存储8位数据D7~D0 带进位左移,依次将D7~D0 ; 传送1位数据 中的数据移入进位C A ; 将A中的最高位左移到进位位C ; 将进位位C的内容送到P1.0口AB端
R5, A 将A中的数据传送到U1 ; 保存待传送的数据 HC164_Serial_Change_Parallel ; 调用8位串入并出送数子程序 A, R5 ; 取待传送的数据 HC164_Serial_Change_Parallel ; 调用8位串入并出送数子程序 Delay 将A中的数据传送到U1, DPTR U1中的数据传送到U2 ; 数据指针加1,取下一个码 Loop
串行总线扩展技术PPT学习教案
3
10.1.1 I2C总线
(3)I2C总线支持多主(multi-mastering) 和主从(master-slave)两种工作方式。
多主方式下,I2C总线上可以有多个
主机。I2C总线需通过硬件和软件仲裁来确
第14页/共95页
15
10.1.2 I2C总线的数据传输
(五)数据传输格式 在I2C总线上,传输数据可能的数据格式:
(3)组合格式
第15页/共95页
16
10.1.3 I2C总线的寻址
每个连接在I2C总线的器
件,都具有一个唯一确定的地
址。在任何时刻,I2C总线上
只D7能D有6 一D5 个D主4 机D3 对D2总D线1 实D0 行控
SCL保持为低电平,迫使主机处于等待状态;当从机
准备就绪后,再释放时钟线SCL,使数据传输继续进
行。
第9页/共95页
10
10.1.2 I2C总线的数据传输
(四)应答
I2C协议规定,在每个字节传送完毕后,必须有 一个应答位。应答位的时钟脉冲由主机产生。在应答 时钟有效期间,发送设备把数据线SDA置为高电平; 接收设备必须把数据线SDA置为低电平,并且在此期 间保持低电平状态,以便产生有效的应答信号。
P2
6
11
P6
出现低电平。对PCF8574进行一
P3
7
10
P5
次读/写操作后,撤销中断请求,
VSS
8
9
P4
复位为高电平 。
VDD:电源,+5V;VSS:地
第21页/共95页
22
第12章串行口扩展技术
MC14489等各种芯片。
16
SPI从器件要具有SPI接口。主器件是单片机。 目前已有许多机型的单片机都带有SPI接口。但对
AT89S51,由于不带SPI接口,SPI接口的实现,
可采用软件与I/O口结合来模拟SPI的接口时序。
17
12.4 I2C总线的串行扩展介绍
I2C总线,PHILIPS推出,使用广泛、很有发展
2
单片机的串行扩展技术与并行扩展技术相比具有显著
的优点,串行接口器件与单片机接口时需要的I/O口线很 少(仅需1~4条),串行接口器件体积小,因而占用电路 板的空间小,仅为并行接口器件的10%,明显减少电路板 空间和成本。
除上述优点,还有工作电压宽、抗干扰能力强、功耗
低、数据不易丢失等特点。串行扩展技术构图
13
SPI典型应用是单主系统,一台主器件,从器件通
常是外围接口器件
扩展多个外围器件时,SPI无法通过数据线译码选
择,故在扩展多个SPI器件时,单片机应分别通过
I/O口线来分时选通外围器件。
在SPI串行扩展系统中,如果某一从器件只作输入
或只作输出时,可省去一条数据输出(MISO)线或 一条数据输入(MOSI)线。
5
除地址编码外,片内还包含收发控制和电源存储电路。
这些芯片的耗电量都很小,从总线上馈送电能到大电容
中就可以工作,故一般不需另加电源。
单总线构成的分布式温度监测系统
6
上图为一个由单总线构成的分布式温度监测系统 单芯片挂线图,系统中可以多个带有单总线接口 的数字温度传感器DS18B20芯片都挂在单片机的
前途的芯片间串行扩展总线。
只有两条信号线,一是数据线SDA,另一是时
钟线SCL。
第12章单片机的串行扩展技术
(1)起始信号(S)。在SCL线为高电平期间,SDA线由高电 平向低电平的变化表示起始信号,只有在起始信号以后, 其他命令才有效。
(2)终止信号(P)。在SCL线为高电平期间,SDA线由低电 平向高电平的变化表示终止信号。随着终止信号的出现, 所有外部操作都结束。
起始和终止信号都是由主器件发出的,在起始信号产生后,总 线就处于被占用的状态;在终止信号出现后,总线就处于 空闲状态。起始信号和终止信号如图12-7所示。
接收器件收到一个完整的数据字节后,有可能需要完成一些其 他工作(如从器件正在进行实时性的处理工作而无法接收 总线上的数据),不需要立刻接收下一字节,这时接收器 件可以将SCL线拉成低电平,从而使主器件处于等待状态。 直到接收器件准备好接收下一个字节时,再释放SCL线使之 为高电平,从而使数据传送可以继续进行。
“1”的模拟时序如图12-10~图12-13所示。
表12-1所示为I2C总线的时序特性。表中的数据为程序模拟I2C 总线信号提供了基础。
由表可知,除了SDA、SCL线的信号下降时间为最大值外,其他 参数只有最小值。这表明在I2C总线的数据传送中,可以利用 时钟同步机制展宽低电平周期,迫使主器件处于等待状态, 使传送速率降低。
它可以使具有I2C总线的单片机(如PHILIPS公司的8xC552 )直 接与具有I2C总线接口的各种扩展器件(如存储器、I/O口、 A/D、D/A、键盘、显示器、日历/时钟)连接。
对不带有I2C接口的单片机(如89C51)可采用普通的I/O口结合 软件模拟I2C串行接口总线时序的方法,完成I2C总线的串行 接口功信号线,一条是数据线SDA,另一条是时钟线SCL,所 有连接到I2C总线上器件的数据线都接到SDA线上,各器件的 时钟线均接到SCL线上,系统的基本结构如图12-5所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
...
I 2C 器件n
3
(一) I2C总线的信号线
(二) I2C总线的驱动能力
I2C为开漏或开集电极输出,需加上拉电阻Rp ,输出 能实现线“与”的逻辑功能。 时钟线SCL和数据线SDA都是双向传输线,总线备用 时SDA和SCL都保持高电平,只有关闭I2C总线时才使 SCL钳位在低电平。 在标准模式下数据传送速率100kbit/s。总线的驱动 能力受总线电容限制,不加驱动扩展时驱动能力为 400pF。
/*1-启动I2C总线*/ /*2-停止I2C总线数据传送*/ /*3-发送应答位*/ /*4-发送非应答位*/
12
extern void cack( ); /*5-应答位检查*/ extern void wrbyt(uchar shu); /*6-发送一个字节*/ extern void wrbyt0( ); extern void wrbyt1( ); extern uchar rdbyt( ); /*7-读取一个字节*/ extern void wrnbyt(uchar slaw,uchar number,uchar ff[]); /*8-发送n 个字节*/ extern void rdnbyt(uchar number,uchar slar,uchar qq[]); /*9-接收n 个字节*/
地址(4位),数字引脚地址(3位),读/写地 址(1位)。 以8574为例:SLAW=0X40;SLAR=0X41。
芯片类型地址 0 1 0 0 数字引脚地址 0 0 0 读/写 0(写),1(读)
(五) I2C总线的数据传送与时序 主从机之间的一次数据传送由启动信号、若干数 据字节和应答位、停止信号组成。 1)一位数据的传输 SCL的一个周期对应一位数据传送,低电平时允 许数据线上的电平变化,高电平期间数据线上的 电平稳定。(启动停止除外)
5
种类
型号
器件地址及 寻址字节
备注
256×8静态RAM
256B E2PROM 512B E2PROM 1024B E2PROM 2048B E2PROM 8位I/O口 4位LED驱动控制器 160段LCD驱动控制器 4路A/D、1路D04 AT24C08 AT24C16 PCF8574 PCF8574A SAA1064 PCF8576 PCF8591 PCF8583
16
/********4-发送非应答位*******************/ void mnack( ) { SDA=1; SCL=1; _nop_( ); _nop_( ); SCL=0; SDA=0; }
17
/*************5-应答位检查********************/ void cack( ) { SDA=1; SCL=1; F0=0; if(SDA==0) {SCL=0; _nop_( );_nop_( ); } else {F0=1; SCL=0; _nop_( );_nop_( );} }
2
I2C
BUS(Inter IC BUS)是Philips推出的芯片间串 行传输总线,以两根线实现了完善的同步数据传 送,不需要片选线,可以方便地构成多机系统和 外围器件扩展系统。
+5 V
RP
P1.7 P1.6
RP
SDA SCL
具有I2C总线 的单片机
I2 C 器件1
I 2C 器件2
...
I 2C 器件i
26
for(l=0;l<number;l++) { data0=rdbyt( ); qq[l]=data0; if(l<(number-1)) mack(); } mnack( ); stop( );
三位数字引脚地址A2A1A0
三位数字引脚地址A2A1A0 二位数字引脚地址A2A1 一位数字引脚地址A2 无引脚地址,A2A1 A0悬空 三位数字引脚地址A2A1A0 三位数字引脚地址A2A1A0 二位模拟引脚地址A1A0 一位数字引脚地址A0 三位数字引脚地址A2A1A0 一位数字引脚地址A0
6
I2C接口器件的寻址字节由3部分组成,芯片类型
S SLAW/R A Data1
Data1 A
A …
…
Datan
Datan
A/ A A/ A
Sr
P
SLAR/W
A
6)模拟I2C的程序设计 可以软件模拟I2C协议,完成主控器件功能。 选用P1.6、P1.7作为时钟线SCL和数据线SDA,晶振 采用6MHz。 包括启动(STA)、停止(STOP)、发送应答位 (MACK)、发送非应答位(MNACK)、应答位检 查(CACK)、发送一个字节数据(WRBYT)、接收 一个字节数据(RDBYT)、发送n个字节数据 (WRNBYT)、接收n个字节数据(RDNBYT)九个 子程序。
4.1 串行总线扩展技术
4.2 人机通道接口技术 4.3 A/D转换器的选取和使用
4.4 D/A转换器的选取和使用
串行扩展:模块化、标准化、省去大量连线、提高 可靠性、降低成本 ——大趋势,大方向 几种总线:
◦ ◦ ◦ ◦ ◦ 1. 2. 3. 4. 5. UART方式 I2C总线 单总线( 1-wire ) 串行外设接口(SPI) Microwire串行扩展接口
9
S:起始信号; Sr:重复起始信号; P:停止信号; A:应答信号; A :非应答信号; SLAW:写寻址字节; SLAR:读寻址字节; Datal~Datan:被写入/读出的n个数据字节。 读操作:
S SLAR A Data1 A Data2 A … Datan-1 A Datan
A
P
10
读写操作:(注:未注明数据方向)
11
C51中,软件包分为两个文件:IIC.H和IIC.C。应用时, 两个文件加入同一工程,统一编译、连接。 WRNBYT子程序针对的是肯定应答。
IIC.H: sbit SDA=P1^7; sbit SCL=P1^6; #define uchar unsigned char #define uint unsigned int extern void sta( ); extern void stop( ); extern void mack( ); extern void mnack( );
14
/*******2-停止I2C总线数据传送**********/ void stop( ) { SDA=0; SCL=1; while(SCL==0){;} SDA _nop_( ); SDA=1; SCL _nop_( ); _nop_( ); 终止信号 SCL=0; }
15
/*********3-发送应答位********************/ void mack( ) { SDA=0; SCL=1; _nop_( ); _nop_( ); SCL=0; SDA=1; }
1010A2A1A0R/W
1010 A2A1A0R/W 1010 A2A1P0R/W 1010 A2P1P0R/W 1010 P2P1P0R/W 0100 A2A1A0R/W 0111 A2A1A0R/W 0111 0 A1A0R/W 0111 00 A0R/W 1001 A2A1A0R/W 1010 00 A0R/W
19
/********6-发送一个数据字节**************/ void wrbyt(uchar shu) { void wrbyt0( ); void wrbyt1( ); uchar i; if((shu&0x80)>0) { SDA=1;} else { SDA=0;} SCL=1; while(SCL==0){;} _nop_( );
4
(三) I2C总线的工作方式 I2C总线上支持多主和主从两种工作方式。在多主方 式中,通过硬件和软件的仲裁,主控制器取得总线 控制权。而在多数情况下,系统中只有一个主器件, 只需要了解主从工作方式。 很多CPU芯片都具有I2C总线主接口,能够按照状态 码自动进行总线管理,用户只要在程序中装入这些 标准处理模块对总线操作即可。 (四)I2C总线上的器件地址 在主从方式中,从器件的地址包括器件编号地址和 引脚地址,器件地址由I2C总线委员会分配,引脚地 址决定于引脚外接电平的高低。
7
2)总线数据传送的启动与停止 启动信号与停止信号都由主控制器产生。 启动信号:在时钟线保持高电平期间,数据线出现 由高电平向低电平变化时启动I2C总线 停止信号:在时钟线保持高电平期间,数据线上出 现由低到高的电平变化时将停止I2C总线 3)数据字节和应答 每次传送的字节数没有限制,每个字节传送高位在 先,后必跟一个应答位或非应答位 ,数据传送和应 答位的时钟脉冲均由主机产生。发送应答位时,发 送端在应答时钟脉冲高电平期间释放SDA(高), 转由接收器控制,发出应答位或非应答位。
24
for(k=0;k<number;k++) { wrbyt(ff[k]); cack( ); if(F0==1) break; } if(F0==0) break; } stop( );
}
25
/**********9-接收n个字节数据****************/ void rdnbyt(number,slar,qq) uchar number,slar,qq[]; { uchar idata data0,l; do{ sta( ); wrbyt(slar); cack( ); }while(F0==1);
13
IIC.C: #include <intrins.h> #include <reg51.h> #include <iic.h> /***********1-启动I2C总线*****************/ void sta( ) { SDA=1; SCL=1; SDA while(SCL==0){;} _nop_( ); SDA=0; SCL _nop_( ); _nop_( ); 起始信号 SCL=0; }