电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

图像实时采集范文

来源:漫步者作者:开心麻花2025-09-191

图像实时采集范文(精选10篇)

图像实时采集 第1篇

PCIE数据包在传输过程中要经过事务层, 数据链路层及物理层。采用类似网络分层的思想, 不同之处在于PCIE体系中的各个层都是采用硬件逻辑来实现。事务层是PCIE架构的上层, 其主要功能是接收、缓冲和分发事务包TLP (Transaction Layer Packet) 。TLP通过使用I/O、存储器、配置和消息事务来传递信息。数据链路层是保证可靠正确的数据传输, 主要负责链路管理与数据完整性相关的功能, 包括错误检测与改正, 装配和拆解数据链路层包DLLP。物理层是PCIE协议的最底层, 为设备链路提供物理支持, 分为逻辑子块和电气子块。逻辑子块完成对数据包的合成分解、加扰和去扰、8 bit/10 bit编码和10 bit/8 bit解码、并串转换和串并转换;电气物理层负责对每路串行数据差分驱动的传输与接收及阻抗匹配[1,2]。

1 采集系统简述

本文采用CCD相机的分辨率为2 3521 728, 灰度级别为8 bit, 帧频为31 F/s, 产生的数据量为120.2 MB/s, 则PCIE接口采用X1通道就可以满足带宽需要。采集系统的具体结构如图1所示。

XC5VFX70T是Xilinx公司VIRTEX系列的一款具有5 328 KB RAM资源、内嵌3个PCIE硬核和16个可配置的高速串行收发器GTX, 速率可达6.5 Gb/s, 采用CML电平标准, 在系统中和SFP模块无缝连接。该芯片在系统中主要实现高速数据的接收和缓存, 以及数据的实时采集[3,4]。

光纤信号通过光纤接口模块和位宽转换, 数据被写入DDR2中, DDR2分为A、B两个独立的存储区。当A储存区写满时, 将数据写入PCIE接口模块的TX_FIFO中, 这时DMA控制器发送中断给主机, 主机会准备好接收缓存区, 并将缓存区首地址告知DMA控制器, 开始DMA传输, 将数据写入到主机内存中, 同时将采集的数据写入B存储区中。同理, 当B存储区中的数据被写满时, 也通过同样的方式写入主机的内存中。主机内存中的数据通过SATA总线被写到SATA硬盘并记录下来。DDR2采用交叉缓存工作, 以保证高速数据流的不间断采集。

2 功能模块设计

2.1 光纤接口模块逻辑设计

光纤接口模块分为GTX和包数据解析两个部分。光纤信号经GTX核后, 输出16 bit位宽的并行数据和相应的K字符信号。根据K字符信号提取数据包。包数据解析根据自定义的协议进行数据包解析, 得到帧头标志、帧尾标志、有效图像数据和附加信息等。附加信息是一组固定长度的双字组合, 含有图像相关的一些信息, 如大小、位数、编码方式等[5,6]。图2所示为自定义协议包。

包头和包尾作为数据包的起始和结尾标志, 包长用于指示发送数据的有效长度, 包累加和用于包内有效数据字节的统计, 包编号用于统计发送的数据包有无丢失。帧头标志、帧尾标志、有效图像数据和附加信息等则放在有效数据中。

2.2 缓存模块

本文的DDR2控制器MPMC采用NPI接口, 设计有2个NPI接口分别用于读写操作。一个是用于存储光纤的输入数据, 另一个用于输出内存数据到PCIE接口。这样可以避免传输过程中内存的访问仲裁, 提高系统的传输效率。

本文光纤接口模块输出的数据宽度为16 bit, 而采用的NPI接口的数据宽度为64 bit。所以需要对原始数据进行位宽转换后才能进行后续处理。位宽转换模块根据需要将数据宽度从16 bit转换为64 bit。

2.3 PCIE接口模块设计

PCIE接口模块主要是实现主机PCIE总线与采集卡之间的通信。为了实现基于PCIE的DMA传输, 需要设计以下8个模块[7,8], 具体PCIE接口模块设计如图3所示。

图3中各个模块的作用如下:

(1) PCIE硬核:对外与其他PCIE设备通信, 对内与TX和RX模块进行数据传输。

(2) TX模块:将待发送的数据和DMA寄存器中的信息填充到事务包TLP中, 以并行的方式传输给PCIE硬核, 实现PCIE写操作状态。

(3) RX模块:将接收的事务包TLP解析, 根据TLPs的包头信息, 将数据写入DMA寄存器。

(4) 缓存:匹配FIFO两边不同传输速率的数据流, 缓存待处理的数据和提高数据的传输效率。

(5) DMA控制模块:DMA寄存器是由发送寄存器、中断寄存器等构成。发送寄存器用于接收和存放主机内存写请求的DMA信息, 主要为内存写请求地址寄存器及写长度寄存器、写包数寄存器。中断寄存器是存放中断产生的原因, 为辨别何种中断提供依据。

(6) 用户逻辑:一方面用户逻辑通过DMA控制模块向主机发起DMA传输中断, 设置DMA传输的长度;另一方面控制数据的输入, 保证TX_FIFO不会溢出, 数据不会丢失。

(7) 用户接口模块:提供简单的数据通道和控制信号通道。

3 DMA传输的逻辑设计与实现

3.1 DMA写操作的设计与实现

首先用户逻辑检测到TX_FIFO中有需要传输的数据, 这时用户逻辑通过DMA控制器发送MSI中断, 请求DMA传输。主机响应中断, 配置DMA寄存器, TX模块启动DMA传输, TX模块向TLP包加载信息, 包括了控制字段、地址字段、数据长度字段以及数据字段等。当一次DMA传输结束后, 向主机发送DMA传输结束的中断, 这样一次完整的DMA写操作就完成了。具体流程图如图4所示, TX模块和PCIE硬核之间采用64 bit并行传输, 在本文中一个TLP的载荷是128 B, 一次DMA操作要进行65 536次包传输, 则一次DMA写操作就传输了8 MB的数据量, PCIE写操作状态机是在TX模块中实现。

3.2 DMA寄存器配置的设计与实现

在本文中, DMA寄存器配置是通过配置写操作来实现的, 当主机接收到DMA控制器的中断请求后, 主机将正确填充对TLP包头的各个字段, 并且将32 bit的配置数据放在包头的后面发送给FPGA, FPGA通过解析TLP包获得配置信息, DMA控制器发送一个不带数据的完成包。接收和解析配置数据包是在RX模块中实现, 发送完成包是在TX中实现。具体流程图如图5所示。

图6是DMA控制寄存器的设计图, 初始化寄存器的Byte0用于DMA传输复位。1DW的Byte0用于读开始, Byte1用于读完成, Byte2用于写开始, Byte3用于写完成;2DW用于存放主机写入的缓存首地址;3DW用于存放一个TLP包携带的有效数据量;4DW用于存放一次每次DMA传输发送的TLP包数量;5DW的Byte0用于指示FPGA请求DMA传输, Byte1用于指示DMA传输结束。

4 功能验证与性能测试

本文PCIE硬核采用X1通道, 最大的理论传输带宽为2.5 Gb/s。使用ChipScope对DMA写操作进行了验证, 具体时序如图7所示, trn_td是FPGA向主机发送的数据, trn_tsof_n为低时, 表示TLP包的第一个64 bit数据;trn_teof_n为低时, 表示TLP包的最后64 bit数据, 这时trn_trem_n为0X0F, 则说明最后一个64 bit只有高32位有效。传输一个TLP包大约需要108个时钟周期, 采用125 MHz的采样频率, 一个TLP包有效载荷为128 B, 则可得出在X1的配置下, DMA的传输速度大约为141.3 MB/s。

在主机中添加计时程序分别对1次、5次、10次DMA写操作进行计时测速, 速度大约为138 MB/s, 低于ChipScope测得的速度, 这主要是由于中断响应和配置DMA寄存器延时造成的, 测试结果如表1所示。

本文针对高速光纤图像实时采集的需要, 设计了一种基于PCIE的采集系统。经实际测试, 系统运行稳定可靠。采用X1的PCIE总线接口, DMA写操作速度大约为138 MB/s, 满足光纤图像实时记录的带宽要求。如果实际需要更高的采集带宽, 可以参考本文设计, 将PCIE接口设计为X4或X8, 以实现更高的采集性能。本设计具有通用性, 可被移植于其他内嵌有PCIE硬核及串行收发器GTX等资源的FPGA平台。

摘要:利用PCI Express (PCIE) 总线及DMA数据传输技术, 设计光纤图像实时采集系统。利用FPGA中的PCIE硬核实现了PCIE总线的DMA传输, 同时介绍了整个采集系统的数据流和光纤接口模块的设计。测试结果表明, 系统DMA数据传输速度可达到138 MB/s, 完全满足高速光纤图像实时采集的需要。

关键词:PCIE,DMA,实时采集,光纤,硬核,事务包

参考文献

[1]BUDRUK R, ANDERSON D, SHANLEY T.PCI Express系统体系结构标准教材[M].田玉敏, 等译.北京:电子工业出版社, 2005.

[2]PCI-SIG.PCI express card electromechanical specification Rev 1.0a[Z].USA:PCI-SIG, 2003:5-33.

[3]Virtex-5 FPGA RocketIO GTX transceiver v2.1 user guide[Z].USA:Xilinx, 2011.

[4]使用用于PCI Express设计的集成端点模块实现点到点连接[Z].USA:Xilinx, 2007.

[5]孙科林, 周维超, 吴钦章.高速实时光纤图像传输系统的实现[J].光学精密工程, 2011, 19 (9) :2228-2235.

[6]缪露鹏, 涂晓东, 张新颖.光纤适配卡数据总线的研究与实现[J].光通信技术, 2011 (1) :8-10.

[7]汪精华, 胡善清, 龙腾.基于FPGA实现的高速串行交换模块实现方法研究[J].电子技术应用, 2010, 36 (5) :37-40.

VFP环境下实时数据采集的实现 第2篇

----服务程序包括二个基本部分:其一是WinMain入口函数,它主要完成一此初始化任务,建立一个名为hwnd的原始数据显示窗口,服务程序名为PFBCdas。其二是应用程序功能函数MainWndProc。下面是程序清单(因篇幅关系,在此省去WinMain函数)。

#define AD_Interval 1000 //采样周期为 1000ms

#define base 0x280 // A/D采样板基地址

/* base+k (k=1,2,…14)为A/D板各寄存器地址 */

#include

#include

#include

#include

#include

#include

#include

#include

#include

int i, j, k , AD_Status, idTimer;

int AD_Data[8][16]; // A/D数据存储单元

int DdeAdviseStatus=0;

char buf[64], DDEbuf[2048]; //数据暂存缓冲器

char szAppName[]=“PFBCdas”; //服务程序名

char szDdeTopic[]=“AD001”; //主题名

char szDdeItem[]=“DATA”; // 数据项名

long FAR PASCAL _export MainWndProc(HWND, UINT, UINT, LONG) ;

long FAR PASCAL _export MainWndProc (HWND hwnd, UINT message, UINT

wParam, LONG lParam)

//应用程序功能函数

{

ATOM aAppName,aTopic;

ATOM aItem;

GLOBALHANDLE hDdeData;

DDEDATA FAR *lpDdeData;

static HWND hwndClient;

switch (message)

{

case WM_CREATE:

idTimer=SetTimer(hwnd,NULL,AD_Interval,NULL);

//打开定时器

outportb(base+11,0x10); //选择软件触发方式

outportb(base+9,1); //选择输入信号放大倍数为10

outportb(base+14,0);

outportb(base+13,0); //清A/D完成位

outportb(base+10,0); //选择通道0

return 0;

case WM_TIMER:

for(i=0;i<6;i++)

for(j=0;j<16;j++) //采样点为6*16=96个

{

outportb(base+13,j);

outportb(base+10,i);

outportb(base+12,0); //启动A/D转换

do AD_Status=inportb(base+5);

while ((AD_Status&0x10)==0x10);

//判转换是否结束?

AD_Data[i][j]=(inportb(base+5)&0x0f)*256+inportb(base+4);

/* 读A/D转换后的数字值 */

}

_strdate(buf); //取采样日期

strcpy(DDEbuf,buf);

strcat(DDEbuf,“,”);

_strtime(buf); //取采样时间

strcat(DDEbuf,buf);

strcat(DDEbuf,“,”);

for(i=0;i<6;i++)

for(j=0;j<16;j++)

{

char temp[32];

strcat(itoa(AD_Data[i][j],buf,10),“,”);

/*各采样数据之间以逗号分隔*/

strcat(DDEbuf,buf);

}

if(DdeAdviseStatus!=0) //如果建立了DDE服务

{

aItem = GlobalAddAtom (szDdeItem) ;

//添加DDE数据项为全局原子

hDdeData = GlobalAlloc (GHND | GMEM_DDESHARE,

sizeof (DDEDATA) + strlen (DDEbuf)) ;

/*给采样数据分配全局内存块*/

lpDdeData = (DDEDATA FAR *) GlobalLock (hDdeData) ;

lpDdeData->fResponse = 0 ;

lpDdeData->fRelease = 1 ;

lpDdeData->fAckReq = 0 ;

lpDdeData->cfFormat = CF_TEXT ;

//采样数据为文本格式

lstrcpy ((LPSTR) lpDdeData->Value,DDEbuf) ;

/*将采样数据从缓冲器放至DDE内存*/

GlobalUnlock (hDdeData) ;

if(!PostMessage(hwndClient,WM_DDE_DATA,hwnd,

MAKELONG(hDdeData,aItem))) //发送DDE数据

{

GlobalFree(hDdeData);

//若发送失败,则释放资源

GlobalDeleteAtom(aItem);

}

}

return 0;

case WM_DDE_INITIATE: //DDE初始化

hwndClient=wParam;

电能量数据实时采集的研究与实践 第3篇

【关键词】电能量;数据实时采集;研究;实践

有多种方法能够实现电能量数据的实时采集,比如专用通道的解决方法,这种方法实时性特别强,能够应用在对电能量数据采集要求特别高的场所,但是其成本过高;除此之外,还可以选择共用远动通道的方法,这种方法能够节约投资以及运行成本,完全可以尝试着使用。

1.电能量数据实时采集的必要性

目前我国的电能量数据已经实现了实时采集,这是一场中国电力事业的变革,这场变革之后,我国电力部门的工作人员工作量大大减轻,但是其工作质量却大幅度提高,因此电能量的数据采集对电力企业来说,意义重大,电能量数据能够实现实时采集的却非常必要。但是除此之外,其必要性还体现在如下几方面:

首先,有利于缩短电费结算的时间,传统的电能量数据的结算需要人工抄表,存在误差暂且不说,其需要耗费大量的人力物力,其电费结算周期非常长,但是如果电能量实现数据实时采集之后,可以随时抄表记录,随时结算,十分方便,工作人员只要做好相应的操作工作即可;其次,有利于对电网进行集中控制,促进电网资源得到合理的优化配置,以使其供需得到平衡,这对用电用户以及电力产业来说都十分重要;最后,能够为用户提供更加优质的用电服务,电能量数据实现实时采集之后,用户可以上网查询自己的用电信息,也可以上网缴费十分方便。

2.电能量数据采集通道的解决方案

2.1专用通道

这种解决方案主要是专用通道和供电企业中厂站端中的采集装置进行衔接,进而完成电能量的数据采集工作。该种解决方案最大优势就是实时性强,而且因其实时性高,因此能够在要求非常高的场合来使用。我国某大型电厂,使用的就这种专用通道方法,不仅解决了传统的电能量采集的麻烦,结算的也不是十分复杂,该种方法可以将统计、记录以及相关的结算进行有机结合。但是专用通道方案虽然应用效果非常好,但是需要花费大量的成本,而且对维护的要求非常高,再加之,还需要设计很多种专用的数据采集端口,如果系统需要多个通道,还需要安装前置机。因此在选择专门通道的方案之前,应该做好相关的准备工作。

2.2共用远动通道

在调度中心,各个系统中存在着多个计量关口,这种关口几乎都具备远动通道的功能,完全可以实现共用,这样不仅节省大量的投资,同时运行费用也能够得到有效的控制。该种解决方案的优势主要体现在以下两方面:

一是远动装置具备含电能量的作用,现代世界各国几乎都使用了微机远动装置,其能够遥测电能量,主要是以脉冲的形式进入到该装置中,这样无论是电能量数据,还是其他形式的数据都能够及时的传送到主站中。从技术角度来讲,远动装置还应该具备采集电能量的功能,可以实现电能量的实时传送,但是需要做好的是管理工作。因为电能量是长时间累积的一个过程,因此设备在运行过程中,不能随意停止。但是远动装置的应用,必须要对其进行检查或者扩容,因此不可避免的会中断工作,为了保证数据一致,在检查结束之后,人工应该设置相关数据,能够保证电能表两者之间读书相同,不会出现误差。

二是专用电能量采集装置与远动装置共用通道为满足生产管理和电网调度的需求,可以采用远动设备实时采集传送电能量数据,但是采用独立的电能量数据采集装置,与远动装置相互独立,这样便于管理,也更能满足各方用户独立监管的要求。该装置除了可提供通信接口连接专用通道和拨号通道外,还可以提供通信接口与远动装置通信口并接,共用远动通道向主站传送数据,以满足调度中心的实时要求。

3.主站前置机的通道接入方案

某省电网调度自动化系统采用电力自动化研究院研制的SD—6000系统。为了取得高的运行率和可靠性,前置部分采用冗余结构。电能量采集备有电话拨号方式作为备用通道。接入前置机的通道有2种:点对点的远动实时通道和电话拨号通道。电能量数据采集以前者为主,后者为辅。前置机利用远动通道与远动装置通信,采集远动数据和对厂站进行控制的同时,按设定的周期插入电能量采集的有关命令:

3.1查询电能量采集装置内部状态

该命令可获得电能量采集装置的内部配置情况和运行状态。如容量配置、交直流供电电源状态、故障信息、事件记录、实时时钟以及软件版本等。

3.2时间同步

采集装置可以利用站端GPS同步,也可以由主站同步。采用后者时,主站以设定的同步周期,对采集装置进行周期性同步;同时,采集装置在返回的数据帧中,除带有数据抄录日期、时间外,还在帧末附上当前实时时间。

3.3索取电能量数据

索取电能量数据有多种命令供选择:“读冻结电量”、“读当前电量”、“读某电量某段时间历史数据”、“读若干电量某时刻数据”或“总查询”命令等。前置机通常可以用“读若干电量某时刻数据”或“总查询”命令向采集装置索取数据。前者读取一帧特定日期、时间的若干电能表读数;后者读取从某一时刻开始相隔规定时间(步长)的若干帧数据。当实时通道中断,用拨号通道采集数据时,常用“总查询”命令可以获得较快的速度。前置机对“最近成功采集电量时间”每分钟进行一次检查,与当前时间相比较,若差值达到或超过规定步长,则在远动信息序列中插入电能量查询命令。

3.4补采电能量数据

前置机对“最近成功采集电量时间”每分钟进行一次检查,与当前时间相比较,若差值超过规定的若干倍步长(因远动通道故障引起),除了实时通道恢复后予以补采电能量外,同时启动电话通道用“总查询”命令补采电能量,直到到达当前该采集的时间點为止。

4.结语

综上所述,可知对电能量数据实时采集进行研究非常必要,因为这是电力事业发展的必要选择,尽管电能量的数据采集完全的实现实时性还有一定的困难,但是随着电力技术的发展,科学研究的深入,定会在全国范围内使用,待到完全实现实时性数据采集时,电力企业能够为客户提供更多更优质的服务,用电安全也能够得到有效的保证,这对提高我国电力事业在世界市场上的竞争力有着重大的意义。 [科]

【参考文献】

[1]宋浩彬,李彦波.误差率与更正率在补退电能量中的应用[J].农村电工,2005(07).

[2]玉光,刘海民.“预购电能量”收费理念上的改革[J].农村电工,2005(02).

[3]李双言,王宪春,李育发.浑江发电公司电能量考核管理系统[J].吉林电力,2006(05).

图像实时采集 第4篇

1 系统硬件组成

基于Zynq-7000高速图像采集与实时处理系统如图1所示, 系统主要由高速CMOS图像传感器OV7725、Zynq-7000可扩展处理平台、数据存储单元DDR3和USB Wi Fi模块等组成。Zynq-7000可扩展平台作为整个实时处理系统的核心, 其包括处理系统 (Processing System, PS) 和可编程逻辑 (Programmable Logic, PL) 两部分, 其中PS部分包含了最高可运行在1 GHz的双Cortex-A9核, PL部分包含了传统意义的FPGA逻辑单元和DSP资源[1]。其PL部分负责从CMOS图像传感器中获取数据, 并通过PL实现DMA Engine使用的DMA传输至DDR3内存芯片中存储, PS从DDR3内存芯片中读取经帧缓冲的图像数据, 应用图像处理算法, 将数据通过USB Wi Fi与上位机交互, 并控制执行器进行动作。

高速CMOS图像采集系统采用了低照度好、在QVGA (320×240) 分辨率下能达到120 fip·s-1的OV7725芯片[2], 图像采集模块结构如图2所示。

图像采集模块采用150°的广角镜头来获取大范围的环境信息, 光线通过滤光片, 以获得指定光波长范围内的有效信息, 并最终通过OV7725芯片获取图像数据。

要完整地将OV7725数据采集, 理论上所需的最小IO吞吐量为120×320×240×16×140.625 Mbit·s-1。

而对于Zynq-7000的IO吞吐量, 即使对于该系列最低端的Zynq-7010能支持的16 bit, 1 066 MHz (533 MHz双倍速率) 和75%利用率的DDR3而言仍有399.75 MB/s[3], 因此满足需求。

由于OV7725与Zynq-7010的接口位于PL侧, 在Zynq-7000系列中, PS和PL的数据交互主要有以下几种方式:

(1) CPU控制IO直接与PL交互, 实现简单, 且拥有最低的吞吐率。

(2) 使用PS的DMAC实现数据交互, 具有中等吞吐率, 但DMAC配置复杂, 且PL中实现满足DMAC协议的IP核也有难度。

(3) 使用PS的AXI_GP接口和PL内的DMA, 其具有中等吞吐率, 并会消耗一定的逻辑资源。

(4) 使用PS的AXI_ACP或AXI_HP接口以及PL内的DMA, 其具有最高吞吐率, 但逻辑设计更为复杂。

考虑到实现的难度, 文中在PL部分设计了一个自定义IP核, 采用方式 (3) 和方式 (4) 实现了OV7725和PS的数据交互, 具体思路为:

(1) PS使用AXI_GP接口, 通过AXI-Lite协议, 使用Memory Map的方式读写自定义IP核的寄存器和DMA Engine, 并以控制OV7725和启动DMA来进行数据传输。

(2) 自定义IP核采用Verilog HDL语言实现, 通过检测OV7725的帧同步、行同步、像素时钟等信息, 将OV7725的图像数据缓存于一个异步时钟FIFO中, 而异步时钟FIFO的写时钟由OV7725提供。DMA Engine使用Xilinx提供的IP核实现, 同时还提供异步时钟FIFO读时钟, 请求一次读操作时从异步时钟FIFO中弹出一个数据写入到DMA Engine中。

(3) PS使用AXI_HP接口, 控制DDR3内存接收DMA Engine的数据。

2 系统软件设计

为了能有效地对采集到的图像进行处理, 可在无OS或有OS的系统中运行相应的算法但考虑到系统调试的便捷性、现有资源的可重复利用性, 及各软件模块的协调运行, 文中在Zynq-7000的PS中搭建了嵌入式实时RTLinux操作系统, 并接入一个USB Wi Fi模块作为实时运行中的调试接口, 如图3所示。

2.1 嵌入式实时Linux操作系统搭建

为了能在实时性要求较强的场合下应用Linux, 需对系统进行改造。对此, 有几种常用的解决方案[4]:

(1) 应用开源的Preempt_RT实时内核补丁。

(2) 应用经改造的商业化Linux实时内核版本。

(3) 采用非对称多处理实时方案, 一个Cortex-A9处理器运行非实时Linux系统, 而另一个Cortex-A9处理器运行实时操作系统, 如μC/OS-III等, 两个Cortex-A9处理器通过共享内存等方式进行交互。

考虑到方案实施的难度与系统的复杂性, 本文采用方案 (3) , 使用Linux发行版为Peta Linux, 其内核版本为3.8.11, 下载对应的实时补丁文件, 为非实时的Linux系统内核打上Preempt_RT实时内核补丁, 并在编译Linux内核时选择Preemption Model为Fully Preemptible Kernel (RT) 的选项, 即可切换为硬实时的内核。

Zynq-7000 So C的启动顺序为: (1) 主CortexA9 CPU在片内BootROM中执行启动代码, 根据特定的引脚配置从JTAG、Quad-SPI/NAND/NOR Flash或SD卡中加载FSBL代码, 本文设计是从主频高达133 MHz的32 MB Quad-SPI Flash中启动。 (2) FSBL程序加载bitstream配置PL, 加载第二阶段引导程序或裸跑程序到内存空间, 文中设计为加载uboot程序以启动Linux内核。 (3) 运行PS端的用户代码, 设计为运行Linux系统代码。

Zynq-7000是首先启动PS随后才能启动PL, 即使用户完全不使用PS的资源也需配置PS。

2.2 无线实时调试系统设计

采用Linux系统的优势是可充分应用互联网的众多资源。为此, 系统设计中使用USB Wi Fi模块RTL8188C作为系统的无线调试接口, 通过编写相应的通信控制程序, 这样即使在机器人运动时, 仍可实时掌控机器人的各项状态, 加快系统调试的速度。

Linux3.x内核已默认支持RTL8188C驱动, 在编译内核时, 通过menuconfig选择编译RTL8192CU驱动为内核, 并编译相应的无线网络内核。

为了便于调试机器人系统, 获知系统内部状态, 编写了相应的上位机程序与移动机器人进行实时通讯。同时为满足跨平台的应用调试设计, 上位机程序设计在使用了Python语言编写, 并通过TCP协议与移动机器人进行通讯。

另外, 在Linux中搭建了GDB服务器环境, 使得远程调试应用程序成为可能, 加快了应用软件的开发。

2.3 摄像头图像采集接口Linux设备驱动

为了能在Linux应用程序中对摄像头图像采集接口进行控制, 必须编写相应的Linux设备驱动。由于摄像头图像采集接口, 包括相应DMA Engine为自定义设备, 在原始搭建的Linux系统中并没有关于它们的描述, 因此需在编译内核前修改好设备树, 再加入对自定义的摄像头图像采集设备和DMA Engine的描述。

在Linux设备驱动中, 首先初始化了I2C接口, 并通过I2C对OV7725相应寄存器进行读写, 使其输出120 fip·s-1QVGA分辨率的图像。继而注册OV7725的帧同步中断, 在中断服务程序中通过Memory Map的方式操作DMA Engine的寄存器, 并启动其进行一次完整的帧传输, 将帧数据传输到DDR3指定的内存地址中。

需注意, 通过DMA传输的数据不能经过Cache, 因此需在Linux设备驱动中通过一致性DMA映射分配缓冲区接收DMA传输的数据[5]。

2.4 应用软件设计

该系统应用软件流程如图4所示。其应用软件主要是处理来自上述Linux设备驱动所获得并经帧缓冲的图像数据, 同时运行相应的图像处理、识别算法等程序, 以对接收到的图像数据信息加以提炼, 进而控制执行器执行相应的动作, 完成机器人系统的既定目标[6,7,8]。

应用Zynq-7000可扩展平台处理图像数据主要有两种加速图像处理方法: (1) 应用Zynq-7000的PL部分, 通过编写并行处理算法, 使用DSP资源完成图像数据的并行处理。 (2) 应用Zynq-7000的PS部分, 通过灵活应用最高能运行在667 MHz的双Cortex-A9核, 配合每个处理器独立的SIMD多媒体处理引擎 (NEON) 对图像数据进行并行快速处理。

3 系统运行及测试

测试系统在自行开发的PCB上进行, 除了图像采集模块外, 板载有128 MB的DDR3, 32 MB的QuadSPI Flash和一个用于接入USB Wifi的USB PHY。测试系统实物如图5所示。

使用Plan Ahead 14.7对Zynq-7010的PL部分进行综合实现后, 得到该系统消耗的资源如表1所示。

从表1中可看出, Zynq-7000的逻辑资源丰富, 可有效开发更为复杂的系统。

经测试, 系统在OV7725输出120 fip·s-1QVGA分辨率的图像下可正常工作, 且实时Linux的延迟仅为μs级, 可认为其能工作在实时要求较高的场合下。

在使用红外激光对某未知墙壁环境进行测距时, 实时采集到的图像如图4所示, 应用软件经计算直方图、二值化、边缘提取、模式识别等步骤得到的图像分别如图6和图7所示, 实际图像如图8所示。

由此可见, 该系统能满足实时采集、处理图像所需的性能要求。达到了小机器人实时、准确识别目标的效果。

4 结束语

基于Zynq-7000高速图像采集与实时处理系统硬、软件相结合的设计, 以及在小机器人上测试的结果表明, 文中介绍的使用该平台进行高性能图像处理的方法, 为小型机器人的高性能图像处理应用提供了可行的设计方案。同时应用Zynq-7000可扩展平台, 既具有传统FPGA硬件可编程的优势, 又能使用Cortex A9双核处理器执行复杂的图像处理算法, 其适合于高性能、低成本的应用。且其超小的封装[6,7,8], 更适用于对电路面积敏感的工业应用和机器人应用, 这对于需迅速针对复杂图像处理应用进行原型验证的工作而言, 有着重要意义。

参考文献

[1]Xilinx Inc.Zynq-7000 all programmable SoC technical reference manual (v1.6.1) [M].USA:Xilinx Inc, 2013.

[2]OmniVision Technology Inc.OV7725 CMOS VGA (640×480) camerachip sensor with OmniPixel2 Technology[M].Newyork:OmniVision Technology.Inc, 2007.

[3]何宾.Xilinx all programmable Zynq-7000 SoC[M].北京:清华大学出版社, 2013.

[4]黄武陵, 何小庆, 艾云峰.嵌入式Linux实时化技术[J].电子产品世界, 2009 (2) :57-60.

[5]CORBET J, RUBINI A, KROAH-HARTMAN G.Linux device drivers[M].GE:O'Reilly Media, Inc, 2005.

[6]SPECIFICATION P.Zynq-7000 all programmable SoC packaging and pinout[M].USA:Xilinx Inc, 2012.

[7]梁柱华, 顾新.嵌入式Linux实时性的研究[J].电子科技, 2005 (11) :57-60, 64.

学历证书图像采集标准 第5篇

一、背景要求:

统一为蓝色,输出蓝色色值(RGB或CMYK):R51,G143,B178,C80,M13,Y20,K3。

二、灯光要求:

配置三基色柔光灯(冷光源、色温为5600K)两只、灯架而只、配套灯管12只、配套电缆(6米X 2)及插头2套。灯具摆设高度与被拍摄人肩部同高,角度为左右各45度,朝向对准被拍摄人头部,距离被拍摄人 1.5-2米。

三、数码相机要求:

像素不少于4百万,最高分辨率(dpi):2048,标准存储容量(MB): 16 MB,光学变焦倍数:4。光圈F8,快门:125/秒,成像区上下要求头上部空 1/10,头部占 7/10,肩部占1/5;左右各空 1/10。

四、照片处理技术要求

亮度控制:输入值 145,输出值 110

图片尺寸(像素)宽:150,高:210

大小:小于等于10K,格式:JPG

成像区全部面积:48 mm X 33 mm;头部宽度 : 21 mm- 24 mm

头部长度 :28 mm-33 mm;下额到头顶

:25 mm-3 5 mm;

像长 : 35 mm X 45 mm

图像实时采集 第6篇

关键词:图像采集,高速缓存,FPGA,SDRAM

随着数字多媒体技术的不断发展,数字图像处理技术被广泛应用于可视电话、电视会议、监控系统等各种民用、商业及工业生产领域中。通常的数字图像处理系统主要包括两个部分:图像采集部分和图像处理部分;图像采集部分主要完成图像的数字化和图像缓存等,图像处理部分主要实现一些复杂的算法[1]。

1 系统结构描述

系统采用Philips半导体公司2000年推出的多制式TV解码器SAA7114H,将CCD输出的各种制式全电视信号转换为数字信号,再由FPGA(Field Programmable Gate Array)产生地址总线和控制总线将16位数字信号存入片内高速缓存双口RAM(Random Access Memory)中,然后再由SDRAM(Synchronous Dynamic Random Access Memory)控制器将16位数据存入大容量缓存SDRAM中,随后再根据系统需要从SDRAM中取出数据进行处理[2]。

2 模拟视频信号的数字化

使用的CCD输出的是PAL制式的模拟复合视频信号(CVBS),因此需要进行A/D转换。视频解码芯片(SAA7114H)能将CVBS信号转换成YUV(4∶2∶2)格式的数字信号,其解码器是基于行锁定时钟解码,能完成PAL、NTSC、SECAM的3种彩色制式解码,使其符合ITU601彩色分量标准。SAA7114H提供6路模拟输入端,内设有模拟源选择器,能从CCD、TV或VCR源中输入复合视频信号CVBS或S端子的Y/C信号。图像端口(I端口)能输出8位和16位(用主控端HPD[7:0]扩展)数据流,以及与其相伴的基准和支持信息。在I端口所传送的信号有:IPD[7:0]为I端口数据信号;ICLK为连续基准时钟信号;IGPH为行基准输出信号;IGPV为场基准输出信号;IDQ为I端口数据有效旗标信号;ITRI为端口控制,可以使I端口切换到三态;IGP1和IGP0为I端口通用输出信号。图2为图像端口和扩展端口16位模式时序图。输出信号格式YUV(4∶2∶2)。

3 地址总线的产生

模拟视频信号的数字化之后产生源源不断的数据流,为把这些数据存入缓存,需要对每一个数据进行编址,同时还要生成读/写等控制信号。图像数据的顺序化处理方法的不同,编址方法也不同。为便于说明,假定处理的图像大小为512×512像素。

3.1 图像数据的顺序化处理方法

为节约存储空间,一种方法是对二维图像数据的存储地址中的行、列地址不进行独立生成,而是将图像以行优先的顺序进行线性化处理,使之成为一维的数据,即第2行的图像数据紧接着第1行的数据,接下来是第3行的数据,依次类推,形成统一的像素地址。这样像素地址=帧起始地址+像素偏移地址。这种方法节约存储空间,但是不便于像素寻址。另一种方法是将图像数据按二维数组方式存储,即生成独立的行、列地址。这样,像素地址=帧起始地址+行地址+像素偏移地址。这种图像数据编址方法便于寻址,但是可能会浪费存储单元为代价。

3.2 地址信号的产生

对于经过顺序化处理的图像数据,根据每一帧的帧起始地址以及每一像素出现的先后,为每一像素生成一个唯一的存储器地址。该地址由两部分组成:即该帧图像的在存储空间中的起始位置,称为帧起始地址,以及该像素在对应的一帧图像中出现的顺序位置,称为像素偏移地址。在系统内部,为便于对图像信息进行管理以及考虑到具体存储设备的限制,规定图像帧起始地址以1 kB为单位。

4 高速缓存

通常构成高速缓存的方案有3种[3]:

(1)FIFO(先进先出)方式。FIFO存储器就象数据管道一样,数据从管道的一头流入、从另一头流出,先进入的数据先流出。FIFO具有两套数据线而无地址线,可在其一端写操作而在另一端读操作,数据在其中顺序移动,因而能够达到很高的传输速度和效率,且由于省去了地址线而占用较少的FPGA资源。缺点是只能顺序读写数据,因而显得比较呆板。

(2)双口RAM方式。双口RAM具有两套独立的数据、地址和控制总线,因而可从两个端口同时读写而互不干扰,并可将采样数据从一个端口写入,从另一个端口读出。双口RAM也能达到很高的传输速度,并且具有随机存取的优点。

(3)高速SRAM切换方式。高速SRAM只有一套数据、地址和控制总线,可通过三态缓冲门分别接不同设备上。这种方式的优点是SRAM可随机存取,缺点是切换控制电路比较复杂,且只能不同设备分时读写。

系统选用双口RAM作为高速缓存。读写双口RAM时,使用了不同的时钟,以提高系统性能。

5 大容量缓存

由于图像采集系统要求至少要缓存16帧图像,因此需要大容量缓存来暂存图像数据。系统用8×106×16 bit的SDRAM作为大容量缓存[4]。

5.1 SDRAM

SDRAM有多种工作模式,内部操作是一个复杂的状态机。SDRAM的信号可分成:(1)控制信号。片选、同步时钟、时钟有效、行/列地址选择、读写选择、数据有效等。(2)地址。行/列地址、行/列地址选择控制、Bank块地址。(3)数据。双向信号,受数据有效信号控制。

SDRAM内部以Bank为组织,行、列地址共同寻址,这在很大程度上减少了地址位,提高器件的实用性,但使寻址变得复杂。由于SDRAM为了提高存储容量,采用硅片电容来存储信息,随着时间的推移,必须给电容重新充电才能保持电容里的数据信息,即“刷新”,它的存在使得SDRAM的应用变得复杂,带来了设计难度。

SDRAM支持数据猝发传输方式,提高了数据处理的速度。SDRAM内部的操作有很多种输入命令:模式寄存器设置、预充、激活、读/写、自动刷新、自我刷新、猝发突停、空操作等。根据这些命令,SDRAM内部的状态会进行转移,这些状态可以分为:空闲、模式寄存器设置、预充、激活、读/写、刷新、节电等。

5.2 SDRAM控制器模块设计

SDRAM控制器设计采用自顶向下模块化的设计方法,共分为4个模块[5]:SDRAM控制器顶层模块、控制接口模块、命令模块和数据通路模块,SDRAM控制器顶层模块初始化并把其余3个模块有机结合。控制接口模块接受主机发送来的命令和地址信号,解码命令并发送请求给命令模块;命令模块接受控制接口模块发送的命令和地址信号,产生合适的SDRAM操作命令;数据通路模块在执行SDRAM读写操作时控制数据的流向。图4所示为SDRAM控制器的模块框图。

控制接口模块解码并寄存主机发送的命令,把解码后的空闲、写、读、刷新、充电和模式设置命令和地址信号送给命令模块。控制接口模块包含一个10 bit的递减刷新计数器和产生周期性刷新命令的命令模块。计数器计数到零后发出刷新请求,直至命令模块响应请求。命令模块响应刷新请求后,刷新计数器的值重新加载初始值。

数据通路模块提供SDRAM与主机之间的数据通路。写SDRAM时数据从DATAIN端口经该模块寄存后送给SDRAM;读SDRAM时数据从DATAOUT端口输出。

命令模块接收控制接口模块输入的解码后的命令和刷新控制单元发出的刷新请求命令,产生合适的SDRAM操作命令。该模块包含一个简单的仲裁逻辑单元,仲裁主接口和刷新单元发出的命令,刷新请求的优先级最高。当刷新单元和主接口同时发出命令时,仲裁单元挂起主接口的命令直到刷新操作执行完毕;若主接口发出的命令正在执行时,仲裁单元挂起刷新命令直至正在处理的操作执行结束。令模块同时执行地址信号的分时复用操作,满足SDRAM对地址信号的时序要求。输出信号OE用于控制数据通路的开断。

仲裁单元接收控制接口模块发出的命令后,命令产生单元根据接收到的命令产生合适的SDRAM控制信号。命令产生单元基于3个移位寄存器产生正确的时序:第一个寄存器控制SDRAM激活命令的时序;第二个寄存器控制SDRAM读写时的时序;第三个用于产生命令延时,以便决定所请求的命令是否执行完毕。

6 结束语

系统采用Altera的FPGA EP1C6 实现,帧频、像素时钟自动适应。采集最大图像640×512,图像大小任意可调。系统实验使用了30 MHz像素时钟,采集了256×320数字图像,帧频187帧/s。通过对特定的图像进行采集和分析,系统采集无误码。

参考文献

[1]朱磊,陆亨立.基于ASIC设计的图像采集系统的实现[J].微计算机信息:测控自动化,2005,21(2):160-161.

[2]刘虹,黄涛.基于FPGA的高速图像采集系统的研究与实现[J].工业控制计算机,2004,14(8):18-19.

[3]鲍晓宇,施克仁,洪玉萍,等.高速数据采集系统中高速缓存与海量缓存的实现[J].国外电子元器件,2003(7):4-7.

[4]杨鹏林,张晓飞.FPGA控制实现图像系统视频图像采集[J].计算机测量与控制,2003(11):451-454.

图像实时采集 第7篇

随着时代的发展,人们在图像处理领域取得了相当多的成果,研究出了很多算法,例如中值滤波、高通滤波等。在图像的传输过程中,各种噪声源的干扰和影响常常会使图像的质量变差。由于用一般的软件实现的图像预处理算法处理的数据量大,实现起来会比较慢,如果说对于一些实时性要求比较高的系统,那么处理速度往往是要考虑的关键要素,因为一旦实时性达不到,就不能第一时间记录下信息。另外,实时图像处理技术的日新月异和图像处理系统的发展有着千丝万缕的联系。在实时图像处理系统中,关键的技术是对实时图像的采集和处理,图像采集的速度、质量直接影响到这个系统的性能。

1 系统硬件设计

本系统基于FPGA的实时图像与显示系统,由前端视频采集单元、图像存储单元、图像显示单元三部分组成。主要功能为对摄像头送来的视频数据进行采集,并采用专用视频解码芯片将模拟视频转化成数字视频;将采集进来的数据存储到内嵌的SDRAM中;采用专用视频编码芯片将数字视频信号转换为模拟信号送显示器输出。系统的方案图如图1所示。

系统上电后,FPGA管理单元通过I2C总线对SAA7113H解码芯片进行初始化;CCD摄像头输出的PAL制式模拟视频输入SAA7113H解码模块。FPGA将解码后的图像通过输入缓冲FIFO存放到外部SRAM;再用SDRAM进行奇偶场的合并,满一帧后图像进入FPGA进行内部图像处理,经输出缓冲进入SAA7121编码模块转换为模拟视频输出。通过按键的选择可控制使其输出图像亮度增强及字符叠加。本节将围绕系统中的视频图像解码芯片及编码芯片作具体分析。

1.1 解码芯片外围电路

SAA7113H主要由模拟转换电路、亮度信号电路、色度信号电路、同步电路、输出信号格式、总线控制及时钟生成等组成。AI11、AI12、AI21、AI22为四路模拟输入通道,AOUT为模拟测试输出通道,VPO0~VPO7为解码输出通道,这些通道的选择及格式配置都通过I2C总线来完成的。另外,SDA为I2C总线的数据输入/输出端,SCL为串行时钟输入端,LLC为行锁定系统时钟频率输出信号,频率为27 MHz,XTALI、XIAL是外部晶振连接端,TDO/TDI为边界扫描测试数据的输出/输入端,TCK、TMS为边界扫描的时钟和测试模式输入端。SAA7113H的芯片结构图如图2所示。

1.2 编码芯片外围电路

SAA7121视频编码芯片,可以将数字的YUV数字编码为PAL或者NTSC制式的CVBS输出或者S端子输出的模拟视频信号,单一的3.3 V供电,可通过I2C接口对芯片内部电路进行控制。该芯片内有三个片内10位视频D/A转换器分别对应Y,C和CVBS,两倍过采样。通过I2C总线协议对SAA7121的各个控制寄存器进行配置就可使其满足系统要求,芯片的最大特点也是在于仅需一个24.576 MHz的晶振就可以满足所有视频标准的应用。

SAA7121芯片主要由I2C总线控制单元、数据管理单元、编码单元、同步时钟单元和D/A转换器组成。主要通过I2C总线对芯片的内部寄存器进行设置,也就是完成对芯片的工作属性的设置。输出数据的格式有两种:复合视频输入信号(CVBS)或分离视频信号,输出的制式可以为NTSC制式或PAL制式,支持隔行扫描和连续扫描方式,并具有Y、C和CVBS三个信号的数/模转换器。

SAA7121主要由数据管理模块,总线接口模块,编码模块,D/A模块组成。MP0~MP7是MPEG端口,输入CCIR.656的Cb-Y-Cr的编码数据;RCV1为栅控制端,输入或输出各种类型的信号;LLC为线性锁定时钟,为芯片提供27 MHz的主频;CVBS为模拟CVBS信号输出,C为模拟色度信号输出,Y为模拟亮度输出。SAA7121通过设置内部寄存器,对其进行初始化。SAA7121的芯片结构图如图3所示。

2 系统软件实现

通过在FPGA开发平台上,使用QuartusⅡ9.0对系统进行硬件语言编程。本系统主要由SAA7113H解码芯片初始化模块、SAA7121编码芯片初始化模块、FPGA视频图像采集与显示模块组成。

2.1 SAA7113H初始化模块

SAA7113H的初始化模块主要分为I2C控制核模块,I2C命令模块,ROM模块。I2C控制核心模块完成数据的并/串转换以及将命令转换位为I2C总线的SCL SDA信号线的启动、停止、写、应答等具体操作的时序关系;I2C命令模块则是通过状态机(FSM)的方式进行I2C接口间状态的转换以及从ROM模块中将配置好的数据输出给I2C控制核模块,ROM模块存储的是配置好的SAA7113H的数据。当启动I2C开始配置时,从ROM中读取配置的内容送出即可。

2.2 SAA7121初始化模块

SAA7121编码芯片的初始化和SAA7113H有些类似,都是通过I2C总线来控制芯片内部寄存器实现初始化的目的。SAA7113H解码芯片中的I2C控制模块分为核心模块和命令模块,而SAA7121编码芯片则只包含一个I2C模块。

在SAA7121的寄存器配置模块中,首先,上电复位,确保SDA,SCL为高电平,随后将SDA从高电平拉到低电平,发出I2C总线起始信号,开始I2C总线操作。接着向I2C总线写芯片的从地址,SAA7121芯片地址也与输入引脚SA电平及读写操作有关。SAA7121芯片的输入引脚SA是接地的,因此芯片地址为SA低电平时的地址。在写入芯片地址后,再读应答,并确认有应答时,再写寄存器的子地址。同样在确认有应答时,再写入寄存器数据通过循环将要配置寄存器的所有数据依次写入到I2C总线上。最后,在全部数据写完后,发出I2C总线中止信号。

2.3 FPGA图像采集与显示模块

系统中最核心的地方就是图像的采集与显示,包括FPGA采集与存储模块,FPGA显示模块两块内容。视频图像采集模块的主要作用是接收来自CCD摄像头的模拟信号,经视频输入处理芯片SAA7113H,输出ITU-656 4∶2∶2格式的数字图像。完成视频信号从模拟信号到数字信号的转换,最终提供后端可以处理的数字视频数据,存储到SDRAM中。

3 功能实现与测试

系统连接图如图4所示。通过对系统进行编程,完成系统的软件设计,按照FPGA的设计流程完整的测试了系统的可行性,包括:系统的输入输出环路测试(能否实时的显示图像),系统的按键调控亮度测试(解码芯片功能)。测试图如图5所示。

4 结语

结合国内实时图像采集处理系统的现状,本设计在硬件上采用FPGA作为核心运算器来实现图像的采集、存储和显示;在硬件实现上使用FPGA硬件描述语言Verilog对系统各个功能模块进行设计。采用FPGA可编程逻辑设计技术实现视频图像采集与显示系统不仅拥有极大的灵活性,可编程性,而且也加快了图像采集与显示的速度。由于本文设计的系统中未涉及到复杂的算法,而是用专用的编码芯片代替了,所以在本文中,图像的算法未能加入到系统中。下一步的工作就是学习将高端FPGA芯片运用到图像处理技术当中去,结合网络技术,研究更新的视频图像采集与显示技术。

参考文献

[1]马锐,魏学业.一种CCD图像相关处理系统的FPGA+DSP实现[J].北方交通大学学报,2004,28(3):88-91.

[2]叶敏,周文晖,顾伟康.基于FPGA的实时图像滤波及边缘检测方法[J].传感技术学报,2007,20(3):623-627.

[3]邓学禹.基于FPGA的高速高阶流水线工作FFT设计[J].电讯技术,2005,45(2):188-191.

[4]邵善友,杨家玮.软件无线电发射机的FPGA实现[J].电讯技术,2005,45(4):124-128.

[5]林德焱,黄红.用DSP Builder设计基于PLD的数字信号处理器[J].电气电子教学学报,2004,26(3):37-39.

[6]何永泰,黄文卿.基于FPGA的CSD编码乘法器[J].电子测量技术,2006(4):87-88.

[7]周鹏.基于DSP的视频监控系统[D].西安:西北工业大学,2003.

珠宝数据实时采集与处理系统设计 第8篇

随着计算机及通讯技术的发展, 在珠宝质量检测中, 传统的目测, 手写记录统计数据的方法因为数据的准确性难以保证, 使用不方便, 数据结果也不能及时呈现给用户等弊病已逐渐被淘汰。当今精密测量仪中大多数都带有RS232串行通讯接口, 可以通过计算机的COM接口与智能测量仪器通信, 实现对仪器的控制和数据采集。本文将METTLER TOLEDO B-S/A系列电子天平直接与计算机连接起来, 通过专业化的软硬件接口技术, 利用Active X控件Microsoft Communication控件, 方便的实现了Window环境下PC机与电子天平串行通信功能, 实现分析数据的自动采集, 建立珠宝检测数据库。根据管理业务的需要, 实现了珠宝数据打印与检索, 包括成批打印分级、鉴定、定名证书, 打印分析报表, 查询检测日期、样品编号、批号、样品品种、客户等信息。有效的缩短样品检测时间, 确保检测结果的准确性、权威性, 从而提高检测效率和整体管理水平。

2 系统的硬件设计

采用PC机及METTLER TOLEDO B-S/A系列天平。

接口的物理结构:天平采用RS-232接口9芯插座, 单向传送控制信号。波特率为9600bps, PC的COM口与天平的RS232口的接线采用对等方式, 传输线采用屏蔽电缆, 传输距离可达250英尺。

使用Windows平台下的ActiveX通讯控件MSComm控件初始化天平设置并获取天平测量数据。

MSComm是一个COM组件, 它提供具体的方法和属性, 以实现天平的初始化及实现数据通讯, 当串口接收到信息时MSComm控件提供两种处理方法, 一种为查询方式, 一种为事件响应方式, 利用SetCommEvent () 函数设置串口响应事件。当响应事件发生时, 系统会激活OnComm () 事件。在On Comm () 事件中添加用户处理代码, 则可实现类似中断的串口事件处理。Iput Mode使程序方便地选择从缓冲区读取数据格式。

计算机COM口的初始化要和天平的设置完全一致。

3 数据库及开发平台

Windows平台下可选的数据库种类很多, 在实际开发的过程中, 根据使用单位的业务规模和安全因素, 选择了MS SQL 2000作为后台数据库。而.NET平台以其使用方便的人机界面, 强大的开发工具支持而成为开发平台的首选。

SQL Server.NET数据提供程序使用它自己的协议来与SQL Server进行通讯。由于它经过了优化, 可以直接访问SQL Server而不用添加OLE DB或开放式数据库连接 (ODBC) 层, 因此它是轻量的, 并具有良好的性能。

.NET平台对数据库的连接方式也有很多, 根据所使用的数据库类型, 或应用程序的使用策略不同而不同, 本系统考虑到数据的实时性, 安全性要求, 采用ADO.NET对MS SQL 2000数据库进行连接及操作, 安全性通过Window账户验证。

4 系统实现

4.1 应用程序模型

珠宝鉴定根据品名不同分为宝玉石, 钻石, 吊牌等三类, 每一类都有数量和性质不同的参数字段, 除了重量统一需要通过电子秤的串口向计算机传输外, 还有一些其他参数如折射率, 净度等在现有的设备条件下需要另行检测后手工输入, 所有数据的采集由应用程序统一处理, 之后由数据显示控件展示给用户, 并选择恰当的时间和方式对数据库进行更新。应用程序模型如左图所示。

4.2 数据采集

.NET数据提供程序用于连接到数据库、执行命令和检索结果。下表概括了组成.NET数据提供程序的四个核心对象。

ADO.NET假定一个用于数据访问的模型:打开一个数据库的连接, 获取数据或执行操作, 然后关闭该连接。ADO.NET为使用此模型提供两个基本的策略。一个模型是在数据集中存储数据, 这是断开与数据源的连接时可以使用的记录的内存中缓存。若要使用一个数据集, 必须先创建该数据集的实例, 然后使用数据适配器从数据源填充它。然后可以使用数据集中的数据。数据集在断开缓存中存储数据。数据集的结构类似于关系数据库的结构;它公开表、行和列的分层对象模型。另外, 它包含为数据集定义的约束和关系。本系统的大多数数据纪录的添加都使用这种模型, 如将宝石的一个记录值写入数据集宝石数据表的一行中, 而钻石和吊牌各自写入另外的表, 这些表共同构成珠宝记录数据集, 在进行入添加、修改、删除时都可以对这些表进行操作。

另一个策略是直接对数据库执行操作。在此模型中, 可使用包含SQL语句或对存储过程的引用的数据命令对象。然后可以打开一个连接, 执行命令以执行操作, 接着关闭连接。如果该命令返回结果集 (即该命令执行Select语句) , 则可以使用数据读取器获取数据, 数据读取器的功能类似于高效的只读游标。数据阅读器然后作为数据绑定的来源。某些珠宝类型的参数字段有相同之处, 如两件同属蓝宝石的待鉴定品在折射率, 吸收光谱, 光性特征等方面相同, 因此, 在添加此类鉴定物品时, 可用其他表关联这些字段, 以减少冗余, 这些相关表的修改更新可采用直接数据库操作的方式。

4.2 数据建库与显示

鉴定系统的用户界面由相应控件处理, 而数据更新由Windows窗体数据绑定结构和ADO.NET数据提供程序来处理。

针对不同的鉴定类型, 采用不同的数据收集用户界面, 除了重量参数通过串口从天平采集外, 某些参数如钻石的净度只有固定的几个级别, 采用可选的下拉框形式, 以方便用户添加记录。

另外, 本系统使用DataGrid控件在一系列行和列中显示数据。首先, 实例化数据集对象, 然后把珠宝记录数据集的单个表绑定到相应的DataGrid, 就可以把纪录数据显示在简单的行和列中, 就像在电子表格中一样。如果绑定数据集内的数据通过任何机制被更新, 数据绑定结构负责将更改从数据集发送到数据绑定控件, 该数据集内的数据可以通过DataGrid控件反映所做更改, 而不必用自己的代码显式更新。所以大多数数据特定的操作都是通过数据源而不是DataGrid来执行。

数据访问控件的绑定方式有两种, 在本系统中根据不同的情况都有使用:

1) 在设计器中将DataGrid控件数据绑定到单个表, 将该控件的DataSource属性设置为包含要绑定到的数据集的对象。将DataMember属性设置为要绑定到的表的名称。通常可以调用数据适配器的Fill方法从数据库中直接填充数据集。

2) 运行时将数据绑定到DataGrid控件, 需要编写代码来填充数据集, 调用DataGrid控件的SetDataBinding方法, 向其传递数据源和一个数据成员。如:

DataGrid1.SetDataBinding (DsDiamond, "Diamond")

通过珠宝参数数据集更新数据源是一个包含两个步骤的过程。

第一步是使用新记录更新数据集。这是将新纪录填充到内存中的过程。必须新建一个数据行并将其添加到数据表的DataRow集合中。调用数据表的NewRow方法来新建一个空记录, 该新记录将从数据表的DataColumnCollection继承其列结构, 例如:

Dim GemRow as DataRow=GemTable.NewRow,

对此纪录中的每一列从数据收集用户界面中获得并填充, 然后更新该新行, 就像它是现有记录一样。

当数据集填充了数据之后, 在将其发送回数据库之前, 通常会执行某种类型的数据操作。由于数据集中的每个记录都由一个DataRow对象来表示, 所以对从数据源填充的数据集中的记录更改通过更新和删除个别行来完成。另外, 通过将新的DataRow对象添加到DataTable对象的Rows集合中, 可以将新记录插入数据集。DataRow类包含RowState属性, 该属性的值指示自数据表首次从数据库加载后, 行是否已更改以及是如何更改的。RowState属性的可能值包括Deleted、Modified、New和Unchanged.

第二步则是将更改从数据集发送到数据库。

更新数据集的过程不会同时将更改直接写入基础数据源, 所以必须显式执行第二步。为了完成这一步骤, 我们调用曾用来填充数据集的同一个数据适配器的Update方法, 传递数据集的名称, 该数据集包含要写入数据库的值。数据适配器将根据数据集中行的RowState来执行适当的命令 (INSERT、UPDATE或DELETE) 。这些命令都通过Update方法将更改解析回数据源, 这样, 在我们将数据集发送到数据库的时候, 就无需将整个数据集回写到数据库中, 有效地提高了数据更新的效率。

当调用Update方法时, DataAdapter将分析已作出的更改并执行相应的命令 (INSERT、UPDATE或DELETE) 。当DataAdapter遇到对Data Row的更改时, 它将使用InsertCommand、UpdateCommand或DeleteCommand来处理该更改。如果DataTable映射到单个数据库表或从单个数据库表生成, 则可以利用CommandBuilder对象自动生成DataAdapter的DeleteCommand、InsertCommand和UpdateCommand。但本系统的数据表都由很多关联表构成, 因此, 在调用Update之前, 必须显式设置这些命令。

4.3 数据安全与更新

考虑到珠宝鉴定的数量比较大, 本系统应能同时在多台微机上在数据库的支持下工作, 这时, 怎样保证对数据库操作的安全与正确性, 就需要遵循一定的并发原则。本系统对同一数据库进行添加, 删除, 修改等操作时, 针对具体的使用情况, 采用了开放式并发控制, 这种并发方式, 只有当实际更新数据时, 数据库中待修改行才对其他用户不可用。更新将在数据库中检查该行并确定是否进行了任何更改。如果当某用户接收到来自数据库的值后, 另一用户在该用户试图修改该值之前即将其修改, 则认为发生了冲突。在开放式并发中, 只有在访问数据库时才设置并保持锁。这些锁将防止其他用户在同一时间更新记录。除了进行更新这一确切的时刻之外, 数据始终可用。我们通过版本方法 (实际版本号) 保证了这一点。

在版本号方法中, 要更新的记录必须具有一个包含版本号的列。当读取该记录时, 版本号将保存在客户端。然后, 将对该值进行部分更新。仅当WHERE子句中的值与记录上的值匹配时才进行更新。该方法的SQL表示形式为:

UPDATE Table1 SET Column1=@newvalue1, Column2=@newvalue2

WHERE RowVersion=@origRowVersionValue

如果版本号匹配, 则表明数据存储区中的记录未被更改, 并且可以安全地使用数据集中的新值对该记录进行更新。如果不匹配, 则将返回错误。通过编写代码, 实现了这种形式的并发检查和响应任何更新冲突。为了确保版本号的准确性, 在数据库表上设置触发器, 以便在发生对行的更改时, 对版本号进行更新。

5 结束语

利用VB.net下的ActiveX控件实现了在Windows2000/xp环境下微机与METTER TOLEDO B-S/A系列天平的通讯, 实现了天平数据自动采集、建库、汇总、打印与上报, 为测试的快速和准确性控制起到了积极作用, 实现了珠宝测量、鉴定、记录、打标及入库管理一体化, 提高了检测效率和整体管理水平。

参考文献

[1]范逸文等, Visual Basic与RS-232串行通信控制[M].北京:清华大学出版社, 2002.

[2]王仲文等, 精通串行通信[M].北京:电子工业出版社, 1995.

[3]METTER TOLEDO Reference manual about MT-SICS[梅特勒-托利多MT-SICS参考手册].

VGA信号实时采集系统的研究 第9篇

网络电视的出现主要是基于流媒体技术的发展。所谓流媒体是指采用流式传输的方式在Internet播放的媒体格式。流式传输方式则是将整个A/V及3D等多媒体文件经过特殊的压缩方式分成一个个压缩包,由视频服务器向用户计算机连续、实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用解压设备(硬件或软件)对压缩的A/V、3D等多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。与单纯的下载方式相比,这种对多媒体文件边下载边播放的流式传输方式不仅使启动延时大幅度地缩短,而且对系统缓存容量的需求也大大降低。

1 视频实时采集系统设计与实现

1.1 VGA采集卡

VGA采集卡,它可以把输入的VGA模拟信号实时采集压缩,既能保证信号的连续实时,又能保证清晰不失真,从而完美解决了VGA信号的实时采集压缩这一难题。

1.2 采集卡的选用以及采集接口设计

视频实时采集系统使用的是VisionRGB-PRO卡(英国Datapath公司),此卡可同时实时采集两路视频数据。VisionRGB-PRO卡采用标准的PCI接口,它从别的数据源捕捉模拟RGB数据到PC上。VisionRGB-PRO卡有两路完整的捕捉通道,每路都支持高达1600x1200的分辨率。捕捉到的视频被实时的放入卡的帧缓冲区中。PCI总线控制其,带有分散集中支持,能将捕捉到的数据传送到系统内存或直接到VGA显卡的帧内缓冲区。捕捉到的视频再传送至系统内存前还可以放大或所辖。系统内存或VGA显示卡的帧内缓冲区的刷新速率依赖于捕捉分辨率和放大缩小的比例。

2 视频编码H.264分析与研究

2.1 H.264视频编码标准概要

H.264是视频压缩的一种新标准。它将视频转换成一种特殊的格式,这一过程能使视频在存储或传输的消耗更少的资源。。压缩技术的标准化使得来自不同生产商的产品能够互相兼容。

H.264高级视频编码是由国际电信联盟(ITU-T)和国际标准组织(ISO)联合发表的一项视频编码标准。这一新的视频标准还被称为MPEG-4的第十版-AVC(Advanced Video Coding).该标准定义了一种视频编码格式以及解码格式。在H.264中引入了当前视频编码的最新技术,包括运动搜索中的宏模块大小可变、整数变换、帧内预测、解块效应滤波、差错控制等。H.264的编解码过程如图1所示。

H.264视频编码器包含有预测,变形以及编码三部分组成。在这一系列过程之后,视频流将会被转换成一种H.264的比特流。而H.264的解码器则包含了一个相反的过程包含解码,逆变和重组的三部分。

2.2 H.264的变换与量化

H.264协议中的变换方式主要有3种:4x4残留变换,4x4两度直流变换(16x16帧内模式下),2x2色度直流系数变换。H.264协议中的量化采用分级量化原理。

H.264变换和量化中,对直流分量进行了特殊的处理;对速度信号的直流分量进行2x2的哈达码变换;对16x16帧内模式下宏块的直流分量作了4x4的哈达码变换。通过这些手段,进一步压缩了图像的信息的冗余度,提高压缩效率。

2.3 H.264中的熵编码技术

视频编码的最后一步是熵编码。基于VLC的熵编码是一个应用最广的方法,它主要应用在对量化变换系数、自适应块ABT(Adaptive Block Transform)、运动向量和其他编码信息的压缩技术中;而基于内容的自适应二进制算数编码主要是使用编码和解码两边都能使用所有句法元素(变换系数、运动矢量)的概念模型。

3 流媒体服务器的组建

在对视频进行完编码压缩之后能够将其上传至媒体服务器,通过媒体服务器以流媒体形式来发布这些视频。现今主流的流媒体播放平台主要有两种:Windows Media Server以及HelixServer。

3.1 流媒体协议环境介绍

使用流媒体就不得不说到mms协议和rtsp协议了。

MMS是微软的私有流媒体协议。它的最初目的是通过网络传输多媒体广播、视频、音轨、现场直播和一系列的实时或实况材料。使用这个协议的观众可以通过电脑观看电视图像或音轨。MMS建立在UDP或TCP传输/网络层上,是属于应用层的。MMS协议是以包和数据块的形式从服务器向使用者发送数据到你的计算机上。服务器上的媒体文件是以ASF或WMA形式存在。直播通过流媒体服务器组装成数据包。

RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。实时流协议(RTSP)是应用级协议,控制实时数据的发送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频,的受控、点播成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、组播UDP与TCP,提供途径,并为选择基于RTP上发送机制提供方法。

3.2 用HelixServer组建视频服务器

使用Helix Server之前,首先要在http://licensekey.realnetworks.com/rnforms/页面中填写自己使用的操作系统、用户姓名、电子邮件地址等相应信息,接着你就可以下载到Helix Server的30天试用版。

在收取到试用授权文件之后,我们就可以开始安装Helix Server了,不过此时要确认所使用的系统一定要是基于NT平台的,比如Windows NT/2000/XP/2003。安装Helix Server过程首先选取授权文件,接着设定好管理员的用户名和密码,然后就需要设定服务器的各个端口了。这些端口基本上可以采用系统默认的设置,设定Helix Server的HTTP端口为8080或者是其它没有使用的端口

安装完成Helix Server之后,在桌面上会出现名称为Helix Server和Helix Server Administrator图标,它们分别用于启动Helix Server服务和管理Helix Server。在安装Helix Server之后立即重新启动计算机,这样系统将会自动加载Helix服务,无需我们再手动激活了。

安装好了Helix Server之后,自然要分别对服务器端和客户端两部分进行测试,确认它是否已经正常运作。不过在测试之前,你需要确认计算机中已经安装了Real播放器。

测试服务器端是否正常运行,首先要双击桌面的Helix Server Administrator图标,并且在弹出窗口中输入安装时候设定好的用户名和密码就可以进入管理页面了。此时在左边列表中依次点击“Server SetupMedia Samples”链接,右部区域中即可显示出程序内置的测试媒体文件,其中提供了所有测试文件的链接。比如我们点击“Play RealVideo 9 Sample”链接之后,系统将会立即调用RealOne Player播放器,而且开始时会在播放器顶部有“正在缓冲”字样,同时还有缓冲的数字显示,这说明整个系统安装链接成功。

为了能够查看当前播放的视频文件的地址,我们可以在RealOne Player中运行“文件剪辑属性查看剪贴信息”命令,这样即可看见文件地址为“rtsp://dell:554/real9video.rm”。这里可以看出播放系统是采用RTSP连接方式进行播放的“554”是端口号,而real9video.rm就是具体的媒体文件名称。

为了便于测试,我们先在局域网中进行测试。此时先运行RealOne Player播放器,接着运行“文件打开”命令,并且在地址栏中输入“rtsp://dell:554/real9video.rm”地址,确认之后也应该能够看见播放器上部“正在缓冲”和不断跳动的数字,这样就表示客户端已经能够正常播放服务器端的流媒体文件了。

虽然整个流媒体服务器已经搭建完成了,但是怎样才能让别人直接欣赏到自己制作的各种视频文件呢?其实非常简单,只要把RM、ASF、WMV之类的流媒体文件复制到Helix Server安装目录下的Content文件夹中,然后在客户端的RealOne Player中输入类相应的文件地址就可以开始欣赏影片了。

我们假设所有IP地址为192.168.0.x的内部局域网用户都能够直接欣赏,但是只有拥有218.2.175.1网段IP地址的用户才能够连接到Helix Server服务器。

第一步将当前Helix Serve服务器的IP地址设定为“0.0.0.0”,这样才能保证系统中所有的IP地址供服务器使用,也才可以让服务器中用于连接内部网和外部网的网卡同时生效。

第二步在“SecurityAccess Co-ntrol”页面中,先点击“”按钮增加一条规则,在右边的编辑区域中将规则名称更改为“Administrator”,接着将“Access Type”设置为“Allow”,而“Client IP Address or Hostname”和“Client Netmask”分别设定为“localhost”和“None”,接着将“Server IP Address or Hostname”一项设置为“Any”,这样完成服务器的IP地址设定,确保只有在服务器端才可以进入管理界面。完成上述设定之后,通过上下箭头将新增的规则调整在原先两个规则之间即可。

第三步再次点击“”按钮增加一个规则,并且将其命名为“Intranet”来表示针对内部局域网进行IP地址规则设置。这里的“Allow”一项可以设定为“Allow”,客户端IP地址或主机名处输入192.168.0.1之类局域网中随意一个IP地址,而客户端子网掩码需要从下拉菜单中选择“24 Bits(255.255.255.0 or/24)”一项,服务器IP地址或主机名设定为“Any”,也就是设定局域网中所有的计算机都可以连接到服务器。另外,在下部的“Ports”中需要输入“554,7070,1755”三个端口,这条定制的规则允许局域网内所有IP访问Helix Server的三个点播端口。

第四步参照第三步所述的方法增加一个名为“Internet”的规则,同时将访问类型为“Allow”、客户端IP地址或主机名处输入“218.2.175.1”、客户端子网掩码处为“None”,服务器IP地址或主机名处为“Any”、端口处为“554,7070,1755”。经过这样设定之后只有IP地址是218.2.175.1的用户才可以通过Helix Server的点播端口。

第五步将刚才增加的两个规则通过上下箭头调整在“Administrator”规则下面,接着先保留“Allow all localhost connections”一项不变,同时将“Allow all other connections”一项的“Access Type”设定为“Deny”,这样设置之后即可允许本地局域网中的所有计算机与服务器建立连接,但是外部网络的计算机只有在“Internet”标签中的设定的计算机才能够连接到服务器了。

4 结束语

本文设计的VGA信号实时采集系统实现了基于服务器/客户端的信号采集、编码、视频文件发送接收功能,各个功能模块相对独立且具有良好的可维护性和扩展性,设计的系统原则上可以适用于各种基于宽带流媒体的信号采集发送接收系统。由于篇幅有限,本文没有就系统中的网络安全与流量控制进行进一步的探讨,这也是下一步的研究方向。相信随着网络教学等需求的发展,VGA信号实时采集系统将会在功能与性能上更加完善和稳定。

摘要:随着科学技术不断发展,宽带越来越受到人们的欢迎。与此同时各种依赖于宽带的新兴技术也应运而生。流媒体技术就是其中较为重要的技术之一。本课题将流媒体与教学目的相结合。通过研制视频实时采集系统,来实现远程教学的目的。

关键词:流媒体,视频采集,H.264,媒体器

参考文献

[1]余兆明,查日勇.图像编码标准H.264技术[M].北京:人民邮电出版社,2003.

[2]Anthony Jones,Jim Oulund.WINDOWS网络编程[M].杨合庆,译.2版.北京:清华大学出版社,2002.

[3]余兆明,李晓飞,陈来春.MPEG标准及其应用[M].北京:北京邮电大学出版社,2003.

[4]毕厚杰.多媒体信息的传输与处理[M].北京:人民邮电出版社,1999.

图像实时采集 第10篇

虚拟仪器的概念最早是由美国国家仪器公司(National Instrument)提出来的,经过十几年的发展,目前正沿着总线与驱动程序标准化、硬件、软件模块化、编程平台图像化和硬件模块即插即用方向发展。随着计算机技术和网络技术的飞速发展,虚拟仪器将在数据采集、自动测试和测量仪器领域得到广泛应用,拟仪器技术十分符合国际上流行的“硬件软件化”的发展趋势,尤其是在高校科研和工业生产领域中发展前景非常广阔。

1 虚拟仪器概述

1.1 虚拟仪器简介

虚拟仪器核心技术思想是“软件即是仪器”,在通用的集成硬件平台上,结合高性能的模块化硬件和高效灵活的软件使本来需要硬件实现的技术软件化。一般当标准化硬件平台确定后,通过标准的仪器驱动软件可实现模块化的硬件(如GPIB,VXI,DAQ板等)之间的通信、定时应用等需求;而灵活高效的开发应用软件能创建完全自定义的用户界面和系统,实现传统仪器中由硬件完成的仪器功能。虚拟仪器技术的优势在于仪器性能的改进和功能扩展只需用户选择适合其应用要求的硬件模块以及更新相关软件程序设计,即可重新配置现有系统,增加程序可复用性,大大缩短整个系统开发换代周期,降低成本,方便实现多种功能。

1.2 虚拟仪器构成

虚拟仪器一般由通用仪器硬件平台和应用软件组成,如图1所示。

虚拟仪器硬件平台主要有两部分,分别是用于集成的硬件平台和模块化I/O接口设备。虚拟仪器的软件部分包括应用软件和I/O驱动软件两部分,应用软件包含实现虚拟面板功能的前面板的软件程序和定义测试功能的流程图软件程序,如LabVIEW等;I/O接口仪器驱动程序用来完成特定外部硬件设备的扩展、驱动和通信,可以由虚拟仪器开发环境提供。只有同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟仪器技术性能高、扩展性强、开发时间少以及出色的集成这四大优势。

1.3 图形化编程语言LabVIEW

LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言,采用数据流编程方式,程序框图中节点之间的数据流向决定了程序的执行顺序,用图表表示函数,用连线表示数据流方向。LabVIEW程序称为虚拟仪器(Virtual Instrument,VI)程序。一个最基本的VI由前面板(Panel)、框图程序(Diagram Program)和图标/连接端口(Icon /Terminal)三部分组成。LabVIEW为虚拟仪器设计者提供了一个便捷、轻松的设计环境,不仅能轻松方便地完成与各种软硬件的连接,还提供强大的后续数据处理能力,交互式的测量工具和更高层的系统管理软件工具。LabVIEW能够支持串行接口、GPIB,VXI,PXI等标准总线和多种数据采集板,以驱动不同仪器公司的仪器,用户可以高效、快速地编写出相应的应用程序,自行设计仪器驱动程序,完成诸如数据采集、数据处理、数据显示以及仪器控制和通信等多种功能。在较高性价比的条件下,降低系统开发和维护费用,缩短技术更新周期。

2 系统结构设计

该系统使用NI公司PXI-1042Q机箱和NI PXI-5122高速数字化仪模块组建数据采集硬件平台。PXI(PCI Extensions for Instrumentation),它的主要优势在于利用了已经验证的,符合工业标准的技术,在高速的Compact PCI总线基础之上,加入类似VXI所具有的定时、触发和同步功能。PXI作为一种专为工业数据采集与自动化应用高性能模块化硬件平台,具有开放式架构,内有高端的定时和触发总线,结合模块化的I/O硬件和相应的测试测量开发软件,便可以较好地完成数据采集任务。

2.1 系统硬件部分

PXI-5122高速数字化仪是硬件部分的核心,可直接插入PXI-1042Q机箱插槽中,属于内置式驱动。通过LabVIEW嵌入的驱动函数可配置其触发方式,如即时触发、软件触发、数字触发等,还可配置采样速率,采样记录长度等。PXI-5122提供双输入通道,每个通道最高100 MS/s实时采样率,分辨率14 b,采用交叉采样方式的采样率可提高到200 MS/s,带有去噪和100 MHz抗混叠滤波器,具有动态范围大、板上采样存储器容量大等特点。这里配置为单通道即时触发模式,以便实现实时的连续采样。根据采样定理,设置的最小采样速率至少是被采样信号频率的两倍。数据采集系统示意图如图2所示。

2.2 系统软件部分

系统软件部分主要由标准I/O模块驱动,采用队列同步控制和数据显示三大部分组成。系统程序流程图如图3所示。

首先通过NI,Scope示波器驱动来完成PXI-5122的配置和初始化,将此部分放置到由单个while循环控制的独立线程中便可以实现连续数据采集。被采集的数据被放入队列中,队列允许多个任务同时访问,其他独立线程的模块可同时并行地从中读取数据,实时完成各自的功能,如数据存储、数据显示等。

2.2.1 I/O驱动模块

NI Scope示波器驱动是NI公司提供的八类可互换的虚拟仪器IVI(Interchangeable Virtual Instrument)规范驱动之一,由于IVI规范驱动是基于虚拟仪器软件架构VISA(Virtual Instrument Software Architecture),可以实现程序与硬件接口的不相关。此外,NI Scope提供了规范和标准API函数和DAQ驱动程序库,它将仪器的功能完整封装,让用户更快更容易地开发系统。成功安装NI Scope示波器驱动后,在LabVIEW程序框图中,打开“函数”菜单下,打开“测量I/O”可以看到“NI Scope”工具包,选择初始化、水平方向设置、竖直方向设置、通道设置、触发方式设置等函数,自定义NI PXI-5122驱动程序。该系统设置偏移量为零,即时触发采样模式,采样记录数值默认为1,采样频率和采样记录长度由输入控件控制,采样的通道名称默认为“channel 0”,实现连续采样。NI PXI-5122驱动程序具体如图4所示。

2.2.2 同步技术

系统各模块分别由单个循环控制,并且各循环之间相互独立,每一个循环都有一个独立的线程独自运行,构成了一个包含多个并行任务虚拟仪器系统。各个循环之间也有数据交流,相互关联,为了实现在同一个程序中处理好各循环或并行任务之间的同步或通信,则需要使用同步控制技术。系统选用队列(Queue)技术来控制这些循环可以避免对设备的访问冲突。

队列结构是一种先进先出的结构。队列可以保证有序的数据传递,避免竞争或冲突。一般当多个用户需要使用同一个资源时,就可以通过队列来对多个用户进行排队处理;同时,也允许多个用户访问一个队列,这样就可以加快队列的处理速度。同样,在程序框图中打开“函数”,选择“编程”中的“同步”,可看待“队列”函数包。通过“获取队列引用”先建立一个队列,可设置队列名称,元素类型,队列大小等属性。图5中显示数据采集循环,数据存储循环,数据显示循环共同使用一个队列,即数据循环中使用“元素入队列”函数将采集数据不断地存放到队列中,数据存储和数据显示循环使用“元素出队列”函数从队列中不断地读取数据,实现了系统实时采集和存储的功能。若某个模块的任务运行过快或过慢,队列可以起到缓存作用,进行约束或补偿,不会导致数据丢失或重复读取。

2.2.3 数据存储

高速数据流文件TDM Streaming文件以流文件形式存储数据,读写速度比较快,适合用来存储海量数据,常用于实时系统。TDMS文件除了可以存储信号数据外,还可以为每个信号添加附加信息:文件、组、通道等。通过TDMS文件操作函数可对被采集的信号进行快速的读,写,属性设置及提取,管理简单;在写操作后可以调用TDMS File Viewer VI函数,打开TDMS文件浏览器,查看数据和属性值。TDMS的写操作如图5所示。

3 实验结果

数据采集系统前面板如图6所示,根据所设计的数据采集系统,分别进行了数据采集、数据输入,数据存储及波形显示等实验。数据保存在以.tdms为后缀名的波形文件中。图6所示为对频率10 kHz,幅度为0.5 V的模拟正弦波信号使用单通道采样,输入的采样频率为1 MHz,实际采样频率为1 MHz。经过实际验证,对三角波,方波等合理采样,结果比较满意。

4 结 语

该数据采集系统实际是用于对中波段范围内调幅信号的实时采集,方便对采集后的数据直接进行各种数学分析。一方面可将结果直观的显示在前面板上,另一方面也可同时将数据进行存储,以供日后分析使用。此外,由于LabVIEW是一个功能强大的虚拟仪器编译环境,简化编程过程,尤其是使用IVI驱动程序,极大地简化代码,用户不需要关心仪器底层是如何通信,只需要关注任务本身,给予系统更多的灵活性。以后只需要根据实际功能要求,修改相应的软件编程即可进行系统拓展。整个数据采集系统在实际使用中方便活,不受具体线路的限制。

参考文献

[1]杨乐平,李海涛,肖相生,等.LabVIEW程序设计与应用[M].北京:电子工业出版社,2001.

[2]Walter Tuttlebee.软件无线电技术与实现[M].北京:电子工业出版社,2004.

[3]姜宇柏,游思晴.软件无线电原理与工程应用[M].北京:机械工业出版社,2006.

[4]周浩敏,王睿.测试信号处理技术[M].北京:北京航空航天大学出版社,2004.

[5]Emmanuel C Ifeachor,Barrie W Jervis.数字信号处理实践方法[M].北京:电子工业出版社,2003.

[6]陈锡辉,张银鸿.LabVIEW 8.20程序设计从入门到精通[M].北京:清华大学出版社,2007.

[7]杨乐平,李海涛,赵勇,等.LabVIEW高级程序设计[M].北京:清华大学出版社,2003.

[8]John G Ackenhusen.实时信号处理[M].北京:电子工业出版社,2002.

[9]姚素芬,赵建强,冯超琼.基于LabVIEW传感器实验平台的开发[A].第三届全国信息获取与处理学术会议论文集[C].2005.

[10]臧观建,刘正平.基于LabVIEW的联合时频分析[J].华东交通大学学报,2007,24(4):121-124.

[11]周红霞,张恒杰,张春芳.基于LabVIEW的虚拟仪器及串口通信的实现[J].石家庄职业技术学院学报,2007,19(4):17-19.

图像实时采集范文

图像实时采集范文(精选10篇)图像实时采集 第1篇PCIE数据包在传输过程中要经过事务层, 数据链路层及物理层。采用类似网络分层的思想, ...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部