新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于PCI9054的数据转换模块设计

基于PCI9054的数据转换模块设计

作者:时间:2011-03-17来源:网络收藏

通过设置其DMA控制器内部的寄存器即可实现两总线之间的数据传输。的DMA传输过程可由以下几个步骤实现:
1)设置方式寄存器:设置DMA通道的传输方式,寄存器DMAMODE0或者DMAMODE1;
2)设置地址寄存器:设置总线侧的地址空间起始地址;
3)设置LOCAL地址寄存器:设置LOCAL总线侧的地址空间起始地址;
4)设置传输计数寄存器:以字节位单位设置每次DMA数据传输量;
5)设置描述寄存器:设置DMA传输的方向,0表示数据从PCI总线到Local总线,1表示数据从Local总线到PCI总线;
6)设置命令/状态寄存器:启动或停止DMA操作。
当应用程序启动开始模拟后,驱动程序收到应用程序开始模拟的命令后,同时填写PCI的门铃寄存器(PCI端偏移地址:60H)产生LO-CAL端的中断通知硬件接收DMA的数据,FPGA收到中断后,清除中断,同时判断收到开始模拟的命令。硬件准备好以后发中断告诉主机已经准备好,同时填写PCI的门铃寄存器(PCI端偏移地址:64H)产生PCI端的中断通知硬件已经准备好,主机收到中断后,清除中断,填写启动DMA开始寄存器,把计算机内存空间的数据通过PCI总线传输到PCI9054的LOCAL端,FPGA接收LOCAL端的数据存入数据缓冲区,同时由FPGA控制读取缓冲区中的数据经并串转换用LVDS信号形式发送。当DMA结束后产生主机PCI中断,主机收到中断后清除中断,并等待硬件准备好中断来后清中断填写下一个DMA开始,直到模拟数据模拟完为止。

本文引用地址:http://www.eepw.com.cn/article/191304.htm

4 WDM驱动程序设计
4.1 WDM驱动程序简介
WDM驱动程序是一种PnP驱动程序,它同时还遵循电源管理协议,并能在Windows 98和Windows 2000间实现源代码级兼容。WDM驱动程序还细分为类驱动程序(class driver)和迷你驱动程序(minidriver),类驱动程序管理属于已定义类的设备迷你驱动程序向类驱动程序提供厂商专有的支持。在WDM驱动程序模型中,每个硬件设备至少有两个驱动程序。其中一个驱动程序称为功能(function)驱动程序,了解使硬件工作的所有细节,负责初始化I/O操作,处理I/O操作完成时所带来的中断事件,为用户提供一种设备适合的控制方式。另一个驱动程序称为总线(bus)驱动程序,它负责管理硬件与计算机的连接。例如,PCI总线驱动程序检测插入到PCI槽上的设备并确定设备的资源使用情况,它还能控制设备所在PCI槽的电流开关。
4.2 驱动程序开发环境及设计
项目开发中选择的是Numega公司的Driverstudio驱动程序开发工具包,它是建立在Windows Driver Development Kit之上的驱动程序开发工具,包含了VtoolsD、DriverWorks、DriverNetWorks和SoftICE等开发工具。DriverWorks用于开发普通设备的WDM驱动程序,SoftICE提供了强大的调试工具。在安装Driverstudio之前,还需要安装相应操作系统的DDK,如XPDDK和VC6.0工具。
在Driverstudio驱动程序向导里可以轻易方便地建立起PCI9054的驱动程序框架,而且Driverstudio还提供了PCI9054驱动程序中大量类函数的接口,降低了开发难度,缩短了程序编写时间。调试程序可以使用SoftICE和Driver Moniter,极为方便查错及优化程序设计。

5 结束语
本文通过介绍PCI总线接口协议芯片PCI9054的性能、特点,分析Windows的WDM驱动程序的特点,对所设计的模块结构进行了详细说明,提出了双SBAM结构数据缓存器的应用方案。应用结果表明,该设计可满足数字视频带宽20 MHz以内的高速串行数据流(INDS数据流)的转换与传输,保证了硬件内存大容量读取的高速、实时性。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭