在Windows环境下调用动态库实现VXI嵌入式计算机间的数据传递
http://tech.ddvip.com 2008年07月12日 社区交流
内容摘要:本文介绍了调用VISA函数来实现动态链接库的设计,提出软件设计的整体框架和实现方案。动态链接库的设计包括三个部分:初始化通信环境、传送数据和事件回调函数的设计。
摘 要:本文介绍了调用VISA函数来实现动态链接库的设计,提出软件设计的整体框架和实现方案。动态链接库的设计包括三个部分:初始化通信环境、传送数据和事件回调函数的设计。通过这种方法,实现了在Windows环境下通过调用动态链接库完成同一个VXI机箱内安装在不同槽位的嵌入式计算机之间的数据传递。
关键词:VXI ;VISA函数;动态链接库
引言
在VXI系统中,控制器可以选用各种流行的控制机和操作系统。嵌入式控制机无疑是一种很好的选择。但在一些由VXI组成的大型、复杂系统中,往往一台计算机无法完成所有的任务,因此需要多台机器之间配合完成,各自负责处理部分任务,因此如何传递彼此间的实时性数据显得十分重要。本文介绍在一个VXI机箱插入两个嵌入式计算机,其中一台作为零槽控制器,另一台作为一个模块,两者之间可以快速、有效地相互交换各自处理的实时性数据。选用的环境是Windows 2000操作系统,Agilent E8401A VXI主机箱一个,NI VXIpc-872B嵌入式计算机两台。采用的方法是共享存储器通信和事件回调机制。
共享存储器通信
VXI总线的通信方式很多,其中共享存储器通信是对VXI总线字串行通信的补充。这些协议将使用少量的辅助操作而传递大量的信息,而这些辅助操作正是字串行协议所需要的。
VISA提供了两种不同的方式用于直接对寄存器编程:高级存储器函数或低级存储器函数。高级存储器函数允许通过简单的函数调用访问接口上的存储器,这不需要把存储器映射到窗口。使用高级存储器函数可完成存储器映射和直接存储器访问。由于此函数包含了存储器空间的映射和直接寄存器访问,这就增加了程序的执行时间。和高级存储器函数一样,低级存储器函数允许直接访问接口上的内存,但是,调用低级存储器函数时,必须用低级存储器函数对地址和被访问的寄存器进行映射。在使用低级存储器函数时,为了提高程序的执行速度,低级存储器函数不返回错误代码。
作者:赵严 陈光 顾亚平 责编:豆豆技术应用