微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Windows 2K平台下多机通信卡

Windows 2K平台下多机通信卡

时间:05-15 来源:互联网 点击:

内存映射端口的地址也相对方便,比老式的ISA[1]接口用跳线配置要优越些。该双口RAM为8K,但计算机能够访问的只有4K。其中CTRL线是8KRAM的控制线,通过该线可以实现“乒乓”结构[1]的数据传输。

(2)数据接口电路

数据接口电路实现数据线的驱动功能。尽管很多计算机主板的数据总线都经过驱动,但为了确保可靠性,数据总线不应直接与双口RAM相连接,而是通过数据驱动器件与数据线相连。

(3)控制逻辑电路

控制逻辑电路是与计算机通信的核心部分,该部分主要是实现“乒乓”结构的硬件控制部分。当存储器中的RAM达到HALFREADY(半满状态)时发出中断申请实现数据的传输,同时,将CTRL状态取反,使得计算机访问的是其中的一半,即实现了数据传输的“乒乓”结构。此外,数据的读写控制也通过控制逻辑实现。

89C52实现与从机多机通信,同时将得到的数据存入双口RAM中,控制逻辑协调RAM的数据读写工作。

5设备驱动程序的设计

在Windows9x下的VxD(虚拟设备驱动程序)相比,Windows2K下的WDM(Windows设备驱动模型)驱动程序要复杂一些。

WDM驱动程序是分层的,不同层上的驱动程序有着不同的优先级[2]。此外,WDM还引入了FDO(功能设备对象)与PDO(物理设备对象)两个新类来描述硬件。

在开发驱动程序过程中,使用了DriverStudio中的DriverWorks工具用来创建WDM框架。

DriverWorks提供用于访问内存映射地址的类KmemoryRange和KmemoryRegister。实现步骤如下:

(3)在初始化成功后,可以调用类KmemoryRange的成员函数实现对内存映射地址寄存器[2]的访问。

在驱动程序的开发中还涉及到硬件中断的处理。具体地说,首先安装一个中断服务例程(ISR),当相应的中断发生时,内核调用它的中断服务例程。中断服务例程的第一个工作是判断该中断是否由自己的设备产生。如果不是,则返回FALSE,交给其他的中断服务例程;如果是,则处理该中断,并返回TRUE。

同样,DriverWorks提供Kinterrpt和KdefrredCall类处理中断。具体编程如下:

6结束语

由于在接口卡中采用了89C52芯片完成数据收发工作,同时协助主机进行信号的处理,这在很大程度上减轻了主机的负担,加速了I/O操作。在驱动程序的编制上,采用了WDM驱动模型,这样可以很方便地将程序移植到任何支持WDM模型的操作系统中去。

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

网站地图

Top