- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一.D/A模拟信号输出板卡设置
1. D/A模拟信号输出范围选择
在PCI2003板上,D/A模拟输出范围可选择单极性0~5V、0~10V输出,或选择双极性±5V、±10V输出,通过跳线XF6、XF7、XF8、XF9可进行选择,跳线设置可按表2.3进行选择。其中XF6、XF9 选择DA0、DA1是单极性0~5V、0~10V输出或双极性±5V、±10V输出;XF8选择DA0的模拟信号输出量程,XF7选择DA1的模拟信号输出量程。
表2.3 D/A模拟信号输出范围选择
输出范围
XF6、XF9
XF8(DA0)
XF7(DA1)
0 ~ 5V
0 ~ 10V
-5V ~ +5V
-10V ~ +10V
二.信号输入/输出插座定义
1. 关于37芯D型插头XS1的管脚定义(模拟输入信号)
管脚号
管脚定义
管脚号
管脚定义
管脚号
管脚定义
1
DGND
14
CH10(IN02-)
27
DA1
2
DGND
15
CH8(IN00-)
28
DA0
3
无定义
16
CH6(IN06+)
29
AGND
4
VCC
17
CH4(IN04+)
30
CH15(IN7-)
5
AGND
18
CH2(IN02+)
31
CH13(IN05-)
6
-15V
19
CH0(IN00+)
32
CH11(IN03-)
7
+15V
20
DGND
33
CH9(IN01-)
8
AGND
21
TR
34
CH7(IN07+)
9
AGND
22
VCC
35
CH5(IN05+)
10
AGND
23
DGND
36
CH3(IN03+)
11
AGND
24
-15V
37
CH1(IN01+)
12
CH14(IN06-)
25
AGND
13
CH12(IN04-)
26
+15V
CH00~CH15:PCI2003 A/D卡输入通道号
IN00+ ~IN07+ :双端模拟信号输入正端
IN00- ~IN00- :双端模拟信号输入负端
DA0:模拟信号输出端
DA1:模拟信号输出端
·DGND:数字地
·+5V:PCI2003板+5V电源
·+15V:PCI2003板+15V电源
·-15V:PCI2003板-15V电源
TR:外部触发信号,当TR有一由低至高的变化(上升沿)时,PCI2003 A/D卡将按预先设定的采集通道总数进行采集,直至采集结束。程序举例见软件说明书相应部分。
AGND:模拟地
DGND:数字地
三.数据转换规则
1.DA的电压值如何转换成输出到DA转换器的LSB原码数据?
量程(伏)
计算机语言换算公式
Lsb取值范围
±5000mV
Lsb = Volt / (10000 / 4096) + 5000
[0,4095]
0~10000mV
Lsb = Volt/ (10000 / 4096 )
[0,4095]
±10000mV
Lsb = Volt/ (20000 / 4096 )+10000
[0,4095]
请注意这里求得的LSB数据就是用于WriteDeviceProDA中的DAData参数的。
四.软件编程
1.怎样使用WriteDeviceProDA函数实现DA的波形输出?
其方法很简单,您只须先形成一批波形数据,放在缓冲区出,然后后WriteDeviceProDA反复连续输出即可。
HANDLE hDevice;
WORD DABuffer[1024]; // 存放波形的缓冲区,这里假设已存放了波形数据
int nDAChannel;
DeviceID = 0;
hDevice = PCI2003_CreateDevice(DeviceID);
nDAChannel = 0;
for(int i=0; i1024; i++)
{
PCI2003_WriteDeviceProDA(hDevice, DABuffer[i], nDAChannel)
}
PCI2003_ReleaseDevice( hDevice );
2.如何获得高精度定时?
//QueryPerformanceFrequency(litmp);函数获得机器内部定时器的时钟频率,
//然后在需要严格定时的事件发生之前和发生之后分别调用QueryPerformanceCounter()函数,
//利用两次获得的计数之差及时钟频率,计算出事件经历的精确时间。以下程序实现1ms精度的定时
LARGE_INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(litmp);
dfFreq = (double)litmp.
文档评论(0)