基于FPGA的PCIE接口设计
7
基于FPGA的PCIE接口设计
第三章 设备驱动的程序
3.1选择开发工具
在毕业设计过程中,如何高效稳定的开发出可靠地驱动程序,在开发工具的选择上尤为重要,经过多方了解,最终我选择了Jungo公司的WinDriver软件作为这次毕设的开发工具,使用这个软件,可以更加快速的开发PCI和PCIE驱动程序,而且利用WinDriver开发不需要牵涉到很低层的东西即可在很短的时间里编出驱动程序,不需要熟悉操作系统的Kernel层或DDK及任何驱动程式,WinDriver可以让操作者在用户状态下, 利用使用者模式来开发出所需的驱动程序,而且驱动程序的运行效率也得到了保障。经过多方的试验,已经成功的案例,使用WinDriver开发驱动程序,可以满足高数据率的传输。
在使用Windriver开发的过程中,我觉得效率问题应该是最重要的,从毕设的过程中可以看出,WinDriver生成驱动的代码效率十分的高,
3.2 使用WinDriver设计驱动 3.2.1 WinDriver操作步骤
(1)双击WinDriver图标,就可以打开软件了,打开软件后可以看到WinDriver的初始界面,如3.1图所示样子的对话框。在使用软件的过程中,如果要新建一个应用,只需要点击左侧的New host driver project按钮,就可以新建一个驱动项目了。如果你已经有了一个项目,只需要点击对话框中右侧的按钮Open anexisting project打开已经建立好的项目。如果用户已经打开了软件,在这个状态下如果新建一个项目,这个时候可以通过单击对话框左侧的按钮同样也会出现如3.1图所示的画面。
图3.1
(2)如果我们想新建一个主机驱动程序,那需要点击对话框左侧的按钮,接下来就可以看到如3.2图所示的对话框,在对话框左边可以选择要开发的设备驱动类型。左侧的列表中会出现当前电脑中安装的所有设备驱动类型,如果将设备连接到电脑上,左侧还会显示已经连接到电脑但是需要安装驱动程序的设备所需要的驱动类型。所以在使用WinDriver软件开
8
基于FPGA的PCIE接口设计
发前,需要将设备先连接到电脑上,这样软件才可以识别设备。
图3.2
(3)如果把开发板插在PCIE插槽上,计算机状态栏中会显示发现新设备的标示。 (4)然后计算机会弹出如3.3图所示的界面,界面会提示用户使用新硬件安装向导为设备逐步安装驱动程序。因为计算机中没有合适的驱动程序,所以直接选择取消即可。然后计算机会弹出发现新硬件的设备的提示,并提示硬件安装过程中出现一个问题,您的新硬件
可能无法正常运行,不需要理会这个弹窗,直接下一步即可。
图3.3
(5)双击WinDriver的图标打开软件或者回到刚才已经打开的软件界面??择左面的New host driver project图标按钮??以看到如下图所示的画面了。注意??倒数第三行的位置??们看到出现了“”一项??击选中此行??以看到如3.4图的画面。在Device Description栏中出现了对此设备的描述信息。
9
基于FPGA的PCIE接口设计
图3.4
(6)选择对话框右上角的Generate .INF File按钮??弹出图3.5所示对话框。用户可以在Device name一栏中输入自定义的设备名称??他内容不用更改。单击Next按钮会出现提示保存的对话框如图3.6所示,默认状态下会保存在WinDriver目录下??户也可以更改保存位置,但是一定要记住这个文件的保存位置,因为在后面安装设备驱动程序时会用到的。在文件名一栏内输入一个名字??击保存就可以了。
图3.5
10
基于FPGA的PCIE接口设计
图3.6
(7)单击保存后,界面出现保存的信息。等待几秒钟整个软件画面会切换到图3.7所示。可以看到WinDriver已经与USB设备建立了连接关系。此时用户可以对设备进行测试。
图3.7
3.3 驱动核心代码
//功能:32位存储器写操作 //参数:
11