微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Microchip UNI/O总线技术及其应用

Microchip UNI/O总线技术及其应用

时间:08-28 来源:互联网 点击:



2 UNI/O从器件与单片机的接口设计
11XXX系列EEPROM是Microchip技术公司最新推出的、支持UNI/O总线协议的存储器产品。下面就以该存储器的使用为例,详细介绍UNI/O总线系统的应用设计方法。
2.1 硬件设计
图5给出了11XXX系列EEPROM与单片机的接口原理图。图中,SCIO引脚上接一个20 kΩ的上拉电阻是为了确保总线在上电/掉电序列期间以及未被驱动时处于空闲状态。VCC和VSS之间接入一个0.1μF的去耦电容是为了滤除VCC上的噪声。


2.2 软件设计
2.2.1 UNI/O存储器11XXX的操作指令
11XXX系列存储器共有9条操作指令,其指令编码和功能描述如表1所列。


2.2.2 UNI/O存储器11XXX的高级特性
11XXX器件除了具有EEPROM存储器的基本特性、支持UNI/O总线协议外,还有以下高级特性。这些高级特性也是编写接口程序的基本依据。
(1)内置了一个状态寄存器
状态寄存器可以用来提供状态信息和片内数据的保护控制。其各位的功能定义如下:
①Bit0。为写进行位WIP,用于表明11XXX是否忙于写操作。当它为1时,表明正在进行写操作;为0时,表明没有进行写操作。此位只读。要编写高效率的写存储阵列程序,可采用WIP查询来及时检测写周期的结束。
②Bit1。为写使能锁存器位WEL,用于表明写使能锁存器的状态。当它为1时,锁存器允许存储阵列无保护块和状态寄存器的写入操作;当置为0时,禁止写入操作。只能使用WREN指令来将此位置1,但会在上电或成功执行了以下指令之一时复位。这些指令包括:WRDI、WRSR、WRITE、SETAL和ERAL。
③Bit2~Bit3。是块保护位BP0和BP1,用于表明当前哪些块被写保护。这些位可以由用户通过WRSR指令进行设置。这些位是非易失性的。表2给出了利用BP0和BP1对存储器进行分块保护的方案。


④Bit4~Bit7。为无关位,读出时为0。
(2)包含一个读操作地址指针
在进行存储阵列读操作时,渎操作地址指针会在每个字节发送后自动指向原地址加1的存储单元。当到达最高地址时,如果主器件仍然发出MAK选择继续读取,则地址指针的值会翻转回到0x00地址处。在上电后,读地址指针会保持上一次访问的存储单元的地址。
(3)支持页写功能
用WRITE指令可以向指定地址的存储单元或者指定地址开始的存储器区域写入内容任意的数据。不过,在写多个存储单元时,必须限制在单个物理页面内写。物理页边界从页大小(16字节)整数倍的地址开始,结束于页大小的整数倍减1的地址。如果WRITE指令试图跨越物理页边界进行,其结果是将超出页边界的数据写回到当前页的开始,即覆盖先前存储的数据,而不会如期望的那样写到下一贞。
2.2.3 UNI/O存储器11XXX的读写程序
上电之后,由于11XXX处在关断模式,而且总线处于高电平空闲状态,所以主器件必须先在SCIO上产生一个高到低再到高的脉冲,使11XXX从关断模式退出进入空闲模式,这样11XXX才能按照命令序列所规定的流程响应总线上的其他信号,接收主器件发来的指令,并按指令要求完成规定的操作。
(1)写程序流程
图6是写存储阵列中未保护区块的程序流程。图中发送指令的操作可通过调用发送指令子程序来完成。图7给出了发送指令程序流程。要写存储阵列中受保护的区块,只需在执行WREN指令之前,用WRSR指令对BP0、BP1进行相应的设置,以暂时解除待写区块的保护,并在程序的最后再用WRSR指令对它们进行恢复即可。要全地址空间置1或擦除,必须先解除对整个存储阵列的保护并使能写操作,再发送SETAL或ERAL指令,指令发送之后用NoMAK来启动内部写操作,内部操作完成之后恢复对存储阵列的保护即可。

(2)读程序流程
随机读存储阵列的程序流程是:先发送READ指令,再发送待读单元地址。先高地址字节,后低地址字节。然后,从器件就会将该地址中的数据送到总线上,主器件收到第一个数据字节后,若还要读取更多的数据,可以发送应答信号MAK。之后,从器件用SAK应答,并送出下一个数据字节。若要结束读操作,主器件只要发送NoMAK即可。
要从存储阵列的当前位置读取数据可用CRRD指令来进行操作,其程序流程除了不需要传送存储器单元地址外,其余操作步骤与READ相同。

结语
UNI/O总线只有一根信号线,对I/O端口的占用最少,可有效地减小嵌入式系统的体积并降低产品成本,具有广阔的应用前景。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top