摘要: 提出了一种基于ISP威廉希尔官方网站 实现高速数据采集的方法,给出了使用VHDL语言和原理图完成数据采集模块中地址发生器和比较电路的部分逻辑设计,只要将所设计的程序下载到可编程器件ispLSI2032中即可实现预期功能。同时,ispLSI2032器件的高密度和可编程性也提高了硬件电路的集成性、可靠性及保密性。
关键词: ISP(在系统可编程);VHDL;高速采集;ispLSI2032
随着深亚微米及纳米半导体制造威廉希尔官方网站 的进步,可编程逻辑器件在电路设计中的应用已十分广泛。ISP(在系统可编程)器件是先进的可编程器件,
它的优点是不需要编程器即可直接对安装在用户目标板上的ISP器件进行编程,而且编程、调试都很方便。当产品升级换代时,只要通过软件对ISP器件重新编程即可,便可使其具有新的逻辑功能,而不需要增加硬件投入。
目前,ISP芯片内部资源越来越多,速度也越来越快,开发的软件功能也更加完善。VHDL就是随着PLD发展起来的一种硬件描述语言,是一种应用于电路设计的高层次描述语言。本文将介绍一种在高速数据采集模块中部分电路采用ISP威廉希尔官方网站 进行设计的方法。
1 高速数据采集模块的实现
高速数据采集模块的系统框图如图1所示。图中的ispLSI2032是整个数据采集系统的控制核心?它内部包括了地址信号产生、锁存、ADC转换数据的比较、数据存储器的读写控制以及大部分控制逻辑?晶振电路产生的12MHz时钟可直接在is-pLSI2032内部进行2分频以得到6MHz的采样时钟。高速数据缓存部分由两片SRAM构成?该SRAM可提供自己的地址线、数据线和控制线。两个端口可分别与ispLSI2032和单片机的P0口连接。用is-pLSI2032可递增RAM的地址?同时可提供写入脉冲以将A/D转换数据写入RAM。当A/D转换的数据超出某一上下限时,系统会将地址数据写入is-pLSI2032内部的锁存器中?并在其后打开锁存,同时将地址送到单片机的P0口,单片机由此地址读出RAM中相应地址的数据,并通过RS232口传送到PC机或其它外设。
图2所示是该数据采集系统的基本硬件电路图。图中的A/D转换芯片选用的是美国MAXIM公司的12位A/D转换器MAX120,它有全控制模式、独立模式、慢存储模式、ROM模式和连续转换模式5种工作模式。在此电路中,MAX120工作于连续转换模式, 由于MAX120芯片的MODE=DGND,因此,它的INT/BUSY为BUSY输出。单片机启动转换时,INT/BUSY变为低电平,同时将INT0(P3.2)置低,以使计数器的计数状态与MAX120的INT/BUSY信号一致,也就是说,每转换完一次,计数器就加以产生新的存储器地址;转换结束后,INT/BUSY转变为高电平,数据在引脚D0~D11处有效,此时WE信号为低,存储器写端口打开,并将ADC所转换的数据写入与计数器所产生地址对应的存储单元。继而INT/BUSY信号再次变低, MAX120进入下一次转换。直到采集的数据超出某一上下限,ADC模块中的比较器产生一信号使单片机外部中断,进而转入中断数据处理。其后单片机将读取存储在锁存器中的地址信号,并将其存储;同时由此地址读出存储在存储器中的超出上下限的数据。单片机定时取数时,先将INT0(P3.2)置高,此时地址产生器的累加由单片机控制(通过T0口,即P3.4)。单片机控制计数器重新计数并产生地址数据,产生的地址送到单片机P0口,并由此地址读取存储器中相应地址的数据,最后通过RS232口传送到PC或其它外设。
图2
2 ispLSI2032 的结构原理
2.1 ispLSI2032的主要结构
ispLSI2032的结构主要包括全局布线区、万能逻辑模块、输出布线区、输入总线和巨块五个部分。其中全局布线区(Global Routing Pool)位于芯片中央,它将所有片内逻辑联系在一起,其输入输出之间的延迟是恒定和可预知的。GRP在延时恒定并且可预知的前提下,提供了完善的片内互连性能。这种独特的互连性保证了芯片的高性能,从而可容易地实现各种复杂的设计。
万能逻辑模块是该器件的基本逻辑单元,它由逻辑阵列、乘积项共享阵列、输出逻辑宏单元和控制逻辑组成。当乘积项共享阵列将乘积项分配给或门后,可通过一个可编程的与/或/异或阵列输出来控制该单元中的触发器,从而使乘积项的共享更加灵活。每个输出逻辑宏单元有专用的触发器,每个触发器与其它可组态电路的连接类似GAL的OLMC,也可以被设置为组合输出或寄存器输出。片内灵活的时钟分配网络可进一步加强GLB的能力。每一个GLB的时钟信号既可选用全局同步时钟,也可选用片内生成的异步乘积项时钟。
输出布线区是介于GLB和IOC之间的可编程互连阵列,通过对该区的编程可以将任一个GLB输出灵活地送到I/O端口的某一个上,以便在不改变外部管脚排列的情况下,修改片内逻辑电路的结构。
输入输出单元(Input Output Cell)中的输入、输出或双向信号与具体的I/O引脚相连接,可以构成输入、输出、三态输出的I/O口。
巨块是GLB及其对应的ORP、IOC的总称。Is-pLSI2032中有两个巨块,通常分布在全局布线区的两侧。每个巨块均包含GLB、I/O口和专用输入端,其中专用输入端不经锁存器即可直接输入。它们均可在软件分配下供本巨块内的GLB使用。
2.2 ispLSI2032的工作过程
外部信号一般通过I/O单元引导全局布线区,全局布线区主要完成任意I/O端到任意GLB的互连、任意GLB间的互连以及各输入I/O信号到输出布线区的连接。器件的所有功能均可由一个GLB或多个GLB级联完成。在设计中,笔者使用的是ispLEVER软件,它包含有Lattice编译器、顶层项目管理器、设计输入编辑器等?同时还包括Lattice门级功能和实时仿真器,因而能够对原理图、VHDL或Abel-HDL语言进行仿真?其设计流程如图3所示。
3 ispLSI2032在系统中的应用
3.1 硬件选择
ispLSI器件可分为5大系列,它们的密度、速度以及寄存器数目各不相同。而ispLSI2032速度高达154MHz,是同行业中速度最高的CPLD器件,通过其在系统可编程(ISP)功能可在印刷电路板上对逻辑器件进行编程或改写。ispLSI2032的内部电路总体框图如图4所示。
其中LOGIC9是地址发生电路的逻辑控制部分,COUN11是地址发生电路部分,GLF2是地址锁存部分。地址发生电路与地址锁存电路是实现A/D转换后数据存储的关键部件,它可向存储器SRAM6264提供写入操作的顺序地址和读出操作的实时地址,同时可提供地址计数器的清零信号和两片数据锁存器的方向控制信号。
3.1 程序设计
在应用IspLSI2032进行系统设计时,可采用原理图和VHDL混合输入的方法。地址产生电路中COUN11可由两个4位同步二进制计数器级联构成。地址发生电路的逻辑控制部分LOGIC9、地址锁存部分的逻辑控制部分和地址锁存部分GLF2可由VHDL语言来进行设计,下面给出GLF2的程序设计代码:
library ieee;
use ieee.std_logic_1164.all;
entity glf2 is
port(a0,a1,a2,a3,a4,a5,a6,a7: in std_logic;
b0,b1,b2,b3,b4,b5,b6,b7: in std_logic;
oc1,c,oc2: in std_logic;
Q0,Q1,Q2,Q3,Q4,Q5,Q6,Q7:out std_logic);
end glf2;
architecture exam of glf2 is
begin
process(oc1,c,oc2)
begin
if(oc1=‘0' and c=‘1' and oc2=‘1') then
Q0<=a0;Q1<=a1;Q2<=a2;Q3<=a3;Q4<=a4;Q5<=a5;Q6<=a6;Q7<=a7;
elsif(oc1=‘1' and c=‘1' and oc2=‘0') then
Q0<=b0;Q1<=b1;Q2<=b2;Q3<=b3;Q4<=b4;Q5<=b5;Q6<=b6;Q7<=b7;
end if;
end process;
end exam;
图4
4 编程设计
将设计阶段生成的熔丝图JEDEC文件装入到器件中去的过程称为编程(也称为下载、配置)。对在系统可编程逻辑器件,可使用ISP菊花链下载编程软件(ispVM)来进行编程,笔者采用Lattice公司最新推出的一套EDA软件—ispLEVER,同时采用原理图、硬件描述语言、混合输入三种方式来对所设计的数字电子系统进行功能仿真和时序仿真?然后通过计算机的并口和专用下载电缆直接对器件进行编程,最后对编程结果进行检查并最终通过。
评论
查看更多