微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 浅谈CNC动态卡在总线方式下的实现

浅谈CNC动态卡在总线方式下的实现

时间:09-21 来源:互联网 点击:

indows中,win23应用程序对vxd的通讯方法只有一种,利用设备输入输出控制函数deviceiocontrol()来实现,利用createfile()函数加载vxd获得vxd设备句柄,如果调用成功,win32应用程序就可以调用deviceiocontrol()程序与vxd进行通讯。

  vxd的命令代码需要根据其固定格式进行定义,程序中共定义了2个命令代码,分别用于对双口静态ram的读写操作和vxd对win32应用程序异步过程调用时回调函数地址传输。

  另外,由于采用中断方式对dsp处理的数据进行读取,所以中断事件发生时, 需要vxd异步通知win32应用程序,设计时在应用程序中创建了两个线程,一个用于等待中断事件,当中断事件发生时,读取dsp送到双口ram中数据,另一个用于显示数据。

  5.3 访问i/o以及内存

  在s599的串行存储器中,将pci配置基础地址寄存器badr1配置为4k,16位寄存器空间,badr2设置为8个自己的i/o空间,基地址寄存器badro对应s5933内部16个双字节pci总线操作寄存器,当利用查找方式获得配置空间数据时,即可得到存储器空间基地址和i/o端口基地址。

  5.4 处理中断

  当dsp处理数据写满2k的存储器空间时pci将产生中断,中断信号从配置空间寄存器中读出,pci设备分配的硬件中断信号是共享中断,必须使用类vsharedhardwareint的中断通知事件处理函数onsharedhardwareint()。

  6 应用程序的编写

  6.1 人机接口模块

  使用vc编写基于pci总线动态控制器板卡的应用程序,主要利用设备输入输出控制函数deviceiocontrol(),将界面上对数控机床的各个参数转换数据送到底层的vxd进行通信。

  6.2 解决程序模块

  对从应用程序中人机界面模块中传入的参数进行解释,完成将上位机输入信息解释成下位机dsp能够执行的语言,程序解释模块固化到pci板卡的dsp片内rom中。

  6.3 plc接口模块

  实现pci控制卡与现场总线上的plc模块之间的通讯,由于can总线的特点是可以将对plc模块的控制作为一个应用模块做在pci控制卡上,从而实现了模块化控制。

  6.4 插补模块

  在加工信息解释的基础上,调用运动学算法模块,将运动平台在操作空间的运动转变为空间的伺服运动,实时生成刀具的运动轨迹,并将各伺服轴的移动指令送给伺服模块。

  6.5 运动算法模块

  主要为伺服驱动提供逆解、速度映射算法,为加工状态的实时仿真及精度补偿提供正解算法。

  7 结语

  采用pc+动态控制卡模式,实现数控系统的放开式设计方法开发周期短,系统可靠性高,便于机床功能扩展,由于软件采用了模块化,同时基于组件技术,界面友好,操作方便,进行软件升级以及用户进行二次开发都比较方便。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top