【大学课件】单片机原理与接口技术课件 单片机系统常用串行扩展技术.ppt

上传人:sccc 文档编号:6097536 上传时间:2023-09-24 格式:PPT 页数:87 大小:4.88MB
返回 下载 相关 举报
【大学课件】单片机原理与接口技术课件 单片机系统常用串行扩展技术.ppt_第1页
第1页 / 共87页
【大学课件】单片机原理与接口技术课件 单片机系统常用串行扩展技术.ppt_第2页
第2页 / 共87页
【大学课件】单片机原理与接口技术课件 单片机系统常用串行扩展技术.ppt_第3页
第3页 / 共87页
【大学课件】单片机原理与接口技术课件 单片机系统常用串行扩展技术.ppt_第4页
第4页 / 共87页
【大学课件】单片机原理与接口技术课件 单片机系统常用串行扩展技术.ppt_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《【大学课件】单片机原理与接口技术课件 单片机系统常用串行扩展技术.ppt》由会员分享,可在线阅读,更多相关《【大学课件】单片机原理与接口技术课件 单片机系统常用串行扩展技术.ppt(87页珍藏版)》请在三一办公上搜索。

1、1,00:13,单片机原理与接口技术,第9章 单片机系统常用串行扩展技术,http:/,2,00:13,(1)了解常用串行总线协议,熟悉I2C总线工作原理。(2)掌握利用软件编程模拟I2C总线时序的程序设计方法。(3)熟悉串行EEPROM存储器和Flash存储器的接口设计方法。(4)熟悉串行总线扩展I/O接口的方法。(5)熟悉串行键盘和LED显示器的扩展方法。,本章教学要求,3,00:13,本 章 目 录,9.1 常用串行总线协议 9.1.1 I2C串行总线 9.1.2 SPI总线 9.1.3 单线总线9.2 串行存储器扩展 9.2.1 I2C接口EEPROM的存储器扩展 9.2.2 SPI接

2、口的大容量FLASH存储器扩展9.3 串行转并行I/O接口扩展 9.3.1 串行转并行I/O扩展芯片的工作原理,9.3.2 串行总线扩展I/O接口实例9.4 串行键盘和LED显示器扩展 9.4.1 串行键盘和LED显示器控制芯片的工作原理 9.4.2 串行键盘和LED显示器扩展实例9.5 串行总线扩展实例简介习题与思考题,4,00:13,前 言,传统的单片机系统采用并行总线扩展外围设备,对地址线译码产生片选信号,为每个外设分配唯一的地址,利用并行数据总线传输数据,需要的单片机芯片引脚数多。例如8051单片机采用并行总线扩展一个外围芯片需要的最少引脚数为:8(数据)+2(RD,WR)+1(/CS

3、)+n条地址线 n=log2(内部寄存器或存储器字节的数目)这种方式虽然传输速度高,但是芯片封装体积增大使成本升高,同时电路板体积增大,布线复杂度高,也带来故障点增多,调试维修多有不便。随着电子技术的发展,串行总线技术日益成熟,具有代表性的典型串行总线有IC、SPI、1-Wire、MICROWIRE等。随着串行总线数据传输速率的逐渐提高和芯片逐渐系列化,为多功能、小型化和低成本的单片机系统的设计提供了更好的解决方案。采用串行总线扩展技术可以使系统的硬件设计简化,系统的体积减小,系统的更改和扩充更为容易。可以说串行总线技术已成为单片机总线的主导技术。本章将主要介绍单片机系统的串行总线扩展技术和方

4、法。,5,00:13,9.1 常用串行总线协议,为了简化集成电路之间的互连,Philips公司开发出一种标准外围总线互连接口,称为“集成电路间总线”或“内部集成电路总线”I2C(Inter-IC)。I2C总线是一个两线双向串行总线接口标准,采用这种接口标准的器件只需要使用两条信号线与单片机进行连接,就可以完成单片机与接口器件之间的信息交互。其相关的术语有:发送器(Transmitter):发送数据到总线的器件;接收器(Receiver):从总线接收数据的器件;主器件(Master):即主控器件,初始化发送、产生时钟信号和终止发送的器件;从器件(Slave):被主控器件寻址的器件。,9.1.1

5、I2C串行总线,-术语,6,00:13,9.1.1 I2C串行总线,由于I2C总线的双向特性,总线上的主器件和从器件都可能成为发送器和接收器。在主器件发送数据或命令时,主器件是发送器(主发送器);在主器件接收从器件的数据时,主器件为接收器(主接收器);从器件在接收主器件命令或数据时,从器件是接收器(从接收器);从器件向主器件返回数据时则是发送器(从发送器)。由于采用串行数据传输方式,其传输速率不是太高。标准模式下数据传输速率为100 kb/s;快速模式下传输速率为400 KB/s;高速模式传输速率为3.4 Mb/s。,-特性,7,00:13,9.1.1 I2C串行总线,采用I2C总线设计系统具

6、有如下的优点:(1)实际的器件与功能框图中的功能模块相对应,所有I2C器件共用一条总线,便于将框图转化成原理图。(2)在两条线上完成寻址和数据传输,节省电路板体积。(3)器件通过内置地址结合可编程地址的方式寻址,不需设计总线接口;增加和删减系统中的外围器件,不会影响总线和其他器件的工作,便于系统功能的改进和升级。(4)数据传输协议可以使系统完全由软件来定义,应用灵活适应面广。(5)通过多主器件模式可以将外部调试设备连接到总线上,为调试、诊断提供便利。,-特点,8,00:13,9.1.1 I2C串行总线,I2C总线采用二线制传输,分别是:串行数据线SDA(Serial Data Line)串行时

7、钟线SCL(serial clock line)所有I2C器件都连接在SDA和SCL上。单片机系统采用I2C总线可方便地扩展外部存储器、AD和DA转换器、实时时钟、键盘、显示等接口电路。如下图。,1I2C总线的电气连接,-I2C总线,9,00:13,9.1.1 I2C串行总线,为了避免总线信号混乱和冲突,I2C总线接口电路均为漏极开路或集电极开路,总线上必须有上拉电阻。上拉电阻与电源电压VDD和SDA/SCL总线串接电阻Rs有关,一般可选510K。I2C总线的外围扩展器件大都是CMOS器件,总线有足够的电流驱动能力,因此总线扩展的节点数由负载电容特性决定,I2C总线的驱动能力为400 pF。可

8、根据器件的I2C总线接口的等效电容确定可扩展的器件数目和总线的长度,以减小总线传输的延迟和出错。,-电气性能,10,00:13,9.1.1 I2C串行总线,I2C总线支持多主和主从两种工作方式。一般的设计中I2C总线工作在主从工作方式,I2C总线上只有一个主器件,其它均为从器件。主器件对总线具有控制权。在多主方式中,通过硬件和软件的仲裁,主控制器取得总线控制权。,2I2C总线的工作方式,3I2C总线的器件寻址方式,I2C总线上连接的器件都是总线上的节点,每个时刻只有一个主控器件操控总线。每个器件都有一个唯一确定的地址,主控器件通过这个地址实现对从器件的点对点数据传输。器件的地址由7位组成,其后

9、附加了1位方向位,确定数据的传输方向。这8位构成了传输起始状态S后的第一个字节,如图所示。,-工作及寻址方式,11,00:13,9.1.1 I2C串行总线,器件的地址由4位固定位和3位可编程位组成。固定位由生产厂家给出,用户不能改变。可编程位与器件的地址管脚的连接相对应,当系统中使用了多个相同芯片时可以进行正确的访问。,-总线器件寻址方式,当主器件发送了数据帧的第一个字节后,总线上连接的从器件会将接收到的地址数据与自己的地址进行比较,被选中的从器件再根据方向位确定是接收数据还是发送数据。,不同的器件有时会有相同的固定地址编码,例如静态RAM器件PCF8570和EEPROM器件PCF8582的固

10、定位均为1010,此时通过可编程位进行区分,如图所示。,12,00:13,9.1.1 I2C串行总线,I2C总线必须由主控器件控制,主控器件产生起始和停止条件,控制总线的传输方向,并产生时钟信号同步数据传输,如下图所示。,4I2C总线的的数据传输过程,总线上信号有:起始信号(S),终止信号(P),应答信号(A/NA),数据信号等,-数据传输过程,13,00:13,9.1.1 I2C串行总线,总线信号:(1)起始信号(S):在时钟信号SCL为高电平时,数据线SDA从高电平变为低电平产生起始条件,标志着启动I2C总线。(2)终止信号(P):在时钟信号SCL为高电平时,数据线SDA从低电平变为高电平

11、,标志着终止I2C总线传输过程。(3)应答信号(A/NA):I2C协议规定总线每传输一字节数据后,都要有一个应答位。应答位由接收器件产生,即主器件向从器件发送数据时,应答位由从器件产生;主器件接收从器件数据时,应答位由主器件产生。数据接收方可以接收数据时,产生应答信号(ACK)。当主器件接收从器件送来的最后一个数据后,必须给从器件发一个非应答信号(NACK),令从器件释放SDA信号线,这样主器件可以发送终止信号来结束数据的传输。,-总线信号,14,00:13,9.1.1 I2C串行总线,(4)数据信号:地址和数据均以字节为单位,且高位在前,低位在后。数据接收方每接收一字节数据都产生一个应答信号

12、。发送器必须在接收器发送应答信号前,预先释放对SDA线的控制(SDA=1),以便主控器件对SDA线上应答信号的检测。时钟:无论何种情况下时钟信号始终由主器件产生。时钟线SCL的一个时钟周期只能传输一位数据,I2C总线的通信速率受主器件控制,在不超过芯片最快速度的情况下,取决于主器件的时钟信号。,-总线信号,时钟,15,00:13,9.1.1 I2C串行总线,-传输信息,主器件与从器件之间传输数据是交互进行的,除了起始位、结束位及数据外,还应包含被叫对象地址、操作性质(读/写)、应答等信息,即一次信息传输过程传输的信息包含6部分。一个完整的数据传输过程如下图所示。,16,00:13,9.1.1

13、I2C串行总线,根据所连接的器件性质不同,在I2C总线上可能存在如下的数据传输方式:(1)主器件发送命令或数据到从器件。在寻址字节之后,主控发送器通过SDA线向从接收器发送信息,信息发送完毕后发送终止信号,以结束传送过程。这种情况下数据传输的方向不发生变化。例如向DA转换器写入数据,或向IO扩展器件写输出值。如图(a)所示。,-数据传输方式,17,00:13,9.1.1 I2C串行总线,(2)主器件读取从器件的数据。寻址字节发送完成的第一个应答信号后,主器件由发送器变为接收器,从器件则转为发送器。主器件通过SDA线接收从器件发送信息。这种情况下数据传输方向会发生变化。例如读取AD转换器的转换结

14、果,或者读取IO扩展器件的输入信息。如图(b)所示。,-数据传输方式,18,00:13,9.1.1 I2C串行总线,(3)复合模式。主器件向从器件发送命令或数据后,再次向从器件进行一次操作性质相反的操作。例如在对串行EEPROM的操作中,先向器件写入要访问的存储器地址,然后再向器件发送读取命令,读回数据。如图(c)所示。,-数据传输方式,19,00:13,9.1.1 I2C串行总线,主机与从机进行通信时,有时需要切换数据的收发方向。例如,访问某一具有I2C总线接口的EEPROM存储器时,主机先向存储器输入存储单元的地址信息(发送数据),然后再读取其中的存储内容(接收数据)。在切换数据的传输方向

15、时,可以不必先产生停止条件再开始下次传输,而是直接再一次产生开始条件。I2C总线在已经处于忙的状态下,再一次直接产生起始条件的情况被称为重复起始条件。重复起始条件常常简记为Sr。正常的起始条件和重复起始条件在物理波形上并没有什么不同,区别仅仅是在逻辑方面。在进行多字节数据传输过程中,只要数据的收发方向发生了切换,就要用到重复起始条件。,-数据传输方式,20,00:13,9.1.1 I2C串行总线,-I2C总线器件,5常用的I2C总线器件,21,00:13,9.1.2 SPI总线,SPI(Serial Peripheral Interface)总线也是当前广泛使用的一种串行外设接口,由Motor

16、ola公司提出,用来实现单片机与各种外围设备的串行数据交换。外围设备可以是数据存储器、网络控制器、键盘和显示驱动器、A/D和D/A转换器。SPI总线还可实现微控制器之间的数据通信等。SPI总线主要特性在于采用3线同步传输,可以同时发出和接收串行数据,工作在全双工方式下。SPI最高数据传输速率可达几 M bps。,-SPI总线特性,22,00:13,9.1.2 SPI总线,SPI总线采用四线通信,4根线分别为:SCK:串行时钟线,用作同步脉冲信号,有的芯片称为CLK;MISO:主机输入/从机输出数据线,有的芯片称为SDI、DI或SI;MOSI:主机输出/从机输入数据线,有的芯片称为SDO、DO或

17、SO;CS:从机选择线,由主机控制,有的芯片称为nCS、CS或STE等。,-SPI总线的4根线,1SPI总线的电气连接,23,00:13,9.1.2 SPI总线,总线上有多个SPI接口的单片机时,应为一主多从,在某一时刻只能有一个单片机为主器件。如果总线上只有一个SPI接口器件,不需要进行寻址操作而进行全双工通信。,-SPI总线连接,大多数SPI从器件具有三态输出,器件没有选中时处于高阻态,允许MISO引脚并接在同一条信号线上,但如果器件的输出不是三态特性时,需要接到单片机单独的I/O口。,在扩展多个SPI外围器件时,单片机应分别通过I/O口线为每个从器件提供独立的使能信号,硬件上比I2C系统

18、要稍微复杂一些,如下图所示。但是SPI不需要在总线上发送寻址序列,软件上简单高效。,24,00:13,9.1.2 SPI总线,数据的传输格式是高位(MSB)在前,低位(LSB)在后。SPI总线有4种工作模式,是根据时钟的极性和相位来划分的。,-SPI总线工作模式,2SPI总线的数据传输过程,25,00:13,9.1.2 SPI总线,在SPI传输过程中,发送方首先将数据上线,然后在同步时钟信号的上升沿SPI的接收方锁存位信号。在SCK信号的一个周期结束时(下降沿),发送方输出下一位数据信号,再重复上述过程,直到一字节的8位信号传输结束。,-SPI总线工作模式 0,工作模式0,26,00:13,9

19、.1.2 SPI总线,在SPI传输过程中,在SCK的上升沿发送方输出位数据,SPI的接收方在SCK的下降沿锁存位信号。在SCK信号的一个周期结束时(上升沿),发送方输出下一位数据信号,再重复上述过程,直到一字节的8位信号传输结束。,-SPI总线工作模式 1,工作模式1,27,00:13,9.1.2 SPI总线,在SPI传输过程中,发送方首先将数据上线,然后在同步时钟信号的下降沿SPI的接收方锁存位信号。在SCK信号的一个周期结束时(上升沿),发送方输出下一位数据信号,再重复上述过程,直到一字节的8位信号传输结束。,-SPI总线工作模式 2,工作模式2,28,00:13,9.1.2 SPI总线,

20、在SPI传输过程中,在SCK的下降沿发送方输出位数据,SPI的接收方在SCK的上升沿锁存位信号。在SCK信号的一个周期结束时(下降沿),发送方输出下一位数据信号,再重复上述过程,直到一字节的8位信号传输结束。,-SPI总线工作模式 3,工作模式3,29,00:13,9.1.2 SPI总线,3常用的SPI总线器件,-SPI总线器件,30,00:13,9.1.3 单线总线,1-Wire单线总线是有maxim公司推出的微控制器外围设备串行扩展总线,适用于单主机系统,可控制一个或多个从器件。单线总线只采用一根数据线来完成从器件供电和主从设备之间的数据交换,加上地线共需两根线,即可保证器件的全速运行。采

21、用单线总线可最大限度减少系统的连线,降低电路板设计的复杂度。,-1-Wire总线特性,31,00:13,9.1.3 单线总线,1单线总线的电气连接,单线总线器件内部有唯一的64位器件序列号,允许多个器件挂接在同一条1-Wire总线上。通过网络操作命令协议,主机可以对其进行寻址和操控。下图是一个单线总线系统扩展温度传感器的例子。,-单线总线连接,32,00:13,9.1.3 单线总线,1单线总线的电气连接,多数1-Wire器件没有电源引脚,而采用寄生供电的方式从1-Wire通信线路获取电源。因此需要对单线总线上拉,如图中电阻RP。上拉电压越高,1-Wire器件所得到的功率就越大。电压越高,网络中

22、可以挂接的1-Wire从器件也越多,时隙之间的恢复时间也越短。如果距离较远的情况下,需要提供额外的电源。采用单片机作为单线总线主机时要注意所连的I/O口必须是双向的,其输出为漏极开路,且线上具有弱上拉电阻,这是单线总线接口的基本要求。,-单线总线连接,33,00:13,9.1.3 单线总线,由于单线总线没有时钟脉冲进行同步,需要严格的时序和协议来保证总线的操作有效性和数据的完整性。单线总线有四种基本操作,分别是复位、写1、写0和读位操作。单线总线将完成一位传输的时间称为一个时隙。定义了基本操作后,对器件的读写操作可通过多次调用位操作来实现。,2单线总线的基本操作,-单线总线基本操作,34,00

23、:13,9.1.3 单线总线,单线总线基本操作定义和实现方法,-单线总线基本操作,35,00:13,9.1.3 单线总线,-单线总线操作时序,单线总线操作时序和推荐时间,采用单线总线通信,要求CPU能够产生较为精确的1s延时,还要保证通信过程不能被中断。,36,00:13,9.1.3 单线总线,为了正确访问不同的单线总线器件,每个单线总线器件都内置一个唯一的64位二进制ROM代码,以标志其ID号。其中前8位是1-Wire家族码,中间48位是唯一的序列号,最后8位是前56位的CRC(循环冗余校验)码,如图所示。,3单线总线的器件ROM码,-器件ROM码,主机根据ROM码的前56位来计算CRC值,

24、并与读取回来的值进行比较,判断接收的ROM码是否正确,CRC码的多项式函数为CRC=X8+X5+X4+1。,37,00:13,9.1.3 单线总线,单线总线协议针对不同类型的器件规定了详细的命令,命令有两种类型。一类是ROM命令,每种命令均为8位,用来搜索、甄别从器件,实现从器件寻址或简化总线操作。另一类是器件操作的功能命令,如存储器操作、转换启动等,具体的命令与器件相关。常用的ROM命令有:搜索ROM命令F0h:获取从器件的类型和数量读ROM命令33h:读取从器件的64位ROM码匹配ROM命令55h:用于选定总线上的从器件跳过ROM命令CCh:不发ROM代码直接操作总线器件重复命令A5h:重

25、复访问器件,4单线总线的命令,-ROM命令,38,00:13,9.1.3 单线总线,所有单线总线操作的流程为:先对总线上的器件进行初始化。然后利用ROM操作指令寻找和匹配,指定待操作器件。接着发出功能指令,进行具体操作或传输数据。系统对从器件的各种操作必须按协议进行,只有主机呼叫时,从器件才能应答,如果命令顺序混乱,则总线将不能正常工作。,5单线总线的数据传输过程,-单线总线的操作流程,39,00:13,9.1.3 单线总线,单线总线器件的用途:存储器,混合信号电路,货币交易,识别,安全认证等。常用的单线总线器件如下表所示。,-单线总线器件用途,6常用的单线总线器件,40,00:13,9.2

26、串行存储器扩展,在单片机应用系统设计中,由于单片机的I/O端口往往有复用功能,加之引脚数目的限制,在使用不同的功能时,I/O端口引脚可能不够用。若所需I/O端口引脚数目较多则可以考虑采用第8章所述I/O端口扩展方法进行I/O端口扩展。若所缺I/O端口引脚数目不多,则可以考虑将并行接口改串行接口。若线路板尺寸不允许,这时也需考虑将并行器件改为串行器件,因为串行器件引脚较少,体积较小。本节以Microchip公司24CXX系列的EEPROM存储器为例介绍I2C总线的存储器扩展技术。,9.2.1 I2C接口EEPROM的存储器扩展,-I2C扩展EEPROM,41,00:13,9.2.1 I2C接口E

27、EPROM的存储器扩展,124CXX系列串行EEPROM引脚功能,24CXX是系列串行EEPROM器件,同I2C串行总线兼容,其容量从256B到2KB不等,器件型号及容量见下表。,-I2C EEPROM芯片,42,00:13,9.2.1 I2C接口EEPROM的存储器扩展,124CXX系列串行EEPROM引脚功能,24CXX系列串行EEPROM器件是典型的8脚PDIP封装,如图所示。各引脚功能如下:SDA:串行数据线。SCL:串行时钟线。WP:写保护输入,当WP接地时,允许EEPROM完成正常的读写操作;而当WP接电源电压VCC时,EEPROM处于写保护状态。A2、A1、A0:器件可编程地址输

28、入,用于确定EEPROM在I2C串行总线上的地址。VCC和GND:EEPROM器件正电源与地。,-I2C EEPROM引脚,43,00:13,9.2.1 I2C接口EEPROM的存储器扩展,由于24CXX器件是功能单一的存储器器件,因而在I2C总线中属于被控器件。若在I2C总线上连接EEPROM器件,则传输信息的目标地址部分的高4位地址用于识别存储器器件,低3位用于选择挂接在I2C总线上的目标存储器。,3串行EEPROM操作,2串行EEPROM寻址,串行EEPROM操作包括:1)字节写操作2)页式写操作3)读操作,-寻址及操作,44,00:13,9.2.1 I2C接口EEPROM的存储器扩展,

29、1)串行EEPROM字节写操作 字节写操作是将数据随机写入EEPROM中任意一个存储单元。为完成字节写操作,单片机应当向EEPROM器件传送起停信号、器件地址、寻址单元地址及待写数据,根据9.1.1节有关信息传输过程所包含的信息描述,其操作过程如下:(1)单片机发送起始标志位START;(2)单片机发送器件地址及读写控制位(R/(/W)=0);(3)EEPROM回送应答信号位ACK;(4)单片机发送寻址存储单元地址;(5)EEPROM回送应答信号位ACK;(6)单片机发送待写数据字节;(7)EEPROM回送应答信号位ACK;(8)单片机发送终止标志位STOP。,-字节写操作,45,00:13,

30、9.2.1 I2C接口EEPROM的存储器扩展,2)串行EEPROM页式写操作串行EEPROM支持页操作,根据器件容量不同,页的大小不同,一般一页包括816B。页式写操作是指单片机在发送EEPROM器件地址与终止标志位STOP之间,可以连续向EEPROM发送一页数据。在页操作过程中,EEPROM自动修改内部存储单元地址指针,并在收到STOP标志后将收到的数据写入相应存储单元中。,-页写操作,46,00:13,9.2.1 I2C接口EEPROM的存储器扩展,3)串行EEPROM读操作 在信息传输过程中,若将读/写控制位设置为1(R/(/W)=1),则执行对EEPROM的读操作。串行EEPROM支

31、持3种读操作,即:当前地址读操作、随机读操作、顺序读操作。读操作类似写操作,仅是器件地址中的读/写控制位应当设置成逻辑1。在当前地址读操作过程中,单片机和被控EEPROM之间的信息交换描述如下:(1)单片机发送起始标志位START;(2)单片机发送读/写控制位R/(/W)=1;(3)EEPROM回送应答信号位ACK;(4)EEPROM输出当前地址的字节数据;(5)单片机产生非应答信号位ACK;(6)单片机发送终止标志位STOP,信息传输结束。,-读操作,47,00:13,9.2.1 I2C接口EEPROM的存储器扩展,随机读操作方式由虚字节写周期开始。虚字节写周期由起始标志位START、器件地

32、址和寻址目标地址组成,其后是当前地址读操作周期。顺序读操作方式采用当前地址读操作开始,或是采用随机读操作开始。在顺序读操作方式下,主控CPU在接收每一个字节数据后,都要检测是否存在应答信号ACK,如在字节数据后检测到应答信号ACK,继续进行EEPROM读操作,并传输下一个字节数据,直至检测到非应答信号ACK=1时,就终止读出过程。,-随机或顺序读操作,48,00:13,9.2.1 I2C接口EEPROM的存储器扩展,例9-1 MCS-51单片机与24C01 EEPROM的硬件接口电路如图所示。编写24C01的读写子程序。分析:,424C01与单片机接口方法,MCS-51单片机无I2C接口,用P

33、0.0和P0.1分别代替SDA和SCL信号线,用软件实现I2C总线协议。对中WP接地(处于读写状态)。只有一片EEPROM芯片,地址线A0,A1,A2接地。MCS-51单片机的P0口没有内部上拉电阻,因而外接上拉电阻R1和R2,以保证总线在空闲状态时处于高电平。根据前面对读写操作过程的描述及图示电路的连接关系,24C01读写1字节的子程序(略)。,-I2C应用举例,49,00:13,9.2.2 SPI接口的大容量Flash存储器扩展,一般情况下,EEPROM的存储容量比较小,如果单片机系统需要扩充大容量的非易失性存储器的话,往往采用FLASH存储器。FLASH存储器又称为“闪存”,具有电路结构

34、较简单,同样容量占芯片面积较小和读写速度快的特点。FLASH存储器与EEPROM的在使用上最大的不同点在于二者寻址方法不同,FLASH按扇区(Sector)、块(Block)或页(Page)操作,EEPROM则按字节操作。适用于程序存储和大容量数据存储。本节将以AT45DB081D为例介绍大容量FLASH存储器的扩展技术。,-Flash存储器概述,50,00:13,9.2.2 SPI接口的大容量Flash存储器扩展,AT45DBXXXX系列是Atmel公司推出的低工作电压、可在系统重写的SPI兼容的FLASH数据存储器,存储容量为1256Mb。这种串行接口FLASH存储器特别适用于要求存储密度

35、高、引脚资源占用少、电源电压低和功耗小的商业和工业应用领域。AT45DB081D的存储容量为8Mb,其主要特点为:工作电压:2.53.6V,各输入口可承受5V电压。SPI 串行总线,支持模式0和模式3,最高时钟66MHz。用户可定义页尺寸为256B或264B。分页操作,支持页、块、扇区或芯片擦除。可通过指针进行连续读操作。快速的页编程时间(典型值7ms)。低功耗,读操作电流7mA,待机电流25uA。每页最少100000次的擦写次数。在系统编程比较简单,无需高电压。,1AT45DB081D串行Flash存储器介绍,-Flash存储器特点,51,00:13,9.2.2 SPI接口的大容量Flash

36、存储器扩展,AT45DB081D具有SOIC和MLF两种封装形式,常用的SOIC封装如图所示。各引脚功能如下:/CS:片选信号。SCK:SPI总线的时钟信号。SI:串行数据输入。SO:串行数据输出。/WP:硬件页写保护。当/WP为低电平时,由保护寄存器所指定的芯片主存储器中的山区不能被编程,处于保护状态。如果不使用该功能的情况下,应该挂高。/RESET:复位信号。用于终止操作过程,使芯片恢复到等待状态。由于芯片内部具有上电复位电路,因此在上电过程中对复位引脚的电平没有要求。不使用的情况下可挂高。,-Flash存储器信号,52,00:13,9.2.2 SPI接口的大容量Flash存储器扩展,AT

37、45DB081D按照扇区、块和页3种粒度来组织存储器,共分为16个扇区,512个块和4 096个页。每个扇区的容量大小可能不同,如图所示。AT45DB081D所有的串行Flash编程操作都是基于页进行的,擦除操作可以按页、块、扇区或芯片进行。,2AT45DB081D的存储结构,-Flash存储器结构,53,00:13,9.2.2 SPI接口的大容量Flash存储器扩展,由于AD45DB081D具有用户可设定的两种页面尺寸结构,因此寻址时地址位有所不同。当采用标准的264B页面尺寸时,缓冲区的地址采用9个地址位BFA8BFA0,用来寻址缓冲区内的某一字节地址;主存储区采用12个页面地址位PA11

38、PA0,用来确定所需访问的页面地址,然后利用9个地址位BA8BA0来寻址每个页面内的字节地址。当采用256B页面尺寸时,缓冲区的地址采用8个地址位BFA7BFA0,用来寻址缓冲区内的某一字节地址;主存储区采用A19A0地址位来寻址,其中高12位A19A8用来确定所需访问的页面地址,然后利用8个地址位A7A0来寻址每个页面内的字节地址。,-Flash存储器寻址,54,00:13,9.2.2 SPI接口的大容量Flash存储器扩展,1)状态寄存器(status register)AT45DB081D有一个8位的状态寄存器(status register),用来指示设备的操作状态。通过发送读状态寄存

39、器命令可将状态寄存器的数据从最高位开始依次读出。状态寄存器各位的意义如见下表。,位7:芯片状态,1-处于准备好状态,0-忙;位6:存储页与缓冲区的比较结果,0-相同,1-不同;位52:芯片容量,AT45DB081B为1001;位1:扇区保护功能,1-允许,0-禁止;位0:页面尺寸,1-256字节/页面,0-264字节/页面。,3AT45DB081D的寄存器,-Flash状态寄存器,55,00:13,9.2.2 SPI接口的大容量Flash存储器扩展,2)扇区保护寄存器(Sector Protection Register)AT45DB081D内部有一个16Bytes的扇区保护寄存器,用来指定1

40、6个扇区中相应的某一扇区是否处于保护状态,对于扇区115而言当对应字节被编成为FFH时,该扇区被保护;为00H时处于可擦写状态。由于0扇区分为扇区0a和扇区0b两个部分,略有不同,见下表所示。扇区保护寄存器内容的读取和修改需要通过相应操作命令进行。,-Flash保护寄存器,56,00:13,9.2.2 SPI接口的大容量Flash存储器扩展,3)扇区锁定寄存器(Sector Lockdown Register)AT45DB081D还包括一个16Bytes的扇区锁定寄存器,用来锁定16个扇区中任一扇区。当某一扇区被锁定后将永久地变为只读状态,而且将不能解锁。对于扇区115而言当对应字节被编成为F

41、FH时,该扇区被锁定;为00H时处于正常状态。对于扇区0,当字节内容为00H时为正常状态,为C0H时锁定扇区0a,为30H时锁定扇区0b,为F0H时锁定扇区0a和0b。扇区锁定寄存器内容的读取和写入也需要通过相应操作命令进行。,-Flash锁定寄存器,57,00:13,9.2.2 SPI接口的大容量Flash存储器扩展,AT45DB081D和单片机接口比较简单,在单片机没有内置的SPI控制器时,可采用IO口与芯片连接,如图所示。然后利用软件编程实现SPI总线传输协议。,4AT45DB081D的操作,必须由主机通过SI引脚向存储器发出相应操作命令,然后从SO或SI引脚读取或写入数据。命令格式一般

42、为操作命令码+地址码。,为使存储器能进行读、写、擦除等操作,,-Flash存储器操作,58,00:13,9.3 串行转并行I/O接口扩展,随着单片机系统的微型化,许多单片机本身的I/O引脚较少,可利用串行总线接口扩展I/O芯片,增加系统的输入/输出端口,还有利于减小电路板布线的复杂度和体积。常用的串行总线扩展I/O的接口芯片主要有NXP、TI和Maxim公司的产品。这几个公司均生产I2C和SPI接口的GPIO扩展芯片,可以扩展8位和16位,甚至到40位的GPIO。本节以NXP公司的PCA9534为例介绍利用串行总线扩展I/O接口的方法。,-串/并转换概述,59,00:13,9.3.1 串行转并

43、行I/O扩展芯片的工作原理,PCA9534通过I2C总线实现单片机的远程I/O口扩展。该器件有8位通用并行输入/输出口(GPIO),单独的I/O口配置,具有大电流驱动能力,可直接驱动LED。具有中断输出管脚(/INT),可向单片机发送中断信号。(1)PCA9534的主要特性8位远程I/O口,上电默认为输入口;输出电流可达10mA;灌电流可达25mA;总灌电流的能力达到200mA;在3个地址管脚下,同一条I2C总线上可以同时挂接8个器件;低待机电流(最大为1A);400KHz的I2C总线接口。,1PCA9534芯片介绍,-I2C串/并转换芯片特性,60,00:13,9.3.1 串行转并行I/O扩

44、展芯片的工作原理,(2)PCA9534的内部结构,-I2C串/并转换芯片结构,61,00:13,9.3.1 串行转并行I/O扩展芯片的工作原理,(3)PCA9534的引脚功能 PCA9534芯片提供3种封装:SO16,TSSOP16,HVQFN16。其典型的16脚DIP封装如图所示。各引脚功能如下:SDA:串行数据线。SCL:串行时钟线。A0-A2:器件可编程地址输入,用于确定EEPROM在I2C串行总线上的地址。I/O0-I/O3:准双向I/O口0-3I/O4-I/O7:准双向I/O口4-7INT:中断输出(低电平有效)VSS:地VDD:电源,-I2C串/并转换芯片引脚,62,00:13,9

45、.3.1 串行转并行I/O扩展芯片的工作原理,2PCA9534的寻址和内部寄存器,PCA9534地址的固定位为0100,用于识别I2C的器件类型,根据A0A2的配置,在地址的低3位选择I2C总线上的目标器件。例如当A0接VCC,A1和A2接GND时,器件的地址为0 x21h。PCA9534包含:一个8位配置寄存器(单片机通过相应的配置位选择每个I/O管脚是输入还是输出);一个8位输入寄存器和8位输出寄存器(用来保存输入或输出口的数据)。寄存器的选择和操作通过命令字节进行。PCA9534的寄存器和命令字节见下表。,-寄存器及命令,63,00:13,9.3.1 串行转并行I/O扩展芯片的工作原理,

46、在发送完地址字节后,主控器件要发送一个命令字节,这个命令字节被存储在PCA9534的控制寄存器中。命令字节的低两位指定了对内部哪一个寄存器进行读/写操作。当命令字节发送后,指定的寄存器被选中,除非利用新的命令字节选择其它的寄存器,否则一直对该寄存器进行操作。,3PCA9534的总线操作,-总线操作,64,00:13,9.3.1 串行转并行I/O扩展芯片的工作原理,1)寄存器写操作 按照I2C规约,地址帧的最低位置为0,发送完地址帧并且在PCA9534应答后,发送命令字节,在PCA9534应答后接着发送要写入到寄存器的数据。PCA9534的写寄存器操作如图所示。,-写操作,65,00:13,9.

47、3.1 串行转并行I/O扩展芯片的工作原理,2)寄存器读操作 将地址帧的最低位置0,发送完地址帧并且在PCA9354应答后,发送命令字节确定要访问的寄存器。在PCA9354应答后,将地址帧的最低位置1,此时单片机成为接收方,而PCA9354成为发送方,单片机接收PCA9354发出的数据,并给出应答信号。PCA9534的读寄存器操作如图所示。,-读操作,66,00:13,9.3.1 串行转并行I/O扩展芯片的工作原理,当输入端口的电平状态与保存在输入寄存器相应位的状态不同时,芯片的INT(低电平)输出变为有效,向单片机指出输入信号发生了变化。,4PCA9534的中断,-I/O状态变化,67,00

48、:13,9.3.2 串行总线扩展I/O接口实例,例9-2 应用PCA9534芯片进行串行总线I/O接口扩展的方法。以STC90C54单片机作为主控芯片,利用PCA9534为单片机扩展4位键盘输入和4位开关量输出信号,单片机的P1.4管脚与PCA9534的SCL管脚相连,P1.5管脚与PCA9534的SDA管脚相连,PCA9534的A0A2接地,中断(/INT)连接到(/INT0)。硬件接口电路如图所示。,-串行总线扩展I/O举例,68,00:13,9.3.2 串行总线扩展I/O接口实例,编写C程序如下:#include reg51.h#include intrins.h#include STC

49、90.h/包含STC9054头文件#include I2C.h/包含I2C头文件#define uchar unsigned char#define PCA9534 0 x40/定义器件从地址sbit SDA=P14;/模拟I2C数据传送位sbit SCL=P15;/模拟I2C时钟控制位extern bit ISendStr(uchar sla,uchar suba,uchar*s,uchar no);extern bit IRcvStr(uchar sla,uchar suba,uchar*s,uchar no);void Delayms(void)/ms级别延时子程序uchar i,j;f

50、or(i=0;i0 xfe;i+)for(j=0;j0 xff;j+);,-串行总线扩展I/O举例,69,00:13,9.3.2 串行总线扩展I/O接口实例,void main(void)uchar buff11=0 xf0;/配置I/O口的方向,高4位为输入口,/低4位为输出口uchar buff21;Delayms();while(1)ISendStr(PCA9534,0 x03,buff1,0 x1);/发送命令字03,/设置I/O74为输入,I/O30为输出 IRcvStr(PCA9534,0 x00,buff2,0 x1);/从PCA9534数据到/buff2,读I/O当前状态值 b

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号