2024年5月4日发(作者:)

26

卷第

1

2011

3

西南科技大学学报

JournalofSouthwestUniversityofScienceandTechnology

Vol.26No.1

Mar.2011

基于

FPGA+USB2.0

多通道数据采集系统设计

程海狮黄玉清

四川绵阳

621010)(

西南科技大学信息工程学院

摘要

针对传统数据采集系统中主控制器升级慢和传输芯片速率低等弊端

利用

FPGA

内嵌

FIR

滤波器抗干扰

场可编程性

容易升级与更新以及

USB

接口通用性好

传输速率快的优点

设计了基于

FPGA+USB2.0

多通道数据

能够完成

4

路最大采样频率

150kHz、

精度为

12

位的数据采集和传输

实现了高精度数据采集

采集系统

关键词

:FPGAUSBFIR

数据采集

文章编号

:1671-8755(2011)01-0056-05

中图分类号

:TP391

文献标志码

:A

DesignofMulti-channelDataAcquisitionSystem

BasedonFPGAandUSB2.0

qingCHENGHai-shi,HUANGYu-

(SchoolofInformationEngineering,SouthwestUniversityofScienceandTechnology,

Mianyang621010,Sichuan,China)

Abstract:Inthetraditionaldataacquisitionsystemdesign,primarycontrollerishardtoupdateandthe

transmissionspeedoftransmissionchipislow.Thispeperhasdesignedamulti-channeldataacquisition

systembasedonFPGAandUSB2.0.Thesystemachievesacquiring4-routedataacquisitionwiththe

maximalfrequencyof150KHzandtheprecisionof12bits.Thesystemhasdesginedmulti-channelFIR

filter.Thisapproachcanachievereal-timefilterandeliminatetheinterference.Thesystemismodularde-

sign,highstability,canbewidelyusedformulti-channeldataacquisition.

Keywords:FPGA;USB;FIR;Dataacquisition

计算机的广泛应用使得数据采集系统在多个领

域有着十分重要的应用

传统的数据采集系统

控制

A/D

以及常采用单片机或

DSP

作为主控制器

存储器和其他外围电路的工作

DSP

作为主控

制器

实现方式灵活

但是由于其结构限制不能进行

并行运算

使得对多通道

A/D

采样增加了难度

长了开发周期

处理速度也大大降低了

成本也相对

较高

用单片机作为主控制器操作简单

成本低

是满足不了实时性要求

近年来

FPGA

的使用越来

FPGA

具有高逻辑密度

越广泛

可编程以及能够可

并行计算等优点

是多通道数据采集系统的理想控

制器

数据从主控制器到存储及处理部分的传输多

CAN

总线

、PCI

总线

使用的是

RS-422/RS-485、

收稿日期

:2010-03-29

作者简介

程海狮

(1984—),

硕士研究生

研究方向

嵌入式图像处理

电路设计

。E-mail:whizchs@126.com。

IEEE1394

接口等

。RS-422/RS-485、CAN

总线其

传输速率不超过

1Mb/s,

很难满足日益增长的数据

IEEE1394

接口

在速率上采集传输要求

;PCI

总线

IEEE1394

还支持异步

较前者有很大提高

等时传

点对点连接

热插拔

线缆提供等

但与

USB

USB

具有支持热插拔

携带方便

标准统一

可以

连接多个设备等优点

笔者利用

FPGA

USB

计了

FPGA+USB2.0

多通道数据采集系统

1

系统设计原理

基于

FPGA+USB

多通道数据采集系统的硬件

模块框图如图

1

所示

硬件电路包括滤波电路

A/D

采样电路

、FPGA

及配置电大电路

前端跟随

1

期程海狮

基于

FPGA+USB2.0

多通道数据采集系统设计

57

USB

电路

时钟电路

串口电路组成

其芯片为

AD8231,THS6062ID,AD7323,XC3S1500,

CY7C68013A,MAX232。

其工作流程为上位机通过

串口发数据

配置信息

FPGA

得到采样率的大

放大倍数等信息

输入信号通过放大

滤波

FPGA

经样

量化

编码

以串行的方式传至

FPGA,

组包

传至

USB

USB2.0

的标准高速传至过组帧

上位机

上位机接收数据

拆包获取有效数据信息

显示出波形

批量

中断以及等时传输

。CY7C68013A

包括带

16

kB

的片内

RAM、16

位并行地址总线

、8

高速

CPU、

I2C

总线

、4kBFIFO

的可配置位数据总线

双串口

的存储器以及通用可编程接口

(GPIF)、

智能串行接

口引擎

(SIE)

USB2.0

收发器

。CY7C68013A

外设有两种接口方式

可编程接口

GPIFMaster

SlaveFIFO。

可编程

GPIF

的主机方式

(Master

Mode)

可以由软件设置读写控制波形

灵活性很大

几乎可以对任何

8/16

位接口的控制器

存储器和总

线进行数据的主动读写

使用非常灵活

。SlaveFIFO

方式是从机方式

(SlaveMode),

外部控制器可像对

普通

FIFO

一样对

CY7C68013A

的多重缓冲

FIFO

进行读写

。CY7C68013A

SlaveFIFO

工作方式可

设为同步或异步

工作时钟为内部产生或外部输入

可选

其它控制信号也可灵活地设置为高有效或低

有效

或是作为读写选通信号

3

2

2.1

软件系统设计

系统典型电路设计

数据采集电路

基于

FPGA+USB2.0

多通道数据采集系统软

件设计结构简图如图

2

所示

每个通道采用双

FIFO

的模式

,USB

状态机循环检测

当一个

FIFO

读数据开始

这样来回循环读取和写入

使得系

统很稳定地运行

数据采集电路实现的是将传感器输出的模拟信

A/D

采样等步骤转化放大

前端跟随

号经过滤波

成数字信号的过程

在输入模拟信号不失真的前提

信号的滤波

放大选用高速

低噪声的运放组成

三阶滤波器

使得输入信号更加平滑

毛刺干扰受到

抑制

放大器选用

ADI

公司的

AD8231,

具有低零

点漂移

最大的零点漂移为

50nV/℃),

数字可编程

14~16

引脚

A0~A3

为可放大倍数的仪表放大器

2、4、8、

编程放大倍数引脚

可编程的放大倍数有

1、

16、32、64

128。

模数转换器芯片选用

ADI

公司的

AD7323,

是一款

12

4

通道的模数转换器

最大采样速率可

达到

500kS/s,

可以对双极性信号进行转换

转换范

围是可编程的

。16-leadTSSOP

封装

正常工作时

的功耗为

17mW,

小封装

低功耗

无需添加散热

减少

AD

部分占用空间

节约了成本

提高了系

统的性能及稳定

2.2USB

接口电路

USB

接口芯片采用

CYPRESS

公司的

CY7C68013A,

由它完成数据采集后与

PC

机之间的

高速数据传输

它支持

12Mb/s

的全速以及

480

Mb/s

高速传输

可使用

4

USB

传输方式

控制

3.1

采集数据

数据采集部分含有

4

个采集模块

(0~3)、

数据

编码和同步串行发送器

其主要功能为根据配置标

志寄存器

Tn,

向通道发送

CNVST

信号

读入

AD

据以及将通道数据编码发送到

USB。

单个通道硬件环境设置

先转换后读取模式

58

西南科技大学学报第

26

CNVST

下降沿触发

AD

数据模块

SDCLK

频率是

5MHz,

串行发送模块数据速率是

8.3Mb/s,

程序流

程图如图

3

所示

10-3

通道

,11-4

通道

);xxxx

位对应于采

2

通道

样率

(16

种不同的采样率

)。

控制命令帧格式

FF00FF

命令

,FF

为控制命令的帧头

,00

为停止

FF00

就意味着停止一切当前采集传输过程

4.2.2

数据帧格式

数据的帧格式为帧同步头

+

通道号

+

数据的格

帧同步头为

8

在本设计中为

FF,

通道号为

2

00、01、10、11

代表着

4

个通道

整个帧长为

512

bit。

帧同步的选择采用遥测常用军标

GJB21.2A

8

位选用的是

1011100B,

这种码具有快速准帧同步

尖锐的自相关特性

确识别能力

4.3USB

程序

USB

芯片

CYS68031A

工作方式是可编址从

FIFO

模式

(IndexedSlaveFIFO),

采用的是同步读写

3(a)

AD

数据模块流程

。AD

在输入

CNVST

信号出现下降沿约

35ns

输出转换标志

BUSY(AD

高电平

,BUSY

信号恢复转换结束后

BUSY

信号高电平持续时间约

1.68

μ

s。

程低电平

序控制器检测到

BUSY

恢复电平后

等待约

2

μ

s,

AD

数据稳定后

,AD

被选中首先拉低

CS

片选

AD,

同时在该时后连续输出

18

个时钟脉冲到

SDCLK,

钟脉冲的下降沿读入

SDOUT

3(b)

是采集模块

(Sampling)

控制状态机流

向对应的通道发送

程序根据

Tn

标志位

CNVST

脉冲

并在脉冲的下降沿开始计时

设置

AD

转换结束且数据稳定时间为

4

μ

s。

计时

4

μ

s

BUSY

信号状态并启动读

AD

数据模块读入数

数据读入到模块的缓冲寄存器后

根据模块对

接着将各通道数据放入应通道编号进行编码

FIFO。

FIFO

非空的情况下

控制器会启动数据

串行发送至主控

FPGA。

发送模块读取

FIFO

数据

数据编码方式前面做了介绍

即通信协议中的数据

而数据编码的过程

也是在数据被读入的时格式

在相应采集模块内加入该通道的通道号和层号

4.2

4.2.1

组帧

控制命令帧格式

4.4

多通道

FIR

滤波器

本系统中直接调用

Xilinx

公司的多通道

FIRIP

方式

如图

5

所示为该芯片同步写操作的时序

IFCLK

的序

SLWR

平时保持高电平

在其电平期间

上升沿选中

FD

上的数据

在该模式下

选中

EP8

FLAGB

作为

FIFO

满标志

低电平表示满

程序

设置

IFCLK

时钟频率为

25MHz。

USB

控制器的流程如图

6

所示

配置

USB

FIFOADDR[1:0],

主要配置其控制引脚

SLOE、

SLOE

USB

芯片数据输出使能

,FI-

高电平使能

FOADDR[1:0]

选择芯片内部缓冲块

程序设置

FI-

FOADDR[1:0]=2'b10,

选择缓冲区

EP6。

控制命令如图

4

所示

。AA

位对应

FPGA

的工

作状态

采样

(11B)、

配置

(10B)、

自检

(01B)、

复位

(00B);BB

位对应于通道号编码

(00-1

通道

,01-

对于多通道数据采集系统而言

多个通道数据

1

期程海狮

基于

FPGA+USB2.0

多通道数据采集系统设计

59

同时进入滤波器

关键点是让各个通道的数据有条

不紊进入各自的通道的滤波器进行滤波

本文的滤

波器的设计指标如下

①采集通道数

N=4,

FIR

工作频率为

50MHz,

③输入数据宽度

12

④采样

频率

4kHz,

⑤滤波器阶数

N1=198

FIR

系数通过

MATLAB

FDAtool

进行设计

其某一通道

FIR

滤波器系数的幅频响应和冲击响应

如图

7

所示

读数据控制器中一定要将这一通道或者这几通道的

数据补零

这样才能正常工作

由于滤波器就是一个数据流的过程

多通道平

均分配时钟资源

这一点很重要

滤波器工作频率

50MHz,4

通道数据

:4kB*4=16

采样率为

4kB,

kB,16kB

的数据分配

50MB

的时钟资源

即每隔

3215

个时钟输入一个数据

按照顺序排列输入到

FIR

滤波器

5

测试结果

直流信号的原始数据

加干扰信号数据及滤波

后数据如图

10,

交流信号的原始数据

加干扰信号

由直流信号滤波后效果数据及滤波后数据如图

11,

图对比可知

未加干扰数据的幅值在

4570.5~

4571.5

之间波动

加干扰后数据在

4570~4572

间波动

滤波后的数据在

4570.6~4571.2

之间波

4

通道

FIR

滤波器

IPCore

生成好后

就要按照

使其其时序将各个控制信号输入输出给此

IPCore,

正常工作

时序图如图

8

所示

很明显达到了滤波效果

从波形上看

波形的平

滑程度得到了改善

由交流信号滤波后效果图对比

交流信号加上干扰后最大值接近

10,

滤波后可知

为了实现

4

通道

FIR

滤波器的时序

设计框图

如图

9

所示

上面设计的特点很明显

:4

路数据进入

FIFO,

按照顺序输入给

FIR

滤波器

无论前面数据采集部

(AD

部分

的采样率如何变化

进入

FIR

滤波器

的数据的频率保持

4kHz

不变

需要注意的是这里

必须是

4

通道的数据

由于其他原因造成的采集部

分某一通道或者某几通道没有数据

这时候在

FIR

的结果达到了未加干扰前的效果

滤波效果较好

这里说的未加干扰的数据

是没有在外部再加干扰

源的数据

当然此时器件的白噪声干扰是不可避免

60

西南科技大学学报第

26

经过

MATLAB

分析

精度和线性度都达到了设

计要求

AD7631

参考文献

[1]

刘光远

张涛

郑伟波

基于

FPGA

的数据采集系统

IEEE1394

接口设计

[J].

仪表技术与传感器

,2009,

(12):46-48.

[2]

杨文利

杨耕

赵明国

一种基于

USB

接口的移动机

微计算机信息

,2007,(5-

器人运动控制系统

[J]

2):223-225.

[3]

[4]

[5]

王学梅

基于

FPGA

的有限冲激相应数字滤波器的研

D].

长沙

中南大学

,2004.

究及实现

J].

童红

肖铁军

基于

FPGA

FIR

滤波器的设计

2010,26(3-2):142-144.

微计算机信息

冼友伦

基于

FPGA

的数字滤波器设计与高速数据传

D].

西安

西安电子科技大学

2009.

6

结论

基于

FPGA+USB2.0

多通道数据采集系统通

用性较好

使用

USB2.0

标准接口

提高了数据的传

还具有良好的可扩展性

功耗低

四通道可输速率

同时采集

满足一般环境下的多通道采集

。FPGA

内嵌多通道

FIR

有较好的滤波效果

有可调的放

大倍数以及采样率

具有人性化的设计

数据存在

PC

有利于进一步分析和处理

。FPGA

的现场可

编程性使得系统的升级和更新变得容易

本设计中

在数据精度上有使用的是

12

4

通道的

AD

芯片

所欠缺

可以选用高于

12

位芯片

18

位的

檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨檨

100.

上接第

46

[5]

[6]

朱兵见

张维炎

软土地区基坑支护施工与监测实例

J].

铁道建筑

,2008,(9):71-74.

分析

应宏伟

王奎华

杭州解百商业城半逆作法深基坑

J].

岩土工程学报

,2001,23(1):79

支护设计与监测

-83.

[7]

李刚

朱向荣

王金昌

软土基坑工程中环形内撑式支

J].

建筑技术

,2003,34(2):99-

护结构的应用技术

[10]

[9]

[8]

曲艺

段红波

某高层建筑基坑支护设计

施工与监测

[J].

海岸工程

,2005,24(2):73-77.

WHITTLAJ,HASHASHMA,WHITMANRV.Anal-

ysisofdeepexcavationinboston[J].Journalof

GeotechnicalEngineering,1993,119(1):69-90.

JGJ120-99

建筑基坑支护技术规程

[S].

北京

中国

1999.

建筑工业出版社