浅析CPLD在基于DSP的智能执行器中的应用

发布时间:2011-06-18  点击数:2246

    数字信号处理系统由于其强大的高速处理能力正在得到越来越广泛的应用。作为电动执行器,由于电机的时变性和强耦合性使系统具有很强的实时性要求,采用DSP芯片构成系统成为满足这个要求的最好方法之一。同样控制系统的体积是影响系统应用范围的一个重要因素,控制系统的体积越小,其应用范围就越广泛,在处理器内部集成了大量功能模块的DSP芯片也极大地满足了减小体积的要求。

    但是,控制芯片本身可以集成的功能是有限的,数字信号处理系统中,不可避免的包含了大量的外围电路。这些外围电路包括A/D、D/A转换电路,时钟电路以及其它各种接口电路。各种外围电路实现其特定的功能,扩展了系统的功能和应用范围,在数字信号处理系统中起到了非常重要的作用。

    复杂可编程逻辑器件(CPLD)是数字信号处理系统的主要外围扩展芯片之一。CPLD器件在很小的体积内集成了大量的门电路,并且可以实现在系统编程(ISP),可以广泛的应用于IO接口扩展、RAM扩展、时序和组合逻辑的实现等。

    可编程逻辑器件可以分为三大类,即GAL、FPGA和CPLD。其中,CPLD具有布线能力强、系统在线编程、高速信号传递、高可靠性、高抗干扰性和简单易用等突出优点,非常适合中小型的系统应用。

    目前,CPLD器件的生产厂家主要有ALTERA、LATFICE、XILINX等,这些厂家提供了种类丰富的CPLD器件。本文以ALTERA公司的MAX7000系列EPM7064型CPLD为例,介绍该元件在数字信号处理中的应用和CPLD的突出优点。

一、MAX7000系列复杂可编程逻辑器件

    1、结构和功能

    MAX7000系列器件是基于ALTERA公司第二代MAX结构的高集成度高可靠性的可编程逻辑器件。采用CMOS技术基于EEPROM的MAX7000系列器件可以提供600-5000个门电路,并具有系统在线编程能力,管脚之间的延时时间最小可以达到5ns。其引脚可以完全兼容TTL电平和CMOS电平。其结构如图1所示。

    MAX7000系列器件可以通过系统在线编程来指定其输入输出逻辑。系统在线编程是通过符合IEEE标准1149.1-1990的4针JTAG接口来进行的。编程电压根据选择的芯片不同可以为5V、3.3V或2.5V。芯片内部会根据需要产生内部编程所需要的电压。这种技术充分简化了设计,使设计者可以方便的进行逻辑功能的修改而不需要改变印制线路板。

    MAX7000系列部分器件的IO接口是具有多种电压的接口,通过改变特定引脚的电平来改变IO引脚的输出电平。

    MAXT000系列器件的编程软件通常为MAXPLUS Ⅱ,该软件具有丰富的宏单元和大量的设计模板,可以大大减少编程的工作量。在编程时,MAX7000系列器件还可以设置安全位,以防止CPLD编程内容未经授权的读出和误写入。

    在相同的封装型式下,MAX7000系列具有多种集成度的器件可供选择,这样就消除了因为可编程逻辑器件的容量不足而使印制线路板需要重新设计的问题。

    2、CPLD的设计步骤

    CPLD器件主要用于扩展IO接口、小容量RAM扩展、组合和时序逻辑的实现等。其设计可以分为以下几个步骤:①确定输入输出的IO口数量;②设计软件,软件仿真并确定宏单元或集成规模;③确定延时;④选择芯片,下载程序,硬件仿真。

二、设计实例

    系统需求简介:在电动执行器中,由于DSP芯片本身提供的IO接口被其它外设占用,因此需要扩展额外的IO接口;显示模块和数模转换模块需要扩展出选通信号;数模转换模块还需要利用外部IO地址扩展出一个启动信号;液晶背光灯也需要两个外部IO地址扩展出控制信号。

    从DSP芯片上提供了IS(外部IO空间访问信号)、WE(写有效信号)、CLK(系统时钟)和地址线3根、数据线2根,输出的信号包括:额外扩展的IO口2个、选通/锁存信号4个、背光灯控制信号2个。这样,对CPLD一共需要IO 口16个,可以选择MAX7000系列中的44引脚的器件,一共可以提供32个IO引脚。

    CPLD逻辑功能的设计可以采用VHDL语言、Verilog HDL语言和逻辑图编程的方法进行。具体设计方法参照相关参考资料。将设计好的程序在编译器上进行编译,并可以选择适当的集成规模进行匹配,以确定最少需要的宏单元数或集成门数。在此基础上,MAX PLUS Ⅱ程序还可以进行软件的逻辑功能仿真和时序仿真,以验证设计方案的可行性。经过软件设计,上述设计要求只需较少的EPM7032系列芯片容量即可满足要求。

    芯片的延时主要根据输入CPLD的各信号之间或与外部信号之间的时序配合来进行选择,DSP器件在访问外部IO空间时,数据存在的时间和地址、控制信号存在的时间之间存在明确的相对关系,经过实际检验,我们发现延时时间控制在10ns之内完全可以满足时序配合要求。

    根据上述分析和仿真,结合CPLD器件的输入电压、编程电压等要求,我们选择了EPM7064STC44-10的CPLD来实现上述功能。在选择容量时我们考虑了充分的余量,使电路设计具有很大的灵活性。

    根据CPLD的编程内容我们将已经编好的程序通过JTAG电缆下载到CPLD器件中,通过硬件仿真的方式得到了图2和图3。

    ① 为地址线信号;② 为数据线信号;③ 为is信号(均来自DSP芯片)

    ①为确发信号(上升沿锁存);② 为对应的数据信号

三、结论

    因为VHDL语言、AHDL语言和Verilog HDL语言都是一种功能性硬件描述语言,在设计CPLD的程序时,对数字电路知识要求较少,采用这些硬件描述语言进行CPLD器件的功能设计可以使具有一般数字电路知识的技术人员就能够设计出满意的CPLD程序。

    使用CPLD节约了PCB的板上资源。如果采用相同的分立元件实现CPLD的功能,一个4非门芯片的体积就相当于一个CPLD器件的体积,而CPLD可以实现上千个门电路的功能。PCB板的布线也比分立的门电路方便很多,只需要规划好输入输出,输入和输出之间的逻辑功能几乎可以在设计的任意时间进行具体设计。

    CPLD的使用简化了设计,各家产品在相同的封装型式下,均具有不同的集成规模,这样,在设计初期,只需要计算出输入输出的IO口数量就可以进行诸如PCB设计等工作,而具体的CPLD功能可以完全独立出来,可以由熟练的硬件描述语言编程人员编程,易于分工合作;由于很多CPLD都具有ISP能力,可以使CPLD内部逻辑的修改十分容易,非常便于硬件逻辑的调试。