期刊发表网电话

全国热线
022-83699069

一种数据采集卡的设计与实现

作者: 发布时间:2020-01-19 14:47:22 阅读: 32 次

摘要:为了实现系统间图像和视频的高速传输,设计了一种以FPGA作为平台的采集卡,该采集卡功能完全由硬件实现。本文介绍了整个方案的设计原理和逻辑设计方法,支持传输速率可达100Mbps~400Mbps

关键词:FPGA;1394b;数据采集

 

1 引言

IEEE13941994年由美国Apple公司提出的高速串行总线标准。在1995年经电气和电子工程师协会(IEEE)认证成为了正式标准。IEEE 1394也就是我们俗称的火线(Fire Wire)发展至今已经有了两个版本,分别是IEEE 1394aIEEE 1394b

该标准具有以下特点[1,2]

  a. 高速的数据传输速率,IEEE 1394b更大可以支持到3200Mbps

  b. 可同时连接不同传输速度的设备,具有很强的灵活性;

  c. 支持点对点的传输模式;

  d. 支持同步和异步数据传输。

利用IEEE 1394技术,可以十分方便地把电脑和摄像机、高速硬盘、音响等多种多媒体设备相连接。随着IEEE 1394技术不断成熟,应用的范围也日渐广泛,车载、航空上都利用其高性能、低延迟的特性进行图像、视频等信息的传输和处理。本文就是介绍了一种1394接口数据采集卡的设计与实现。

2 应用背景

某系统中,四个分机之间通过1394总线连接,分机III和分机Ⅳ需要实时采集分机I和分机II发来的相关数据,在分机III和分机Ⅳ内部,采集卡与载板之间通过LVDS进行数据交互,分机之间的数据传输最小速率为64Mbps,系统要求采集卡除了完成数据采集任务外,还能够实时提供网络状态信息,结合所有的需求提出了以下设计方法。

3 原理设计

采集卡主要完成数据采集和监控网络状态两部分功能:

  a. 数据采集功能:接收其他分机通过1394总线发来的数据,将1394数据包进行解析,把有效的数据载荷上报载板,并且能够实现固定帧的应答功能;

  b. 监控网络状态:载板需要实时了解各分机间网站状态,因此采集卡必须能够将收集到的网络信息上报载板。

整个系统如图1所示。

 图片1.png

1 系统架构示意图

系统要求采集卡必须自行完成网络节点配置、数据接收、数据解析和数据上报等功能。采集卡完全通过硬件实现所有功能。这样的做法不仅可以提高了产品可靠性,减少软件设计所带来的开销,降低了设计成本,更大化的保证产品工作效率。采集卡选用了Xilinx公司出品的XQV300-4BG352N来实现所有逻辑功能,1394链路层芯片和物理层芯片分别选用TI公司的TSB12LV32TPZEPTSB41BA3BTPFPEP

TSB12LV32TPZEP除了提供处理器接口外,同时还提供了Data Mover接口(以下简称DM接口)。DM接口有很多优点:

  a. 发送与接收大块数据带宽可达400Mbps

  b. 允许外部接大容量FIFO

  c. 能够处理异步、等时、异步流包;

  d. 共有八种工作模式可以选择,由控制寄存器中的三位信号组合而成,配置十分简便;

  e. 当不使用时,DM接口表现为高阻状态。

DM接口支持三种类型的包:异步包、等时包、异步流包(1394a-2000支持的格式),并且能够与外部存储器连接来支持大量数据的传输。当此接口配置成接收时,所有的数据都在DMCLK的上升沿进行同步接收。利用DM接口的这个特性,我们选择FPGA作为平台,通过可编程逻辑完成对DM接口的控制,从而实现数据的采集工作,采集卡的结构如下所示。

 图片2.png

2 采集卡结构框图

4 逻辑设计

采集卡的功能完全由硬件实现,因此依照采集卡的工作流程将逻辑设计分为四部分,分别是初始化单元、数据接收单元、状态控制单元和数据发送单元,采集卡的工作流程如图 3所示。采集卡上电后将对本板相关资源进行BIT测试,若正确则开始进行配置和初始化工作。结束初始化工作后就进入到数据接收状态中。当从1394b总线上接收到数据后,采集卡通过FIFO接口将数据发送给载板,整个过程中采集卡时刻监控总线状态,及时将总线状态向载板报告。

 图片3.png

3  工作流程图

4.1 初始化单元

初始化单元包括两部分内容,该单元是采集卡正常工作的基础,分别完成上电BIT和网络配置初始化工作。

上电BIT会进行两部分的操作。首先是对链路层芯片进行访问,判读链路层芯片的ID号是否正确,然后会对链路层芯片的某个固定可读写寄存器进行读写访问,以读写结果是否一致来表明链路层接口是否工作正常。在完成链路层芯片的测试后,会对物理层芯片进行相同的访问操作,以保证在上电时基本硬件能够正常访问,上电BIT的结果会通过状态控制单元发送给载板。

上电BIT正常通过后,采集卡将会开始对本板硬件资源进行1394b网络配置初始化。在初始化完成后,采集卡将会获取1394b总线工作状态,这通过读取物理层芯片某个寄存器的相应位来判断。当确定链路建立后,通过检查和配置Node ID寄存器,强制设置采集卡为子节点。当完成上述工作后,采集卡会将获取到的总线状态通过状态控制单元发送给载板。在本设计中,由于载板不对采集卡进行配置操作,因此所有的网络配置数据都储存在采集卡上。这样的设计简化了载板与采集卡之间的控制关系,比较适用于网络配置信息相对确定的系统中。

4.2 数据接收单元

在上文已经提到1394链路层芯片提供了DM接口,该接口位宽16bit,允许外部接大容量的FIFO,而载板数据接口是8bit,为了实现数据的无缝连接,在FPGA内部为每一路1394接口设计了一个数据处理单元。该数据处理单元内部包含一个FIFOFIFO的接收端为16bit,而输出端为8bit,采用Xilinx公司提供的软IP核实现。当接收到1394b总线上发来的数据后,会以中断的方式通知数据接收单元从DM接口开始读取数据。在对接收到的数据完成校验无误后,将该数据帧的1394帧头和帧尾剔除,保留有效数据载荷写入FIFO,如图4所示。

 图片4.png

4 接收原理框图

采集卡与载板之间接口十分简单,每路接口由8根数据线和1根写使能信号组成,当写使能信号为低时表明数据或状态信息有效,其时序图如图 5所示。

 图片5.png

5  FIFO接口时序图

4.3 状态控制单元

采集卡与载板之间有4根状态位信号,分别是STATE_OE#STATE0STATE1STATE2STATE_OE#表示状态有效位,其余三根信号表示各种状态。采集卡共提供六种状态标识,通过这样的方式可以使主机实时获得采集卡的工作状态,并对采集到的数据正确性有所判断,采集卡的状态标识如表1所示。

1 状态标识

SATAE0

STATE1

STATE2

状态

0

0

0

总线工作正常

0

0

1

物理链路连接错误

0

1

0

BIT错误

0

1

1

DM ERROR

1

0

0

DATA CRC错误

1

0

1

HEARD CRC错误

4.4 数据发送单元

数据发送单元主要实现1394b总线上固定帧应答功能。分机之间通过1394b总线传输数据时,需要了解掌握采集卡的工作状态。当采集卡接收到固定帧时,会向发送方返回一个应答包,以表示数据已接收。

5 结束语

本文提出的一种数据采集卡的设计与实现方法。该产品实现了1394接口100Mbps~400Mbps速率下的高速数据采集,通过FPGA+LLC这样的设计方案,使产品具有较高的可靠性和可维护性,整个设计完全由硬件实现,。在系统综合时,出色的完成了图像和视频的采集工作,满足了系统的需求。

 

参考文献:

[1] IEEE Std 1394-1995,IEEE 1394高速串行总线标准 [S].

[2] 张大朴,. IEEE 1394协议及接口设计 [M]. 西安:西安电子科技大学出版社,2004.

[3] TSB12LV32 Data Manual [Z]. Texas Instruments,2001.