[发明专利]一种VxWorks操作系统下CPCI总线DAC功能单元驱动程序设计方法无效
申请号: | 201410004984.0 | 申请日: | 2014-01-07 |
公开(公告)号: | CN103677855A | 公开(公告)日: | 2014-03-26 |
发明(设计)人: | 罗清华;刘连胜;奚成义;蒙春城;彭宇;彭喜元 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 杨立超 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种VxWorks操作系统下CPCI总线DAC功能单元驱动程序设计方法,属于数模转换模块驱动程序开发领域。本发明基于对DAC功能模块的常见操作提出一种新的DAC驱动接口封装形式,以实现对DAC功能模块有效控制的同时,降低驱动开发人员的开发难度。DAC功能模块运行在CPCI机箱中,应用程序运行在控制计算机上,通过PCI总线实现对DAC功能模块的控制,开发基于CPCI总线DAC功能模块的驱动程序,DAC功能模块的驱动程序设计主要包括初始化设备,功能函数接口的实现及封装。本方法面向应用程序直接定义驱动接口的形式,直接封装功能接口函数。提供的DAC功能模块驱动程序直接面向用户应用程序提供通用的驱动函数接口。 | ||
搜索关键词: | 一种 vxworks 操作系统 cpci 总线 dac 功能 单元 驱动 程序设计 方法 | ||
【主权项】:
一种VxWorks操作系统下CPCI总线DAC功能单元驱动程序设计方法,其特征在于:所述方法是按照以下步骤实现的:步骤一、初始化设备:获取基于CPCI总线的扫描DAC功能单元的设备信息、设备内存映射及中断链接;步骤二、功能函数的实现及封装:D/A模块有32路数字量模拟量转换,转换的模拟量经过隔离电路输出;控制计算机将要输出的某一通道的电压值通过PCI总线传输至控制器件FPGA,在其内部实现控制寄存器,控制DAC器件,将相应的数字量转换为模拟量输出;功能函数对硬件功能电路的主要控制过程为:打开指定D/A板卡、选择D/A转换通道、读取D/A校正系数、修正要转换的值、启动转换、关闭指定D/A板卡;根据D/A板卡驱动软件要实现的操作,D/A板卡各个驱动接口函数的详细设计过程如下:步骤二(1)、打开DAC功能单元:加载D/A驱动程序,打开指定板号的D/A板,对D/A板进行后续操作;函数原型为STATUS DAOpen(int num);入口参数num是板号,范围是1~N,N为控制计算机的D/A板数量;返回值打开成功返OK,失败返回非零故障码,如果N不在设定范围之内,上述函数能识别错误的板号输入,并返回对应的故障码;DAOpen函数的实现过程如下:首先应用程序传递要打开的DAC模块板卡号,在函数体中判断板号是否正确,如果正确则将初始化函数执行后获得的DAC功能模块内存映射基址值赋给一个全局变量,最后函数返回OK,如果板号参数不是用户允许的,则返回板号错误;步骤二(2)、关闭DAC功能单元关闭指定板号的D/A板,卸载D/A驱动程序,完成后释放D/A板的硬件资源,不能再对D/A板进行除打开以外的其他操作;函数原型为STATUS DAClose(int num);入口参数num为板号,范围是1~N,N为控制计算机的D/A板数量;返回值关闭成功返回OK,失败返回非零负值故障码;所述函数能识别错误的板号输入,并返回相应的故障码;DAClose实现过程如下:首先应用程序传递要关闭的指定DAC模块板号,在函数体中,判断传递的板号参数是否正确,如果正确,则将保存有内存基址的全局变量清零,函数返回OK,如果板卡号错误,则返回板号错误;步骤二(3)、DAC功能单元转换操作:指定板号的D/A板,指定一路通道进行电压值转换;函数原型为STATUS DARevertData(int num,int chan,double data);入口参数num为板号,范围是1~N,N为控制计算机的D/A板数量;chan为通道号,赋值0~M‑1,M为D/A板的输出通道数量;data为待转换的电压值,返回值读取成功返回OK,失败返回非零负值故障码;所述函数能识别错误的板号输入,并返回相应的故障码;能识别错误的通道号输入,并返回相应的故障码;DARevertData函数的实现过程如下:首先应用程序传递要进行数据输出的DAC模块板号和通道号参数,在函数体中,先判断传递的板号是否是用户允许输入的板号,如果是,再进一步判断传递的通道号是否是用户允许输入的通道号,如果是,首先读取DAC模块的修正系数,然后计算当前须转换的数字量修正后的数值,然后启动指定DAC模块的指定通道进行数模转换,下一步判断信号转换是否完成,如果完成,则将转换成功标志位置位,函数返回OK,表示用户可以从相应的输出通道读取数模转换的结果电压值;如果上述判断的过程出现否定,则退出函数返回相应错误故障码;步骤二(4)、DAC功能单元实时监测:对指定的板号的D/A板进行在位实时监测;函数原型为STATUS DARTWatch(intnum);入口参数num为板号,范围是1~N,N为控制计算机的D/A板数量;返回值监测正常返回OK,失败返回非零负值故障码;所述函数能识别错误的板号输入,并返回对应的故障码;DARTWatch函数的实现过程如下:首先应用程序传递指定DAC功能模块板号,在函数体中,判断传递的板号是否是用户允许的板号,如果是,下一步调用PciFindDevice()函数,判断PciFindDevice()函数的返回值是否为OK,如果是,则函数接口返回OK;如果上述判断的过程出现否定,则退出函数返回相应错误故障码。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410004984.0/,转载请声明来源钻瓜专利网。