10.06.2013 Views

RF - 今日电子

RF - 今日电子

RF - 今日电子

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

一种总线。在高速信号的实时处理中,<br />

利用 PCI 总线将采集数据直接传送到微<br />

机系统内存,可有效解决数据的实时传<br />

输和存储,为信号的实时处理提供方<br />

便。PCI 总线执行协议比较复杂,总线<br />

的接口逻辑也非常复杂,为简化电路设<br />

计和提高可靠性,本设计采用了 AMCC<br />

公司的总线控制器芯片 S5933。<br />

图 2 为 S5933 的内部结构框图。从<br />

外部看,它提供了 PCI Bus、External<br />

BIOS 及 ADD - ON 三个接口。因此,复<br />

杂的 PCI 接口规范完全由 S5933 实现,<br />

我们只需设计 ADD-ON 接口电路及编<br />

制可选的 External BIOS 即可。为便于<br />

ADD-ON 接口电路设计,还提供了三<br />

组寄存器,分别用于不同的接口设计。<br />

直通数据寄存器组用于目标设备方式<br />

Burst Mode 数据传输;Mailboxes 寄存<br />

器组用于 CPU 与 ADD-ON 之间少量数<br />

据通信,如 CPU 传输命令给 ADD-ON<br />

等;FIFO 寄存器组用于主控设备方式<br />

Burst Mode 数据传输,有同步、异步<br />

之分。此外, PCI 和 ADD-ON 接口各<br />

提供了两组操作寄存器组,用于接口控<br />

制,分别称为 PCI Bus 操作寄存器组和<br />

ADD-ON Bus 操作寄存器组。<br />

程序设计<br />

1 驱动程序设计<br />

S5933 驱动程序根据 Windows 驱动<br />

程序模型 WDM 设计,运行在 Win2000<br />

平台上,支持即插即用,采用基于数据<br />

包的 DMA 传输方式,每次最大传输<br />

64KB。当应用程序请求从系统读数据<br />

时,内核 I/O 管理器将此请求打包成一<br />

个 IRP(I/O 请求包),并调用驱动程序<br />

的读例程。如果设备不忙,就启动 DMA<br />

传输,否则将此 IRP 加入 IRP 队列中。<br />

启动设备 DMA 读时,先用数据传输的<br />

存储地址和数据长度设置写地址寄存器<br />

和写传送计数寄存器,再设置中断控制<br />

状态寄存器(INTCSR),使 DMA 完成<br />

时能触发中断,最后设置控制 / 状态寄<br />

存器(MCSR)来启动DMA 读。当本<br />

次DMA 传输完成时,系统产生中断,I/<br />

O 管 理器调用中断服务例程和<br />

DpcForIsr 完成此 IRP,并从 IRP 队列<br />

中取出下一个 IRP,启动下一次 DMA。<br />

下一次中断发生时同样处理,这样不断<br />

地进行 DMA 传输,直到 IRP 队列空为<br />

止。驱动程序主要采用中断方式来实<br />

现,程序流程如图 3 所示。<br />

由总线控制器 S5933 的结构可知,<br />

设备驱动程序需要实现双字 I/O 操作和<br />

物理内存管理。双字 I/O 的操作相对简<br />

单 , 调 用 虚 拟 机 管 理 器 的<br />

SIMULATE_VM_IO 例程即可,但物理<br />

内存管理较复杂。由于 S5933 发起的<br />

DMA 操作需要物理内存的起始地址,<br />

因此必须涉及页面级的物理内存操作,<br />

故采用下述内存管理策略:应用程序加<br />

载驱动程序,加载成功后发送申请缓冲<br />

区的事件给驱动程序,驱动程序使用<br />

PAGEALLOCATE 例程得到地址连续<br />

的适当长度的物理内存,锁定缓冲区并<br />

将物理地址逆映射为线性地址,将物理<br />

首地址填入 S5933 的写 RAM 地址寄存<br />

器,允许 S5933 进行主控 DMA 传输,传<br />

输完毕时,应用程序请求驱动程序释放<br />

上述物理内存。<br />

应用设计:工业控制<br />

图 3 驱动程序流程图<br />

2 用户应用程序设计<br />

本系统应用程序采用结构化、模块<br />

化的设计方法,采用一片 8031 单片机作<br />

为 CPU,各模块均完成一定的独立功能,<br />

便于系统的功能扩充和维护。系统操作<br />

由多级中文菜单提示进行。显示模块程<br />

序设计模式多,显示内容丰富,可显示中<br />

文菜单、回波波形、报警闸门、移动标尺、<br />

测量结果等。主控模块用于控制检测流<br />

程,实现数据的采集、处理和分析,并调<br />

用相应的功能模块实现显示和打印等。<br />

通信模块程序用于 CPU 与外部PC 的串<br />

行通信,将探伤波形及结果等相关信息<br />

传送至 PC 做进一步分析、处理或存档。<br />

键盘管理模块扩展了一个的小键盘,分<br />

成功能键和数字键,功能键用于选择操<br />

作类型,数字键用于参数输入,当键按下<br />

时向 CPU 申请中断。打印模块用于控制<br />

微型打印机打印结果和缺陷回波等。 EPC<br />

<strong>今日电子</strong> · 2007 年 12 月<br />

101

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!