




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章单片机串行扩展技术8.1串行总线概述
8.2I2C总线接口及其扩展8.3SPI总线接口及其扩展思考与练习
8.1串行总线概述
与并行总线相比,采用串行总线进行扩展时,简化了系统的连线,缩小了电路板的面积,节省了系统的资源,具有扩展性好、成本低廉、可靠性高、硬件易于模块化等优点。因此,采采用串行总线扩展方法是当前单片机应用系统设计的流行趋势势。目前单片机应用系统常用的串行扩展总线有单总线、I2C总线(二线总线)和SPI总线(三线总线)。
8.2I2C总线接口及其扩展
I2C(InterIntegratedCircuit)总线是Philips(飞利浦)公司推出的芯片间串行数据传输总线,后来发展成为嵌入式系统设备间通信的国际标准,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。
8.2.1I2C总线的基础知识
1.I2C总线的特点
I2C总线的特点如下:
(1)采用二线制。采用二线制连接,可以减少器件的引脚,简化器件间连接电路的设计,有效减小电路板的体积,提高系统的可靠性和灵活性。
(2)传输速率高。标准模式的传输速率为100kb/s,快速模式为400kb/s,高速模式为3.4Mb/s。
(3)支持多主和主/从两种工作方式。多主方式时,要求各主单片机配备I2C总线标准接口;而基本型AT89C51或80C51单片机没有I2C总线标准接口,只能工作于主/从方式
(扩展外围器件)。
2.I2C总线的架构I2C总线只有两根连线。一根是数据线SDA,另一根是时钟线SCL。所有连接到I2C总线上的器件的数据线都接到SDA上,各器件的时钟线均接到SCL上。I2C总线的基本架构如图8-1所示。图8-1I2C总线的基本架构
3.I2C总线的常用器件
I2C总线广泛用于各种新型芯片中,如I/O电路、存储器、A/D转换器、D/A转换器、温度传感器及微控制器等。许多器件生产厂商都采用了I2C总线设计产品,如Atmel公司的E2PROM器件AT24C04/08/16/64/128/256/512;MAXIMUM公司的A/D转换器件MAX1036~MAX1039等。
8.2.2I2C总线的数据传输时序
在I2C总线上,每一位数据位的传输都与时钟脉冲相对应。逻辑0和逻辑1的信号电平取决于相应的电源电压。使用不同的半导体制造工艺,如CMOS、NMOS等类型的电路
都可以接入总线。对于数据传输,I2C总线协议规定了如下信号及时序。
1.起始和停止信号
起始和停止信号如图8-2所示。
SCL为高电平期间,SDA由高电平向低电平的变化表示起始信号。
SCL为高电平期间,SDA由低电平向高电平的变化表示停止信号。
总线空闲时,SCL和SDA两条线都是高电平。SDA的起始信号和停止信号由主机发出。在起始信号后,总线处于被占用的状态;在停止信号后,总线处于空闲状态。图8-2起始和停止信号
2.字节传输时序
传输的每个字节必须是8位长度。先传最高位(MSB),每个被传输字节后面都要跟随应答位(即一帧共有9位),如图8-3所示。图8-3字节传输时序
3.数据传输时序
对于数据(多字节)传输,I2C总线协议规定:SCL由主机控制,从机在自己忙时拉低SCL线以表示自己处于“忙状态”。字节数据由主机发出,响应位由从机发出。SCL高电平期间,SDA线数据要稳定;SCL低电平期间,SDA线数据允许更新。数据传输时序如图8-4所示。图8-4数据传输时序
4.寻址字节格式
主机发出起始信号后要先传送1个寻址字节:7位从机地址,1位传输方向控制位(用“0”表示主机发送数据,“1”表示主机接收数据),格式如下:
8.2.3I2C总线的时序模拟
对于没有配置I2C总线接口的单片机(如80C51、AT89C51等),可以利用通用并行I/O口线模拟I2C总线接口的时序。
1.典型信号的时序
I2C总线的数据传输有严格的时序要求。I2C总线的起始信号、停止信号、发送应答“0”及发送非应答“1”的时序如图8-5所示。图8-5典型信号的时序
2.典型信号模拟子程序
设主机采用AT89C51单片机,下面给出几个典型信号的模拟子程序。
【例8-1】AT89C51的P2.0模拟数据线SDA,P2.
1模拟时钟线SCL,晶振频率为12MHz,编写I2C总线的起始信号、应答“0”时序的程序段。
8.2.4串行程序存储器AT24C04
串行E2PROM的优点是体积小,功耗低,占用I/O口线少,性能价格比高。Atmel公司的E2PROM是一个系列,即AT24CXX系列存储器器件。典型产品是AT24C04,内含
512B,擦写次数大于100万次,写入周期不大于10ms。
1.AT24C04的引脚定义
AT24C04引脚图如图8-6所示。
A0~A2:地址线。
SDA:数据输入/输出线。
SCL:串行时钟线。
WP:写保护控制端,接地时允许写入。
AT24C04与单片机的连接如图8-7所示。图8-6AT24C04引脚图图8-7AT24C04与单片机的连接
2.AT24CXX系列存储器器件的地址
I2C器件地址由固定部分和可编程部分组成,即
AT24CXX系列存储器器件的地址如表8-1所示。以AT24C04为例,器件地址的固定部分为1010,引脚A2和A1的组合可以选择4个同样的器件。片内512个字节单元的访问,由第1字节(器件寻址字节)的P0位及下一字节(8位的片内储存地址选择字节)共同寻址。
3.主机写数据操作命令
1)写单字节
对AT24C04写入时,单片机发出起始信号“S”后接着发送的是器件寻址写操作(即010(A2)(A1)(P0)0,方向位为“0”),然后释放SDA线并在SCL线上产生第9个时钟信号;被选中的AT24C04在SDA线上产生一个应答信号“A”;单片机再发送要写入的片内单元地址;收到AT24C04应答“0”后单片机发送数据字节,AT24C04返回应答;然后单片机发出停止信号“P”,AT24C04启动片内擦写过程。写入单字节的传输时序如图8-8所示。图8-8写入单字节的传输时序
2)写多字节
要写入多个字节,可以利用AT24C04的页写入模式。AT24C04的页为16字节。与字节写相似,首先单片机分别完成起始信号“S”操作、器件寻址写操作及片内单元首地址
写操作,收到AT24C04应答“0”后单片机就逐个发送各数据字节,但每发送一个字节后都要等待应答。如果没有数据要发送了,单片机就发出停止信号“P”,AT24C04就启动内部擦写周期,完成数据写入工作(约10ms)。
AT24C04片内地址指针在接收到每一个数据字节后都自动加1,在芯片的“页面写字节数”(16字节)限度内,只需输入首地址。传送数据的字节数超过芯片的“页面写字节数”
时,地址将“上卷”,前面的数据将被覆盖。写入n个字节的传输时序如图-9所示。图8-9写入n个字节的传输时序
4.主机读数据操作命令
1)当前地址读
从AT24C04读数据时,单片机发出起始信号“S”后接着要完成器件寻址读操作,在第9个脉冲等待从机应答;被选中的从机在SDA线上产生一个应答信号“A”,并向SDA线发送数据字节;单片机发出应答信号和停止信号“
P”。当前地址读传输时序如图8-10所示。图8-10当前地址读传输时序
2)随机读
随机读时,单片机也要先完成该器件寻址写操作和数据地址写操作(属于“伪写”,即方向控制位仍然为“0”),均在第9个脉冲处等待从机应答。被选中的从机在SDA线上产生一个应答信号“A”。
收到器件应答后,单片机要先重复一次起始信号“
S”并完成器件寻址读操作(即1010(A2)(A1)(P0)1,方向位为“1”),收到器件应答后就可以读出数据字节,每读出一个字节,单片机都要回复应答信号“A”。当最后一个字节数据读完后,单片机应返回非应答信号“A”(高电平),并发出停止信号“P”。随机读时序如图8-11所示。
图8-11随机读时序
5.AT24C04的应用
【例8-2】扩展串行程序存储器AT24C04的系统连接原理图如图8-7所示,晶振是11.0592MHz,试编程实现向AT24C04中写入4个字符“SCMC”,地址不限。
分析:题中E2PROM选用Atmel公司的AT24C04芯片,用AT89C51单片机的通用I/O口与之相连。由于AT89C51没有I2C接口,需要用软件模拟I2C数据传输时序,这里用P2.0模拟数据线SDA,用P2.1模拟时钟线SCL。读写时,设定时钟线SCL的周期为10μs,由子程序DEL5US调用两次后,翻转电平。
8.3SPI总线接口及其扩展
SPI(SerialPeripheralInterface)总线是Motorola公司(摩托罗拉公司,其半导体器件部门独立后,更名为飞思卡尔半导体公司)推出的高速、全双工、同步串行通信总线。SPI总线允许MCU(微控制器)与各种外围设备以串行方式进行同步通信,属于全双工通信总线。SPI总线广泛用于E2PROM、实时时钟、A/D转换器、D/A转换器等器件。
8.3.1SPI总线的基础知识
1.SPI总线概述
SPI总线通常有3根线:串行时钟线(SCK)、主机输入/从机输出数据线(MISO)和主机输出/从机输入数据线(MOSI)。除了上述3根线以外,一般还会有1根低电平有效的片选线(CS),可以在多器件接入时使用。
SPI工作模式有两种:主模式和从模式。SPI允许一个主机启动一个从机进行同步通信,从而完成数据的同步交换和传输。只要主机有SPI控制器(也可用模拟方式),就可以与基于SPI的各种芯片传输数据。
SPI的串行总线通信协议是:由SCK提供时钟脉冲,MISO、MOSI则基于此脉冲完成数据传输。主机数据输出时,MOSI上的数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被从机读取,完成一位数据传输,输入也是同样原理。这样,在经历了8次时钟信号的改变(上升沿和下降沿为1次)后,就可以完成8位数据的传输。
要注意的是,SCK信号线只由主机控制,从机不能控制。这样的传输方式与普通的串行通信(见6.3节)不同,普通的串行通信一次连续传输至少8位数据,而SPI允许数据一位一位传输。主机通过对SCK时钟线的控制可以完成对通信的控制,当没有时钟跳变时,从机不采集或传输数据。SPI总线的输入/输出线分开,可同时进行数据传输,为全双工的通信方式。
不同的SPI设备,数据的改变和采集在时钟信号上升沿或下降沿有不同定义,将各种不同SPI接口片连到MCU的SPI总线时,应特别注意这些串行I/O芯片的输入/输出特性。
基本型80C51和AT89C51单片机没有配置SPI总线接口,但是可以利用其并行口线模拟SPI总线的时序,从而广泛地利用SPI接口的芯片资源。
2.SPI总线的系统结构
MISO和MOSI用于串行接收和发送数据,其数据的传输格式是高位(MSB)在前,低位(LSB)在后;SCK是主机为从机提供同步时钟输入信号;CS是片选使能信号。
SPI总线的典型应用是单主机系统,该系统只有一台主机(单片机),多个外围接口器件作为从机。单片机与多个SPI串行接口设备典型的SPI总线系统结构如图8-12所示。在这个系统中,只允许有一个作主机的CPU和若干具有SPI接口的外围器件(从机)。主机控制着数据向一个或多个从机的传输。从机只能在主机发命令时才能接收或向主机传输数据。所有的从机使用相同的时钟信号SCK,并将所有从机的MISO引脚连接到主机的MOSI引脚,从机的MOSI引脚连接到主机的MISO引脚。但每个从机采用相互独立的片选信号来控制芯片使能端,使得在某一时刻只有一个从机有效。图8-12单片机扩展SPI的系统结构
当有多个不同的SPI器件连至SPI总线上作为从机时,必须注意两点:一是其必有片选端;二是其接MISO线的输出脚必须有三态,片选无效时输出高阻态,以不影响其他SPI设备的正常工作。
8.3.2SPI总线的数据传输时序
SPI总线的数据传输过程中需要时钟驱动。SPI总线的时钟信号SCK有时钟极性(CPOL)和时钟相位(CPHA)两个参数,前者决定有效时钟是高电平还是低电平,后者决定有效时钟的相位,这两个参数配合起来决定SPI总线的数据传输时序。
在片选信号CS有效时,对数据传输线(MOSI或MISO)上的采样在SCK信号的上升沿或下降沿均可。如果采样跳变沿是SCK信号的第1个跳变沿,则相位控制位CPHA为0;如果采样跳变沿是SCK信号的第2个跳变沿,则相位控制位CPHA为1。SCK空闲时有两种极性,低电平对应CPOL为0,高电平对应CPOL为1。
图8-13所示为SPI总线4种工作模式的时序图。从时序图可以看出,SPI协议仅规定了每一帧数据如何传输,并未规定帧结构的组成。CPOL和CPHA两个参数决定了SPI
的4种工作模式。CPOL控制在没有数据传输时时钟的空闲状态电平为0或1状态,CPHA控制数据采样的时钟是第1个跳变沿还是第2个跳变沿。
具有标准SPI接口的微控制器可以通过配置工作方式与相应的外设接口器件进行连接。对于没有标准SPI接口的MCS51单片机,要想与SPI扩展器件传输数据,就要利用通用I/O口通过软件来模拟,这时必须严格依据器件的操作时序。图8-13SPI总线4种工作模式时序图
8.3.3E2PROM芯片X25045
1.X25045的引脚定义
X25045引脚图如图8-14所示。
SO:串行输出线。
WP:写保护输入端。
RESET:复位输出端。
SCK:同步时钟输入线。
SI:串行输入线。
CS/WDI:片选输入/看门狗复位输入端。
VSS:地。
VCC:电源。图8-14X25045引脚图
2.X25045的功能
X25045芯片的功能如下:
(1)上电复位控制。在对X25045通电时,RESET引脚输出有效的复位信号,并保持至少200ms,使CPU有效复位。
(2)电源电压监控。当检测到电源电压低于内部门槛电压Utrip时,RESET输出复位信号,直至电源电压高于Utrip并保持至少200ms,复位信号才被撤销。Utrip的出厂值根据芯片型号不同共有5个级别的电压范围。对于需要电源电压精确监控的应用,用户可以搭建编程电路,对芯片内Utrip电压进行微调。
(3)看门狗定时器。芯片内部状态寄存器的WD1、WD0是看门狗定时设置位,通过状态寄存器写命令WRSR修改这两个标志位,就能选择3种定时间隔或关闭定时器。定
时器溢出,产生RESET信号。CS/WDI引脚上输入下降沿完成对看门狗定时器的复位。看门狗的定时值见表8-2。
(4)内含512B串行E2PROM。可擦写10万次,数据保存时间为100年。该芯片设计了3种保护方式防止误写,使产生误写的可能性极小。
当WP写保护引脚被拉低时,内部存储单元和状态寄存器都禁止写入。通过对状态寄存器的BL1、BL0位的设置,可以选择对不同的存储区域进行写保护,具体见表8-3。
3.X25045的操作命令
在进行任何写操作前都必须使用WREN命令,打开写使能开关,而在上电初始化或写操作完成时,写使能开关自动关闭。
X25045共有6条操作命令,见表8-4。
X25045的状态寄存器描述器件的当前状态,各位含义如下:
其中,WD1、WD0是看门狗定时时间设置位;BL1、BL0是存储单元写保护区设置位;WEL是只读标志,1表示写使能开关打开;WIP也是只读标志,1表示芯片内部正处于写
周期。上电复位时,各位都被清零。
4.X25045的工作时序
图8-15为E2PROMX25045与89C51的接口电路。由于89C51内部没有SPI接口硬件,因此利用4根I/O线P1.
4、P1.5、P1.6、P1.7作为MISO、WP、MOSI、SCK的控制线。P1.3接X25045的片选端CS。图8-15X25045与89C51的接口电路
在对X25045进行读/写操作时,需先在MOSI线上输出READ或WRITE指令(指令码A8代表存储单元地址的最高位),接着输出低8位地址,即可连续读出或写入数据。其中,读指针和写指针的工作方式完全不同,读指针的全部8位用来计数,FFH溢出后变成00H;写指针只用最低两位计数,××××××11B溢出后变成××××××00B,所以连
续写的实际结果是在4个单元中反复写入。由于E2PROM
的写入时间长,所以在连续两条写指令之间应读取状态寄存器中的WIP状态,只有在内部写周期结束时才可输入下一
条写指令。
另外,因为上电初始化或写操作完成时写使能开关自动关闭,在进行任何写操作前都必须使用WREN命令,打开写使能开关。其字节读/写时序如图8-16和图8-17所示。
在对X25045内部的状态寄存器进行RDSR或WRSR操作时,在MOSI线输出指令RDSR最后一位后,紧跟着MISO线即输出状态寄存器内容,如图8-18所示,而WRSR操作需要在SI线上紧跟着WRSR命令之后输出8位状态数据。
图8-16X25045读字节时序图8-17X25045写字节时序图8-18X25045读状态时序
5.X25045的应用
【例8-3】X25045与89C51的接口电路如图8-15所示,X25045的SPI接口时序是上升沿输入和下降沿输出,用软件来模拟SPI总线的读/写时序。要求从X25045的第1页的10H开始读出32个字节的数据,并写入到地址30H开始的内存单元中。
分析:用单片机的P1.4和P1.6来模拟SPI总线的输出和输入,用P1.7模拟时钟信号。先向MOSI输出读存储单元命令,将页地址“1”插入到读命令中;再将要读的地址输
出到MOSI总线上。
8.3.4A/D转换器芯片TLC549
TLC549是TI公司生产的一种低价位、高性能的8位A/D转换器,以8位开关电容逐次逼近的方法实现A/D转换。TLC549的转换时间小于17μs,最大转换速率为40kHz,工作电压为3~6V。TLC549可以采用SPI总线方式与单片机进行接口。
1.TLC549的引脚定义
TLC549引脚图如图8-19所示。
VREF(+):正基准电压端,2.5V≤VREF(+)≤VCC+0.1。
VREF(-):负基准电压端,-0.1V≤VREF(-)≤2.5V,且要求:VREF(+)-VREF(-)≥1V。
CS:芯片选择输入端,要求输入高电平VIN≥2V,输入低电平VIN≤0.8V。
DATAOUT:转换结果数据串行输出端,与TTL电平兼容,输出时高位在前,低位在后。
ANALOGIN:模拟信号输入端,0≤VANALOGIN≤VCC。当VANALOGIN≥VREF(+)时,转换结果为全“
1”(0FFH);当VANALOGIN≤VREF(-)时,转换结果为全“0”(00H)。
I/OCLOCK:外接输入/输出时钟输入端,用于同步芯片的输入/输出操作,无需与芯片内部系统时钟同步。
VCC:系统电源,3V≤VCC≤6V。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵阳人文科技学院《微积分(1)》2023-2024学年第二学期期末试卷
- 河南司法警官职业学院《交通仿真技术与应用》2023-2024学年第二学期期末试卷
- 云南理工职业学院《药品微生物韩》2023-2024学年第二学期期末试卷
- 衢州职业技术学院《工程造价软件应用》2023-2024学年第二学期期末试卷
- 天津天狮学院《画法几何与透视》2023-2024学年第二学期期末试卷
- 苏州工业职业技术学院《药学学科概论》2023-2024学年第二学期期末试卷
- 兰州外语职业学院《医学微生物学C》2023-2024学年第二学期期末试卷
- 借款合同书面质证
- 快递驿站加盟合同(2025年版)
- 信用借款协议合同
- 铝合金压铸件典型内部缺陷
- 场地移交确认书
- 叉车保养计划表(共10页)
- 空调维修材料费清单
- 河北省分公司联通公司员工退出管理办法(征求意见稿)
- 辽宁计价定额2008计算规则
- 专业技术人员竞聘上岗量化评分表(共1页)
- 发电部八项管理经验介绍
- 安全生产检查记录表(范表)
- 企业总经理聘用合同范本
- 土木工程行业人才需求缺口与本科院校就业压力之间的矛盾分析
评论
0/150
提交评论