欢迎来到天天文库
浏览记录
ID:25410045
大小:54.00 KB
页数:5页
时间:2018-11-20
《基于pci总线的dsp数据运算平台设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于PCI总线的DSP数据运算平台设计
2、第1内容加载中...随着DSP的性能不断提高,其应用领域也不断扩大。由于DSP的硬件结构对于数字信号处理特别适用,同时,PCI总线的高带宽,动态配置,大的地址空间等诸多特点,使得在PC上PCI总线完全取代ISA总线已经是大势所趋,目前新一代的主板上面已经几乎不提供ISA槽。为了科学研究以及实际应用的需要,我们开发了基于PCI总线的DSP数据运算系统,主机程序通过PCI总线与DSP交换数据,可以提供高速实时的数据运算能力。系统可以广泛的应用在语音处理,数字加密,图像处理,多路数据流复用等实际应用中。基于
3、PCI总线的DSP数据运算平台整个的运作流程是这样的:PC端运行服务器程序,与DSP上运行的客户机程序通过PCI总线进行数据交换,通信由程序中设计的信号灯或者硬件中断。PC端的服务器程序通过PCI总线有访问整个DSP内部的存储器内容的能力,将所需要运算的数据送给DSP运算,设置信号灯,当DSP运算完成后则取消信号灯或者中断主机,主机将运算完的数据取回。所需要解决的问题主要有:*PCI接口芯片的选择;*PCI与DSP的接口设计;*DSP系统的自举装入(BootLoad);*主机与DSP通信驱动软件的编制。目前PCI接口卡的设计一般有两种方法,
4、第一种是基于将PCI接口完全集成到ASIC中,这样做的好处是集成度高,量产的生产成本低,直接用成熟的IP核,但是对于普通的开发者来说购买现成的PCI控制器的IP的价格昂贵,难以接受。当然也可以自己根据PCI协议在FPGA中实现PCI总线接口控制器,但是由于PCI总线协议自身的复杂性,要想在短期内做到操作稳定,难度很大。所以一般开发PCI接口卡的时候都使用现成的PCI接口芯片。目前市场上面的PCI接口芯片有不同公司的多种型号产品,不同的产品价位相差很大,而且功能与使用的复杂性也有很大不同。我们在设计前,要广泛的调研,根据项目需求选择合适的PC
5、I接口芯片来设计系统,就会事半功倍。目前市场上常见的有AMCC,PLX,CYPRESS等公司的桥芯片,各个型号的PCI接口芯片的比较如表1所示:综合项目需求,成本以及开发难易等几个问题来考虑,选择了PLX的9030芯片作为本设计的PCI运算板的接口芯片。TMS320VC5402是TI公司的5000平台中力推的一款芯片,主频可达100MHz,批量价格仅5美元,片上资源有40位ALU,17×17乘法器,4K×16位ROM,16K×16bitSARAM,8位扩展主机接口(HPI),6路DMA控制器,两个多通道带缓存串口(MCBSP),两个16位定
6、时器。称得上价格低廉,性能优异,在嵌入式领域,无线设备,数字运算等领域得到了广泛的应用。VC5402的引脚大多数有内部的斯密特触发器以及上拉电阻,对于设计者来说外部电路设计相对简单,不用作特别的处理,但是中断源输入必须从外部接上拉电阻。DSP与主机的数据交互是PCI运算平台的设计关键。主机可以通过VC5402的主机接口中的三个HPI寄存器访问DSP芯片内16K的DRAM。三个HPI寄存器的具体定义如下:*HPIA:HPI地址寄存器,存放当前所访问的DSP的内存地址;*HPIC:HPI控制寄存器,包括HPI的控制与状态位;*HPID:HPI数
7、据寄存器,当前HPIA所在地址的数据;主机要读取DSP中某个地址的数据时,首先向HPIA中送入所需访问的地址,然后读取HPID的内容即可;同样,主机要向DSP中某个地址写入数据的话,首先向HPIA中送入所需访问的地址,然后将数据写入HPID就可以了。HPI寄存器由HDS1,HDS2地址线选择,结合HRARGIN-TOP:0px;MARGIN-BOTTOM:0px"align=justify>hcs<=notlad7;has<='1';hds1<=ber=MINUS_ONE_LONG;device.SlotNumber=MI
8、NUS_ONE_LONG;device.DeviceId=MINUS_ONE_LONG;device.VendorId=MINUS_ONE_LONG;device.SerialNumber[0]='/0';rc=PlxPciDeviceFind(device,j);//J为在人机界面中选中的设备的串号。3.通过HPI访问DSP片内的SRAM的功能模块。以下函数调用实现了完整的一次访问DSP的内部SRAM的功能。即首先写入DSP,将要访问的DSP的地址写入到HPIA寄存器,然后将要写入指定位置的SRAM的内容写入到HPID中去。然后读出DSP
9、片内SRAM的内容,先读出HPIA的地址,然后读出HPID的内容,以验证写入是否正确。//hpial,hpiah,hpidl,hpidh为预先定义的宏函数,分别指向HPI的地址与
此文档下载收益归作者所有