一、前言
本文提到的控制系统控制通信设备的正常工作,是整个通信设备的重要组成部分。该控制系统要实现的功能为: 接收外来的信息、实时采集输入的信号,控制设备的工作状态、参数、频率、电压及完成设备的故障检测等;要求具备大量的通信功能和复杂的管理控制功能,且具备实时性、准确性。
原来普遍采用单片机加外围器件来完成这些功能,需要大量的外部电路,增加了系统成本,也增加了系统的复杂性,系统的可靠性也会受一定的影响。
本文所提出的基于DSP+FPGA的控制系统方案,利用FPGA的容量大、可编程实现很多功能,结合DSP具有高速的信息处理能力的特点,使得本控制系统非常简洁,结构灵活,通用性强,系统也易于维护和扩展。该方案基于软件无线电的思想,是采用通用平台的设计。
二、硬件设计
系统硬件组成如图1所示。
该硬件平台由DSP、FPGA、A/D、D/A、密钥存储单元、实时钟、接口电路及程序存储器组成。各关键部分的主要功能为:
(1)DSP:参数的处理、数据的分帧、组帧、编码、通过中断实时监控各种输入信号等;
(2)FPGA:总线控制、通信接口、数据采集、整形、组合逻辑生成、时钟信号产生等;
(3)密钥存储单元:具有EEPROM特性,掉电保护各种参数。
主要器件的选型如下。
(1)DSP器件
所选用的TI公司的TMS320LF2407是一种低价格、高性能的DSP芯片,其控制能力强,同时具有较高的运算能力,能够满足系统对微处理器的要求,从而实现较强的通信功能和复杂的管理控制功能。
(2) FPGA 器件
选用XILINX公司的XCV100:
(1)其资源为10万门;
(2)工作频率最高可达200M;
(3)I/O端口多,端口功能可编程自定义;
(4)内核采用2.5 V供电,端口供电电压为3.3 V,可直接与TMS320LF2407接口;
(5)同样封装的FPGA,其资源可达100万门,有利于系统的升级。
三、软件设计
系统对软件的设计提出了较高的要求,因此,笔者完全采用VHDL和C语言来编写系统内部执行软件。
1DSP的软件设计
DSP软件设计在CCS2000的开发系统下用C语言设计, DSP软件采用自顶向下的设计思路,按功能划分软件模块,使程序组成模块化,主要由如图2所示的几个模块组成。
其中总线控制模块和通信模块是2个主要的软件模块。
总线控制模块的工作流程如图3所示,通信模块的工作流程如图4所示。
2FPGA的软件设计
FPGA在XILINX的软件开发系统下,用VHDL语言设计,主要实现以下功能:
(1) 总线控制的实现
本控制统要控制大量的分离信号、大量的参数及系统的工作参数、电压值,完成故障信息的采集、综合和上报。要求用简单、易控的串行同步通信总线控制方式(为RS—485总线接口)。总线控制的原理框图如图5所示。
总线按位串行,双向同步方式传输信号;只由5条信号线组成:2条差分时钟线CLK+和CLK-,2条差分数据线DATA+和DATA-,一条地线GND。发送时,数据的缓存、转换及数据在时钟作用下按位串行传输;接收时,数据的同步、缓存、转换及接收中断的产生,都用VHDL语言在FPGA中实现。
(2)通信接口的实现
本控制系统对内、对外通信接口较多:与上方系统控制命令接口、与上方系统数据接口、设备内数据接口等。这些接口采用异步串行通信方式(SCI)通信。 FPGA内异步串口设计的原理如图6所示。
这里充分利用FPGA的硬件可编程性,把要扩展多个异步串口,用VHDL语言在FPGA里实现,使系统硬件平台简单,而且能灵活设置波特率和通信方式。
(3) 状态采集的实现
有些信号是需要控制系统实时处理的,通过FPGA的采集、整形,在信号的上升和下降沿产生一定宽度的脉冲,作为DSP的中断信号。DSP在中断程序中实时读取信号的状态,控制设备工作在新的状态。
四、结束语
目前,DSP速度越来越快,成本越来越低,FPGA 的容量越来越大,封装越来越小,使得DSP+FPGA 组成的系统成为解决系统设计的重要选择方案之一。