多路数据采集系统设计

2024-08-01

多路数据采集系统设计(共10篇)

多路数据采集系统设计 篇1

A/D转换在电子测控系统中被广泛使用,温度、压力等非电量的测量,电压、电流等电量的测量,一般都是通过单片机(或其他控制芯片)控制A/D转换实现。在转换速度要求不是太高的情况下,一般都采用串行A/D芯片,占用单片机的口线资源少,串行扩展式测控系统是当今的发展趋势[1]。但串行A/D芯片的模拟通道少,不能满足多路信号的测量,本文以TI公司的10位串行A/D芯片TLC1549为例,设计具有多通道高精度数据采集系统。

1 系统方案设计

数据的采集有两种方法实现:A/D转换和V/F转换。从转换方式上,A/D转换又分为积分A/D转换器和逐次逼近式A/D转换器等;从接口形式上又分为并行A/D和串行A/D。V/F转换是将电压信号转换为频率信号,然后测出频率再计算出物理量,它需要用计数器来测量频率,只适合信号较少的场合[2]。

目前在以单片机为核心的测量控制系统中,A/D,D/A、存储器等功能部件流行串行接口,可供选择串行接口芯片的种类也日益增多[3]。本课题采用10位串行A/D芯片TLC1549,它是一款单通道逐次逼近A/D芯片。本课题通过提升它的测量分辨率,使之达到12位的精度,用电子开关扩展输入通道,使其能对八路信号进行数据采集[4]。

1.1 提升A/D分辨率方法

图1是提升A/D分辨率的原理电路,其原理是通过调整其转换的参考电压,并将输入信号分档处理,从而提高测量转换的分辨率。

如参考电压设为5 V时,对5 V满量程转换,分辨率为:d=5/1 024;如果将参考电压设置为2.5 V,对2.5 V满量程转换,分辨率为:d=2.5/1 024。显然后一种情况A/D转换的精度高,是前者的一倍,测量精度达到11位,即将10位的A/D芯片提升到11位A/D的分辨率。以此类推,10位的A/ D芯片也可以设计成达到12位A/D分辨率。从图1可以看出,只要能对输入的信号进行分档处理,使输入到A/D芯片的电压信号小于等于1.25 V,将A/D转换的参考电压也设置为1.25 V,则10位A/D转换精度可以达到12位。

1.2 八通道12位数据采集器原理图

TLC1549只有一路模拟量输入通道,为达到设计八个通道要求,通过八选一模拟电子开关扩展其八路通道,本系统用TLC1549设计的八路数据采集器原理框图如图2所示,包括模拟电子开关、量程分档处理、10位串行A/D、显示电路、单片机系统五部分。

2 系统硬件电路设计

2.1 电子开关电路设计

图3为模拟电子开关设计的八路A/D输入通道。模拟电子开关采用CD4051。CD4051是八选一电子开关,图4为其引脚图。A0~A7为八路输入端,A为开关输出端,E为芯片使能引脚,VEE是负电源,VCC为正电源,GND为电源地,S0~S2为八路开关选择控制。由于CD4051的电子开关导通时有100 Ω左右的电阻,为消除开关电阻对输入信号的影响,选通的信号通过跟随器再送给后面的电路,同时提高输入通道的输入阻抗。820 kΩ电阻是为了消除通道悬空时跟随器不稳定输出[5]。本系统中采用AT89S51单片机,通道切换通过单片机P1.0~P1.2口分别控制CD4051的S0~S2引脚,选择其中一路电子开关接通。

2.2 量程分档处理电路设计

2.2.1 量程切换电路

图5为量程切换电路。将电子开关输出的模拟电压分别通过跟随器和三个减法运算电路,减法器的反向输入端分别加固定电压:1.25 V,2.5 V,3.75 V。可以得到四组电压输出信号:V,V-1.25,V-2.5,V-3.75的电压,分别加到模拟电子开关的四个输入端,电子开关仍然用CD4051,在输入信号0~5 V变换过程中,上述四组信号中,必有一组信号在0~1.25 V间,通过对电子开关的控制,使该组信号通过电子开关,再经过跟随器送给A/D芯片进行A/D转换。由于只有4路信号切换,将CD4051的S2接地,S0,S1分别用单片机P1.3,P1.4口控制。选择哪路信号作为A/D转换信号,可以通过图6所示的量程判别电路,用单片机口检测。

2.2.2 量程判别电路

图6为量程判别电路。三个比较器的基准分别取1.25 V,2.5 V,3.75 V,当输入电压大于基准时比较器输出高电平,否则输出低电平,将比较器的输出分别送给单片机的P1.5,P1.6,P1.7口检测。

2.3 显示电路的设计

显示电路采用LCM103,LCM103为10 位多功能通用型八段式液晶显示,模块内含看门狗(WDT)/时钟发生器,内置显示RAM[6],其接口电路如图7所示。CS¯RD¯WR¯,DATA分别用P2.0~P2.3口控制,最高位显示通道号,后面4位显示数字量,空一位,最低4位显示电压值,显示每秒刷新一次。

2.4 串行A/D接口电路的设计

串行A/D接口电路采用的TLC1549,它是一个10位的逐次逼近式A/D芯片,其接口电路如图8所示[7]。参考电压接1.25 V,可以将1.25 V以下的模拟量转换10位的数字量,转换的分辨率与5 V转换为12位数字量的分辨率相同,实现了由低分辨率A/D进行高分辨率的A/D转换。实际的转换结果与选择的量程有关,设A/D转换结果的结果为X,则四种状况的实际结果分别为:

X,被测信号<1.25 V,A0接通;

X+1 024,1.25 V≤被测信号<2.5 V,A1接通;

X+2 048,2.50 V≤被测信号<3.75 V,A2接通;

X+3 072,被测信号≥3.75 V,A3接通。

2.5 单片机系统及电源电路的设计

单片机选择AT89S51单片机,不采用扩展电路,直接用单片机的输入输出口线控制外围接口电路。取系统的晶振荡频率为12 MHz,机器周期为1 μs。程序存储器空间采用单片机内部的程序存储器[8]。

电源电路由运算放大器构成的减法器等模拟信号处理电路组成,原理上有负电压输出,系统电源应有正负电源,取±12 V,单片机系统需要的+5 V电源由+6 V经LM7805稳压得到。采用初级是220 V次级输出双12 V的电源变压器降压,经过桥式整流、滤波,通过LM7812,LM7912三端稳压块稳压,得到±12 V电源[9]。

3 系统软件设计

图9为设计的A/D转换程序流程图[10]。

4 结 语

本设计通过利用10位的串行A/D芯片TLC1549,通过精度提升的方法实现12位A/D转换;控制TLC1549的参考电压和切换输入模拟信号的幅度实现;用CD4051模拟电子开关实现了对串行A/D芯片的输入通道扩展,进而实现了高精度多路数据采集。

参考文献

[1]马西泰.自动检测技术[M].北京:机械工业出版社,1995.

[2]徐江海.单片机实用教程[M].北京:机械工业出版社,2007.

[3]周航慈.单片机应用程序设计技术[M].北京:北京航空航天大学出版社,1991.

[4]王利军.TLC1549串行传输与单片机的A/D设计[J].国外电子元器件,2007,11(6):78-80.

[5]胡宴如,耿苏燕.模拟电子技术基础[M].北京:高等教育出版社,2004.

[6]李敏,孟臣.串行中文图形液晶显示模块在单片机系统中的应用[J].电子产品世界,2002,6(11):23-26.

[7]王子章.串行模数转换器TLC1549在心脏监护仪中的应用[J].电子技术应用,1999,6(12):51-53.

[8]李华.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1996.

[9]杨文龙.单片机原理及应用[M].西安:西安电子科技大学出版社,1993.

[10]孙育才,苏学成.单片微型计算机应用系统设计与实现[M].南京:东南大学出版社,1990.

多路数据采集系统设计 篇2

针对因飞机机身局部结冰引起的飞行事故屡屡发生,严重威胁到飞行安全的.问题,研究出一种适用于机身各部位温度检测和功能事务管理的多路温度巡检系统,该系统利用机身表皮内嵌的温度传感器感知外界实时的温度变化,并通过RS485通信方式,将温度信息传递给单片机进行数据集中和处理,其结果通过DSP串行口在液晶屏中显示.另外,该系统利用uC/OS-Ⅱ嵌入式操作系统作为其事务管理系统,使整个温度巡检过程简单、高效.实验结果显示:该系统可以实时反映温度传感器所处的环境温度.

作 者:樊琼剑 程林 杨忠 沈春林 FAN Qiong-jian CHENG Lin YANG Zhong SHEN Chun-lin 作者单位:樊琼剑,FAN Qiong-jian(南京航空航天大学,自动化学院,江苏,南京,210016;空军航空大学,航空控制工程系,吉林,长春,130022)

程林,杨忠,沈春林,CHENG Lin,YANG Zhong,SHEN Chun-lin(南京航空航天大学,自动化学院,江苏,南京,210016)

刊 名:传感器与微系统 PKU英文刊名:TRANSDUCER AND MICROSYSTEM TECHNOLOGIES年,卷(期):200726(10)分类号:V233.7关键词:结冰 温度传感器 多路温度巡检系统 嵌入式操作系统

★ 飞行器多路温度巡检系统设计

★ 英语读写范文

★ 读写体会

★ 基于FPGA的VME自定义总线接口设计论文

★ 异步串行通信接口的IP核设计

★ 高中英语读写教学论文

★ 六年级读写竞赛试题

★ 阅读教学中读写结合的探究 教案教学设计

★ 读写结合的一条新路(网友来稿)

多路数据采集系统设计 篇3

关键词:多路采集;51单片机;串口;协议

中图分类号:TP274.2 文献标识码:A文章编号:1007-9599(2012)01-0000-02

Multi-channel Acquisition System Based on the Serial Communication 51 MCU

Liu Peng

(College of Computer Science,Yangtze University,Jingzhou434023,China)

Abstract:This paper presents a method of the multi-channel acquisition system based on 51 MCU serial port,introduces the multi-channel acquisition system structure,and the design method of serial port circuit,a detailed description of the host and slave working process and design of serial data communication protocol.

Keywords:Multi-channel acquisition;51 MCU;serial port;protocol.

一、多路采集系统结构

多路采集系统是由上位机和各个采集节点组成,都采用RS232串行通信标准。系统采用一台单片机作为主机,各个采集结点作为从机的“一对多”数据传输方式。主机的RXD端和所有从机的TXD端相连,主机的TXD端和所有从机的RXD端相连。主机发出的信号可以被所有从机接收,从机发出的信号只能被主机接收,从机间不能相互通信。主机轮流查询从机采集的数据,通过液晶屏实时显示,并可根据设定实现异常情况报警提示等功能。作为从机的各个采集节点则是由单片机、信号采集部分和串口通讯三部分组成部分。只要选用不同的传感器和相应的信号处理电路,就可以适合不同信号的采集。

二、主、从机通讯接口设计

主、从机中都使用美国ATMEL公司生产的低电压,高性能CMOS 8位单片机AT89C51,片内含4K可反复擦写Flash,128×8bit内部RAM,32个双向I/O口线,3个16位可编程定时/计数器中断,片机自带看门狗、双数据指针,8个中断源,全双工可编程UART串行通道。由于主、从机之间通讯采用RS232串行通信标准,所以它们的通信接口部分都采用相同的硬件设计。通讯接口采用标准的RS232接口,使用MAX232进行电平转换。单片机及串口通讯电路原理图如图1所示。

二、串口通信协议设计

图2 主、从机工作流程 图1 单片机及串口通讯电路

(一)主机工作流程。主机的工作流程如图2所示。在主机初始化阶段需要完成串口设置,串口采用中断工作方式,波特率为9600,建立从机地址表,。主机接收数据采用轮循方式,当正确接收到一个从机数据后,主机再给下一从机发送数据请求帧。数据校验不正确或数据帧中数据不是有效数据,都会向从机发送请求重发帧,并将该从机当作错误节点进行处理。(二)从机工作流程。从机的工作流程如图2所示。从机初始化阶段也将串口设置为中断工作方式,波特率为9600。从机将采集数据存放在发送缓冲区,并一直处于被叫状态,当接收到主机发送的请求数据帧后或请求重发帧,才发送数据帧。只有接收到主机的确认帧后,从机才清除发送缓冲区数据,启动下一次采集。(三)串口数据通信协议。根据数据传输的需要,自行设计了串口数据通信协议,将数据组帧后发送。利用此协议发送数据时,采用请求发送/发送/确认/重发方式。即发送一数据帧,一个确认,在指定时间内没有收到确认信息,则从机重发数据帧。数据帧定义如下:

其中,帧头固定为0xABH;主、从机地址长度为一个字节,主机默认地址为0xFFH ,从机地址从0x00H顺序编码,最多有255个。采用和校验方式,保证数据正确传输。累加发送或接受的数据,当和的值大于0xFF时,将和值置0继续和运算。帧类型定义及相应帧数据格式如下表所示:

从机接收到主机发送的数据帧后判断和发送的部分程序代码如下:

void read_buffer()

{

unsigned char RECEIVE_buffer;/*得到本机编号*/

if(RI)/*清除接收中断*/

{ RI=0;

RECEIVE_buffer=SBUF;/*接收串口数据*/

if(point==0)

{ if(RECEIVE_buffer=0xAB) /*判断是否为帧首*/

{buffer[point++]=RECEIVE_buffer; } /*将接收到的数据放到接收缓冲区中*/

else

point=0;/*不是帧头,等待起始标志*/

}

else if(point==1) /*判断是否为本机地址接收的帧*/

{if(getnum==buffer[1])

{buffer[point++]=RECEIVE_buffer; } /*将接收到的数据放到接收缓冲区中*/

else

point=0; /*不是本机要接收的帧,放弃,等待起始标志*/

}

else if(point==3)/*根据帧的类型来作出相应判断*/

{ buffer[3]=RECEIVE_buffer;

if(buffer[3]==0x00)/*接收到的是请求发送数据帧*/

Com_Send(5,buffer[1]);/*该从机给主机发送数据*/

else if(buffer[3]==0x01)/*接收到的是确认帧*/

Init_Salver();/*收到确认帧,清空缓冲区*/

else if(buffer[3]==0x02) /*接收到是的请求重发数据帧*/

Com_Send(4,buffer[1]); /*重发数据帧*/

else if(buffer[3]==0x03) /*接收到的是重发的数据帧*/

buffer[point++]=RECEIVE_buffer;/*如果接收到的是重发的数据帧,从缓冲区里面读取数据*/

else if(buffer[3]==0x04)/*接收到的是数据帧*/

buffer[point++]=RECEIVE_buffer;/*同接收到重发数据帧一样,从缓冲区里面读取数据*/

}

else if(point==4)

{ buffer[4]=RECEIVE_buffer; } /*读取发送的数据帧的长度*/

else if(point>4 && point

{ buffer[point++]=RECEIVE_buffer;

unsigned char num=Sum_checkdata(RECEIVE_buffer); }

/*对接收到的数据进行校验*/

else if(point==j+4)/*接收到校验位*/

{buffer[point++]=RECEIVE_buffer;

if(buffer[j+4]!=num) /*如果接收到校验值和本机对数据进行校验

Com_send(3,buffer[2]); 的值不相等,发送请求重发数据帧*/

else

Com_send(1,buffer[2]+0x01); /*向下一从机发送请求发送数据帧*/

}

else

point=0;/*等待接收其始标志*/

}

}

三、结束语

本设计利用51单片机的串口连接主机和多个采集节点,使用自行设计的串口数据通信协议,实现了“一对多”的数据传输。整个系统结构简单、可靠性高,可任意扩充采集节点数量,实际运行效果较好,具有一定的实用价值。

参考文献:

[1]戴佳.51单片机C语言应用程序设计实例精讲(第二版)[M].电子工业出版社,2008

[2]穆兰.单片微型计算机原理及接口技术[M].机械工业出版社,1996

[3]刘辉.基于8051单片机的数据采集与通信接口设计[J].软件导刊.2008(12)

多路数据采集系统设计 篇4

笔者设计的数据采集存储系统可以完成6通道0~5V模拟信号(压力、噪声)的采集、编帧和存储,并可在存储系统回收后完成数据的回读和处理。

1 系统组成及各模块设计

该系统主要由信号调理模块、A/D转换模块、FPGA主控单元、Flash存储单元、USB单片机接口和电源调理模块组成,其原理框如图1所示。

1.1 信号调理模块

根据采样定理,在进行模数转换时,当采样频率大于信号中最高频率2倍时,采样之后的数字信号才可以完整地保留原始信号中的信息[2]。在实际应用中一般保证采样频率为信号最高频率的5~10倍。本系统需要采集的模拟量信号最高频率为3k Hz,因此在设计中,将各通道采样率设置为20k Hz完全可以满足要求。同时,采用一阶低通滤波器对各路模拟量输入信号作相应的滤波处理,将输入信号的上限截止频率设置为30k Hz,经过滤波处理后的信号经运放跟随电路后,再输出到A/D转换器,这样不仅可以提高输入阻抗,而且可以使采集信号完全进入采样电路,避免对信号进行处理时,由于输入信号的输出阻抗过高而导致损耗[3~5]。

1.2 A/D转换模块

ADS8365是TI公司的一款高速、低功耗、16位并行接口,且单+5V供电的高性能模数转换芯片。当参考时钟信号最高为5MHz时,ADS8365的转换时间为3.2μs,此时的采样率最高的为250k Hz。ADS8365的6个模拟输入通道可分为A、B、C 3组,每组各有一个保持信号用于启动各组A/D转换。ADS8365的6个通道可以进行同步并行采样和转换,信号保持至少20ns的低电平后进入采样保样保持、转化阶段,转换完成后,引脚的输出将保持半个时钟周期的低电平,FPGA等待信号有效后,通过设置为低电平,将数据从并行接口中以直接地址模式、循环模式或FIFO模式读回。ADS8365的时序如图2所示。

ADS8365的模拟量输入端既可以采用单端输入,也可以采用差分输入。该系统的模拟输入信号范围为0~5V,因此ADS8365采用单端输入模式,电路设计如图3所示。此时,-IN端输入为共模电压CV(2.5V),而+IN端输入则围绕共模电压摆动,峰-峰值分别为CV+VREF和CV-VREF,VREF的大小决定了共模电压的变化。另外,在设计电路时应当注意的是,驱动输入端的电源输出阻抗应当匹配,通常在-IN端与+IN端之间接一个20p F的电容以匹配输入端的电源输出阻抗,否则将导致失调误差[4]。

1.3 FLASH存储单元

该系统选用SAMSUNG公司的NAND型Flash K9WAG08U0M作为存储器件,它具有功耗低、抗振动和冲击及温度适应范围宽等特点。该Flash存储容量为2G,由8 192块(Block)组成,每块有64页(Page),每页内有4K+128个字节,其中4KB用于存储数据,128个字节用于存储坏块标志位、ECC码等状态信息[5]。FPGA通过控制Flash的读写信号和指令数据选择,即可实现Flash的块擦除、数据写入和读取。该系统在实际应用时,需要连续采集6路模拟量输入并存储80min,6路模拟量输入单通道采样率为20k Hz,通过计算,采集的数据按照相应的帧格式编帧后的数据量为1 648MB,因此选用一片K9WAG08U1M即可满足要求。

1.4 USB通讯接口

系统选用Cypress公司的CY7C68013来实现数据的传输,该芯片内部集成了USB2.0收发器、串行接口引擎(SIE)、增强型8051微处理器、通用可编程接口(GPIF)和片内FIFO[6]。在设计中,采用CY7C68013的GPIF接口来实现计算机与FPGA无缝的、高速的数据传输,作为整个系统的通讯桥梁,USB通讯模块主要实现以下两个功能:

a.将计算机的控制命令传输到FPGA模块,由控制系统进行数据记录或数据上传;

b.将记录模式下的实时监测数据或读数模式下Flash中的数据传输到计算机,由计算机分析和处理。

2 系统逻辑设计与功能实现

在设计中,选用Xilinx公司Spartan-2E系列的XC2S300E来实现整个系统的功能,使用VHDL语言,将各功能模块化、将顶层设计图形化。系统工作时,6路模拟量输入信号通过调理电路后,由FPGA控制ADS8365对其进行同步采集,并将转换得到的数字量编帧,FPGA控制Flash采用边擦边写的方式将编帧后的数字量存储,同时,根据计算机“监测”命令,将采集的数据和Flash的工作状况信息通过USB接口传输到计算机实时检测。系统采集完成后,FPGA根据计算机发送的“读数”命令,将FLASH中的数据读出并传输到计算机。程序的状态转换如图4所示。

系统有两种工作模式:记录模式和读数模式。系统上电工作后首先将各模块复位,并将输入输出端口初始化,初始化完成后的10s内处于等待状态,如果10s内判断到计算机通过CY7C68013发送了“读数”命令则进入读数模式,否则,进入记录模式。

记录模式下的系统基本工作过程为:FPGA将外部60M时钟输入20分频得到的3M时钟作为ADS8365的参考时钟。FPGA控制将ADS8365的信号同时拉低并保持32ns后,6个通道同时进入数据采集状态。大约5.5μs后,ADS8365的管脚被连续3次拉低,说明一次模数转换完成,ADS8365选用cycle模式,由FP-GA控制信号将数据连续读出并按照相应的帧格式将其编帧,编帧后的数据写入到外部FIFO IDT7206中。同时,FPGA控制对Flash进行边擦边写操作,先进行块擦除,如果擦除失败,则向该块中写入无效块标志,如果擦除成功,则根据外部FIFO IDT7206的半满信号,从FIFO中读取4K字节的数据,在Flash写时钟的下降沿将其写入Flash,随后Flash进入页编程状态,R/B信号会拉低,当R/B信号拉高时,则完成了1页数据的写入。重复以上操作直到完成1块(64页)数据的写入。

在记录模式下,如果FPGA检测到计算机发送的实时“监测”指令时,还会选择部分采集的数据并将其写入内部4K FIFO,由USB单片机检测内部4K FIFO的半满信号,当检测到半满信号变低后,通过GPIF接口从内部4K FIFO中读取512个字节的数据,USB单片机会自动将这些数据打包并传输到计算机以实时显示。

而读数模式下,当FPGA检测到计算机发送的“读数”指令,执行Flash的读操作,首先判断该块是否为有效块,如果是无效块则跳过该块,如果是有效块则将其中的数据按页读出并将其写入另外一个内部4K FIFO,USB单片机从4K FIFO中读取数据并上传到计算机,具体过程与记录模式下数据实时监测过程相似。

3 系统时序仿真与实验结果分析

图5为使用Model Sim软件对FPGA控制A/D转换和写外部FIFO进行仿真的时序图。图中,ads_clk为ADS8365的参考时钟;ads_byte为低表明ADS8365采用16位输出模式,ads_add为低说明一个信号即可将一个通道的数据读出;add_a(A2,A1,A0)被设置为“110”表明采用ADS8365的循环模式,循环读取A0、A1、B0、B1、C0和C1通道的数据。每次转换完成后,将每通道2字节的数据按高8位、低8位的顺序从第1通道到第6通道依次写入FIFO,图中“00000000H”为帧计数,“146FH”为帧标志。

图6中的波形为系统进入记录状态进行实时监测时,计算机发送实时“监测”命令后,根据USB单片机上传的实时监测数据画出的第一通道的波形。图中上面部分为计算机将接收的实时监测数据按通道区分并将当前各通道模拟量电压进行实时显示。

图7为将Flash中存储的数据读出后截取的一部分。图中,第1、2列为第1通道采集的数据;第3~12列为第2~6通道采集的数据;第13~16列为帧计数,从图中可以看出帧计数是连续的,说明数据没有丢失;第17、18列为帧标志“146F”。

4 结束语

笔者介绍了基于ADS8365的多路数据采集系统的功能与实现过程,系统以FPGA为控制核心,充分利用FPGA的逻辑功能,实现数据的同步采集与存储,同时采用USB单片机实现数据的上传,利用计算机软件来分析和处理数据,并将结果显示。系统接口电路简单、采集精度高,已成功应用于某飞行实验中,系统各项性能和可靠性均满足要求。

参考文献

[1]刘志平.基于FPGA的高速数据采集存储系统设计[D].西安:西安电子科技大学,2009.

[2]马明建.数据采集与分析计数[M].西安:西安交通大学出版社,2005.

[3]何鹏,王娜,徐刚.分光光度计数据采集与处理系统的改造[J].化工自动化及仪表,2010,37(8):118~120.

[4]王维刚,龙飞.基于BP神经网络和改进遗传算法的蒸发器支座结构优化设计[J].化工机械,2009,36(4):317~322,325.

[5]马培娇,张宇光,姚永兴等.高速大容量存储系统的关键技术实现[J].化工自动化及仪表,2010,37(7):869~872.

多路数据采集系统设计 篇5

【关键词】语音同传;FPGA;数字锁相

引言

DSL是一种数字用户线路技术,针对该技术的研究及应用,在上世纪90年代初开始,当时的DSL为HDSL(高速数字用户线),传输速率一般为2M,解决交换机之间数字中继的传输,传输距离比较近,为3Km左右,用户主要为电信局[1]。本论文研究正是基于DSL、高速数據复分接、FPGA数据处理、模拟驱动前端、话音编解码等技术,构建一个在通信容量、实时性、抗干扰能力、可靠性和低功耗等方面比传统通信网有明显的提高的有线语音同传系统的设计与实现。

1.系统工作原理及组成

1.1 系统原理分析

PCM(脉冲编码调制)通信系统模型在发送端通过抽样、量化、编码将模拟信号变换成数字信号,经信道传输到达接收端,在接收端先由译码器恢复抽样值序列,然后经低通滤波器滤出模拟基带信号[2]。PCM时分多路复用系统模型在各路PCM通信系统模型的基础上增加了利用FPGA作为数据处理器的复用器和分路器。

1.2 系统结构

数话同传设备电路主要是由主处理器模块、数据复分解模块、用户接口模块、显示模块、收发器模块、电源变换模块、工作模式设置模块和网络接口模块等组成。主处理器模块主要是用FPGA芯片和ARM芯片来实现的。采用Altera公司的FPGA芯片EP1C3T144C8N为处理器,主要完成收发器模块的初始化管理和控制、工作模式的设置和控制、工作状态的显示等。ARM芯片主要是处理视频文件的播放,采用SAMSUNG公司的S3C2440作为为核心处理器来处理视频播放文件。数据复分接单元主要由串口数据、网络接口单元、用户接口单元,控制信令、数据复分接单元和收发器单元组成的。收发器单元由曼彻斯特编码器模块、曼彻斯特解码器模块、发送缓冲器、接收缓冲器、配置寄存器、通讯存储器控制单元和主控制单元FPGA等部分组成。用户接口电路主要是完成与子机终端的接口,主要是由安全保护电路、用户馈电电路和话音编解码电路组成。电源电路主要采用DC/DC,主要实现12v直流电源到+5v、-5v、+9v、+1.8v和+3.3v的变换。显示模块分为两部分,主机通过液晶屏来显示当前的播放模式和图像的播放,子机通过数码管来显示当前语音通道的选择和音量的大小。

2.系统硬件组成

系统分成主机部分和从机部分,传输线采用常用的5类以太网双绞线,各子机模块通过分路器并联连接在总线上,且总线上带有12V的直流馈电,各子机供电均来自总线上。

主机可最大输入30路的语音信号,语音信号通过前级的300Hz~3400Hz带通并放大后,送入到脉冲编码(PCM)芯片进行模拟信号数字化过程,转换成8位串行信号,输入到FPGA芯片,FPGA将30路的串行信号进行复接并插入帧同步码元和控制码得到码元速率为2Mbit/s的码元流。为了提高信号在信道中的传输距离,FPGA对2Mbit/s的码元流进行编码,从而得到4Mbit/s的CMI码元流,并把CMI编码进行单极性码到双极性码的变换,经过隔离变压器后送入双绞线进行传输。考虑到子机的供电问题,双绞线采用常用的5类以太网网络线,包含了4对双绞线,其中1对用于传送码元,1对用来传送12V直流馈电,另外2对为地线。子机可以通过按键任意切换30个来自主机的语音信号进行接收,子机首先通过在双绞线上取得直流馈电,并从将总线上的双极性信号转换成单极性信号送入FPGA进行数据的分接处理,分接后得到当前时隙的串行语音数据,送入PCM译码芯片进行数模转换,将音频信号进行数字音量的控制和放大后输出。

3.系统软件组成

帧复接与分接部分软件。该系统软件主要由FPGA复接和分接软件组成,FPGA编译器采用ALTERA公司的Quatrst II9.0,该编译器编译界面友好,生成代码效率高,占用资源空间小,使得控制起来更为实时、方便、高效,也使得程序可读性和可维护性更强。

为了能够保证在子机具有很好的同步性,分接软件中核心部分为位同步信号的提取。位同步的方法有插入导频法(外同步法)和直接法(自同步法)2种[3],直接法又分为滤波法和锁相法2种,本系统选用数字通信中常使用的数字锁相法进行位同步信号的提取。

系统采用了改进型的30/32路PCM的帧结构,一帧由32个时隙组成;一个时隙为8位码组。时隙1~30共30个时隙用来传送30路语音信号;时隙0(TS0)是“帧定位码组”,用于发/收端同步,固定内容为00011111;时隙31(TS31)用于传送主机到子机的控制指令。

FPGA数字锁相法提取位同步信号过程主要包括:本地高速时钟源、位同步基准提取、相位比较器和分频器等构成。

总线上传输数据为差分的双极性码元,通过变换后输入到FPGA的码元是不归零的随机二进制序列,不包含同步信息,进入FPGA后需要将该码元进行微分、整流,使之成为归零脉冲,才能从中提取位同步信息。信号提取的过程:利用FPGA芯片EP1C3T100C8N中的内置锁相环(PLL)将本地的32.768MHz时钟6倍频后得到196.608MHz的高速时钟,然后以这个高速的时钟为基准对输入的2Mbit/S的码元进行微分整流得到位同步基准,并将他送入相位比较器,相位比较器将他和分频计数器的输出进行比较,并判断是同步、滞后还是超前,然后输出相应的控制信号给控制器,控制器再对分频值进行相应的调整,直到输入和输出同步为止,最终锁相输出256KHz的位同步信号。

在总线帧结构中,一共包含了32个时隙,其中的TS32时隙用于传送数据指令,也就是说可以通过主机下达除语音信号以外的广播控制指令。主机广播下达的八位二进制值0000,0000代表所有子机关机;八位二进制值0100,0000代表所有子机开机;八位二进制值10XX,XXXX代表主机广播子机音量控制(6Bit);八位二进制值1100,0000为预留位。

4.结论

本系统很好的利用了PCM时分复用结构,以FPGA为核心实现了将多路语音信号和数据指令同时按照时分复用的方式复接在传输线上,到达接收端后,子机可以通过按键任意选取通道进行语音数据的接收,所有子机也可以通过主机进行广播控制。由于本系统采用全数字方式进行传输,传输过程中语音信号清晰、无杂音,可以很好的运用在国际会议上的同声传译、飞机和旅游巴士中的音频同传等系统当中,具有很好的实用价值。

参考文献

[1]许博.高速有线数话同传技术研究[M].北京:北京邮电大学,2010.

[2]樊昌信.通信原理[M].北京:国防工业出版社,2001.

多路数据采集系统设计 篇6

数据采集系统是将采集传感器输出的温度、压力、流量、位移等模拟信号转换成计算机能识别的数字信号,进行相应的计算存储和处理;同时,可将计算所得的数据进行显示或打印,以便实现对某些物理量的监测和控制[1]。

嵌入式系统是以应用为中心,以计算机为基础,软硬件可剪裁,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统[2]。嵌入式系统的核心是各种类型的嵌入式处理器。目前,采用ARM技术的微处理器占据了主流,其应用遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场[3]。而ARM微处理器的Cortex系列专为安全要求较高的应用而设计。其中,Cortex-M3适于高性能、低成本需求的嵌入式应用。

1 多路数据采集系统总体设计

1.1 系统设计要求

本数据采集系统的设计要求实现150路直流电压的实时采集和顺序转换。经过部分采集处理后,由串行数据总线将转换数据发送至上位机界面,经过换算,以检测采集的电源正常与否;同时在输出端产生5路PWM方波信号,以用作输出测试与控制。

1.2 系统设计方案

根据上述设计要求和数据采集系统的设计规范,将系统划分为两个部分:最小系统和采集系统。

最小系统采用基于ARM Cortex-M3架构的微控制器STM32F103RBT6为主控CPU,利用其内置16通道ADC对输入的多路直流电压信号进行实时采集和转换,内置外设USART将转换结果经过串口发送在PC端由串口调试助手显示。

采集系统采用5块采集板,每块板实现30路电压信号采集。各块板上,采用比例分压的方法,利用排阻进行采集电压的比例转换,以达到ADC转换的参考基准电压要求。电压信号的输入采用4-16线模拟开关CD4067,通过CPU输出四位控制信号,依次选择各路输入信号,进行采集转换。

电压信号经过采集板,级联输入到最小系统板中,利用CPU内置ADC1中的10个转换输入通道,依次进行转换。设置CPU内部DMA模块实现转换结果的存储,利用串口转发数据,在上位机显示转换结果。

根据上述设计方案,本数据采集系统的系统组成和工作原理如图1所示。

2 数据采集系统的硬件设计

根据系统构成原理,硬件设计上,最小系统和采集系统两部分通过并行接口实现多块板级联,通过选择相应的输入通道和转换通道,实现信号采集和转换结果的显示。

最小系统中,采用STM32F103RBT6微控制器,工作频率可达72MHz,内置2个12位ADC,16个外部模拟信号输入通道,可达1μs转换时间,转换范围是0~3.6V;支持7个DMA通道,可操作多种通用外设,如定时器、ADC、USART等;内置3个同步16位定时器,每个可有4个通道用于PWM波形输出[4]。

2.1 最小系统的设计

按照STM32最小系统的设计规范和本系统的功能要求,最小系统构成如图2所示:

电源模块:CPU为3.3V供电,最小系统外部输入电源为5V,经过电压转换芯片LM1117-3.3获得3.3V输出电压,以提供系统电源。电源的输入输出端并接滤波电容,分别滤除电源的高频和低频噪声。

除此之外还有外部时钟,复位系统,ADC参考电压,USART串行通信,JTAG调试接口,总线驱动接口的设计。

STM32F103RBT6处理器具有51个多功能双向5V兼容的I/O口,使用时可以作为通用GPIO口,也可作为复用AFIO口。复用I/O中,本系统外设所使用的有:定时器4通道四TIM4-CH4复用PB9口;USART1引脚USART1-TX、USART1-RX复用PA9、PA10;ADC转换通道CH0~CH9分别复用PA0~PA7及PB0、PB1。

对于复用功能的端口可以配置成以下模式:输入模式(浮空、上拉或下拉)或复用功能输出模式,此时输入驱动器被配置成浮空输入模式。ADC通道端口用作ADC输入时将对应端口配置为模拟信号输入模式;USART数据传输时,TX、RX复用端口分别配置为备用功能推拉模式和输入浮动模式[4]。

2.2 电压采集系统的设计

电压采集系统作为本系统的第二部分,主要实现多路电压信号顺序选择输入,获得ADC采集端的输入电压信号,同时,输出最小系统中产生的PWM方波信号,并能选择不同的ADC通道,以实现5块采集板与最小系统板级联。本部分主要包括电压采集模块、数据选择模块、PWM输出模块以及输入输出接口等。

电压采集模块:电路中采用电阻比例分压的方法,获取输入电压信号,以达到CPU采集转换的基准电压的要求。在实际硬件设计中,采用比例阻值的排阻代替分离电阻以便于电路板的绘制和整体布局。

数据选择模块:采用16选1输出的模拟开关CD4067作为数据选择器,输出控制由CPU四个端口输入高低电平作为二进制组合以确定输出的数据通道。

PWM输出模块:最小系统中选择定时器四,软件配置为PWM输出,由三极管放大后获得PWM方波。

输入输出接口:本系统数据采集和最小系统两部分采用40针排线连接,各个采集板上可以同时选择两个不同的通道,级联后各板将数据选择器的输出信号送至相应的ADC转换通道,同时输出PWM方波信号。

3 系统调试及软件设计

设计并加工好印刷电路板后,开始硬件和软件的调试。调试过程中采用逐个功能单元调试,一个功能单元调试正常后再调试下一功能模块,确保电路板出问题时可以很快发现问题点,再将各功能单元组合设置,逐步完成软件设计和系统调试,实现系统设计要求。

系统调试所使用的开发环境为IAR EWARM[5],仿真工具为ST-LINK II,使用USB接口。

3.1 最小系统板调试

将电源模块、复位、JTAG、外部晶振焊到电路板上,组成最小系统,分模块,分步骤,调试系统各部分。加电调试前检测是否有电源短路,确保电路安全。

电源模块:电路外部输入电压为5V,经电压转换后在LM1117-3.3V输出端得到3.3V的输出。加电后,首先通过万用表测量电压输出是否正确,然后通过示波器观察输出电平的波形是否满足系统对电源精度的要求,如不满足,可以通过加大滤波电容的方法解决。

最小系统供电正常后,连接仿真器,通过软件平台可以检测到最小系统CPU,表明CPU焊接正常。调试过程中会用到外部晶振,需要检测晶振电路,将系统上电,使用示波器检测晶振管脚,观察波形,看晶振是否起振。然后编写一个简单的LED测试程序来观察CPU是否能正常工作,通过软件设置电路中LED连接的I/O端口(PB6)输出模式,观察是否有闪烁。

DMA调试:DMA用来提供在外设和存储器之间或者存储器之间的高速数据传输。DMA通道配置包括:设置外设寄存器、数据存储器的基地址,确定数据量和通道优先级,以及数据传输的方向、循环模式、外设和存储器的增量模式等。ADC1对应DMA通道1请求,ADC通道配置中使能DMA请求[5]。

除此之外还有USART调试、ADC调试、PWM调试等。

3.2 系统整体调试

最小系统板各功能单元调试通过后,将最小系统板与数据采集板级联进行系统整体调试。

系统调试主要包括:外设和系统时钟初始化,GPIO初始化,USART初始化和ADC、定时器初始化及ADC通道设置和串口收发配置等。系统调试流程如图3所示:

按照上述流程完成程序设计,编译、链接、运行,观察输入输出情况。系统调试效果如图4所示。

程序运行后,系统板上的LED在闪烁,用示波器测量定时器输出引脚PB9,显示频率为4k Hz,幅值为3.3V,占空比50%的PWM的方波,经过三极管放大,幅值为4.5V;在采集板输入端加入直流电压信号,跳线选择ADC通道;USART进行数据传输中,先发出转换结果低六位,后发出高六位。打开串口调试助手,在数据接收区内以十六进制依次显示经过ADC所获得的输入信号的转换结果,图4中显示了通道IN105、IN206输入信号的测试效果,每次预先发送0x7E,且每15次循环输出,表示依次获取了模拟输入电压信号,经测算转换精度在误差允许范围内,说明系统运行正常,初步实现设计目的。

4 结论

本数据采集系统充分利用微处理器STM32F103RBT6内置的16路ADC通道、DMA控制器、USART通信接口、定时器等丰富的外设资源,在系统实现上简化了相关模块的设计,提高了系统运行的可靠性。经过系统硬件设计和软件配置实现顺序采集转换输入的多路电压信号,并利用上位机界面显示采集的信号,实现了输入信号的实时监测和管理,达到了系统设计的基本要求。

参考文献

[1]马明建.数据采集与处理技术[M].西安:西安交通大学出版社,2005.

[2]杨华平.基于CAN接口的高精度多路数据采集系统的研制[D].西安科技大学,2007.

[3]田泽.嵌入式系统开发与应用教程[M].北京:北京航空航天大学出版社,2005.

[4]王永虹,徐炜,郝立平.STM32系列ARM Cortex M3微控制器原理与实践[M].北京:北京航空航天大学出版社,2008.

多路数据采集系统设计 篇7

1 系统的基本组成和工作原理

本文设计的数据采集系统基于TI公司设计制造的低功耗MSP430单片机实现, 该系列单片机具有运算功能强大, 功耗较低的优点, 其主要原理是信号发生器通过模拟产生正弦信号, LM331芯片将正弦波频率转换成电压, 以供系统进行多路采样和监测分析。上位机的主要作用是服务于用户, 接收数据、并校验及显示。主要的数据采集的模式有循环采集和固定通道采集2种。主要工作流程是作为核心部件的单片机, 负责实现采集数据、处理数据、发送数据和显示数据的功能, 上位机通过与单片机的对接, 实现对单片机的控制, 实现选择数据采集方式的功能。

2 系统硬件电路设计

系统主要由模拟块和主板两个部分组成, 模拟块主要包括系统电源模块、正弦信号发生模块、频率变换模块、信号调理模块和7路A/D的接口;主板主要包括电源及A/D接口、MCU、LCD和串口收发模块。系统的主要工作模式为正弦波发生器ICL8038发送正弦波信号—信号放大及整形—F/V变换 (LM331) —信号放大及调理—其他6路电阻分压信号同时进入MCU—MSP430中进行LCD显示或上微控制和显示, 整个过程由统一的电源系统供电。

2.1 正弦信号发生模块

本文主要采用ICL8038正弦信号发生器, 正弦信号发生器采用先进的生产工艺制造而成, 内部的主要部件是二极管。该型信号发生器工作稳定性好、精确性高、电压范围广, 并且操作简单。外部电路接入少量的部件即可正常工作, 可以产生方波、三角波和正弦波等多种类型的波。

ICL8038正弦信号发生器的具体工作流程是:由8脚输入电压, 通过调节电位器P1即可使2脚输出的波信号的频率发生变化, 实现外部压振荡, 通过10/11脚之间接入0.01μF的振荡电容、4/5脚接入电阻和电位器, 进行失真限制。

2.2 频率变换模块

频率变换模块的主要功能部件是芯片。本文采用集成芯片LM331, 这种芯片采用新型的温度补偿工作模式, 保证其在额定的温度范围之内和较低的电压下 (<5.0V) 均具有很高的精度。LM331芯片的应用范围广, 最多可达到100db左右, 信号的线性度好, 失真度小, 在频率很低时 (<0.1HZ) 仍具有很高的线性度, 同时其精度高 (数据分辨类可达到12位) , 外围电路简单, 只需加入几个部件即可正常工作, 系统工作状态稳定, 转换精度较高。调节P1使电阻Rs为12.8kΩ左右, 则当fi=200Hz时, V0=0.22V;当fi=2k Hz时, V0=2.22V。

2.3 信号调理模块

信号调理模块主要包括整形和信号调节电路两个部分。由ICL8038产生的正弦波信号首先经过1μF电容滤波, 再经A/D824反向放大2倍, 通过信号比较器, 输出相应频率的方波信号, 再经LM331芯片处理变换, 将方波信号转化为电压信号。试验证明频率范围在200Hz~2k Hz的方波转化后的电压信号的范围在0.22~2.22V, 符合技术要求。

2.4 系统电源模块

系统采用额定电压范围为±12V的直流电压, 供给ICL8038, LM331芯片及A/D824。将输入的+12V电压经过LM317产生+5V的稳定电压, 接入电阻进行分压产生0V, 1V, 2V, 3V, 4V, 5V共6组数据供给A/D采样, 单片机板需+3.3V供电, 可由LM317稳压电路得到。同时可以通过增加电容来减少工作时产生的电源噪音, 一般采取高电容 (10μF) 和低电容 (0.1μF) 组合的方式。

3 多路数据采集系统的软件设计

多路数据采集系统的软件设计基于系统工作的流程分析进行, 正常的工作流程为:系统初始化—LCD初始化—系统定时中断和串口接收中断—循环采样模式—通过—AD通道循环采样并显示—AD采样指定通道并显示—再进入循环采样模式—若循环采样模式不通过—直接进入AD采样指定通道并显示。该系统之间的数据传输协议采用主要采用RS 232方式进行, 也可采用RS 485差分方式, 通过在上位机上装转换芯片可以进行数据的转换, 这种方式进行传输大大提高了通讯的速度, 同时缩短了信号的传输距离。

软件的操作过程主要有:单片机测量数据、处理、显示数据与上位机通信几个部分。系统初始化, 根据检测的实际情况, 利用检测仪操作界面选择界面的工作模式:工作状态或非工作状态检测。针对不同的工作模式, 预设的参数有所不同, 系统设置的多路开关, 为选取AD转换通道提供方便, 当信号的频率信号转换成电压信号后, 就开始了数据采集工作。设计好采集次数, 对采集的数据进行整波, 通过传感器测量数据, 即可获得实际的结果。测量的数据将在LCD液晶屏上显示。在应用时, 通过对采集通道和采集时间的控制, 采集数据次数的选择, 应用CYB-80S型号的传感器, 可以达到系统要求的检验结果, 最终结果在屏幕上进行实时显示。

数据回放测试, 选择菜单下的工作模式将其转换到数据回放, 进而进入了数据回放模式中。在数据回放菜单下, 选择需要显示的信号并与传输通道一一对应, 然后, 通过点击数据截取按钮进行重绘数据曲线, 拖动滑块可进行数据回放。

数据采集时的界面操作过程如下, 点击鼠标进入系统界面。在工作模式栏里选择数据采集选项, 进入数据采集模式。在数据采集界面中, 可以看到很多菜单栏和其子菜单, 以及各种命令和操作按钮。

数据采集前, 可以根据实际需求对传输通道进行配置。按下鼠标, 配置栏下选择通道标注进入通道注册界面, 鼠标双击信号可以设置各个信号名字。包括模拟、离散和数字信号等等。设置后鼠标点击保存信号名称。在通道配置时可以根据需要选择各个通道的显示数量。常用的设置是, 模拟通道和离散通道设置为16, 而网络数字通道设置为0。通道设置后, 鼠标点击保存。通道配置完成后, 用户就可以通过对通道的选择, 监控相应的信号。用户还可以通过通道显示信号的颜色、偏移量等指标完成对多条数据的区分显示。

4 结语

MSP430系列单片机以其优越的性能和较好的性价比, 在很多的工程领域都具有广泛的应用, 本文针对多路数据采集的实际需要, 设计了一种基于MSP单片机的数据采集系统, 对研究MSP单片机在多路数据采集系统中应用具有一定的借鉴意义。

参考文献

[1]Kw ong R, Johnston E W.A Variable Step Size LMS Algorithm[J].IEEE Trans.On Signal Processing, 1992 (7) :1633-1642.

[2]Tyseer Aboulnaser, Mayy as K.A Robust Variable Step size LMS Type Algorithm Analysis and Simulations[J].IEEE Trans.on Signal Processing, 1997 (3) :631-639.

[3]Harris R, Chaberies D, Bishop F A.A Variable Step (VS) Adaptive Filter Algorithm[J].IEEE Trans.on Acoust, Speech, Signal Processing, 1986 (2) :309-316.

[4]魏小龙.MSP430系列单片机接口技术及系统设计实例[M].北京:北京航空航天大学出版社, 2002.

[5]刘立群, 孙志毅, 金坤善.基于MSP430单片机的超低功耗数据采集器设计[J].自动化仪表, 2005 (4) :30-31.

[6]王玉彩, 王福增, 王渝, 等.MSP430F1101单片机在数据采集中的应用[J].现代电子技术, 2005 (21) :70-72.

多路数据采集系统设计 篇8

1 系统总体设计

基于FPGA的采集控制模块用来控制通道选择开关和A/D转换器工作, 完成对多路模拟输入信号的选择, 并对经过多通道选择开关后的模拟信号进行采样。采集的模拟信号转换成数字信号, 存入双口RAM中, DSP芯片将数据从双口RAM中读出, 对采集后的信号进行自适应滤波处理, 在计算机上实时显示波形。系统的组成框架如图1所示。

2 系统硬件设计

系统采用+5 V直流电源供电, 内部将5 V电压转换为3.3 V和1.5 V电压以供各器件使用。所有输入的模拟信号范围都是0~5 V, 输入阻抗大于1 MΩ, 由于电源模块的输出电源只有5 V, 为了保证信号的完整性, 选用具有轨对轨输出特性的运算放大器OPA4340, 进行适当的分压及阻抗匹配处理[3], 同时也对输入进行了适当的滤波处理。

2.1 多路模拟开关电路

数据采集模块选用的多路模拟选择开关是AD7506, 它是一款单芯片CMOS 16通道模拟多路复用器, 采用28引脚表贴封装。它根据4条地址线和1个使能的状态, 将1路公共输出切换至16路输入之一[4]。它的工作原理是:使能端EN决定着AD7506的工作状态, 当使能端EN有效时, 表示该多通道选择开关被选中, 而EN为高电平有效, 故当EN为高电平时AD7506处于工作状态。而它的输出通道号的选择则由其4位地址位来决定。可以通过FPGA控制多片AD7506芯片进行周期片选采集n路模拟信号。在本设计中16路采集信号分别通过1片AD7506多通道选择开关把信号送入A/D转换器。由FP-GA控制多通道选择开关的控制信号, 包括使能信号EN和4位地址信号。当使能信号有效时, 根据4位地址控制信号来选择要输出的通道, 从而使AD7506能对16路模拟输入信号进行周期性选择。

2.2 A/D转换电路

在数据采集系统中, A/D转换芯片的作用是把模拟信号转换成数字信号[5]。它的性能参数直接影响整个系统的性能, 有2个很重要的性能参数:转换速度和转换精度。本系统的采集控制模块中选用的A/D转换器是AD公司生产的AD7886, 一款内置采样保持放大器的12位ADC, 兼具高速性能和低功耗特性。它是一款三通Flash型ADC, 利用15个比较器和4位Flash技术来实现12位精度和1μs/750 ns的转换时间。片内时钟振荡器为各转换级提供适当的时序, 无需任何外部时钟[6]。AD7886引脚绑定的输入提供三种模拟输入范围选择:0~5 V、0~10 V或±5 V。由于所有输入的模拟信号范围都是0~5 V, AD7886的输入选为第一种模拟输入范围, 连接芯片的VIN1引脚和VIN2引脚, 选定模拟输入范围0~5 V。

2.3 FPGA控制电路

本设计采用Altera公司的FPGA芯片EP1C3T144C8对AD7886进行采样控制, 并将数据存储到双口RAM中。Altera公司的Cyclone系列现场可编程逻辑阵列具有丰富的I/O端口, 因此对外围设备的控制全部可以通过单独的I/O端口进行控制, 没有端口复用的现象, 极大地提高了系统的采集速度。其原理框图如图3所示。

系统中AD7506的通道选择I/O直接由FPGA的输出端口PORTOUT[3:0]控制, 当使能信号有效时, 通道选择指令将启动相应的数据采集通道。A/D转换电路工作时, 基于FPGA的采集控制模块会产生对AD7886的控制信号, 其输出数据DB0~DB11直接与FPGA的数据总线D0~D11相连接, 一旦AD7886接收到信号就对模拟输入信号IN进行采样、转换并保持, 完成之后由信号通知FPGA, 从而控制AD7886工作完成模拟信号到数字信号的转换。经过模数转换后的结果通过12位数据总线一次读出经FPGA存储到双口RAM中。

2.4 DSP与双口RAM的接口电路

双口RAM的兼容性很强, 工作时序与普通单端口存储器完全一样, 存取速度可以满足各种CPU的要求。在FPGA的外围配置适当的双口RAM, 用来实现和DSP的高速通信, 使整个系统达到最佳[7]。IDT70V27是美国IDT公司采用高性能CMOS工艺生产的高速32 k×16 bit双端口静态RAM。它可以作为16位双口RAM单独使用, 也可以进行位扩展, 将数据线扩展到32位。

本系统采用TI推出的TMS320VC5509高性能定点DSP处理采集到的数据, 它采用统一编址的方式划分存储空间, 程序与数据总线均能对其访问。C5509上具有EMIF接口, EMIF将多种不同的接口方式统一用相应的DSP芯片片内资源来实现, 简化了DSP和外部存储器的接口。EMIF可以与基于并口的所有类型存储器直接相连, 其寻址空间被划分为4个不同的CE空间[8,9]。将最低位的扩展空间CE0作为程序区, CE1作为程序ROM空间进行扩展, CE2和双口RAM连接作为外部数据存储区。其连接方式如图4所示。

从图中可以看出TMS320VC55的外部存储器接口和IDT70V27的右端数据、地址和读写控制信号相连, 而IDT70V27的左端和FPGA线连接, 从而实现了它们之间的通信。C5509内部以字节为单位寻找, 由于EMIF接口采用了16位接口器件, 因此地址总线的最低位A0不需要使用, C5509的地址线A[15:1]和双口RAM的AR[14:0]相连[10]。当FPGA和DSP对同一存储空间同时进行存储操作, RAM左右端口将发生冲突。为避免这种情况, 将右端口的信号置低, 则DSP优先进行操作。

3 系统软件设计

3.1 数据采集模块

本设计采用Altera公司Quartusⅱ软件平台下的Verilog HDL硬件描述语言进行软件编程。对控制模块的Verilog HDL程序进行综合后, 利用Model Sim仿真工具进行仿真。仿真结果如图5所示。

3.2 数据处理模块

在数据处理模块中DSP芯片首先通过BOOTLEADE程序将存储在Flash中的程序代码搬移到片内RAM, 高速运行程序。程序首先进行初始化, 完成到双口RAM的通信[12]。采集后的数据暂存到双口RAM中, 当采集到一定数量的一组数据, 由DSP芯片对数据进行处理。

在实际的采集过程中, 由于一些所需的相关信号比较弱, 加上环境噪声干扰, 必然会降低采集到的数据的精度。本系统采用最小均方误差 (LMS) 自适应算法对数据进行滤波处理, 增加系统的精度。自适应滤波器采用16阶FIR滤波器, 采用相同的信号作为参考信号d (n) 和输入信号x (n) , 并采用上一时刻的误差值来修正本时刻的滤波器系数。采用最小均方误差自适应滤波算法对一路输入信号x (n) 滤波后, 用CCS3.3在计算机上实时显示处理的波形如图6所示。

可以看出:输出波形y (n) 在自适应滤波的调整中逐渐与输入波形x (n) 重合。滤波过程中, 以输入信号x (n) 为参考信号进行滤波, 根据滤波器的输出与参考信号的误差调节滤波参数, 使下一次的输出误差有所减少。这样重复下去, 直到滤波参数调节到最佳。在图6中, 一定时刻后, 输入信号和输出信号逐渐重合, 误差逐渐减小为零, 证明自适应滤波器正常工作。本系统实现了对输入信号的实时处理, 能够较好地消除环境噪声。

4 结束语

本文阐述了基于FPGA的多路信号采集的设计, 同时给出了通过数字信号处理器 (DSP) 实时处理数据的设计。系统通过FPGA产生控制时序信号, 利用其时钟频率高、I/O资源丰富等特点, 提高系统采集速度和稳定性。同时, 利用DSP强大的数据处理能力对采集得到的数据进行滤波处理, 去除环境噪声。在本设计中仅针对16路信号采集与处理, 可以通过增加多路模拟选择开关数量采集更多路的模拟信号, 而在FPGA中仅需要增加对多路选择开关片选信号的控制时序。该设计方案具有良好的可扩展性和通用性。

参考文献

[1]卓浩泽, 龚仁喜, 谢玲玲.基于FPGA的多路高速数据采集系统的设计[J].电测与仪表, 2011, 48 (9) :65-68.

[2]郑佳, 任勇峰, 李辉景.基于FPGA的多路数据采集卡的研究与设计[J].电视技术, 2012, 36 (1) :52-54.

[3]李鹏, 马游春, 李锦明.基于FPGA的多路数据采集模块硬件设计[J].仪表技术与传感器, 2010 (3) :80-82.

[4]AD7506 Data Sheet[EB/OL].[2013-03-20].http://www.alldatasheet.com/view.jsp?Searchword=AD7506.

[5]郭铮, 刘文怡, 冯妮.基于FPGA多通道高速数据采集存储器设计[J].电视技术, 2012, 36 (17) :55-57.

[6]AD7886 Data Sheet[EB/OL].[2013-03-15].http://www.analog.com/static/imported-files/data_sheets/AD7886.pdf.

[7]赵保军, 史彩成, 韩月秋.利用FPGA和DSP结合实现雷达多目标实时检测[J].电子学报, 2001, 29 (8) :1-3.

[8]张雄伟, 曹铁勇, 陈亮.DSP芯片的原理与开发应用[M].北京:电子工业出版社, 2009.

[9]赵洪亮, 卜凡亮, 黄鹤松.TMS320C55x DSP应用系统设计[M].北京:北京航空航天大学出版社, 2008.

[10]黄霞, 鲍慧, 赵伟.基于TMS320VC5509A的多路同步数据采集与存储系统[J].继电器, 2007, 35 (23) :24-27.

[11]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社, 2008.

多路数据采集系统设计 篇9

现场可编程门阵列FPGA(Field Programmable Gate Array)是一种大规模、高速、低功耗、可反复编程的集成电路芯片,是目前中小型系统提高集成度和可靠性的最佳选择之一[1]。FPGA的时钟频率可以达到几百兆赫兹,再加上并行处理的特性,可以达到很高的处理速度,使其非常适合应用于像同步时钟之类对时间精度有较高要求的实时系统。此外,FPGA集成度高,可以将系统中很多外围接口芯片集成到片内,减小了制板面积,有利于降低成本,减少功耗,提高系统的稳定性。同时,很多FPGA芯片支持在系统编程,这给系统开发提供了很大的灵活性,并且使维护和升级更加方便[2]。

本文借助FPGA设计技术,采用ALTERA公司的Quartus II开发软件,设计了具有多路音频数据采集和接口功能的FPGA系统,能够对并行输入的4路16k采样、8bit精度的音频数据进行实时采样、缓冲,并形成目前应用很广泛的McBSP(Multichannel Buffered Serial Port)数据接口进行输出,最终通过ModelSim软件进行系统仿真,调试并验证了设计,具有较好的工程参考价值。

1 系统设计

本系统的总体设计框图如图1所示。该系统的数字音频数据来自于前级的音频AD(模数转换)环节,通过McBSP接口串行输出的数据送到后级的嵌入式音频处理环节,如ARM或达芬奇等处理器的McBSP输入口,由该部分进行压缩编码或存储等处理[3]。该系统总共包含以下5个部分:

PLL模块:锁相环单元,将外部输入的时钟clki进行倍频,供CLK模块产生各子系统需要的时钟。

CLK模块:时钟单元,对PLL产生的高频时钟进行分频,产生各子系统时钟。

FIFO模块:先进先出存储单元,对输入的音频数据进行缓冲。

McBSP模块:McBSP接口单元,将缓存的音频数据按照McBSP接口的时序进行串行输出。

TOP模块:顶层控制逻辑,产生顶层控制信号,调用和管理上述4个模块的工作。

本系统为4路音频,共32位数据并行输入,其中FIFO模块有两个,分别缓冲输入数据的bit0-15和bit16-31,McBSP模块也有两个分别处理来自两个FIFO的数据,即FIFO0+McBSP0采样CH0、CH1两路音频数据并输出,FIFO1+McBSP1采样CH2、CH3两路音频数据并输出。每组中两路数据可以是无关的单独两路单声道音频,也可以是相关的左右声道(双声道立体声)。

系统中各输入、输出信号的意义如表1所示。

下面详细介绍各模块的设计。

1.1 PLL模块

该模块为锁相环,将输入的16 MHz时钟信号倍频到64 MHz,供CLK模块分频得到各模块需要的时钟信号。此部分直接使用了Quartus II软件提供的IP库,有关IP库的具体生成和使用可参考有关文献[2]。PLL模块的时序仿真为图2所示。

1.2 CLK模块

该模块将PLL产生的64 MHz时钟进行分频,分别产生256 kHz和16 kHz的时钟信号。为什么要生成这两个信号呢?这是根据本系统的设计需求产生的。前文提到,输入的音频信号为四路16 kHz采样、8 bit精度的并行数据,设为CH0-CH34个声道,其中CH0和CH1、CH2和CH3的数据分别组合经过16 bit位宽的FIFO0、FIFO1缓冲,进入McBSP0和McBSP1形成两个串行比特流输出,此过程中需要的时钟信号有:

TOP模块读入音频数据的时钟Rclk,FIFO写时钟wrclk、读时钟rdclk,考虑到与音频信号同步,应与采样率一致为16 kHz。McBSP的输出位时钟clkx,由于是把两个声道的采样点串行输出,因此clkx频率应为16 kHz×16=256 kHz。

另外,McBSP的输出帧同步信号fsx是通过高低电平指示串行数据的所属声道(或相位)的,因此应为256 kHz÷16=16 kHz,且考虑到与串行比特流的位对齐,不能直接使用CLK模块产生的16 kHz时钟,而是通过对clkx分频得到。系统的时钟管理和分配示意图如图3所示。

CLK模块的时序仿真如图4所示。

1.3 FIFO模块

FIFO(First in First out),顾名思义,就是遵循“先进先出”读写规律的存储单元[2]。本设计中采用16位字宽、32字深的模块缓存输入的音频数据,然后再从FIFO中读取先存入的数据进行McBSP接口的串行时序输出。以声道CH0、 CH1输入的数据通路为例,FIFO0的操作如图5所示。

来自声道CH0、CH1的并行数据Rdata[0:15]存入FIFO0,最先存入的数据在r0单元,依次存到r31单元,当存到r30单元时,通过“写满”信号wrfull通知系统FIFO满,可以从r0开始读出。自此开始,如果FIFO0两边写入和读出操作同时进行,且速率相同,则可认为每次从左边写入一个数据,就把所有排队的数据往右推一个单元,则右边的McBSP0口始终读出FIFO0中最先被写入的数据,从而达到动态平衡,所以我们也将FIFO的读写时钟rdclk、wrclk都设为16 kHz。FIFO的时序仿真如图6所示。

1.4 McBSP模块

McBSP接口在实际应用中有多种模式,如RIGHT-JUSTFIED模式、LEFT-JUSTFIED模式、DSP模式、I2S模式等[3],主要功能是在clx(位时钟)的同步采样下,串行输出或输入数据,同时借助fsx(帧同步时钟)对串行数据进行相位区分以达到字选择的目的。上述几种模式的区别主要在于特定相位周期里,即fsx的高电平或低电平区间里,数据位dx是左对齐,或是右对齐, 还是两个通道的数据字位顺序排列在fsx的单电平区间里,这里不再详述,可参考有关文档。本设计以I2S模式为例,这也是许多数字音频处理接口支持的常见接口模式,如图7所示[4],以串行输出数据为例。在fsx下降沿后的第2个clkx的上升沿输出右声道的数据的最高位。同样,在fsx上升沿后的第2个clkx的上升沿输出左声道的数据的最高位,各声道的数据位分别在fsx的高低电平持续期间内输出完毕。

图8为本文根据上述要求设计的McBSP模块在I2S模式下的仿真时序图。

1.5 TOP模块

即顶层控制逻辑,作用是调用和管理其它各模块,实现最终的系统整体功能。在此模块中除了直接调用前述的各模块外,主要就是产生相应的控制信号,如对前级AD环节的片选信号Rcs、FIFO的读写请求信号wrreq、rdreq等,限于篇幅,不再详述。

2 结论

在ModelSim软件中,对上述设计的FPGA系统进行仿真,得到如图9所示时序图。图中可看出,4声道的32位并行数据,经过本系统采样、缓冲后以2个McBSP口(McBSP0 和McBSP1)串行输出,达到了设计目标。

综上所述,本文借助灵活可变的FPGA设计技术,设计了一个集四路音频数据采集、缓冲和接口功能的系统,并通过ModelSim仿真验证了设计的正确性。也可以通过参考本文,设计出支持诸如6路、8路甚至更多路的音频输入,或是多相位和更高数据位宽的McBSP口,以满足实际的嵌入式应用系统的开发。

参考文献

[1] Altera.Cyclone II Device Handbook.2005.7

[2]杜慧敏,李有谋,赵全良.基于Verilog的FPGA设计基础.西安:西安电子科技大学,2006

[3] Texas Instruments.TMS320DM365 datasheet.2009.3

多路数据采集系统设计 篇10

TI公司的达芬奇系列双核片上系统[3]是在这种大的发展环境下催生而来,它与TI公司的传统DSP相比,增加了ARM内核,专门负责外设的控制,从而使得DSP端可以更好地集中资源进行算法实现。

合众达是TI公司在中国的第三方公司,在达芬奇系列芯片的基础上开发了一系列的开发工具套件,对达芬奇芯片的应用具有很好的指导意义和实用价值,专门针对本文用到的TMS320DM6467T芯片就有SEED - DVS6467T和SEED - VPM6467T两种。

本文考虑到多路视频同时处理的需求选择了SEED -DVS6467T作为硬件平台,在此基础上主要进行了GPP端多线程应用程序设计,实现了8 路视频实时采集,通过标清复合视频接口和高清YPb Pr分量视频接口( 或DVI接口) 实现实时回放。实验结果表明,视频回放清晰流畅且实时性很高,该系列芯片在视频监控领域应用广泛。

1 SEED - DVS6467T简介

SEED - DVS6467T是一款高性能的数字视频服务器。该服务器可以用于8 路视频、1 路音频的采集和处理,为音视频处理方面的研究提供了很好的借鉴,同时在视频监控及相关领域有着很大的应用前景。

SEED - DVS6467T的硬件框图如图1 所示,其核心芯片DM6467T是一款高性能的ARM + DSP双核片上系统,其中ARM端主要实现外部接口的控制和应用,DSP端则主要负责音视频处理算法的实现。该板卡集成了128 Mbyte Nor Flash存储器、1 GHz主频配置的DDR2 存储器。在视频采集方面,通过2 片TVP5158 作为解码芯片,实现8 路复合视频的分路采集; 视频输出则以ADV7473 为编码芯片,实现标清和高清两种视频输出,其中标清接口为CVBS复合视频接口,高清接口则有DVI和YPb Pr两种。该平台还配置了1 路RS - 232 实现对板卡的控制,2 路RS - 485 实现云台控制,其他接口还有2 路SATA硬盘接口、1 路USB接口、JTAG仿真接口等。

2 开发环境搭建

达芬奇平台的开发环境如图2 所示,主要包括目标板、仿真器、Windows控制台和Linux服务器,其中Windows控制台通过RS - 232 串口与目标板相连,通过超级终端实现对目标板的控制,SEED - XDS560PLUS仿真器通过JTAG接口与目标板相连,通过USB接口与Windows控制台相连,程序调试和下载可在Windows中的CCS软件下实现。Linux服务器可以安装于VMware虚拟机中。通过目标板和PC机的网络接口以及PC机的虚拟网卡即可实现相互之间的网络连接。

3 应用程序设计

本方案中应用程序设计主要是基于GPP端的多线程设计,主要包括主线程、视频捕获线程1、视频捕获线程2、视频复制线程、视频显示线程等,其中视频捕获线程1 和视频捕获线程2 分别负责2 片TVP5158 的视频采集,视频复制线程则负责对采集到的8 路视频进行分路复制,视频显示线程则负责复制到的8 路视频的实时显示,视频显示线程内嵌于视频复制线程中。

3. 1 主线程

主线程流程图如图3a所示,首先将所有优先级设置为最高,setpriority( PRIO_PROCESS,0,- 20) ; 然后初始化CMEM和DMA,并创建dma互斥锁; 接着利用malloc( ) 函数为TVP5158 分路线程句柄param分配内存,该句柄贯穿程序始终,具体定义为:

其中PORTNUM = 2,分别代表2 片视频解码芯片,CHN_PER_PORT = 4,分别代表每片解码芯片对应的4路视频; TVP5158 为通道句柄demux Chan Handle分别对应8 路视频通道; mailbox邮箱句柄cap2demux分别对应2 片TVP5158 视频解码芯片,表示由视频采集线程到视频复制线程的邮箱; chroma_offset则表示视频通过yuv格式存储时的色度偏移量。

在为TVP5158 分路线程句柄分配内存后开始对其初始化,首先通过CHparam_create( ) 函数创建通道句柄,用以初始化demux Chan Handle,然后创建视频捕获线程到视频分路线程mailbox,对cap2demux进行初始化。

初始化完毕后利用pthread_create( ) 函数依次创建视频捕获线程1、视频捕获线程2、视频复制线程,利用pthread_join( ) 函数分别将3 个线程挂起来,等待所有线程结束后,main( ) 函数才返回。

3. 2 视频捕获线程

本方案由于有2 片视频解码芯片,因此包含2 个视频捕获线程,但2 个线程的基本流程相同,具体流程图如图3b所示。

本方案视频采集格式为V4L2 格式。首先利用initCapture( ) 函数对捕获设备进行初始化,在该函数中,首先通过open( ( const char * ) devname,O_RDWR) 打开捕获设备,然后设置视频采集参数,通过ioctl( * capture_fd,VIDIOC_S_STD,&std) 设置视频格式为PAL制式,通过ioctl( * capture_fd,VIDIOC_G_FMT,fmt) 设置视频帧格式,接着利用ioctl ( * capture _ fd,VIDIOC _ REQBUFS,&reqbuf) 向驱动申请8 个视频流数据帧缓冲区,利用ioctl( * capture_fd,VIDIOC_QUERYBUF,&buf) 查询帧缓冲区在内核空间的长度以及偏移量,再通过内存映射将帧缓冲区的地址映射到用户空间,即mmap( NULL,buf. length,PROT_READ | PROT_WRITE,MAP_SHAR ED,* capture_fd,buf. m. offset) ,最后通过ioctl( * capture_fd,VIDIOC_QBUF,&buf) 将视频帧缓冲区的全部缓冲放入视频采集输出队列,至此视频采集设备初始化完毕。接着利用start Capture( ) 函数来开始视频数据流的采集,该函数的具体实现为ioctl( * capture_fd,VIDIOC_STREAMON,&a) ,设备将采集到的视频数据存入帧缓冲区后将该帧缓冲区移至采集输出队列。然后对TVP5158 分路线程句柄中chroma_offset进行初始化,即param - > chroma _offset =capture _ fmt. fmt. pix. sizeimage /2,至此,param初始化完毕。

随后视频捕获线程进入主循环: 首先利用get CaptureBuffer( ) 函数从采集输出队列中获取帧缓冲区,具体实现为ioctl( * capture_fd,VIDIOC_DQBUF,&buf) ; 然后利用MBX_post( ) 函数将该缓冲区信息通过mailbox发送出去,存入TVP5158 分路线程句柄的cap2demux中,以便进行视频分路处理; 然后通过put Capture Buffer( ) 函数返还视频帧缓冲区,使其重新排入采集输入队列,具体实现为ioctl( * capture_fd,VIDIOC_QBUF,&buf) ,至此,主循环结束。

退出主循环之后,通过stop Capture( ) 函数停止视频采集,具体实现为ioctl ( * capture _fd,VIDIOC _ STREAMOFF,&a) ; 然后通过release Capture( ) 结束视频采集线程,在该函数中,释放内存通过munmap( capture_buff_info[port][i]. start,capture_buff_info[port][i]. length) 实现;最后通过close( * capture_fd) 关闭视频捕获设备,捕获线程结束。

3. 3 视频复制线程

视频复制线程负责对捕获线程捕获到的视频信息进行分路复制和缓存,提供给显示线程用于视频显示,具体流程图如图3c所示。

首先利用malloc( ) 函数为视频显示线程句柄displaythrd_handle分配内存,然后通过MBX_create( ) 函数创建视频复制到视频显示邮箱,来对视频显示线程句柄中的唯一成员cpy2dis[PORTNUM][CHN_PER_PORT]进行初始化,然后利用pthread_create( ) 函数创建视频显示线程,通过DRV_dma Open( &dma Hndl,DRV_DMA_MO DE_DEMUX,HEIGHT * 2) 打开行扫描分路DMA,随后进入主循环。

在主循环中,首先通过MBX_pend( ) 函数读取视频捕获线程中发送到复制线程的邮箱信息cap2demux,然后利用Get_Chn Paramdemux( ) 函数提取Chan Handle[PORTNUM][CHN _ PER _ PORT]中的通道参数,再利用TVP5158Demux_get Table( ) 函数获得分路器参数列表,将同一个分路器的4 路视频按照顺序存储在一起,列表形成后通过DRV_dma Demux( &dma Hndl,&demux Prm) 将列表信息传递给DMA句柄,最后通过MBX_post( ) 函数将存储的分路视频信息发送给复制线程到显示线程邮箱cpy2dis[PORTNUM][CHN_PER_PORT],退出主循环后复制线程结束。

3. 4 视频显示线程

本方案中用到的视频显示也是V4L2 格式的,与视频捕获线程具体实现类似,流程图如图3d所示。

首先通过init Display( ) 函数打开并初始化显示设备,视频输出格式在此处进行选择,标清模式参数选择为initDisplay( &display_fd,dev,&display_numbuffers," COMPOSITE" ," PAL" ,&display_fmt) ,即输出接口为复合视频接口,视频格式为PAL格式,高清模式参数选择为init Display ( &display _ fd,dev,&display _ numbuffers," COMPONENT" ,"1080I - 25" ,&display_fmt) ,即输出接口为YPb Pr高清分量视频接口,视频格式为1 080I,帧率为25 f /s( 帧/秒) ,通过start Display( ) 函数开始进行视频显示,然后通过Videocpy_init( ) 函数进行视频复制初始化,具体实现方式是通过DRV_dma Open( &dma Hndl,DRV_DMA_MODE_NORMAL,HEIGHT) 打开dma通道,为后面的视频复制做好准备,随后线程进入主循环。

在主循环中,首先通过MBX _ pend ( ) 函数读取cpy2dis中的邮箱信息,将待显示的视频缓冲区加入视频显示输出队列,再通过get Display Buffer( ) 函数从视频显示输出队列中获得视频显示缓冲区,通过Edma_videocpy( )函数实现视频的复制,该函数的主要实现为DRV_dmaCopy2D( &dma H ndl,©2D,1) ,其中copy2D的格式通过视频输出的模式来确定,本方案中实现的输出有标清和高清两种模式,8 路视频同时输出设置为3 × 3 的模式,标清整体输出分辨率为720 × 576,每一路视频输出分辨率设置为238 × 190,高清模式整体输出为1 920 × 1 080,每一路视频输出分辨率设置为638 × 358,8 路视频分别实现复制之后,利用put Display Buffer( ) 函数返还显示缓冲区到显示输入队列中,至此,主循环结束。

退出主循环后,通过stop Display( ) 函数停止视频显示,再通过release Display( ) 函数释放缓冲区,关闭显示设备。至此,视频显示线程结束。

4 结果与分析

4. 1 实验结果

程序运行结果截图如图4 所示。

通过设置init Display( ) 函数参数和Edma_videocpy( ) 函数内copy2D参数,本方案可以分别实现标清和高清视频输出,方案设置的视频显示模式都是3 ×3 模式,同时显示8 路视频信息,最后一块空缺,标清显示通过普通标清电视实现,高清显示通过高清液晶电视实现,具体显示效果分别如图5a、图5b所示。视频显示图像清晰流畅,实时性很高,能够很好地满足视频监控的效果。不过与标清视频显示相比,高清视频显示在视野和清晰度上都有更好的效果。

4. 2 结论

本方案在合众达公司SEED - DVS6467T的硬件基础上完成了GPP端软件设计,实现了8 路视频同时采集,并以标清和高清两种形式进行回放,实验结果显示,视频回放清晰流畅且实时性很高,特别是高清视频的回放不仅清晰度很高,而且视野更广,在视频监控领域有着很好的应用前景。

上一篇:学术型企业家下一篇:网络教育综合