设备驱动程序快速入门.docx
《设备驱动程序快速入门.docx》由会员分享,可在线阅读,更多相关《设备驱动程序快速入门.docx(16页珍藏版)》请在冰豆网上搜索。
设备驱动程序快速入门
研华DAS卡快速测试指南
1)PCI系列(以PCI-1712为例,其他型号的PCI板卡安装过程基本类似,只是型号显示有所不同):
PCI系列板卡需要先安装驱动程序,然后关机插卡重起,会出现找到新硬件向导:
选择下一步,显示安装设备驱动程序对话框,选择“显示已知设备……(D)”
选择下一步,出现“选择设备驱动程序”对话框
选择下一步,出现“开始设备驱动程序安装”对话框
选择下一步,“完成找到硬件向导”,“完成”设备安装
这时在DeviceManger中就可以看到PCI-1712:
同时在设备管理器中也可以看到安装得PCI-1712卡:
测试的方法在下面的PCL-818HD安装例程中详细介绍。
2)PCL系列(以PCL-818HD为例,其他型号的PCL板卡安装过程基本类似,只是型号显示有所不同):
正确安装了设备驱动程序之后,关机->插卡->开机,使用DeviceManager工具来添加板卡并进行简单的测试,这里以PCL-818HD为例。
1)打开DeviceManager工具可以看到正确的安装了PCL-818HD的驱动程序之后,可以看到在SupportedDevice下面的列表框中,AdvantechPCL-818L/H/HD/HG已经处于可用状态(前面没有了红色差号——警示号)
2)选中AdvantechPCL-818L/H/HD/HG后,右边的Add按钮呈可用状态,单击Add按钮弹出如下的设置对话框:
BoardType:
选择安装的板卡类型,这里计算机上安装的是PCL-818HD;
BaseAddress:
基地址,该值必须为系统空闲地址且与板卡上面的拨码开关所设置相同;
InterruptChannel:
中断设置,该值必须为系统空闲中断号且与板卡上面的设置相同;
A/DChannelsConfiguration:
通道配置,选择输入的类型,8路差分/16路单端,这里也必须和板卡上面的跳线或开关的设置一致;
ClockSelection:
时钟选择;
DMASelection:
DMA通道选择;
D/AVoltageRef.-Channel1:
通道参考电压选择;
Options按钮:
可以选择连接扩展板,扩展输入通道。
设置确定,单击OK按钮,如果设置的基地址/中断号/DMA与系统资源没有冲突则可以看到PCL-818HD已经添加到MyComputer下面,它在系统中的设备号:
000;输入输出地址:
I/O=300H,
这表示板卡已经安装成功,这时候可以单击Test按钮测试板卡,对于板卡不支持的功能测试页会显示Functionnotsupport信息。
注:
PCL-833/PCL-839/PCL-841是功能特殊的板卡,不能用通用测试工具进行测试,研华为这些板卡专门编写了测试程序,安装之后在其相应的文件夹中可以找到,分别是:
✧PCL833:
QCOUNTER.exe;
✧PCL839:
839DEMO.exe
✧PCL841:
841M.exe。
VC的example文件夹中有完整的测试程序和源代码。
这是对模拟量输入测试的页面:
依次可以看到ChannelNo:
通道号;Inputrange:
输入范围选择;Analoginputreading:
模拟量输入通道读取的数值;Channelmode:
通道设定模式;Sampleperiod:
采样时间间隔;
注:
在不接任何信号的时候,程序也会读到一个随机的述值,当接入实际电压的时候就会恢复正常;在使用板卡的时候建议将不用的通道短接。
选择AnalogOutput属性页,如下所示:
可以看到PCL-818HD只有一个模拟量输出通道,可以选择波形输出进行测试,三种可选的波形,可以调节输出波形的峰值/谷值,每个周期输出100个点,输出时间可有下面的Overallwaveformperiod选择;也可以选择输出常量进行测试。
数字量输入页面如下所示:
没有连接任何信号的时候,多数板卡把这种浮空的状态作为高有效信号,将数字量输入管脚同地短接时,可以看到对应的数据位变绿(低电平信号)。
数字量输出页面如下所示:
按下一个数据为对应的按钮则在相应的数据位输出一个有效的高电平信号,通常高电平为5V,低电平为:
0伏。
计数器页面如下:
可以选择Eventcounting:
事件计数Pulseout:
脉冲输出;Stop:
停止;
Samplerate:
采样时间间隔;Countingvalue:
计数值显示;
Pulsefrequency:
输出脉冲频率;
经过上面的测试我们就可以对板卡的功能有大体的了解,仔细的阅读过板卡的手册和与DeviceManager一起安装的DeviceDriverUserManual中的函数说明之后,您就可以参照我们的例子程序开始您自己的程序设计了!
您可以参考我们提供的例程开始编程,每一块板卡支持的例程及其含义如下面的两个表所示:
板卡支持的例程列表
PCI-1710
Adintf,Adsoft,Adexp,Counter,Dasoft,Digin,Digout,Freq,Madintf,Madsoft,Pulse
PCI-1710L
Adintf,Adsoft,Adexp,Counter,Dasoft,Digin,Digout,Freq,Madintf,Madsoft,Pulse
PCI-1710GHL
Adintf,Adsoft,Adexp,Counter,Dasoft,Digin,Digout,Freq,Madintf,Madsoft,Pulse
PCI-1710HG
Adintf,Adsoft,Adexp,Counter,Dasoft,Digin,Digout,Freq,Madintf,Madsoft,Pulse
Thermo, , ,
PCI-1711
Adintf,Adsoft,Adexp,Counter,Dasoft,Digin,Digout,Freq,Madintf,Madsoft,Pulse
PCI-1711L
Adintf,Adsoft,Adexp,Counter,Dasoft,Digin,Digout,Freq,Madintf,Madsoft,Pulse
PCI-1712
Adbmdma,Adsoft,Counter,Dabmdma,Dasoft,Digin,Digout,Freq,Madsoft,Pulse,Pwmin
PCI-1712L
Adbmdma,Adsoft,Counter,Dabmdma,Dasoft,Digin,Digout,Freq,Madsoft,Pulse,Pwmin
PCI-1713
Adintf,Adsoft,Adexp,Madintf,Madsoft
PCI-1716
Adint,Adintf,Adsoft,Dasoft,Counter,Digin,Digout,Freq
PCI-1716L
Adint,Adintf,Adsoft,Dasoft,Counter,Digin,Digout,Freq
PCI-1720
Dasoft,Dasyncc,Dasyncv,
PCI-1721
Dabmdma,Dasoft,Digin,Digout,Counter,Wadbmdma
PCI-1723
Dasoft,Digin,Digout
PCI-1730
Digin,Digout,Diint
PCI-1731
Adintf,Adsoft,Adexp,Counter,Pulse,Digin,Digout,Freq,Madintf,Madsoft,
PCI-1733
Digin,Diint,
PCI-1734
Digout,
PCI-1750
Digin,Digout,TmCntSet,
PCI-1751
Digin,Digout,TmCntSet,
PCI-1752
Digout,
PCI-1753
Digin,Digout,1753evt,
PCI-1754
Digin,Latchint,
PCI-1756
Digin,Digout,Latchint,
PCI-1760
Digin,Digout,Diint,Dipattn,
PCI-1761
Digin,Digout,Diint,
PCI-1762
Digin,Digout,Diint,
PCI-1784
Digin,Digout,Counter,Pulse,Timer ,
PCL-711
Adintf,Adint,Adexp,Adsoft,Dasoft,Digin,Digout,Madint,Madintf,Madsoft,
PCL-720
Digin,Digout,Counter,Pulse,Freq
PCL-722
Digin,Digout,Diint,
PCL-724
Digin,Digout,Diint,
PCL-725
Digin,Digout,
PCL-726
Digin,Digout,Dasoft, ,
PCL-727
Digin,Digout,Dasoft,,
PCL-728
Dasoft,
PCL-731
Digin,Digout,Diint,
PCL-733
Digin,Diint,
PCL-734
Digout,
PCL-735
Digout,
PCL-812PG
Addma,Adintf,Adint,Adexp,Adsoft,Counter,Dasoft,Digin,Digout,Freq,Madint,Madintf,Pulse,Maddma,
PCL-813B
Adsoft,
PCL-816
Addma,Adint,Adexp,Adsoft,Counter,Digin,Digout,Freq,Madint,Madsoft,Pulse
PCL-816-DA
Dadma, Dasoft,
PCL-818L
Addma,Adint,Adexp,Adsoft,Counter,Dasoft,Digin,Digout,Freq,Madint,Madsoft,Pulse,Maddma,
PCL-818H
Addma,Adint,Adexp,Adsoft,Counter,Dasoft,Digin,Digout,Freq,Madint,Madsoft,Pulse,Maddma,
PCL-818HD
Addma,Adintf,Adint,Adexp,Adsoft,Counter,Dasoft,Digin,Digout,Freq,Madint
Madintf,Madsoft,Pulse,Maddma, , ,,
PCL-818HG
Addma,Adintf,Adint,Adexp,Adsoft,Counter,Dasoft,Digin,Digout,Freq,Madint,Madintf,Madsoft,Pulse,Maddma,Thermo,
PCL-833
Digin,QCounter
PCL-836
Digin,Digout,Pulse,Counter,Freq, Pulsepwm,
PCL-1800
Addma,Adintf,Adint,Adexp,Adsoft,Counter,Daddma,Dadma,Daint,Dasoft,Digin,Digout,Freq,Maddma,Madint,Madintf,Madsoft,Pulse,Caddma,Cadint,
PCM-3725
Digin,Digout,Diint,
Examples'Name
Description
VC
VB
Delphi
Console
BCB
1753evt
PCI-1753中断事件例程
√
√
√
839demo
839使用例程
√
√
Adbmdma
总线控制DMA方式数据采集例程
√
√
Addma
DMA方式单通道数据采集
√
√
Adexp
带扩展板的单通道数据采集例程
√
Adint
中断方式单通道数据采集例程(固定1KFIFO)
√
√
√
Adintf
中断方式单通道数据采集例程(FIFO大小可调)
√
Adsoft
软件触发模式数据采集例程
√
√
√
√
ALARM
报警例程
√
√
√
Caddma
使用看门狗的DMA模式多通道数据采集例程
√
√
√
Cadint
使用看门狗的中断模式多通道数据采集例程
√
√
√
COMM
串口测试程序
√
COUNTER
计数例程
√
√
√
√
DabmDma
总线控制DMA模式模拟量输出例程
√
√
Daddma
双BUFFER多通道,DMA模式数据采集例程
√
√
√
Dadma
模拟量(电压)DMA模式输出例程
√
√
√
√
Daint
模拟量(电压)中断模式输出例程
√
√
√
√
Dasoft
模拟量(电压)软件触发模式输出例程
√
√
√
√
Dasyncc
同步/异步电流输出例程
√
√
√
Dasyncv
同步/异步电压输出例程
√
Digin
数字量输入例程
√
√
√
√
Digout
数字量输出例程
√
√
√
√
Diint
中断方式数字量输入例程
√
√
√
Dipattn
带模式匹配,状态改变,计数匹配,计数溢出功能的数字量输入例程
√
√
√
√
Freq
频率测量例程
√
√
√
Latchint
中断方式数字量输入例程
√
Maddma
多通道DMA模式数据采集例程
√
√
√
√
Madint
多通道中断模式数据采集例程(固定1KFIFO)
√
√
√
Madintf
多通道中断模式数据采集例程(可调FIFO)
√
Pulse
脉冲输出例程
√
√
√
√
Pulsepwm
宽度可调脉冲输出例程
√
√
√
√
PwmIn
宽度可调脉冲输入例程
√
Qcounter
减计数例程
√
Thermo
热电偶使用例程
√
√
√
√
Tmcntset
Demoruntimechangetimerdivisor.
时钟/中断数字量输入
√
WDabmdma
DMA模式波形输出例程
√
DaCOut
电流输出例程
√