1、SBS ADT652卡 驱动程序包使用阐明书目 录SBS ADT652卡 驱动程序包使用阐明书1一.简介41)产品名称42)硬件简介43)开发目44)使用环境45)有关产品4二.驱动程序阐明51)文献列表52)安装环节53)API函数6ADT652_DevLoad:加载设备驱动6ADT652_DevClose:卸载设备驱动6ADT652_InitBoard:设备初始化6ADT652_SetEvent:将告知事件发送到驱动程序7ADT652_ConfigIOPorts:配备数字I/O口7ADT652_ReadDigitIO:读数字I/O口7ADT652_WriteDigitIO:写数字I/O口8
2、ADT652_ClearIRQ:清除中断8ADT652_ClockMode:设立计数器定期器工作方式9ADT652_ClockDivisor:设立计数器定期器计数值9ADT652_ReadPITStatus:读取计数器定期器状态10ADT652_ClockReadBack:读回计数器定期器计数值10ADT652_ADSettings:设立模仿输入电压量程和极性10ADT652_SetChannel:设立模仿输入通道11ADT652_EnableIRQ:设立中断使能11ADT652_DisableIRQ:设立中断禁止12ADT652_SetIRQSource:选取中断源12ADT652_ADCo
3、nfig:配备A/D12ADT652_WriteDataDA:向DA通道写DA代码13ADT652_ChannelSwitch:AD通道切换状态14ADT652_IRQStatus:中断状态14ADT652_StartConversion:启动A/D变换14ADT652_ConversionDone:监测A/D变换状态15ADT652_ReadData:读取A/D变换数据15ADT652_DigitToSBS:将A/D变换数据转换为输入电压值15ADT652_ReadADFIFOFlag:读取A/DFIFO数据标志16ADT652_ADFIFOReset:复位A/DFIFO16ReadIOPo
4、rt:读取IO地址16WriteIOPort:写入IO地址17ADT652_GetFifo17三.示例程序阐明181)硬件设立182)使用阐明18核心字: ADT652卡驱动、A/D变换、D/A变换、数字I/O、计数器/定期器摘要: 本文档描述了SBS ADT652卡在Windows NT()下驱动程序用法,重要涉及了SBS ADT652卡初始化、加载、配备、A/D变换、D/A变换、I/O控制、计数/定期API函数接口。 缩微语:无一. 简介1) 产品名称本文档描述对象是:SBS ADT652 Driver for Windows NT().2) 硬件简介ADT652 模块化中速模仿输入模块可
5、将与IBM PC 兼容PC/104 CPU 模块系统构成一种高性能数据采集与控制系统。构造紧凑,适于嵌入式与便携式应用ADT652 模块特点是:l 八/十六个单端模仿输入通道l 12 位100KHz A/D 变换器l 5V 10V 或0 到+10V 模仿输入量程可选l 可用软件配备增益l -5+5V,-10+10V,05V,010V模仿输出量程可选l 24 通道基于uPD71055 芯片可编程数字量I/Ol 三个独立16 位10MHz 定期器/计数器(或5MHz)3) 开发目本文描述是SBS ADT652卡在Windows NT()操作系统下驱动程序。使用本文描述驱动程序,应用系统开发顾客可以
6、迅速地把SBS ADT652卡集成到基于Windows NT()应用环境,屏蔽了实际硬件系统,通过驱动提供API函数接口,顾客可以更以便、快捷地实现面相应用开发,也可使应用系统具备较好可移植性。4) 使用环境操作系统:Windows XP调试环境:isual C+6.0硬件环境:CDM1351-10D 、ADT652卡驱动程序:SBS ADT652 Driver for Windows2K/XP V6.05) 有关产品 二. 驱动程序阐明1) 文献列表本驱动程序包提供如下文献:1) ADT652CD1Sys.sys :该文献为驱动主体文献,包括所有API函数实现。 2) ADT652.dll:
7、该文献为动态链接库文献。3) ADT652.lib:该文献为静态链接库文献。4) ADT652.h :该文献为API函数声明头文献,在使用API函数之前必要被包括。5) ADT652CD1Sys.inf :该文献为设备信息文献。2) 安装环节安装环节如下: 1、在控制面板中选取添加新硬件2、添加新硬件3、显示所有设备4、从磁盘安装5、选取文献目录Driver下ADT652CD1Sys.inf,进行安装6、配备资源,依照需要选取基地址、中断;需要注意,用中断7一定要关闭并口!7、重新启动系统8、将ADT652.dll,ADT652.lib和ADT652.h拷贝至你应用程序所在目录下。在应用工程中
8、引入ADT652.lib:A、如果你ADT6520.lib放在VC原则LIB文献夹中 单击Project- Project Settings. 在link选卡object/library modules中加上ADT652.lib即可 B. 如果你ADT652.lib不是放在VC原则LIB文献夹中 单击Project- Add to Project- files. 找到ADT652.lib文献,按OK 。3) API函数 ADT652_DevLoad:加载设备驱动函数原型:HANDLE ADT652_DevLoad( )函数阐明:该函数告知系统加载设备驱动,然后才干对其他函数进行操作。输入:无输
9、出:无返回值:成功返回标记此设备驱动句柄,失败返回INVALID_HANDLE_VALUE。 ADT652_DevClose:卸载设备驱动函数原型:BOOL ADT652_DevClose(HANDLE hDevice)函数阐明:该函数告知系统卸载设备驱动输入:hDevice:从ADT652_DevLoad( )函数中返回句柄输出:无返回值:成功返回1,失败返回0。 ADT652_InitBoard:设备初始化函数原型:BOOL ADT652_InitBoard (HANDLE hDevice,unsigned int BaseAddr,int irq_chn)函数阐明:该函数对设备进行初始化
10、,涉及设立设备基地址、中断号等。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄BaseAddr:设备基地址irq_chn:设备中断号输出:无返回值:成功返回1,失败返回0。 ADT652_SetEvent:将告知事件发送到驱动程序函数原型:int ADT600_SetEvent(HANDLE hDevice,HANDLE hEvent)函数阐明:该函数用来将告知事件发送到驱动程序。详细参照示例程序。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄hEvent: 事件句柄输出:无返回值:成功返回0,失败返回非0错误值。 ADT652_Config
11、IOPorts:配备数字I/O口 函数原型:void ADT652_ConfigIOPorts(HANDLE hDevice,unsigned char Port0,unsigned char Port1,unsigned char Port2)函数阐明:该函数对71055芯片3个I/O口工作于模式0进行配备输入:hDevice:从ADT652_DevLoad( )函数中返回句柄Port0:71055芯片口,表达输入,表达输出Port1:71055芯片B口,表达输入,表达输出Port2:71055芯片C口,表达输入,表达输出输出:无返回值:无 ADT652_ReadDigitIO:读数字I/O
12、口 函数原型:unsigned char ADT652_ReadDigitIO(HANDLE hDevice,unsigned char InputPort);函数阐明:该函数对71055芯片3个I/O口进行读操作。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄InputPort:71055芯片3个I/O口,表达口,表达口,表达口输出:无返回值:返回从指定I/O口读出值 ADT652_WriteDigitIO:写数字I/O口 函数原型:void ADT652_WriteDigitIO(HANDLE hDevice,unsigned char OutputPort,un
13、signed char v);函数阐明:该函数对71055芯片3个I/O口进行写操作。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄OutputPort:71055芯片3个I/O口,表达口,表达口,表达口v: 从指定I/O口写入值 输出:无返回值:无 ADT652_ClearIRQ:清除中断 函数原型:void ADT652_ClearIRQ(HANDLE hDevice)函数阐明:该函数用于清除中断。在中断产生后必要调用该函数。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄输出:无返回值:无 ADT652_ClockMode:设立计数器定期
14、器工作方式 函数原型:void ADT652_ClockMode(HANDLE hDevice,unsigned char Clock,unsigned char Mode)函数阐明:该函数对82C54芯片3个计数器定期器工作方式进行设立(ADT652有2个82C54,共计6个数器定期器)。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄Clock:82C54芯片3个计数器定期器,表达计数器,表达计数器,表达计数器(对于ADT652,第二个82C543个计数器定期器分别表达为:3表达计数器,4表达计数器,5表达计数器)Mode:82C54芯片工作方式,分别表达方式方式输
15、出:无返回值:无 ADT652_ClockDivisor:设立计数器定期器计数值函数原型:void ADT652_ClockDivisor(HANDLE hDevice,unsigned char Clock,unsigned int Divisor)函数阐明:该函数对82C54芯片3个计数器定期器计数值进行设立(ADT652有2个82C54,共计6个数器定期器)输入:hDevice:从ADT652_DevLoad( )函数中返回句柄Clock:82C54芯片3个计数器定期器,表达计数器,表达计数器,表达计数器(对于ADT652,第二个82C543个计数器定期器分别表达为:3表达计数器,4表达
16、计数器,5表达计数器)Divisor: 16位计数器定期器计数值 输出:无返回值:无 ADT652_ReadPITStatus:读取计数器定期器状态函数原型:char ADT652_ReadPITStatus(HANDLE hDevice,unsigned char Timer)函数阐明:该函数对82C54芯片3个计数器定期器单次计数状态进行读取(ADT652有2个82C54,共计6个数器定期器)。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄Timer:82C54芯片3个计数器定期器,表达计数器,表达计数器,表达计数器(对于ADT652,第二个82C543个计数器定
17、期器分别表达为:3表达计数器,4表达计数器,5表达计数器)输出:无返回值:单次计数结束返回,否则返回。 ADT652_ClockReadBack:读回计数器定期器计数值函数原型:unsigned int ADT652_ClockReadBack(HANDLE hDevice,char Timer)函数阐明:该函数对82C54芯片3个计数器定期器计数值进行读取(ADT652有2个82C54,共计6个数器定期器)。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄Timer:82C54芯片3个计数器定期器,表达计数器,表达计数器,表达计数器(对于ADT652,第二个82C54
18、3个计数器定期器分别表达为:3表达计数器,4表达计数器,5表达计数器)输出:无返回值:返回读取计数器定期器计数值。 ADT652_ADSettings:设立模仿输入电压量程和极性函数原型:void ADT652_ADSettings(HANDLE hDevice,float Range,char Polarity)函数阐明:该函数对模仿输入电压量程和极性进行设立。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄Range:模仿输入电压量程,可输入5和10Polarity:模仿输入电压极性,0表达单极性,1表达双极性 输出:无返回值:无。 ADT652_SetChanne
19、l:设立模仿输入通道函数原型:void ADT652_SetChannel(HANDLE hDevice,unsigned int ChannelL,unsigned int ChannelH)函数阐明:该函数对模仿输入通道进行设立。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄ChannelL:模仿输入低通道,可输入015,分别表达通道1通道16ChannelH:模仿输入高通道,可输入015,分别表达通道1通道16注:低通道和高通道相似表达同一通道。输出:无返回值:无。 ADT652_EnableIRQ:设立中断使能函数原型:void ADT652_EnableIR
20、Q(HANDLE hDevice)函数阐明:该函数设立中断使能。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄输出:无返回值:无。 ADT652_DisableIRQ:设立中断禁止函数原型:void ADT652_DisableIRQ (HANDLE hDevice)函数阐明:该函数设立中断禁止。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄输出:无返回值:无。 ADT652_SetIRQSource:选取中断源函数原型:void ADT652_SetIRQSource(HANDLE hDevice,unsigned char IrqSou)
21、函数阐明:该函数选取中断源。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄IrqSou:0表达AD转换数据有效,1表达计数/定期器0输出,2表达外部中断,3表达计数/定期器1输出,4表达计数/定期器3输出,5表达计数/定期器4输出,6表达计数/定期器5输出。输出:无返回值:无。注: AD 转换数据有效表达:当FIFOEn 为“1”时,FIFO 半满标记(HF)触发中断当FIFOEn 为“0”时,AD 转换结束触发中断 FIFOEn是函数ADT652_ADConfig参数 ADT652_ADConfig:配备A/D函数原型:void ADT652_ADConfig(HA
22、NDLE hDevice unsigned char Timer2Con,unsigned char DMACon,unsigned char ADTrig,unsigned char GainCon,unsigned char FIFOEn);函数阐明:该函数用来配备A/D转换触发方式、可编程增益放大控制和FIFO 选取等。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄 Timer2Con:A/D转换计数/定期器2(OUT2)触发使能控制。置“0”时为不容许计数/定期器2(OUT2)触发(缺省)。置“1”时为容许计数/定期器2(OUT2)触发。DMACon: A/D
23、转换DMA传送使能控制。置“0”时为不容许DMA(缺省)。置“1”时为容许DMA。ADTrig: A/D转换触发方式配备。置“0”时为软件触发。置“1”时为硬件触发。GainCon: 可编程增益放大控制。 置“1”时增益为1。 置“2”时增益为2。 置“4”时增益为4。 置“8”时增益为8。通过增益放大可对某些较弱信号进行采集,提高其精度。 FOFIEn:AD 转换数据FIFO 选取置“0”时为FIFO 禁止。置“1”时为AD 转换数据进入FIFO。输出:无返回值:无。 ADT652_WriteDataDA:向DA通道写DA代码函数原型:void ADT652_WriteDataDA(HAND
24、LE hDevice,unsigned int DAChannel,int DigitalValue)函数阐明:该函数向DA通道写DA代码。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄DAChannel:DA通道,可输入03,分别表达通道0通道3DigitalValue: DA代码输出:无返回值:无 ADT652_ChannelSwitch:AD通道切换状态函数原型:unsigned char ADT652_ChannelSwitch(HANDLE hDevice)函数阐明:该函数返回AD通道切换状态。输入:hDevice:从ADT652_DevLoad( )函数中
25、返回句柄输出:无返回值:AD通道切换完毕返回0,否则返回1 ADT652_IRQStatus:中断状态函数原型:unsigned char ADT652_IRQStatus(HANDLE hDevice)函数阐明:该函数返回中断状态。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄输出:无返回值:有中断返回1,否则返回0 ADT652_StartConversion:启动A/D变换函数原型:void ADT652_StartConversion(HANDLE hDevice)函数阐明:该函数用于软件启动A/D变换。输入:hDevice:从ADT652_DevLoad(
26、)函数中返回句柄输出:无返回值:无。 ADT652_ConversionDone:监测A/D变换状态函数原型:char ADT652_ConversionDone(HANDLE hDevice)函数阐明:该函数用于监测A/D变换状态。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄输出:无返回值:A/D变换结束返回0,否则返回1。 ADT652_ReadData:读取A/D变换数据函数原型:int ADT652_ReadData(HANDLE hDevice)函数阐明:该函数用于读取A/D变换数据。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄
27、输出:无返回值:返回读取A/D变换数据。 ADT652_DigitToSBS:将A/D变换数据转换为输入电压值 函数原型:float ADT652_DigitToSBS(HANDLE hDevice,int DigitalValue,int *Curcha)函数阐明:该函数用于将A/D变换数据转换为输入电压值。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄DigitalValue:A/D变换数据输出:*Curcha:指向当前采样通道返回值:返回转换后输入电压值。 ADT652_ReadADFIFOFlag:读取A/DFIFO数据标志函数原型:unsigned char
28、 ADT652_ReadADFIFOFlag(HANDLE hDevice)函数阐明:该函数用于读取A/DFIFO数据标志。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄输出:无返回值:返回1表达FIFO数据半满,返回2表达FIFO数据全满,返回3表达FIFO数据空。 ADT652_ADFIFOReset:复位A/DFIFO函数原型:void ADT652_ADFIFOReset(HANDLE hDevice)函数阐明:该函数用于复位A/DFIFO。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄输出:无返回值:无。 ReadIOPort:读取
29、IO地址函数原型:unsigned charReadIOPort(HANDLE hDevice,unsigned int portAddr)函数阐明:该函数对指定IO地址进行读取。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄portAddr:IO地址输出:无返回值:返回从指定IO地址读取值。 WriteIOPort:写入IO地址 函数原型:void WriteIOPort(HANDLE hDevice,unsigned int portAddr,unsigned int byte)函数阐明:该函数对指定IO地址进行写入。输入:hDevice:从ADT652_DevL
30、oad( )函数中返回句柄portAddr:IO地址byte:向指定IO地址写入值输出:无返回值:无 ADT652_GetFifo函数原型:BOOL ADT652_GetFifo(HANDLE hDevice,PUCHAR DataFifo ,USHORT DataNum);函数阐明:该函数直接提取FIFO数据。输入:hDevice:从ADT652_DevLoad( )函数中返回句柄DataFifo:接受FIFO数据数据空间;DataNum:读取数据个数输出:无返回值:操作完毕返回TRUE三. 示例程序阐明项目文献Demo,涉及了SBS ADT652卡加载设备驱动、初始化、卸载设备驱动、A/D
31、变换、I/O控制、计数等操作。1) 硬件设立在ADT652卡1跳线上设立基地址为300H(出厂设立),在S2中断跳线上设立中断号为IRQ7,在S3跳线上设立成第一片82C54芯片内部三个计数器极联。在S5跳线上设立模仿输入电压量程为+/-10V。2) 使用阐明运营ADT652_Demo.exe,屏幕上浮现一种对话框。程序会自动加载设备驱动;(3)数字I/O演示:. 读数字I/O口选取读操作(程序默以为读操作),选取要测试通道,程序会自动执行;B. 写数字I/O口选取写操作,选取要测试通道,然后在数据框内写入数据,按回车键Enter即可;(4)A/D变换演示: 选取要测试通道,程序会去读取相应通道信息,然后显示在数据框内;(5).计数器演示:程序开始运营计数器就开始工作,如果跳线和中断设立对的,数据框内会显示对的计数值;(6).测试完毕关闭对话框,程序自动卸载设备驱动。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100