PCI接口芯片s5935及其应用
PTWR: 输出,读写选择;
本文链接地址:http://www.oyaya.net/fanwen/view/155361.html
PTADR: 输入,OFFSET ADDRESS从直通地址寄存器驱动至DQ?31?0?;
PTRDY: 输入,表明外加总线完成传输;
ADR?6?2?: 输入,选择外加操作寄存器;
2.3 邮箱方式
s5935有输入、输出邮箱各四个,多采用中断/查询方式传输数据,外加总线则可由ADR?6:2?和IRQ等引脚实现。中断控制/状态寄存器用于实现中断的使能配置、查询和清除,邮箱状态寄存器可查询邮箱状态,通过控制/状态寄存器可使邮箱复位。还可以通过EA?0?8?脚直接读写外加总线4号输出邮箱的第三字节,这也是直连外部中断的一种简单方法。在Windows2000下,其典型WDM驱动程序中断相关部分模型如下(地址I/O映射):
AddDevice()//加载设备
? ……
IoInitializeDpcRequest();
……?
DispatchPNP ? ? //
?……
case CmResourceTypeInterrupt:
GetInterruptRes??; //取得中断资源
……
WRITE PORT ULONG(BASE ADDRESS 0+INTCSR,DISABLE INT DWORD) ;//禁止中断
IoConnectInterrupt???
……?
DeviceControl()//实现应用程序中DeviceIOCon-trol函数对设备的读写
? ……
switch?CONTROLCODE??……
case ENABLE INTERRUPT: //使能和配置
中断方式
WRITE PORT ULONG(BASE ADDRESS 0+INTCSR,INT MASK DWORD);
case WRITE DATA:
WRITE PORT ULONG(BASE ADDRESS 0+INCOMING MBOX2 ADDRESS,DATA);
}
……}
InterruptHandler? ? //中断服务函数
{ ……
DWORD= READ PORT ULONG(BASE AD-DRESS 0+INTCSR)?//查询是否使本设备产生的中断及本设备以何种方式产生中断
……
DWORD=READ PORT ULONG(BASE AD-DRESS 0+PCI INCOMING MBOX2);
《PCI接口芯片s5935及其应用(第2页)》