相变存储器离散地址数据写入读出控制系统设计

2018-07-27 05:15
计算机测量与控制 2018年7期
关键词:存储器时序逻辑

(广西壮族自治区防雷中心,南宁 530022)

0 引言

相变存储器一种新型的非易失性存储器,在嵌入式系统中发展迅速,对于离散地址数据的写入与读出,使用该存储器能够提高读写速度,但存在无法控制读写能力问题。检查离散地址数据是否存储于计算机中,如果已经存储,那么需要发送信号传递给控制板,由控制板对数据进行读取,在此过程中一旦出现错误信息,需将所有数据信息全部返回到计算机中,重新筛选正确信息发送。对于写入与读出标准需遵循智能卡ISO-7816标准,满足系统GSM11.11技术需求,操作系统可为网络提供相应支持,方便降低系统开发难度,适合控制板系统操作标准[1]。设计控制功能可实现系统快速对数据进行写入与读出,不但节省了时间,又提高了工作效率,但是采用传统系统存在控制能力差问题,无法满足控制基本需求,为此,采用可编程逻辑阵列对功能进行设计,实现变存储器离散地址数据写入读出有效控制,通过实验验证结果可知,该系统控制能力较强。

1 读写控制系统设计

相变存储器离散地址数据写入读出控制系统的设计需从系统硬件与软件两方面展开,将硬件结构划分为芯片选择、配置方式和电路连接方式三部分,详细描述可编程逻辑阵列配置方式以及电路设计,确保系统供电电源稳定;将硬件中配置进行软件功能设计,对写入与读出主要以时序图展示。

1.1 控制系统硬件设计

系统整体硬件结构如图1所示。

图1 控制系统硬件结构图

图1中包含了系统异步收发传输器、微控制单元、可编程只读存储器和时钟、电平转换等模块,其中可编程逻辑阵列配置的电路设计主要是为了引导编程完成复位、相应程序配置和初始化等步骤,该配置通常分为两种,一种是主动配置,另一种为被动配置;微控制单元为电源提供按键功能;电平转换为电源电路提供稳定输入电压,而通信接口处电路可完成外围设备与内在设备电路连接[2]。

根据划分模块将微控制单元和通信接口单元进行统一描述,可编程逻辑阵列配置设计包括芯片选择、配置方式和电路连接方式,电路连接为芯片提供稳定电压。

1.1.1 芯片选择

根据上述系统整体硬件结构,需对可编程逻辑阵列中的芯片进行选择,完成与计算机命令交互的时序处理任务,在具体操作过程中,需要使用丰富逻辑关系保障资源利用效率,同时也保证了系统性能,降低了成本。选择Xilinx公司的Spartan-6芯片具有功率高、消耗低的优势,其性价比和功耗也能完美搭配,促使系统硬件部分的设计拥有较低的成本,可适合大批量生产[3]。采用45 nm的Spartan-6芯片可编程逻辑阵列具有动静态功率下消耗低特点,功率消耗是传统芯片50%左右,具有如下属性:

1)低消耗具有效率高优势,采集集成模块,优化I/O选择标准,在待机条件下,可保持系统工作状态与当前配置相符,采用多引脚方式支持零功耗休眠状态;

2)设计多个电压方便存储器接口的选择,兼容3.0~1.5 V的标准协议,采用I/O转换速率可完成调节,进而提高信号传送完整性;

3)设计集成存储器控制模块能够支持多种接口信息存储,电路总线带有独立半共享式存储器(FIFO);

4)具有丰富资源,支持寄存器采用分布式设计原理;

5)具有不同粒度易挥发性随机存取存储器具有写入与读出速度快的特点,按照字节完成功能设计;

6)采用低噪声、灵活性强时钟管理方式,可提升系统性能;

7)采用多重配置方式,在引脚处设计自动检测装置,支持多重启动方式。

1.1.2 抗干扰可编程逻辑阵列配置

以上述选择Spartan-6芯片的属性作为配置条件,为可编程逻辑阵列提供低成本方案。启动电源,对可编程逻辑阵列配置内部寄存器和引脚进行初始化操作,待操作完成后,将可编程逻辑阵列工作模式切换到用户工作模式,此时需解除I/O引脚的高阻值状态,按照硬件描述设计编程语言工作。

为了提高系统在信号干扰情况下仍然具有较高的控制能力,需设计两种可编程逻辑阵列配置方式,分别是主动模式和被动模式[4]。

1.1.2.1 主动模式

针对Spartan-6芯片主动配置模式是将可编程逻辑阵列作为主要器件,外部相变存储器为配件,在启动电源之后,将器件中配置数据全部读取出来,将读取的数据存储到静态随机存储器之中,该配置方式有两种,分别是串行配置和并行配置,方便电路设计。

1.1.2.2 被动模式

针对Spartan-6芯片被动配置模式是将可编程逻辑阵列作为配件,微控制单元作为主要器件,将这两种器件视为控制芯片主要装置,通过对芯片控制所提供时序图,才能精准对编程进行配置,同样该配置方式也具有两种,分别是串行配置和并行配置,方便电路设计[5]。

在串行模式下,对存储器中数据进行自动加载,选择某公司50 MHz的M25P128型号时钟接口为总线接口,将Spartan-6芯片可编程逻辑阵列作为主器件,PROM作为配件,将两者连接后形成了配置主要结构。Spartan-6芯片的引脚处还需设置成01,方便后续引脚编号。将芯片底部引脚CCLK与M25P128型号时钟引脚进行连接,为主配器件串行接口提供时钟数据输入通道;将芯片两侧MOSI和DIN引脚分别连接M25P128型号时钟数据写入和数据读出引脚,如果向上拉伸可获取相应数据指令,此时串行输入状态为封锁状态;如果向下拉伸,需改变数据输出状态。将Spartan-6芯片CSO_ B作为器件引脚可直接与M25P128型号时钟信号控制引脚连接,为芯片提供可选择的信号。

利用Spartan-6芯片设计主—被动可编程逻辑阵列配置方案,在主动模式下,可编程逻辑阵列需从相变存储器中读取相关配置数据,引导整个配置过程。当电源启动后,配置数据将全部加载到阵列中,数据不会丢失,适合只对数据加载受到信号干扰情况下开发,数据仍然保持完整;在被动模式下,需将外部控制芯片带入整个电路引导配置过程当中,将可编程逻辑阵列作为存储机制,将已经配置完成的数据全部写入到阵列之中,从阵列中对数据进行在线烧写,并全部存储到静态随机存储器。如果出现断电,那么数据将全部消失,此时需重新烧写,适合对系统正常运行受到信号干扰情况下开发,数据可重新加载。该配置方案是系统硬件设计的创新之处,有效解决了信号干扰问题。

1.1.3 电路连接

根据上述选择配置方案,将控制电路设计为5 V、3.3 V以及1.2 V三种不同电压,而系统电源为9 V,将9 V电压作为输入电源,为其它供电电压提供直流电源。将直流电压通过芯片降压的具体步骤为:首先将直流电压转换为交流电压。然后将电压进行变压处理,最后将变压后电压转化为直流电压输出。芯片具有三种电路形式,分别是降压、升压与隔离[6]。

控制系统电路设计结构如图2所示。

图2 控制系统电路设计结构

将电源开关启动,为系统提供9 V交流电压,通过转换降压,变为5 V,全部输出,此时输出电压可为目标提供安全电源电压。可编程逻辑阵列通过一个金属氧化物半导体场效应管座位控制开关,对目标进行控制,为芯片所需的三种电压通过上述过程转换获取[7]。

系统硬件设计从整体结构方面展开分析,设计总体结构,选择芯片种类,随后对控制核心器件进行配置,详细描述可编程逻辑阵列配置方式以及电路设计,确保系统供电电源稳定,并提高系统在信号干扰条件下的硬件控制能力。

1.2 控制系统软件设计

将上述硬件硬件主—被动配置进行软件功能设计,主要以时序图展示,其中包括时序命令解析、状态转换和读写操作等。交互软件中设计既包括微控制单元两部分,又包括面向对象程序的编程,在visual studio2017开发环境下,使用程序语言C++完成面向对象的程序编写,微控制单元仅使用C语言就可完成编写。采用中断式的编程方式可实现可编程逻辑阵列的交互,其中主要涉及微控制单元的按键与串联接口[8]。由于计算机与程序之间控制单元需通过独立通道完成,互不干扰。

计算机与微控制单元涉及的流程基本一致,如图3所示。

图3 软件设计流程

由图3可知:一旦程序启动,那么串口需及时打开,并进行初始化设置,等待按键接触命令发送,可编程逻辑阵列在串口接收到数据后,需进行验证,待完成之后,再向上位机的微控制单元传送,将接收的数据从串口处进行信号回复,并解析处理,如果验证结果正确,那么直接向用户展示结果;如果验证结果错误,那么说明串联数据接口信息发送或者接收时出现错误,计算机需重新向串口处发送指令数据,进行下一次的接收与校验。倘若发送所有命令均无法得到正确回复,那么在结果显示时会出现系统出现故障字样。对于数据发送指令与接收,其长度都会小于6字节长度,数据发送指令与接收都能够正常完成,说明完成一次交互[9]。

根据软件设计流程对芯片配置写入与读出进行设计,其中写入行为是以页为基本单位实现的周期性执行动作,写入指令时序图,如图4所示。

图4 写入操作时序

发送操作指令时,需指定固定页码地址,同时写入跳变结果,将4个字节从高到低依次写入,组合成32位的比特数据即为1个单词。在信号接口处,离散地址信号SOC_ADR[16:2]组合值形成一页数据实际值,离散地址信号SOC_ADR[15:8] 组合值形成一个比特的数据值,连续时间段的周期数据组成一个32位的比特数据即为1个单词。

读出行为也是具有周期性执行动作,读出指令时序图,如图5所示。

图5 读出操作时序

指定单词地址进行读取,首先发送数据地址,将离散地址电平SOC_ALE拉高,并封锁到相应存储器中,保持高电平禁止将数据写入其中,延时等待,读取1个单词数据,并在连续周期内依次赋予时间值,并将数据值对应的数据全部返回到离散地址信号SOC_ ADR[15:8]信号线中。

将硬件配置进行软件功能设计,主要以时序图展示。写入行为是以页为基本单位实现周期性执行动作,而读出行为也是具有周期性的,分别设计写入与读出指令时序图,可以阻止信号干扰造成的数据地址发送不明确现象发生,通过时序图来展示控制结果,间接提高系统控制能力。时序图是软件部分设计的创新之处,可有效阻止外界干扰信号对数据传输造成的影响。

2 验证分析

针对相变存储器离散地址数据写入读出控制系统进行了实验研究与设计,通过实验验证系统硬件与软件设计的有效性,实现离散数据写入读出的有效控制。

2.1 系统硬件验证

在系统硬件设计过程中,对连接导线进行了铺设和屏蔽,整个组件都固定在机械构架上。设置系统控制板操作原理,之后安装在固定设备上,对已经指定的IP地址系统进行优化处理,最后使用Linux操作系统对PC主机进行调试,通过主机控制终端。当所有硬件都安装完成之后,对整个系统开始进行实验验证,检查配置Spartan-6 FPGA在信号干扰情况下硬件控制是否受到影响,将传统系统与采用可编程逻辑阵列方式设计的系统进行对比,结果如图6所示。

图6 不同系统在信号干扰情况下硬件控制效果

当系统没有实行控制之前,两个系统的控制效果在理论上可达到100%,但是逐渐增强信号干扰强度,传统系统控制能力下降到了80%,采用可编程逻辑阵列方式设计的系统控制能力下降到了83%;当信号强度为400 Hz时,传统控制能力达到了最低,为42%,而采用可编程逻辑阵列方式设计的系统控制能力始终在80%上下波动,无明显变化。由此可知,配置Spartan-6 FPGA的系统硬件设计在信号干扰情况下仍然进行有效控制。

2.2 系统软件验证

在实验过程中,模拟系统运行状态,对软件功能进行校验,通过在写入端施加激励,在读出端口处获得一个响应,比较响应结果与功能需求是否一致,由于实验过程是趋向于理想化的,为此可忽略电路中的延时性。对校验过程中出现的问题需及时调整再进行实验,保证系统测试时,各个软件之间达到相互协调效果,施加的激励通过Verilog语言进行编写。

1)写操作验证。

写入操作是以页为单位的,信号接口与写入行为操作信号是一一对应的,每一页写入离散地址数据是以写入的三个指令发送作为启动信号,之后才是离散地址数据的发送。针对写入信号的发送,假设SOC_ALE为高电平,对离散地址数据进行锁存;SOC_ADR[11:7]为离散地址信号,ADDR0至ADDR2值的依次对应时序中的0X0A、0X15和0X0A。反之,如果SOC_ALE为低电平,SOC_ADR[5:2]值表示在4段时间8/4/2/1中对应的离散地址数据,这4个有效时间数据组成一个指令值,那么DATA0至DATA2值依次对应时序中的0X0000_00AA、0X0000_0055和0X0000_00A0。施加激励后SOC_ADR[15:8]写入数据标准值为:0X0123,0X4567,0X89ab,将传统系统与采用可编程逻辑阵列方式设计的系统对写入施加激励后的时序图进行验证分析,结果如图7所示。

图7 不同系统写入时序图验证对比结果

由图7可知:采用传统系统对施加激励后写入数据获取结果为:0X0246,0X8ace,0X8973,而采用可编程逻辑阵列方式设计的系统对施加激励后写入数据获取结果为:0X0123,0X4567,0X89ab。由此可知,在时序对比图中,采用采用可编程逻辑阵列方式设计的系统与标准值相对应写入准确。

2)读出操作验证。

与上述写入操作步骤基本一致,当SOC_ALE为高电平,对离散地址数据进行锁存,此时的读出数据为:Block0、Block1、Block2、Block3,对应的地址数据为:0-0X1fff、0X2fff -0X3fff、0X4fff -0X5fff、0X6fff -0X7fff。将离散地址数据封锁后,延时等待再进行数据读出工作,施加激励获取的响应结果是0X0123,0X4567,0X89ab,0Xcdef,同样将将传统系统与采用可编程逻辑阵列方式设计的系统对输出施加激励后的时序图进行验证分析,结果如图8所示。

图8 不同系统输出时序图验证对比结果

由图8可知:采用传统系统对施加激励后输出数据获取结果为:0X8439,0X6438,0X7524,0Xa1fe,而采用可编程逻辑阵列方式设计的系统对施加激励后写入数据获取结果为:0X0123,0X4567,0X89ab,0Xcdef。由此可知,在时序对比图中,采用采用可编程逻辑阵列方式设计系统与标准值相对应输出准确。

根据上述实验验证内容,可得出实验结论:

两个系统控制效果在理论上可达到100%,逐渐增强信号干扰,传统系统控制能力达到了在信号强度为400 Hz时,控制能力达到了最低为42%,而采用可编程逻辑阵列方式设计的系统控制能力始终在80%上下波动,无明显变化。分别对写入和输出端口施加激励后,采用可编程逻辑阵列方式设计的系统写入和输出数据获取结果与标准值相一致。由此可知,针对配置Spartan-6 FPGA硬件中的写入与输出功能能够对整个系统进行有效控制,且控制能力较强。

3 结束语

采用可编程逻辑阵列对相变存储器离散地址数据写入读出控制系统进行设计,可抵抗外界信号造成的干扰,尤其是在信号干扰强度较大的工厂或企业可使用该控制系统完成离散地址数据的读写。虽然该系统具有良好的控制能力,但也发现该系统存在需要改进与提升的地方。经过对系统进行多轮测试后,发现其稳定性还有待验证,在配置软件中的代码效率需进行优化,为此,在未来研究中,还需进行深入探讨。

猜你喜欢
存储器时序逻辑
刑事印证证明准确达成的逻辑反思
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
逻辑
创新的逻辑
静态随机存储器在轨自检算法
你不能把整个春天都搬到冬天来
女人买买买的神逻辑
存储器——安格尔(墨西哥)▲