多中断辨识技术实验
扫描二维码
随时随地手机看文章
工控应用已遍及各行各业,特别是随着计算机的普遍降价,由PC机建构的控制系统已越来越多,该类控制系统的优点是可以用高级语言及大量的现有软件快速建构自己的软件系统。特别对航天控制类应用项目,中断引入及多中断辨识技术是测控软件中的关键技术,严格的时序是测控软件的必须嘲条件。通过试验讨论了2种商用带中断的I/0板卡的中断引入及多中断辨识技术,介绍研华及凌华的相应中断处理技术及中断编程的要点,希望读者在使用时少走弯路。
2 研华中断引入方法
研华的中断支持卡为部分I/O卡,依据典型的PCIl75l为例,PCIl751为48路I/O卡,带两路中断支持功能,I/O端口地址分别为0~5,安装好驱动程序和设备管理器后,在设备管理器中加入PCIl751设备,这时在软件界面可以看到该卡对应的设备号,该号为用户访问时使用的设备号。下一段代码演示中断引入方法,研华的中断例子在设备初始化时太繁,前面一大段代码是作为搜索设备使用的,在设备管理器软件界面一般用户已经知道该设备号,所以可以在自己的代码段省略掉该部分,下一段为Delphi代码:
3 研华的中断处理及多中断辨识技术
研华的中断处理例子并没有多辨识部分,需要使用者自己想办法,通过多次试验,使用中断前读一次端口,中断后再读一次中断口的办法,判断读人数据变化即可以辨识哪个中断发生。
4 凌华的中断安装
依据PCIl48卡为例演示中断安装及处理,PCIl48卡提供144路I/O,其中提供4路中断,作者使用Visual C++代码展示,凌华给出的例子较旧,是SDK形式或者DOS形式,凌华的I/O所有端口均使用一个端口,该企业给出的中断安装例子容易产生误解,开始作者一直以为它的4个中断需要分别安装,经多次试验后才发现不是这样的:
5 凌华的中断处理及多中断辨识
从中断安装已知,所有中断以自己定义的WIN32事件对象PB_hSvnchEvent20通知,所以在中断处理线程中,等待该事件即可,注意在电平的上升及下降沿中断都到来,使用时需要屏蔽掉下降沿触发的中断。4个中断都安排在2号端口,多中断辨识的实质就是在中断发生时,判断该口的值是否变化,怎样变化,这样,必须保存中断前的该端口值。
6 结语
严格的时序,无中断丢失的中断处理才可以保障整个系统的时序工作,在航天或者其他控制项目中,非常重要,在几个重大项目中,分别使用了几个中断卡,该文是经过工程实践后调试通过的产物,所以引用了许多关键的代码,希望该方法对读者有益。