第9章单片机的串行扩展技术.ppt
《第9章单片机的串行扩展技术.ppt》由会员分享,可在线阅读,更多相关《第9章单片机的串行扩展技术.ppt(68页珍藏版)》请在三一办公上搜索。
1、第9章 单片机的串行扩展技术,9.1 串行扩展概述 新一代单片机技术的显著特点之一就是串行扩展总线的推出。在没有专门的串行扩展总线时,除了可以使用UART串行口的移位寄存器方式扩展并行I/O外,只能通过并行总线扩展外围器件。由于并行总线扩展时连线过多,外围器件工作方式各异,外围器件与数据存储器混合编址等,外围器件在系统中软、硬件的独立性较差,无法实现单片机应用系统的模块化、标准化设计。这给单片机应用系统设计带来了很大困难。,9.1.1串行扩展的特点 串行扩展总线技术是新一代单片机技术发展的一个显著特点。与并行扩展总线相比,串行扩展总线有突出的优点:电路结构简单,程序编写方便,易于实现用户系统软
2、硬件的模块化、标准化等。9.1.2串行扩展的种类 目前在新一代单片机中使用的串行扩展接口有Motorola的SPI,NS公司的Microwire/Plus和Philips公司的I2C总线、其中总线I2C具有标准的规范以及众多带I2C 接口的外围器件,形成了较为完备的串行扩展总线。,(1)I2C总线(两线制)I2C(IIC)总线是Philips公司推出的芯片间串行传输总线。它用两根线实现了完善的全双工同步数据传送,可以极为方便地构成多机系统和外围器件扩展系统。I2C总线采用了器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法,从而使硬件系统具有简单灵活的扩展方法。(2)One-w
3、ire总线(一线制)One-wire总线是Dallas公司研制开发的一种协议。它利用一根线实现双向通信,由一个总线主节点、一个或多个从节点组成系统,通过一根信号线对从芯片进行数据的读取。每一个符合One-wire总线协议的从芯片都有一个唯一的地址,包括48位的序列号、8位的分类码和8位的CRC代码。主芯片对各个从芯片的寻找依据这64位的不同来进行。,(3)SPI串行扩展接口(三线制)SPI(Serial Peripheral Interface,串行外设接口)总线系统是Motorola公司提出的一种同步串行外设接口,允许MCU与各种外围设备以同步串行方式进行通信,其外围设备种类繁多,从最简单的
4、TTL移位寄存器到复杂的LCD显示驱动器、网络控制器等,可谓应有尽有。SPI总线提供了可直接与各厂家生产的多种标准外围器件直接连接的接口,该接口一般使用4根线:串行时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS。由于SPI系统总线只需3根公共的时钟数据线和若干位独立的从机选择线(依据从机数目而定),在SPI从设备较少而没有总线扩展能力的单片机系统中使用特别方便。即使在有总线扩展能力的系统中采用SPI设备也可以简化电路设计,省掉很多常规电路中的接口器件,从而提高了设计的可靠性。,(4)USB串行扩展接口 USB比较于其他传统接口的一个
5、优势是即插即用的实现,即插即用(Plug-and-Play)也可以叫做热插拔(Hot plugging)。USB接口的最高传输率可达12Mbit/s。一个USB口理论上可以连接127个USB设备,连接的方式也十分灵活。(5)Microware串行扩展接口 Microwire串行通信接口是NS公司提出的,Microwire是串行同步双工通信接口,由一根数据输出线、一根数据输入线和一根时钟线组成。所有从器件的时钟线连接到同一根SK线上,主器件向SK线发送时钟脉冲信号,从器件在时钟信号的同步沿作用下输出/输入数据。主器件的数据输出线DI和所有从器件的数据输入线相接,从器件的数据输出线都接到主器件的数
6、据输入线DO上。与SPI接口类似,每个从器件也都需要另外提供一条片选通线CS。,(6)CAN总线 CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备,由德国Bosch公司最先提出的电子主干系统中,均嵌入CAN控制装置。一个由CAN总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。CAN可提供高达1Mbit/s的数据传输速率,这使实时控制
7、变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。CAN是一种多主方式的串行通信总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达10km时,CAN仍可提供高达50Kbit/s的数据传输速率。,9.2 I2C总线的串行扩展 单片机应用系统正向小型化、高可靠性、低功耗等方向发展。在一些设计功能较多的系统中,常需扩展多个外围接口器件。若采用传统的并行扩展方式,将占用较多的系统资源,且硬件电路复杂,成本高、功耗大、可靠性差。为此,Philips公司推出了一种高效、可靠、方便的串行扩展总线I2C总线。单片机系统采用I2C总线后将大大简
8、化电路结构,增加硬件的灵活性,缩短产品开发周期,降低成本,提高系统可靠性。I2C总线(Inter IC BUS)是Philips推出的芯片间串行传输总线。它以两根连线实现了完善的全双工同步数据传送,可以极方便地构成多机系统和外围器件扩展系统。I2C总线采用了器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法,从而使硬件系统具有最简单而灵活的扩展方法。,9.2.1 I2C总线器件应用概述一、I2C总线器件 目前许多单片机厂商引进了Philips公司的I2C总线技术,推出了许多带有I2C总线接口的单片机。Philips公司除了生产具有I2C总线接口的单片机外,还推出了许多具备I2C
9、总线的外部接口芯片,如24XX系列的EEPROM、128字节的静态RAM芯片PCF8571、日历时钟芯片PCF8563、4位LED驱动芯片SAA1064、160段LCD驱动芯片PCF8576等多种类多系列接口芯片。二、I2C总线工作原理 采用I2C总线系统结构如下图9-1所示。,图9-1 I2C总线系统结构图 其中,SCL是时钟线,SDA是数据线。总线上的各器件都采用漏极开路结构与总线相连,因此,SCL、SDA均需接上拉电阻,总线在空闭状态下均保持高电平。I2C总线支持多主和主从两种工作方式,通常为主从工作方式。在主从工作方式中,系统中只有一个主器件(单片机),总线上其它器件都是具有I2C总线
10、的外围从器件。在主从工作方式中,主器件启动数据的发送(发出启动信号),产生时钟信号,发出停止信号。为了实现通信,每个从器件均有唯一一个器件地址,具体地址由I2C总线委员会分配。,(一)I2C总线工作方式 I2C总线上进行一次数据传输的通信格式如下图9-2所示。,(二)I2C总线数据传输方式模拟 目前已有多家公司生产具有I2C总线的单片机,如Philips、Motorola、韩国三星、日本三菱等公司。这类单片机在工作时,总线状态由硬件监测,无须用户介入,应用非常方便。对于不具有I2C总线接口的MCS-51单片机,在单主机应用系统中可以通过软件模拟I2C总线的工作时序,在使用时,只需正确调用该软件
11、包就可很方便地实现扩展I2C总线接口器件。,I2C总线软件包组成:启动信号子程序STA停止信号子程序STOP发送应答位子程序MACK发送非应答位子程序MNACK应答位检查子程序CACK单字节发送子程序WRBYT单字节接收子程序RDBYTn字节发送子程序WRNBYTn字节接收子程序RDNBYT,9.2.2 EEPROM AT24CXX系列 具有I2C总线接口的EEPROM 拥用多个厂家的多种类型产品。在此仅介绍ATMEL公司生产的AT24CXX系列EEPROM,主要型号有AT24C01/02/04/08/16,其对应的存储容量分别为1288/2568/5128/10248/20488。采用这类芯
12、片可解决掉电数据保护问题,可对所存数据保存100年,并可多次擦写,擦写次数可达10万次。在一些应用系统设计中,有时需要对工作数据进行掉电保护,如电子式电能表等智能化产品。若采用普通存储器,在掉电时需要备用电池供电,并需要在硬件上增加掉电检测电路,但存在电池不可靠及扩展存储芯片占用单片机过多端口的缺点。采用具有I2C总线接口的串行EEPROM器件可很好地解决掉电数据保持问题,且硬件电路简单。,一、现在以AT24C02为例,讲述其结构及功能(一)AT24C02的引脚功能 AT24C02芯片的常用封装形式有直插(DIP8)式和贴片(SO-8)式两种,AT24C02直插式引脚图如下图9-3所示。,各引
13、脚功能如下:1脚,2脚,3脚(A0、A1、A2)-可编程地址输入端;4脚(GND)-电源地;5脚(SDA)-串行数据输入/输出端;6脚(SCL)-串行时钟输入端;7脚(WP)-写保护输入端,用于硬件数据保护;当其为低电平时,可以对整个存储器进行正常的读/写操作;当其为高电平时,存储器具有写保护功能,但读操作不受影响。8脚(VCC)-电源正端。,(二)AT24C02存储结构与寻址 AT24C02的存储容量为256B,内部分成32页,每页8B。操作时有两种寻址方式:芯片寻址和片内地址寻址。AT24C02的芯片地址为1010,其地址控制字格式为1010A2A1A0D0.其中A2,A1,A0为可编程地
14、址选择位。A2,A1,A0引脚接高、低电平后得到确定的三位编码,与1010形成7位编码,即为该器件的地址码。D0为芯片读写控制位,该位为0,表示对芯片进行写操作;该位为1,表示对芯片进行读操作。片内地址寻址可对内部256B中的任一个地址进行读/写操作,其寻址范围为0X00-0Xff,共256个寻址单元。(三)AT24C02读/写操作时序 串行EEPROM一般有两种写入方式:一种是字节写入方式,另一种是页写入方式。页写入方式允许在一个写周期内(10ms左右)对一个字节到一页的若干字节进行编程写入,AT24C02的页面大小为8B。采用页写方式可提高写入效率,但也容易发生事故。AT24C02系列片内
15、地址在接收到每一个数据字节后自动加1,故装载一页以内数据字节时,只需输入首地址。如果写到此页的最后一个字节,主器件继续发送数据,数据将重新从该页的首地写入,进而造成原来的数据丢失,这就是页地址空间的“上卷”现象。解决“上卷”的方法是:在第8个数据后将地址强制加1,或是将下一页的首地址重新赋给寄存器。,1.字节写入方式:单片机在一次数据帧中只访问EEPROM一个单元。在这种方式下,单片机先发送启动信号,然后送一个字节的控制字,再送一个字节的存储器单元子地址,上述几个字节都得到EEPROM响应后,再发送8位数据,最后发送1位停止信号。发送格式如下图9-4所示。,图9-4 字节写入时序图,2.页写入
16、方式:单片机在一个数据写周期内可以连续访问1页(8个)EEPROM存储单元。在该方式中,单片机先发送启动信号,接着送一个字节的控制字,再送1个字节的存储器单元地址,上述几个字节都得到EEPROM应答后就可以送最多1页的数据,并顺序存放在以指定起始地址开始的相继单元中,最后以停止信号结束,页写入帧格式如下图9-5所示。,图9-5 页写入时序图,3.指定地址读操作:读指定地址单元的数据。单片机在启动信号后先发送含有片选地址的写操作控制字,EEPROM应答后再发送1个(2KB以内的EEPROM)字节的指定单元的地址,EEPROM应答后再发送1个含有片选地址的读操作控制字,此时如果EEPROM作出应答
17、,被访问单元的数据就会按SCL信号同步出现在串行数据/地址线SDA上。这种读操作的数据帧格式如下图9-6所示。,图9-6 指定地址字节读时序图,4.指定地址连续读:此种方式的读地址控制与前面指定地址读相同。单片机接收到每个字节数据后应做出应答,只要EEPROM检测到应答信号,其内部的地址寄存器就自动加1指向下一单元,并顺序将指向的单元的数据送到SDA串行数据线上。当需要结束读操作时,单片机接收到数据后在需要应答的时刻发送一个非应答信号,接着再发送一个停止信号即可。这种读操作的数据帧格式如下图9-7所示。,图9-7 连续字节读时序图,二、AT24C系列存储卡简介(一)IC卡标准与引脚定义 IC卡
18、标准与引脚定义如下图9-8所示。,图9-8 IC卡示意图 1987年,国际标准化组织ISO专门为IC卡制定了国际标准:ISO/IEC7816-1、2、3、4、5、6,这些标准为IC卡在全世界范围内的推广和应用创造了规范化的前提和条件,使IC卡技术得到了飞速的发展。根据国际标准ISO 7816对接触式IC卡的规定,在IC卡的左上角封装有IC芯片,其上覆盖有6或8个触点和外部设备进行通信,见上图9-8。部分触点及其定义如下表9-1所示。,表9-1 IC卡引脚定义,(二)AT24C系列存储卡型号与容量ATMEL公司生产的AT24C系列存储卡采用低功耗CMOS工艺制造,芯片容量规格比较齐全,工作电压选
19、择多样化,操作方式标准化,因而使用方便,是目前应用较多的一种存储卡。这种卡实质就是前面介绍的AT24C系列存储器。该类IC卡型号与容量如下表9-2所示。,表9-2 AT24C系列存储卡型号与容量,(三)AT24C系列存储卡工作原理,存储卡内部逻辑结构如下图9-9所示。其中A2、A1、A0为器件/页地址输入端,在IC卡芯片中,将此三端接地,并且不引出到触点上(如图中虚线所示)。,(三)AT24C系列存储卡工作原理 存储卡内部逻辑结构如下图9-9所示。其中A2、A1、A0为器件/页地址输入端,在IC卡芯片中,将此三端接地,并且不引出到触点上(如图中虚线所示)。,图9-9 IC卡内部逻辑结构,1.内
20、部逻辑单元功能芯片信号线有两条:SCL时钟信号线和SDA数据信号线,数据传输采用I2C总线协议。当SCL为高电平期间,SDA上的数据信号有效;当SCL为低电平期间,允许SDA上的数据信号变化。启动与停止逻辑单元。当SCL为高电平期间,SDA从低电平上升为高电平的跳变信号作为I2C总线的停止信号;当SCL为高电平期间,SDA从高电平下降为低电平的跳变信号作为I2C总线的启动信号。串行控制逻辑单元。这是芯片正常工作的控制核心单元。该单元根据输入信号产生各种控制信号。在寻址操作时,它控制地址计数器加1并启动地址比较器工作;在进行写操作时,它控制升压/定时电路为EEPROM提供编程高压;在进行读操作时
21、,它对输出/确认逻辑单元进行控制。地址/计数器单元。根据读/写控制信号及串行逻辑控制信号产生EEPROM单元地址,并分别送到X译码器进行字选(字长8位),送到Y译码器进行位选。升压定时单元。该单元为片内升压电路。在芯片采用单一电源供电情况下,它可将电源电压提升到1221.5V,以供作EEPROM编程高压。EEPROM存储单元。该单元为IC卡芯片的存储模块,其存储单元多少决定了卡片的存储容量。,2.芯片寻址方式器件地址与页面选择。IC卡芯片的器件地址为8位,即7位地址码,1位读/写控制码。如上图9-9可见,与普通24系列EEPROM集成电路相比,IC卡芯片的A2、A1、A0端均已在卡片内部接地,
22、而没有引到外部触点上,在使用时,不同型号IC卡的器件地址码见下表9-3所示。,R/,R/,R/,R/,R/,R/,对于容量为1K、2K的卡片,其器件地址是唯一的,无需进行页面选择。对于容量为4K、8K、16K的卡片,利用P2、P1、P0作为页面地址选择。不同容量的芯片,页面数不同,如AT24C08根据P1、P0的取值不同,可有0、1、2、3四个页面,每个页面有256个字节存储单元。对于容量为32K的卡片,没有采用页面寻址方式,而是采用直接寻址方式。字节寻址。在器件地址码后面,发送字节地址码。对于容量小于32K的卡片,字节地址码长度为一个字节(8位);对于容量为32K的卡片,采用2个8位数据字作
23、为寻址码。第一个地址字只有低4位有效,此低4位与第二个字节的8位一起组成12位长的地址码,对4096个字节进行寻址。,3.读、写操作对这种IC卡的读、写操作实质上就是对普通AT24C系列EEPROM的读写,操作方式完全一样。,9.2.3 AT24C02与单片机应用实例,例题9-1:如图9-10所示,该电路实现的功能是开机次数统计。数码管初始显示“0”,复位后,数码管将无数字显示。当再次按下开机,CPU会从AT24C02里面调出保存的开机次数,并加1后显示在数码管上,如此反复。,图9-10 AT24C02与单片机应用,解:程序如下。#include#include#define uchar un
24、signed char#define uint unsigned int#define OP_WRITE 0 xa0/器件地址以及写入操作#define OP_READ 0 xa1/器件地址以及读取操作 uchar code display=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90;sbit SDA=P23;sbit SCL=P22;sbit SMG=P37;/定义数码管选择引脚void start();void stop();uchar shin();bit shout(uchar write_data);void
25、 write_byte(uchar addr,uchar write_data);/void fill_byte(uchar fill_size,uchar fill_data);void delayms(uint ms);uchar read_current();uchar read_random(uchar random_addr);#define delayNOP();_nop_();_nop_();_nop_();_nop_();,main(void)uchar i=1;SMG=0;/选数码管 SDA=1;SCL=1;i=read_random(1);/从AT24C02移出数据送到i暂
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 串行 扩展 技术
链接地址:https://www.31ppt.com/p-5136665.html