前言
随着信息技术与革命的深入和计算机技术的飞速发展,数字信号技术已经逐渐发展成为一门关键的技术学科;而DSP芯片的出现则为数字信号处理算法的实现提供了可能。当前,DSP芯片广泛地应用在通信与电子系统、信号处理系统、自动控制、雷达、军事、航空航天、医疗、家用电器、电力系统等许多领域,而且新的应用领域在不断地被发掘。TMS320系列芯片都设有串行端口,即 DSP可以用串口直接与外围器件(包括PC机)进行通信。通常仪器仪表还需经常跟台式机或随身的便携机发生通信。对于DSP来说,在进行串口通信时即可以用软件来实现,同时对硬件的要求也相对简单;另外也可以用硬件来实现。这里所说的硬件是指由EDA技术实现的硬件逻辑,而不是指真正意义上的硬件。其中,基于EDA技术的可编程的ASIC越来越来被广大电子工程师所开发利用,这是因为这种技术有许多优点:用软件实现硬件功能,从而大大减小了电路板的尺寸,提高了电路的可靠性和可移植性,同时还缩短了产品的开发周期,降低了开发成本,易于产品的升级换代。而DSP的串行通信的硬件实现就是此技术的应用,即利用FPGA(Field Programmable Gate Array)对指令进行译码实现此功能的。所选芯片是Xilinx公司的XC4000系列的产品。
1、FPGA器件介绍
本系统所用芯片是 Xilinx公司的XC4000系列的产品。FPGA是由美国Xilinx公司于1985年推出的,并且连续推出一代又一代集成度更高,速度更快、价格更低的新型器件,Xilinx公司的可编程逻辑性能及使用灵活性方面一直保持着FPGA产品的领导地位。其典型产品如XC4000和Virtex系列都是采用CMOSSRAM工艺制造,可反复编程,并能实现芯片功能的动态重构。FPGA的设计可在厂家提供的开发系统中快速有效的完成,生成的设计文件已构造代码的形式存储在FPGA外的存储器件中,系统上电时将这些构造代码读入FPGA内,由SRAM构成的存储器,并有各个配置存储单元控制FPGA中的可编程资源实现用户的专用设计。本系统中应用的XC4000XL/XLA系列中的器件,这种系列器件供电电压为3.3V、I/O兼容5V,采用0.25μmCOMS工艺,并且XC4000系列可满足密度高达50万系统门的需求,片内带有高速的RAM,并为包括各种内核方案在内的各种软件所接受。本系统中所用的芯片型号为 XC4010XL,其主要结构特点是:950个逻辑单元,最大系统门为10K,最大RAM为13K位,触发器数为1120,最大可用的I/O数为160。
2、Xilinx开发软件介绍
现在所接触到的Xilinx开发软件有两种:一种Foundation series1.5;一种是Xilinx ISE4.0版本。这两种软件开发系统都可开发设计、系统仿真、下载编程等功能。下面主要介绍XilinxISE4.0 开发工具。Xilinx ISE4.0是Xilinx公司于2001年推出的用于FPGA和CPLD器件的开发工具软件。运行步骤如下:
(1)、新建工程
首先启动Xilinx ISE4.0软件,进入Project Navgator,软件提示打开一个已存在的Project或新建一个Project。若选择新建一个Project,将出现一个New Project对话框,在此对话框中,可设定一个工程名及路径,同时还可以选择器件类型及设计语言类型。
(2)、设计输入
建立一个工程后,就可以确定数据输入方式了。在 Source in Project框中,点击右键,选择NEW SOURCE菜单,就出现设计输入选择对话框。 Xilinx ISE4.0软件是有原理图、HDL语言和状态图三种输入工具,并可利用这3种输入工具创建具有图形化顶层的宏模块,同时可被原理图编辑器和HDL编辑器调用。另外用原理图作输入工具时,可应用库中的各种宏单元。
(3)编译与综合
完成自己的设计后,就可以点击设计的对象,然后对 processes of current source框中进行操作,双击该框中的Generate programming file,若设计没有错误,软件就顺序完成Design Entry Utilities 、Synthesize、Implment Design及Generate programming file操作,最后生产可编程的数据格式*.bit文件;若有错,软件将会中断上面的顺序操作,停在出错的那一步,必在状态框中显示出错误。
(4)下载编程
在对系统设计进行确认无误后,把各输入和输出端口适配到期间的引脚,这个步骤可由软件自动完成,也可手工完成,生成ucf文件,此时引脚就锁定了。若要下载编程的话,双击Generate programming file中的configure device(iMPACT),就会出现iMPACT界面,可以选择通过并口下载,也可以通过JTAG下载。若下载编程成功的话,就可以验证设计的正确性及合理性。
3 DSP串口说明及其配置
在TMS320C3X系列DSP结构中,只有一个串口,包括串口接收三个管脚DR0、CLKR0、 FSR0和串口发送三个管脚DX0、CLKX0、FSX0。串口的配置是通过串口全局控制寄存器、FSR0/DR0/CLKR0控制寄存器、 FSX0/DX0/CLKX0控制寄存器来实现的。下面就串口的管脚介绍如下:
(1)DR0(接收数据口):数据通过此口输入到DSP;
(2)CLKR0(接收时钟口):它是用来接收外部时钟信号,该时钟信号可接收数据口的数据移入接收寄存器中;
(3)FSR0(接收帧同步口):用来作为接收外部帧同步脉冲信号,标志数据接收的开始;
(4)DX0(数据发送口):通过该口把发送移位寄存器中的数据串行发送出去;
(5)CLKX0(发送时钟口):该脚把发送移位寄存器中的数据通过发送时钟信号将数据发送到数据发送口。该串口可配置成使用内部时钟或外部时钟,若为内部时钟,此端口为输出口;若为外部时钟,此端口为输入口;
(6) FSX0(发送帧同步口):该端口的信号可作为发送数据开始的标志,它可由内部时钟产生,此时该端口作为输出脚;也可有外部时钟产生,此时该端口作为输入脚。
串口相应控制寄存器的配置:
串口全局控制寄存器(0X808040):0E140040H,
FSR0/DR0/CLKR0控制寄存器(0X808042):00000111H,
FSX0/DX0/CLKX0控制寄存器(0X808043):00000111H,
定时器0相应寄存器配置:
定时器0全局控制寄存器(0X808020):000003C1H
定时器0周期控制寄存器(0X808028):00000068H
4 硬件原理
这里所选择的DSP芯片是TMS320C30,所用晶振为25MHz,DSP的串口(如图1)与UART逻辑相连,其中UART逻辑包括发送逻辑和接收逻辑。所说的硬件实现DSP的UART,就是指UART逻辑部分的实现是由FPGA来实现的。FPGA接收DSP串口的三个信号CLKX0、DX0、 FSR0,并对其进行译码,输出串行数据,然后通过RS232接口把数据送到PC机;另外PC机下行发命令,通过RS232传送到UART逻辑中的接收逻辑中,并对其进行译码,产生下面三个信号CLKR0、DR0、FSR0,把这三个信号通过DSP的串口送给DSP,从而完成UART的通信。系统中所用的 FPGA芯片型号为XC4010XL-TQ144-9 ,它可以用JTAG下载编程,也可以用并口,通过目标板进行从串行模式下载编程。
5 具体实现
在设计UART的接收和发送硬件逻辑部分都是在FPGA中完成的,由于Xilinx ISE4.0开发系统,即可用VHDL语言作为输入,也可用原理图作为输入。根据系统的实现来说,本部分用原理图设计更简洁,逻辑关系更清楚。对于整个系统来说,波特率为9600bps,RS232传输的数据格式为1位起始位、1位停止位和8位数据位。下面就DSP的UART的接收和发送两部分逻辑分别作一介绍。
5.1 串口发送逻辑部分
发送部分硬件逻辑原理图如图2,工作原理如下:这部分的时钟是由DSP的H3提供。DSP把移位寄存器中的数据通过串口发送数据口(DX0)发送到FPGA,FPGA接收到数据,同时也接收到DSP串口输出帧同步信号(FSX0)及串口输出时钟信号(CLKX0)。串口数据在H3的作用下经过一个D触发器,然后与停止位相或,再通过一个有清零和片选的D触发器,在H3作为时钟的情况下输出串口数据 DOUT送到RS232口,按照传输10位数据的格式送到PC机;UART逻辑中的起始位是由DSP的FSX脚提供的信号通过逻辑关系实现的,当8位数据输出完后,就由硬件逻辑产生一个停止位。DSP的串口作为输出时,发送串口配置为爆发模式。
5.2 串口接收逻辑部分
接收部分的工作原理如下:由RS232出来的数据DIN输入到FPGA中,DIN经过FPGA中的D触发器,转换成DSP接收的数据DR0。对DSP来说,把它的定时器设置为104uS的周期信号,即相应的波特率为9600bps,在每一位数据到来时,把它存到8位移位寄存器中。图3中需要两种时钟,一个为H3,一个为H2 (H3/2),通过一定的逻辑关系,产生DSP所需的接收时钟CLKR0信号和接收帧同步FSR0信号。DSP通过串口接收数据时,设置的速率为H3的 1/8,并且DSP的串口设置为固定的爆发模式。
6 结束语
应用FPGA技术实现DSP的UART,是DSP与外部设备之间通信的一个亮点。在系统的设计中,通信是必不可少的一部分,而在不增加芯片的情况下,FPGA就可完成DSP的UART。通过实验和仿真,系统可靠工作,很好的实现了DSP与PC机的UART。