哈工大研究生电气工程软件
工程软件报告
多通道数据采集系统的结构化设计
院 (系)
专 业
学 生
学 号
日 期
2015年12月
目 录
1.前言............................................................................................................................. 2
1.1设计目的........................................................................................................... 2 1.2 设计背景.......................................................................................................... 2 1.3 定义.................................................................................................................. 2 1.4 参考资料.......................................................................................................... 2 2.项目概述..................................................................................................................... 2 2.1产品功能描述................................................................................................... 2 2.2用户特点........................................................................................................... 3 2.3一般约束........................................................................................................... 3 2.4假设和依据....................................................................................................... 3 3.具体需求..................................................................................................................... 3 3.1功能需求........................................................................................................... 3
3.1.1数据采集功能......................................................................................... 3
3.1.2数据存储功能......................................................................................... 3
3.1.3数据回放功能......................................................................................... 3
3.2 外部接口需求.................................................................................................. 3
3.2.1 用户接口................................................................................................ 3
3.2.2 硬件接口................................................................................................ 4
3.2.3 软件接口................................................................................................ 5
3.2.4 通信接口................................................................................................ 5 3.3 性能需求.......................................................................................................... 5
3.3.1 精度........................................................................................................ 5
3.3.2 时间特性................................................................................................ 5 3.4 设计约束.......................................................................................................... 6
3.4.1其他
的约束..................................................................................... 6
3.4.2 硬件的限制............................................................................................ 6 3.5 属性.................................................................................................................. 6
3.5.1 安全性.................................................................................................... 6
3.5.2 可维护性................................................................................................ 6 3.6 其他需求.......................................................................................................... 6
3.6.1操作......................................................................................................... 6
3.6.2运行环境................................................................................................. 6 4.进度要求..................................................................................................................... 6
1
1. 前言
1.1设计目的
现今社会,计算机技术高速发展,计算机应用于各个领域,数据采集作为计算机与外部物理世界连接的桥梁,在多个领域有着十分重要的应用。数据采集类模块包括扫描A/D模块,并行A/D模块和数字输入模块。前两个模块实现对模拟信号的采样,数字输入模块实现对数字信号的采样。目前,国内仪器厂商已经有成熟的此类产品,但是这些产品的存储空间都比较小。本次采用的扫描A/D中将采用大容量的SDRAM来解决存储空间的问
,为长时间的信号检测提供解决
。
本文档可供从事此方面工作的工程技术人员以及项目工作者参考与查阅。 1.2 设计背景
软件名称:数据采集显示系统
提出者:哈尔滨工业大学智能测试及信息处理技术研究所
开发者:哈尔滨工业大学智能测试及信息处理技术研究所
用户:哈尔滨工业大学智能测试及信息处理技术研究所学生 1.3 定义
数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。
数据采集(DAQ),是指从传感器和其它待测设备等模拟和数字被测单元中自动采非电量或者电量信号,送到上位机中进行分析,处理。
模数转换(ADC):ADC(Analog-to-Digital Converter)指模/数转换器或模拟/数字转换器。
1.4 参考资料
IEEE-488.2规范
2. 项目概述
2.1产品功能描述
本产品实现循环采集32路模拟信号,分时测量,输入通道隔离,具有大容量存储功能。且ADC模块最高转换速度为200kSa/s,分辨率大于12位。最终实现数据的调理,采集,存储及回放显示。
2
2.2用户特点
本系统设计的用户主要分为两类,分别为软件维护人员和软件使用人员。
软件维护人员负责整个软件的维护,具有较高的专业知识,主要包括本系统的研发人员,可以根据实际需求扩展增加一些功能等。
软件使用人员主要指所内其他需要使用此软件的学生,当他们的项目或者学习过程中需要使用此及相应软件时,可以根据该文档对本板卡功能有详细了解。 2.3一般约束
本板卡是为了配合其他系统进行调试使用,主要是为了完成数据的采集,存储及显示,所以在设计时应更多的降低成本,而且要求软件可根据实际需要进行更改。
2.4假设和依据
为了降低开发成本,假设所使用的开发软件都是开源的。
3. 具体需求
3.1功能需求
3.1.1数据采集功能
本模块实现32路模拟数据的采集,采用扫描A/D分时测量。并在采集前实现信号的调理。
3.1.2数据存储功能
采用SDRAM进行数据存储,深度为32MSa。
3.1.3数据回放功能
数据回放在软件的人机交互界面上实现,其功能模块是采集结果的直观效果,是用户最关心的地方。数据回放功能模块的输入来自于存储文件,数据为8位无符号字符型,范围为0~255。
3.2 外部接口需求
3.2.1 用户接口
用户接口是为方便用户使用计算机资源所建立的用户和计算机之间的联系。通常指软件接口,本产品中需要在人机交互界面上完成数据采集开始控制,显示通道选择,采样速率和采样点数的设置以及清除错误的功能设置。在用户接口接
3
口界面用户可以自行控制数据的采集,采样参数设置以及数据的回放显示。 3.2.2 硬件接口
本模块包括与外来信号的输入接口:两个37针接口,32路差分模拟信号输入,其各个信号的定义如下:
DB37 1 DB37 2
节点 备注 节点 备注 1 AP1 1通道输入+ AP17 17通道输入+ 2 AN1 1通道输入- AN17 17通道输入- 3 AP2 2通道输入+ AP18 18通道输入+ 4 AN2 2通道输入- AN18 18通道输入- 5 AP3 3通道输入+ AP19 19通道输入+ 6 AN3 3通道输入- AN19 19通道输入- 7 AP4 4通道输入+ AP20 20通道输入+ 8 AN4 4通道输入- AN20 20通道输入- 9 AP5 5通道输入+ AP21 21通道输入+ 10 AN5 5通道输入- AN21 21通道输入- 11 AP16 6通道输入+ AP22 22通道输入+ 12 AN6 6通道输入- AN22 22通道输入- 13 AP7 7通道输入+ AP23 23通道输入+ 14 AN7 7通道输入- AN23 23通道输入- 15 AP8 8通道输入+ AP24 24通道输入+ 16 AN8 8通道输入- AN24 24通道输入- 17 AP9 9通道输入+ AP25 25通道输入+ 18 AN9 9通道输入- AN25 25通道输入- 19 NC NC 20 AP10 10通道输入+ AP26 26通道输入+ 21 AN10 10通道输入- AN26 26通道输入- 22 AP11 11通道输入+ AP27 27通道输入+ 23 AN11 11通道输入- AN27 27通道输入-
4
24 AP12 12通道输入+ AP28 28通道输入+
25 AN12 12通道输入- AN28 28通道输入-
26 AP13 13通道输入+ AP29 29通道输入+
27 AN13 13通道输入- AN29 29通道输入-
28 AP14 14通道输入+ AP30 30通道输入+
29 AN14 14通道输入- AN30 30通道输入-
30 AP15 15通道输入+ AP31 31通道输入+
31 AN15 15通道输入- AN31 31通道输入-
32 AP16 16通道输入+ AP32 32通道输入+
33 AN16 16通道输入- AN32 32通道输入-
本产品中选用的是VXI总线接口,所以还有与VXI总线相连的输出接口:两个96针接口,按照VXI接口的标准定义各个信号线输出。 3.2.3 软件接口
与用户接口基本一致:提供数据采集、数据存储、数据回放界面;完成数据采集配置功能,配置数据采样率、采样点数等;并可控制数据采集的启动与停止,可以对回放的通道进行选择。
3.2.4 通信接口
本系统通过VXI总线实现上位机与下位机的通讯。
3.3 性能需求
3.3.1 精度
由于本次数据采集系统是对模拟数据的采样,其输出精度取决于ADC的采样精度(12bit/14bit/16bit)。
3.3.2 时间特性
响应时间:平均响应时间:3ms;
数据的转换:1ms;
数据回放更新时间:取决于ADC采样速率,ADC最高转换速度为200kSa/s;
5
3.4 设计约束
3.4.1其他标准的约束
由于VXI总线传输速率远大于ADC的采样速率,所以软件的数据更新速率受限于ADC的采样速率,数据的精度要求也受限于ADC的分表率,数据回放受到上位机的控制。
3.4.2 硬件的限制
VXI主机箱是VXI总线设备最基础的部分,设备的供电、信号传递、固定及冷却等都是通过机箱来完成的,其品质的优劣将直接影响整个系统的性能。
3.5 属性
3.5.1 安全性
软件完成后生成不可修改的安装文件,不允许对软件随意改动,用户使用时只可以看到运行的快捷方式,不可以接触原始代码。否则可能给源代码造成损坏后不易察觉。
3.5.2 可维护性
对重要或通用的函数生成动态链接库,以便后续维护人员对函数的调用,修改并添加软件功能。
3.6 其他需求
3.6.1操作
上电后软件自动检测硬件连接,并进行初始化,同时,用户在使用过程中,随时可进行硬件和系统初始化操作,并可进行软件显示的清除操作;可提取数据存储文件,在其他软件上对其进行处理。
3.6.2运行环境
适用于在微软的多种操作系统下运行。
4进度要求
软件开发总计时间限时3个月。
6
目 录
1 引言............................................................................................................................ 2
1.1编写目的........................................................................................................... 2
1.2 项目背景.......................................................................................................... 2
1.3定义................................................................................................................... 2
1.4 参考资料.......................................................................................................... 2
.................................................................................... 2 2 总体设计................................
2.1 需求规定.......................................................................................................... 2
2.2 运行环境.......................................................................................................... 3
2.3 基本设计概要和处理流程.............................................................................. 3
.............................................................................. 4 2.4 用例图................................
2.5人工处理过程................................................................................................... 5 3接口设计..................................................................................................................... 5
3.1外部接口........................................................................................................... 5
3.2 内部接口.......................................................................................................... 5
4数据结构设计............................................................................................................. 5 5 出错设计.................................................................................................................... 6
.......................................................................... 6 5.1 出错信息................................
5.2 补救措施.......................................................................................................... 6
5.3 系统维护设计.................................................................................................. 6
1
1.引言
1.1编写目的
从该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。
1.2 项目背景
软件名称:数据采集显示系统
提出者:哈尔滨工业大学智能测试及信息处理技术研究所
开发者:哈尔滨工业大学智能测试及信息处理技术研究所
用户:哈尔滨工业大学智能测试及信息处理技术研究所学生 1.3定义
VXI:局部总线标准;
FPGA:Field Programmable Gate Array,现场可编程逻辑器件;
ADC:Analog to digital converter,模数转换器。
1.4 参考资料
[1] 谈恩民,陈尚松 VXI总线虚拟仪器系统集成与应用
[2] 孙昕,张忠亭,薛长斌 集成VXI总线自动测试系统的
[3] 王莉,李海涛,吕延光,赵景芬 VXI总线及智能化虚拟仪器 [4]NI Corporation.LabWindows/CVI User Interface Reference Manual [M/CD], 1996
.
2. 总体设计
2.1 需求规定
软件功能主要包括参数设置、命令发送、数据存储、数据上传和数据显示等功能。
1 参数设置:
用户在人机交互界面中对采样过程中的参数进行设置,包括采样参数设置(采样速率,采样点数),数据回放显示的绘图通道选择等。
2 命令发送
2
软件对用户设置的参数进行编码,并将编码后的命令发送给硬件实验板;
用户在界面上控制采样开始,开始绘图,清除绘图等按钮,其编码后也将传至硬件实验板。
3数据存储:
将硬件实验板上ADC采集的数据存储到SDRAM中;
4数据上传:
将实验板上SDRAM中的数据上传到上位机;
5数据显示:
本次数据显示的方式有两种,一种是数组显示,一种是图形显示。
命令采样开始命令编码下
位采样点数机命令硬发送件用采样速率户用SDRAM数据界户设置绘图通卡接收面道存
储清除
数据绘图
图2-1 软件总体功能框图
2.2 运行环境
计算机系统:中英文 Windows/2000server /XPserver CPU:Pentium(R)
内存:4GB
硬盘:500GB
其他设备:鼠标、键盘
2.3 基本设计概要和处理流程
(a)用户运行软件后进入用户面板,此时软件已完成初始化软件,硬件已连接正确,在逻辑地址处显示出我们所插板卡的逻辑地址与槽位,我们需要进行检查,
3
其显示的逻辑地址与我们拨码开关所设置的逻辑地址,以及槽位是否相符合,此时需注意在VXI机箱上得板卡的逻辑地址不能冲突。若检查后一致,则可以开始本次的数据采集任务。
(b)用户选择数据处理参数,即我们在开始采样之前,需要对采样参数进行设置,包括采样速率和采样点数,默认时采样速率为20k,采样率不高于250K,采样点数为1024,对绘制通道进行设置,设置完毕后上位机对各参数进行统一编码,将数据传送给下位机硬件实验板;
(c) FPGA控制ADC进行数据采集,输入控制信号经过同步之后,译码之后产生AD转换控制信号,采用扫描A/D进行32路信号的分时测量,每当FIFO中的数据大于256字时,读出数据将数据写入到SDRAM卡中;
(d) 用户选择显示的数据通道,上位机读取相应数据,显示为图形和数组两种形式。
/ 开始采集/ 上电初始化Ready数据采集
/ 发送数据
/ 发送完毕数据显示数据传输
图2-2 系统状态图
2.4 用例图
数据采集系统 信号调理
<
>
<> 数据采集 A/ D 转换
<>
数据存储 CPU处理
数据处理 操作者 <> 图形显示 数据显示 <>
数组显示
4
图2-3 用例图
2.5人工处理过程
用户在使用中,根据自己所需的功能要求来对界面进行操作,也可将存储的数据导出至其他软件中进行相应的处理,实现对数据的分析功能。
3. 接口设计
3.1外部接口
(a)用户接口
软件与用户的接口为计算机显示终端,用户在计算机上双击软件LabWindows/CVI,弹出用户面板,这是用户与软件的唯一接口。 (b)硬件接口
硬件接口为VXI口,通过计算机的VXI硬件连接。并通过外部接口与模拟量输入相连。
(c)软件接口
操作系统平台:Windows XP
开发语言:C语言
开发工具:LabWindows/CVI
3.2 内部接口
FPGA与扫描A/D的接口,完成FPGA对扫描A/D的控制,以及他们之间地址线和数据线之间的传输。
FPGA与VXI总线的接口,完成地址的译码,以及板卡与上位机的数据通信,最终实现数据的采集显示回放功能。
4. 数据结构设计
用户输入参数表:
Label Auto Sizing Callback Function Control Mode
绘图 Grow Only CmdDrawStart hot
5
开始采集 Grow Only cmdStart hot
清除 Grow Only Clear hot
5. 出错设计
5.1 出错信息
a) 逻辑地址与槽位与真实情况不相同
b) 数据不显示
5.2 补救措施
a) 检查机箱中是否有其他板卡和此模块的逻辑地址相同。
b) 检查信号输入是否超出了正确的输入范围。
5.3 系统维护设计
a)固定时间对系统进行维护检测;
b)为系统做好备份工作。
6
目 录
1.引言............................................................................................................................. 2
1.1目的................................................................................................................... 2
1.2 范围.................................................................................................................. 2
1.3 定义.................................................................................................................. 2
1.4 参考资料.......................................................................................................... 2 2.模块描述..................................................................................................................... 2 3.处理流程..................................................................................................................... 2 4.编码设计..................................................................................................................... 3
4.1 绘图.................................................................................................................. 4
.................................................................................. 5 4.2 清除................................
4.3 开始采样.......................................................................................................... 6
1
1.引言
1.1目的
在概要设计的基础上,对多路数据采集系统的开始采样中的参数设置,数据绘图以及清除绘图功能进行了实现层面上的要求和说明。
1.2 范围
软件名称:多路数据采集系统
提出者:哈尔滨工业大学智能测试及信息处理技术研究所
开发者:哈尔滨工业大学智能测试及信息处理技术研究所
用户:哈尔滨工业大学智能测试及信息处理技术研究所学生
1.3 定义
VXI:局部总线标准;
FPGA:Field Programmable Gate Array,现场可编程逻辑器件;
ADC:Analog to digital converter,模数转换器。
1.4 参考资料
《需求规划说明书》
《概要设计说明书》
NI Corporation.LabWindows/CVI User Interface Reference Manual [M/CD], 1996.
2. 模块描述
多路数据采集系统的数据绘制以及清除是数据采集系统中重要的一部分,在此模块中绘图功能实现设定通道的数据的图形显示,清除绘图控件,实现图形中数据的清除工作,而在开始采样按钮中实现采样参数的设置,包括采样点数,采样率,以及绘图显示通道数的编码传递。
3.处理流程
模块程序流程图如下所示:
2
硬件准备完毕
设定采样参数
开始采样(将参数
编码后传至下位
机)
修改显示通点击绘图控件道数
图形显示完毕
模块处理流程图
清除显示4.编码设计
主要参数名称 含义简要说明
绘制相应通道的图形 Plot
清除图形中的数据 Clear
将设置的采样参数编码传递给下位机,开始采样 START
软件界面如下:
3
4.1 绘图
功能:实现设定通道的图形显示
部分软件设计:
int CVICALLBACK CmdDrawStart (int panel, int control, intevent,void *callbackData, int
eventData1, int eventData2)
{
int n,i;
int startMode=0;
int DrawChannel=0;
FILE *fp_plot;
n=channel_length;
switch (event)
{
case EVENT_COMMIT:
/* GetCtrlVal (panelAd32,PANEL_AD32_COMMANDBUTTON_2 ,&startMode );
switch (startMode)
{
case 0:
break;
case 1:
{ */
for ( i=0;i<64;i++)
{
viOut16 (AD32Handle, VI_A16_SPACE, 22, i);
Delay(0.001);
viIn16(AD32Handle, VI_A16_SPACE, 24,&cal[i]);
}
for (i=0;i<32;i++)
{
cal_double[2*i]=-((double) cal[2*i])/10000;
}
for (i=0;i<32;i++)
{
if(( cal[2*i+1]&0x1000) == 0x1000 )
{cal_double[2*i+1]=-1*((double) cal[2*i+1])/1000000; }
else
{
cal_double[2*i+1]=((double) cal[2*i+1])/1000000;
}
}
if(n==0)
{
MessagePopup ("错误信息", "通道未被选中!");
4
break;
}
else
{
GetCtrlVal (panelAd32,PANEL_AD32_RING_2 ,&DrawChannel);
switch (DrawChannel)
{
case 0:
{
MessagePopup ("错误信息", "画图通道未选中!");
break;
return 0;
}
case 1:
fp_plot=fopen("samp_data1.dat","rb+");
Draw(n,fp_plot,1);
break;
case 2:
fp_plot=fopen("samp_data2.dat","rb+");
Draw(n,fp_plot,2);
break;
case 3:
fp_plot=fopen("samp_data3.dat","rb+");
Draw(n,fp_plot,3);
break;
}
if(DrawChannel>0)
fclose(fp_plot);
/* break;
}
} */
}
break;
}
return 0;
4.2 清除
功能:清除设定通道的图形显示
部分软件设计:
5
BACK Clear (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2) {
switch (event)
{
case EVENT_COMMIT:
DeleteGraphPlot (panelAd32, PANEL_AD32_GRAPH, -1,VAL_IMMEDIATE_DRAW);
break;
}
return 0;
4.3 开始采样
功能:将设置参数编码至下位机,并开始采样
部分软件设计:
int CVICALLBACK cmdStart (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2) {unsigned short lSel=0;
unsigned short hSel=0;
int val=0;
int i=0,j=0;
switch (event)
{case EVENT_COMMIT:
HITC108_Init(AD32Handle);
/*------------------------------打开文件操作--------------------------*/
fp[0]=fopen("samp_data1.dat","wb+");
fp[1]=fopen("samp_data2.dat","wb+");……
fp[31]=fopen("samp_data32.dat","wb+"); /*==================================================================*/
for(i=0;i<32;i++) //获取选择通道值
6
AD32channeSel[i]=0;
lSel=0;hSel=0;
AD32channelCount=0;
for(i=0;i<16;i++)
{val=0;
GetCtrlVal (panelAd32, (20+i) ,&val );
if(val!=0)
{AD32channelCount++;
AD32channeSel[i]=1;
}
val=val<