基于CPLD的串并转换和高速USB通信设计
扫描二维码
随时随地手机看文章
滤波和抗干扰是任何智能仪器系统都必须考虑的问题。在传统的应用系统中,滤波部分往往要占用较多的软件资源和硬件资源。复杂可编程逻辑器件(CPLD)的出现,为解决这一问题开辟了新的途径,采用CPLD实现滤波是一种高效可靠的方法。介绍了利用MAX+PLUSII对CPLD编程来实现对传感器和按键信号滤波和抗干扰。该方法已在产品开发中获得了成功应用。
关键词: 复杂可编程逻辑器件 滤波 抗干扰
1 滤波和抗干扰概述
单片机应用系统的输入信号常含有种种噪声和干扰,它们来自被测信号源、传感器、外界干扰源等。为了提高测量和控制精度,必须消除信号中的噪声和干扰。噪声有两大类:一类为周期性的;另一类为不规则的。前者的典型代表为50Hz的工频干扰,一般采用硬件滤波,使用积分时间等于20ms的整数倍的双积分A/D转换器,可有效地消除其对信号的影响。后者为随机信号,它不是周期信号,可用数字滤波方法予以消弱或滤除。所谓数字滤波,就是通过一定的计算或判断程序来减少干扰信号在有用信号中的比重,故实际上它是一种软件滤波。硬件滤波具有效率高的优点,但要增加系统的投资和设备的体积,当干扰的性质改变时我们往往不得不重新搭接电路;软件滤波是用程序实现的,不需要增加设备,故投资少、可靠性高、稳定性好,并且可以对频率很低的信号实行滤波,随着干扰的性质改变只需修改软件即可,具有灵活、方便、功能强的优点,但要占用系统资源、降低系统的工作效率。一个传统的实际系统,往往采用软件和硬件相结合的滤波方法,这种结合是在两者的优缺点之间寻找一个平衡点。
硬件抗干扰主要采用隔离技术、双绞线传输、阻抗匹配等措施抑制干扰。常用的隔离措施有采用A/D、D/A与单片机进行隔离以及用继电器、光电隔离器、光电隔离固态继电器(SSR)等隔离器件对开关量进行隔离。
软件抗干扰主要利用干扰信号多呈毛刺状、作用时间短等特点。因此,在采集某一状态信号时,可多次重复采集,直到连续两次或多次采集结果完全一致时才视为有效。若多次采集后,信号总是变化不定,可停止采集,给出报警信号。如果状态信号是来自各类开关型状态传感器,对这些信号采集不能用多次平均方法,必须完全一致才行。在满足实时性要求的前提下,如果在各次采集状态信号之间增加一段延时,效果会更好,能对抗较宽的干扰。对于每次采集的最高次数限额和连续相同次数均可按实际情况适当调整。对于扰乱CPU的干扰,可以采取指令冗余和软件陷阱等抗干扰技术加以抑制。
2 利用CPLD实现数字滤波及抗干扰
这里介绍的采用CPLD实现信号滤波及抗干扰的方法已经在智能仪器泵冲测量仪的开发中得到验证。下面就如何采用CPLD对系统的四路外部传感器脉冲信号和四路按键信号实现滤波、锁存、中断申请等功能进行阐述。
2.1 传感器信号滤波
由于要对传感器信号进行数字滤波,CPLD要引入时钟信号。因而我们对CPLD定义一输入端clki,作为数字滤波器的计数脉冲输入端。clki由单片机定时器1定时产生500Hz脉冲。以一路为例,泵冲信号滤波部分如图1所示。
摘 要:CPLD可编程技术具有功能集成度高、设计灵活、开发周期短、成本低等特点。介绍基于ATMEL 公司的CPLD芯片ATF1508AS设计的串并转换和高速USB及其在高速高精度数据采集系统中的应用。
关键词:CPLD 串并转换 USB
可编程逻辑器件(PLD)是20世纪70年代在ASIC设计的基础上发展起来的一种划时代的新型逻辑器件。自PLD器件问世以来,制造工艺上采用TTL、CMOS、ECL及静态RAM技术,器件类型有PROM、EPROM、E2PROM、FPLA、PAL、GAL、PML及LCA等。PLD在性能和规模上的发展,主要依赖于制造工艺的不断改进,高密度PLD是VLSI集成工艺高度发展的产物。80年代末,美国ALTERA和XILINX公司采用EECMOS工艺,分别推出大规模和超大规模的复杂可编程逻辑器件(CPLD)和现场可编程逻辑门阵列器件(FPGA)。这种芯片在达到高集成度的同时,所具有的应用灵活性和多组态功能是以往的LSI/VLSI电路无法比拟的。自从跨入90年代以来,可编程逻辑器件CPLD/FPGA得到了飞速发展,向高集成度、高速度和低价位方向不断迈进;不仅具有电擦除特性,而且出现了边缘扫描及在线编程等高级特性;其应用领域不断扩大,可用于状态机、同步、译码、解码、计数、总线接口、串并转换等很多方面,而且在信号处理领域的应用也活跃起来。使用CPLD可以提高系统集成度、降低噪声、增强系统可靠性并降低成本。
本文主要介绍ATMEL公司的CPLD芯片ATF1508AS的特点及应用。ATF1508AS是利用ATMEL成熟的电擦除技术实现的高性能、高密度的复杂可编程逻辑器件(CPLD),与ALTERA公司的EPM7000系列引脚完全兼容;可以将EPM7000的POF文件转换为适合ATF1508AS的工业标准JEDEC编程文件,下载到ATF1508AS芯片中。
1 ATF1508AS的特点
ATF1508AS是利用ATMEL成熟的电擦除技术实现的高性能、高密度的复杂可编程逻辑器件(CPLD)。它有128个逻辑宏单元和最大100个输入,能很容易地集成一系列TTL、SSI、MSI、LSI和传统PLD的逻辑功能。ATF1508AS的增强型路由开关矩阵增加了可用的门数和设计改变时引脚锁定的成功率,这是非常重要的。ATF1508AS有96个双向I/O引脚和4个输入引脚。这4个输入引脚也可以用于全局控制信号、全局寄存器时钟、全局复位和全局输出允许。
128个宏单元中的每一个都产生一个隐藏的反馈回路到全局总线,每一个输入引脚、I/O引脚也都汇入全局总线。每个逻辑块的开关矩阵从全局总线中选择40个独立的信号,每一个宏单元也产生一个返送逻辑项到局部总线。宏单元之间的级联逻辑可以快速有效地实现复杂的逻辑功能。ATF1508AS包括八个这样的逻辑链,每一个都能通过扇入最多40个乘积项实现逻辑项求和。
ATF1508AS是在系统编程(ISP)器件。它用工业标准的4脚JTAG接口(IEEE标准1149.1),完全与JTAG的边界扫描描述语言(BSDL)兼容。ISP允许器件不用从印刷电路板上拿走就可编程;除简化生产流程外,ISP也允许通过软件进行设计修改。
ATF1508AS的引脚保持电路提供对所有输入和I/O引脚的设置。当任何引脚驱动到高电平或低电平,紧接着引脚被悬空时,引脚将保持先前的高电平或低电平状态。这种电路防止没有用到的输入和I/O线悬空而成为中间的电压值,这会导致不必要的功耗和系统噪声。引脚保持电路去除了对外部上拉电阻的需要和直流功耗。
ATF1508AS的加密特性可以保护ATF1508AS的设计内容。两个字节(16位)的用户信号可被用户存取,能存放工程名、部件号、版本或日期等,而且用户信号的存取不受加密熔丝的状态影响。
ATF1508AS具有上电复位特性。在上电期间,所有的I/O引脚将为三态,直到VCC到达上电电压,这样可防止在上电期间发生总线竞争。ATF1508AS的寄存器设计成在上电时复位,从VCC上升到VRST后的微小的延时,所有的寄存器将复位到低电平,输出状态要根据缓冲器的极性设置。这种特性对于状态机的初始化是比较关键的。
2 ATF1508AS的宏单元
ATF1508AS的宏单元如图1所示。它的宏单元非常灵活,足以支持高复杂逻辑功能并且高速工作。宏单元包括五个部分:乘积项和乘积项选择多路复用器、或/异或/级联逻辑、触发器、输出选择和使能、逻辑阵列输入。没有用到的宏单元可由编译器禁止以降低功耗。
(1)乘积项和乘积项选择矩阵
每一个宏单元有5个乘积项,每个乘积项作为它的输入从全局总线和局部总线接收所有信号。乘积项选择矩阵(PTMUX)按需分配这5个乘积项到宏单元的逻辑门,也负责分配控制信号。乘积项选择矩阵的编程是由设计编译器决定的,编译器将选择优化的宏单元配置。
(2)或/异或/级联逻辑
ATF1508AS的逻辑结构是为有效地支持所有的逻辑而设计的。在一个宏单元内,所有的乘积项可以被布进或门,产生一个5输入的与/或求和项。通过邻近的宏单元扇入额外的乘积项,可以扩展到40个乘积项而只有很小的延时。宏单元的异或门允许有效地实现比较和算术功能,其中异或门的一个输入来自或运算的求和项,另一个输入可以是一个乘积项或一个固定的高电平或低电平。对于组合逻辑输出,固定电平允许极性选择;对于时序逻辑,固定电平允许利用反演规则(摩根定律的推论)化简乘积项。异或门也可以用于仿真T型和JK型触发器。
(3)触发器
ATF1508AS的触发器有非常灵活的数据和控制功能。触发器的输入可以来自于异或门、一个单独的乘积项或直接由I/O口输入。选择单独的乘积项允许在一个组合逻辑输出宏单元内生成一个隐藏的寄存器反馈(这个特性是由fitter软件自动实现的)。除D、T、JK和SR类型外,ATF1508AS的触发器还可配置为锁存器。在这种模式中,当时钟为高时,数据通过;当时钟为低时,数据锁存。
时钟信号可以是全局CLK信号(GCK)和一个单独的乘积项。触发器在时钟的上升沿改变状态。当GCK信号作为时钟信号时,宏单元的一个乘积项可以选择作为时钟允许信号。当使用时钟使能功能时,使能信号(乘积项)为低时,所有的时钟边沿将被忽略。触发器的异步复位信号(AR)可以是全局复位信号(GCLEAR)、一个乘积项或不使用。AR也可以是GCLEAR和一个乘积项的逻辑或输出。异步置位信号(AP)可以是一个乘积项或不使用。
(4)输出选择和使能
ATF1508AS宏单元的输出可以选择为寄存器型和组合型。隐藏的反馈信号可以是组合或寄存器信号而不管输出是组合型还是寄存器型。输出使能多路复用器(MOE)控制输出使能信号。如果是简单的输出操作,任何缓冲器都可以永久使能。如果引脚用作输入,缓冲器也可以永久禁止。在这种配置下,所有的宏单元资源仍然可用,包括隐藏的反馈信号、扩展器和级联逻辑。每一个宏单元的输出使能信号都可以选择一个全局输出使能信号。该器件有6个全局输出使能信号(OE)。
(5)逻辑阵列输入
逻辑阵列输入包括全局总线/开关矩阵和返送总线:
全局总线/开关矩阵
全局总线包括所有的输入和I/O引脚信号以及所有128个宏单元的隐藏反馈信号。每个逻辑块的开关矩阵将全局总线的所有信号作为其输入。在软件的控制下,这些信号中最多可以有40个被选择作为逻辑块的输入。
返送总线
每一个宏单元可以产生一个返送乘积项。这个信号连接到局部总线上,并且对16个宏单元有效,它是宏单元一个乘积项的反极性。每个局部总线的16个返送项允许产生高扇入求和项(最多21个乘积项),而只有很小的延时。
3 设计软件支持
ATMEL公司提供了CPLD的设计软件,而且很多第三方的工具软件也支持ATF1508AS的设计,可以用多种高级描述语言和格式进行逻辑描述,如CUPL、ABEL、VHDL等。由于ATF1508AS与ALTERA公司的EPM7000系列是完全引脚兼容的,因此可以使用ALTERA公司的MAXPLUSII软件。它能进行VHDL语言的编译和综合,使用方便,功能强大。MAXPLUSII综合后产生适合ALTERA的CPLD编程的POF文件,使用POF2JED软件(ATMEL公司提供),就可将POF文件转换为适合ATF1508AS的工业标准JEDEC编程文件,下载到ATF1508AS芯片中。
4 器件编程
ATF1508AS器件是利用4脚JTAG协议在系统编程(ISP)的。ATMEL提供了ISP硬件(下载电缆)和软件,以允许从PC对ATF1508AS进行编程。若要允许ISP编程支持"自动测试装置(ATE)"向量,必须通过ATMEL的ISP软件生成串行向量格式(SVF)文件,也可转换为除SVF外的其它ATE测试格式。ATF1508AS器件也可以用标准的第三方编程器来编程,这时JTAG ISP口可以被禁止从而允许这四个额外的I/O引脚用于逻辑功能。
ATF1508AS还有一个特性就是如果由于任何原因编程过程被中断,则器件将被锁定以防止输入和I/O引脚被驱动。在这种状态下,输入和I/O引脚缺省下为高阻状态。在编程器件时,输入和I/O引脚也将为高阻状态。此外,引脚保持电路设置在器件编程期间将保持以前的状态。ATF1508AS器件出厂时被初始化为已擦除状态,可以直接用来ISP编程。
结束语
CPLD器件的优势在于缩短开发生产周期,现场灵活性好,而且随着电子技术的发展,其集成度越来越高,速度越来越快,价格也逐渐降低,因此市场发展很快。ATMEL公司的ATF1508AS是高性能、高密度的复杂可编程逻辑器件,使用方便,具有很高的性价比,因此具有广阔的应用前景。
参考文献
1 ATMEL Corp. ATF1508AS Users Manual
2 ATMEL Corp. Designing for In-System Programmability with Atmel CPLDS
3 ATMEL Corp. Atmel PLD Frequently Asked Questions
4 Stefan Sjoholm,Lennart Lindh. 用VHDL设计电子线路. 北京:清华大学出版社,2000
5 PHILIPS Corp. PDIUSBD12 Users Manual