新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于VC++的FPGA重配置方案设计

基于VC++的FPGA重配置方案设计

作者:时间:2012-02-19来源:网络收藏

Windows XP操作系统中的驱动程序开发主要是Win32模式驱动程序,即WDM(Win32 Driver Model)。在WDM驱动模型中,每个硬件设备至少有两个驱动程序:总线驱动程序和功能驱动程序。其中总线驱动程序由Windows提供,需要考虑的是负责实现PCI设备逻辑功能的功能驱动程序。所以,驱动程序分为以动态链接库形式的仪器驱动程序和以WDM格式的底层的接口驱动程序。前者用于实现对目标硬件的操作,即下载数据流对;后者则可实现资源分配、接口管理及数据的控制传输。

3 数据分析

本设计中的应用软件所要下载的配置数据流是由硬件设计者根据需求提供的,是以二进制形式存储的.rpd文件。可以根据不同的来选择不同的外围存储芯片(如EPCS1,EPCS16),从而生成不同大小的配置数据流。由于软件设计中,每次下发的数据一定,所以,由数据流的大小就能决定循环发送数据的次数。

由于硬件设计者提供的.rod文件中的数据并不是原始的配置数据,而是所要配置的数据经过反转生成的新的配置数据流,所以,要先将.rpd中的数据反转处理后再发送给硬件。通过用户界面可以二进制的形式打开.rod文件并读数,将配置数据流以单字节的形式暂存在一数组中,然后对数据进行反转处理。数组中每个单字节数据的反转过程为:unsigned char strl=DE,反转后为strl=7B,定义无符号char型变量bi(i为小于8的整数),可由下面的转换完成:



由此可以得到:strl=7B。对反转处理生成的单字节数据经过组合处理后,最终便可得到对进行配置所需要的数据流。

4 仪器驱动函数的设计

根据硬件设计,仪器驱动需将配置数据以长整型的形式发送,即32位。因为配置数据的长度为16位,所以发送数据时,每次要传两个数,高16位和低16位分别放一个数。当应用程序打开.rpd文件时,应将其中配置数据流保存在数组ww[f]中,而反转处理后得到的数据依然放在数组ww[f]中并覆盖原来的数据,然后根据公式(1)进行组合处理,以得到最终要发送的32位数据并保存在长整型数组comdata[f]中。数组comdata[j]中的每个数据实际上包含两个配置数据,第一个数放在高16位,第二个数放在低16位,依次类推。确定好数据后,便可以调用动态连接库中的发送数据函数并发送给硬件。

comdata[j]=(ww[i]24)O(ww[i+1]16)O(ww[i+2]8)Oww[i+3](1)


评论


相关推荐

技术专区

关闭