微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于接口芯片的PCI总线接口卡的设计

基于接口芯片的PCI总线接口卡的设计

时间:02-11 来源:互联网 点击:

卡做好后,就可以插入计算机的PCI插槽进行调试。如果硬件电路设计正确,在自检过程中,可以在屏幕上看到系统查找到的PCI设备,并且显示出设备的DID和VID等相关信息。在系统正常启动后,会提示“发现新硬件”,并要求用户安装相应的驱动程序,跳过以后就可以配置EEPROM进而开始调试。对EEPROM的编程有两种方法:一是先用专门的烧录器把数据下载到EEPROM再插入卡中,这种方法修改起来比较麻烦;二是用专用的软件在线写,如PLX公司提供的专用调试软件PLXmon。PLXmon具有以下功能:PCI总线的探测与选择;配置寄存器的检查和修改;内存空间的显示、修改和填充;EEPROM内容的读写等。利用这个工具,我们可以随时对EEPROM的内容进行在线修改,大大提高了效率。值得注意的是每次修改完EEPROM都要对系统进行重启,使PCI配置寄存器和本地空间配置寄存器能够重新加载新的值。

5、驱动程序的编写

  在板卡调试完成后,需要编写驱动程序。驱动程序的开发工具很多,但是多数需要了解操作系统的核心工作机制,难度比较大。经过比较,我们采用了Jungo公司的WinDriver进行驱动程序的开发。利用WinDriver我们不必熟悉操作系统的内核知识就可以快速开发出驱动程序,它对于硬件调试也是一个很好的帮助工具。

  用WinDriver开发PCI设备驱动程序一般有两种方法:一种是使用向导(Driver Wizard), Driver Wizard能够自动生成驱动程序的框架代码,我们只需修改代码,加入定制的功能,再在用户态执行和调试代码就行;另一种是直接在应用程序中调用WinDriver的API函数。

我们在开发驱动程序中采用的是前一种方法,其基本流程如下:

  a. 打开Driver Wizard,在Card InformATIon的设备列表中选中自己的设备,如图3,点击“Generate .INF file”生成安装信息文件;

  b. 点击“下一步”,进入WinDriver 资源定义与测试界面中,如图4, 调试列出的I/O、内存等资源,并定义必要的工作寄存器,如PCI卡上的一些配置寄存器;

  c. 点击“Generate Code",选择VC编译器作为自己的开发语言环境,此时将生成针对硬件设备的文件,包括代码文件、说明文件以及适用于VC编译器的项目文件。

  最后,对向导产生的设备驱动代码框架中添加自己的代码,编译连接后就可以生成对设备进行诊断的控制台程序了。

6、结束语

  本文作者创新点:在以往的接口卡设计中,对于实现ISA总线向PCI总线转换的方法都是采用带ISA接口的接口芯片,如PCI9052,这可以大大简化开发PCI设备的过程。由于课题需要,我们选用了一种不带ISA接口的接口芯片-----PCI9030制作了一个PCI接口卡。经反复调试,该接口电路能够顺利地完成数据传输,已经成功地实现PCI总线与外设的连接,这一方面验证了用专用接口芯片实现PCI总线接口在技术上的可行性,另一方面也为下一步开发PXI模块打下良好基础。

  同时,本文中对接口卡的硬件电路连接、EEPROM的配置、驱动程序的编写等方面都作了比较详细的介绍,这对于那些初次接触PCI总线开发的人有一定的指导意义。

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

网站地图

Top