基于DSP与FPGA的多通道数据采集系统的设计
摘要:针对煤矿井下的安全生产管理信息采集,设计采用DSP芯片TMS320VC5402和FPGA芯片EPF10K50E作为核心控制部分,完成整个系统的数据处理、数据传输等功能。该系统采集信号频率范围宽、数据传送量大、数据传输速度高,并具有较强的扩展能力。
关键词: DSP ;FPGA;数据采集;数据传输及逻辑控制 ;VHDL程序
1 引言: 在井下需要对CH4、CO、风速、负压、烟雾、温度、风门开关等环境参数;煤仓煤位、水仓水位、压风机风压、机电设备的开停等生产参数;电压、电流、功率、电度等电量参数;以及胶带跑偏、胶带速度、轴承温度、机头堆煤等各种机电设备的运行参数进行检测。由于目标相对接收点的距离变化范围很大,使得接收机接收到的信号动态范围相当大,而A/D采样的动态范围有限,所以要求数据采集器的放大电路具有很高的动态范围;另外,接收到的信号中混有大量的噪声信号,信噪比一般很低,要求数据采集器具有良好的滤波特性。另外还要求系统具有一定的通用性以及灵活的扩展能力。
一般的数据采集器只采集某些固定种类的信号,且动态范围较小、通道数较少、必须与主机进行接口等,这些都限制了其具体应用范围。这里设计的多通道数据采集系统模拟部分采用可编程滤波器作为前置滤波,用D/A转换器实现高达70dB范围的增益控制,采用16位的A/D转换器进行A/D转换,使用DSP、FPGA、CPLD对系统进行管理,使整个系统能够协调工作,采用USB2.0接口方式与主机相连,能够实时的传送大量的数据并存盘,所选用的增益控制曲线以及控制参数可在液晶屏上实时显示出来,可以脱机或联机方式工作,大大的拓宽了该系统的使用范围。
2 采用DSP与FPGA的结合进行系统设计
DSP可以实现较高速的数据采集,但其指令更适于实现算法而不是逻辑控制,其外部接口的通用性较差。FPGA时钟频率高,内部时延小,全部控制逻辑由硬件完成,速度快、效率高,适于大数据量的高速传输控制,可以集成外围控制、译码和接口电路,在高速数据采集方面,FPGA有单片机和DSP无法比拟的优势,其缺点是难于实现一些复杂的算法。
因此,单独采用DSP或者FPGA作为数据采集系统的控制核心部分都不是最佳的选择,如果采用DSP与FPGA的组合,使DSP的高速数据处理能力与FPGA的高速、复杂的组合逻辑和时序逻辑控制相结合,则可以互补二者的不足。本系统采用高性能数字信号处理芯片TMS320VC5402和现场可编程门阵列EPF10K50E、复杂可编程逻辑器件EPM72 56A作为数据处理和逻辑控制芯片。
3 数据采集系统的组成
数据采集系统主要由前端模拟电路、主控制电路、数据传输接口电路、液晶显示电路、键盘、鼠标接口电路等组成。
3.1前端模拟电路
前端模拟电路完成对输入信号放大、滤波、增益控制、A/D变换、数据缓冲等功能。
3.1.1放大电路
根据设计要求,系统总的增益设计设定为10000,这里采用3级放大电路,经过试验测试并结合系统对输入信号动态范围的要求,各级增益的设计分别为20、25、20,为减小电阻带来的噪声,放大电路前级选用阻值较小的电阻。
3.1.2可编程滤波电路
为防止采样后的信号频率产生混叠,滤掉信号中的噪声和不需要的频率范围的信号,以改变输出模拟信号的信噪比,在A/D变换器前加了滤波电路,这里选用MAX262开关电容滤波器,由其构成的滤波器的中心频率、Q值是可编程的,通过数字接口很方便与DSP、FPGA等数字器件连接。
3.1.3A/D转换器
为了提高转换精度、转换速度, A/D转换器采用ADS832O,它的最高转换精度是16bit, 最高转换速度达100KHz,该器件还具有微功耗、体积小、管脚与ADS7816和ADS7822兼容、具有串行数据接口等特点。
3.1.4数据缓冲器
由于本系统的采集通道多,采集到的数据必须进行预存储后才能传输。这里设计了二级数据缓冲器,第一级由CPLD完成,第二级由8块16位数据锁存器16374来实现的。 16374是一种具有3态输出端的16位D触发器型锁存器,包含2个独立的输出使能控制信号OE1、OE2和输入信号锁存时钟信号CP1、CP2。
3.2主控制电路
系统的控制核心主要由TMS320VC5402与EPF10K50E两个核心器件以及外围电路组成。主控制电路原理框图如下图1所示:
图1 主控制电路原理框图
主控制模块通过外部总线与FPGA连接,接收发自FPGA的命令字和数据,并对命令字进行译码,然后根据译码结果分别控制器它的模块。
该部分逻辑的VHDL语言实现如下:
PROCESS(SCWR,RES)
BEGIN
IF SCWR’,EVENT AND SCWR=‘1’THEN
IF INADR (3 DOWNTO 0)= ADR AND INADR (6 DOWNTO 4)=“000”THEN
CPLDREG<=STD (8 DOWNTO 0)
EID IF;
END IF:
END PROCESS; PROCESS (WR, RES)
BEGIN
IF WR’EVENT WR AND WR=‘1’ THEN
IF INADR(6 DOWNTO 4)= “001”THEN
CASE CPLDREG(7 DOWNTO 6) IS
WHEN “00” =>
MS1<=STD(7 DOWNTO 0);
WHEN “01”=>
MS2<=STD(7 DOWNTO 0);
WHEN “10”=
MS3<=STD(7 DOWNTO 0);
WHEN OTHERS=>
NULL;
END CASE;
END IF;
END IF;
END PROCESS;
3 接口设计
3.1 DSP与FPGA接口设计
DSP与FPGA共同完成系统的整体控制,DSP主要完成系统有关数据的计算和任务管理;FPGA完成各种时序控制以及连接各种数字接口。由于DSP与FPGA之间的数据传输是通过DSP的外部数据总线、地址总线、控制总线实现的,TMS320VC5402共有16根外部数据总线、20根外部地址总线和一些控制总线,DSP与FPGA之间的通信用不同的地址信号区分不同的操作方式的命令字方式,因此DSP与FPGA连接时采用了DSP外部低7位的地址总线,此时总共有128种不同的命令字,FPGA选择了其中的一部分命令字进行译码处理,译码后去执行各种功能。DSP的外部中断INT0、INT1、INT2是由FPGA给出的。其中,INT0用于键盘中断,INT1用于数据传输接口中断,INT2作为备用中断,以满足将来系统扩展功能的需要。
3.2 FPGA与前端模拟电路接口设计
前端模拟电路采集到的数据需要通过数据总线传给主控制电路,因此需要设计主控制电路与模拟电路之间的数据传输总线。另外,前端模拟电路的增益控制电路、可编程滤波电路、A/D转换电路需要输入控制参数,因此也需要设计一些控制信号线。由于系统正常工作时,数据总线一直是忙的,不能进行复用,因此需要单独设计各条总线。
由于本系统传输的数据量很大,便于以后对系统进行升级,需要留出较大的设计余量,因此设计了64位宽的数据传输总线。对于16位的A/D转换器,总线上每次可以同时传输四个通道的数据。这样,采集系统按最高采样速率为l00Ksps计算,64通道时最高数据传输速率为12. 8MByte/s ,128通道时最高数据传输速率为25.6 MByte/s 。
3.3 FPGA与CPLD接口设计
FPGA与CPLD之间采用了两套总线,采样数据传输总线和控制参数传输总线,这样做可以使数据传输与参数控制同时进行,互不干扰,极大的满足了系统的实时性要求。另外,控制参数传输总线中的数据总线采用了双向传输方式,即可写命令信息,又可读状态信息,灵活方便。
3.4 DSP的外部程序存储器接口设计
由于TMS320VC5402具有16K×16bit的片内双口RAM和4K×16bit的片内ROM,为给系统软件升级预留出一定的程序空间,需要外扩较大的程序存储器,从DSP外部程序存储器逐条的读取程序代码并运行,所以这里采用外接程序存储器装载程序。为了存储程序,所有FLASH均映射到相应TMS320VC5402的程序空间, TMS320VC5402要访问FLASH的512K存储空间,需要将DSP的
信号经过一些逻辑运算与FLASH的
管脚相连接。
3.5 DSP的外部数据存储器接口设计
系统工作过程中有一些生成的数据需要实时的进行存储,而DSP内部的RAM一旦断电里面的数据就会丢失,因此需要外接可读写的非易失性的数据存储器。这里选择了X25138作为DSP的外接数据存储器,它是具有SPI接口、16K×8bit的E2PROM型存储器,串口时钟速率最高可达5MHz,具有块加锁保护模式,可以对整片的E2PROM或其1/4、1/2进行加锁保护。X25138的SPI接口共有4根信号线,与DSP的MCBSPS'串行接口连接,通过串行口来读写数据。
4 结论
本文创新点:该系统采用FPGA与CPLD的结合,充分发挥二者的各自优势,使DSP的高速数据处理能力与FPGA的高速、灵活的逻辑控制能力都得到充分的发挥;采用EEPROM可以在线进行数据存取,采用FLASH存储器进行DSP程序的装载,可对数据进行采集并能实时存盘,具有可扩展能力,具体控制参数可以通过主机装载或直接通过人机交互界面进行装载,能够实时显示增益控制曲线图及各种控制参数,具有较强的扩展能力,采集信号频率范围宽,数据传送速度高,数据量传送大。
|