一种DSP与PCI总线的接口设计

1 引言
dsp+pci数字信号处理方案可利用pc的强大功能实现对dsp的操作控制、数据分析和操作监视等。dsp+pci方案能充分满足数字图像、语音处理、高速实时数据处理等领域的应用,为dsp系统的低成本实现提供了解决方案。
2 ts101s型dsp介绍
本系统采用美国analog device公司的
高性能tiger sharc 101s(简称ts101s)作为主处理器。ts101s处理器劫持32bit和64bit浮点,以及8、16、32和64bit定点处理。它的静态超量结构使其每周期能执行多达4条指令,进行24个16bit定点运算和6个浮点运行。其内部有3条相互独立的128bit宽数据总线,每条连接3个2mbit内部存储块中的一个,提供4字节的数据、指令、i/o访问和14.4gbyte/s的内部存储带宽。以300mhz时钟运行时,其内核指令周期为3.3ns。在发挥其单指令多数据特点后,ts101s每秒可以进行了24亿次40bitmac运算或6亿次80bitmac运算。以300mhz时钟运行时,完成1024点复数fft(基2)仅需32.78μs,1024点输入50抽头fir需91.67μs。ts101s有强大的链路口传输功能,每个链路口传输速度达到250mbyte/s。总的链路数据率达1gbyte/s(4个链路口),超过了外部口的传输速率(800mbyte/s)。
3 pci介绍
pci(peripheral component interconnect)总线是一种不依附于某个具体处理器的高性能局部总线,因此开发pci设备可独立于处理器,具体由一个桥接电路(pci桥)实现对这一层的管理,并实现上下之间的接口数据传送。可以把pci桥描述为实现通用总线与pci总线的地址映射、协议转换、数据缓存等功能的逻辑接口。
3.1 pci桥的实现
开发者可以根据pci总线规范所定义的电气特性、时序要求来进行接口设计。一种方式是使用可编程逻辑器件(fpga/cpld)根据实际需要的功能来设计,这种方式的成本低、灵活性高,但需要对pci总线协议有充分的掌握,或者需要生产可编程逻辑器件的厂商提供pci接口功能模块。由于pci总线的规范较复杂,一般用户都会选择专用的pci接口电路,无需详细理解底层的pci总线协议,而只理解到应用层即可。因此,本文介绍的系统采用后一种方案,pci接口电路采用现在市场上使用较普通的plx公司的pci9054。
3.2 pci9054
pci9054采用先进的plx数据流水线结构技术,是32位、33mhz的pci总线主i/o加速器,符合pci本地总线规范2.2版,有m、c、j三种模式。针对不同的处理器及局总线特性可选,尽量减少中间逻辑;具有可选的串行e2prom接口,本地总线时钟可和pci时钟异步。pci9054内部有6种可编程的fifo,以实现零等待突发传输及本地总线和pci总线之间的异步操作,支持主模式、从模式、dma传输方式,功能强大,可应用于适配卡和嵌入式系统。
4 dsp+pci应用实例
dsp+pci数字信号处理系统的组成如图1所示。模块信号先输入模/数转换器,然后经过由cpld锁存数据到dsp1,经链路口到dsp2,数据处理完后再通过pci9054把数据传到pc。此外cpld还作为pci9054与ts101s的接口逻辑转换。采用pci9054与单个ts101s之间放置双口ram作为缓存的接口方式。dsp采用eprom加载方案。
本系统的特点是以尽量简单的方式来实现系统功能,因此采用了dsp间链路的口互连方式,这样一来,每对链路口互连仅需10条信号线,而采用总线互连方式时需超过100条信号线,可大大简化pcb板的复杂度。二个dsp间保留2个链路通道,总数据速率可达500mbyte/s。路口互连是adsp系统的特有功能,也是adsp处理器能以低成本组成多片高性能信号处理机的主要原因。
4.1 ts101s与pci9054的接口
由于ts101s没有专门的pci接口,而pci9054也仅在m模式下才能实现与mpc850或power quicc等motrola电路的无缝连接,因此,t
s101s与pci9054之间需要可编程逻辑器件进行逻辑转换。出于对研制周期的考虑,采用一种较为简便的通信方式:在dsp与pci桥间插入一个双口ram,双口ram一端的地址数据线接isi101s,另一端的地址数据线接pci9054。通过双口ram转换数据,并作为公共访问缓冲区。这样,pci桥与dsp之间的访问成为间接,可以大大削弹对pci的时序要求,dsp与pci之间只需少量的信号通过cpld来实现逻辑转换,而无需总线仲裁,这种方式的时序简单,控制信号较少,dsp与cpld编程简单,应用更为方便。双口ram的型号为idt70261,容量为16k×16bit。
pci9054的工作方式为从模式,驱动方为pc,数字信号处理机作为local端的主机,中间由公用的双口ram进行读写操作。在时序上,只需几个简单的控制信号进行握手即可实现双向数据传输。由pc主动发出读写命令,可根据需要实现单字节读写,在大多数系统中,这种方式已经满足要求。具体的接口电路如图2所示。
pic9054局部总线侧的信号功能如下所述。
lhold:总线请求信号,由pci9054驱动,高电平有效,有效时表明其正在使用本地总线。
lholda:总线请求应答,由local端设备驱动,在lhold有效后一个周期有效,直至lhold无效后才无效,以向pci9054表明local端未占用总线。
ads:地址阈门信号,低电平有效,表明一个总线访问周期的开始,第一个时钟有效,持续一个lclk,此后地址线有效。
usero:用户输出信号,由pci9054驱动,引入cpld,作为dsp的外部中断请求。
useri:用户输入信号,由外部设备驱动,pci9054可查询到外部设备发出的信号。
lw/r:读写信号,由pci9054驱动。
ready:从模式下为输入信号,当一个访问周期结束时,local端的设备要向pci9054发出ready信号,表明完成本次访问,可开始下一轮访问。
4.2 系统工作方式
由于本系统采用ram缓冲方式,因此pci9054和dsp间只需握手信号即可。通过dsp的外部中断irq和标志引脚flag,以及pci9054的用户输入/输出useri/usero相互配合实现握手,可实现基本的单字节读写,如果需要更复杂的功能,可以加上控制字来实现。地址映射是双口ram的数据宽度为16位,pci9054地址的la1-la14分别接ram的add0-add13,pci映射空间的偏移地址为0-7ffeh,偶地址有效。la15引入cpld后可作为双口ram的片选信号。
建立通讯的过程是pci9054发送lhold信号,cpld返回lholda信号;pci9054发出ads信号,表示一次读写操作开始,此时cpld锁存读写信号lw/r,并转换为ram的r/w或oe信号;cpld给pci9054发送ready无效信号,使其保持等待状态。
信号握手的实现过程是:
pci9054向ram写数据→pci9054通过user0发出握手请求到cpld→cpld向dsp的irq发出中断信号→dsp响应中断→dsp读ram数据。
dsp向ram写数据→dsp通过flag发出握手请求到cpld→cpld向pci9054的useri发出中断信号→pci9054查询到中断→pci9054或ram数据。时序如图3所示。
cpld的程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity pci is
port(
ads:in std_logic;
lclk:in std_logi
c;
lwr:in std_logic;
lhold:in std_logic;
lholda:out std_logic;
ready:out std_logic;
oe:out std_logic;
rw:out std_logic);
end pci;
architecture pci_arch of pci is
signal signal_0:std_logic;
begin
process(lclk)
begin
if lclk'event and lclk='1'then
if lhold='1'then
if ads='0'then
signal_0<='1';
elsif ads='1'then
signal_0<='0';
end if;
end if;
end if;
if lclk'event and lclk='1'then
if lhold='1'then
if lwr='0'then
oe<='0';
rw<='1';
elsif lwr='1'then
oe<='1';
rw<='0';
end if;
end if;end if;
if lclk'event and lclk='0'then
if lhold='1'then
if signal_0='1'then
ready<='0';
elsif signal_0='0'then
ready<='1';
end if;
end if;
end if;
end process;
process(lclk,lhold)
begin
if lclk'event and lclk='0'then
if lhold='1'then
lholda<='1';
elsif lhold='0'then
lholda<='0';
end if;
end if;
end process;
end pci_arch;
5 结束语
本文介绍的dsp与pci总线的接 接方案灵活简单,减小了布板的复杂度,简化了pci总线要求的时序,缩短了开发周期。采用该方案设计的数据处理系统工作稳定,已应用在低频信号检测领域中。

关于功率限制及防逆流解决方案的介绍和应用
行业 | 数字经济时代加速到来 超算进入融合时代
彩电产业显低迷,康佳业绩逆势增长
一文带你全面了解汽车电脑ECU的内部构成、功能模块
城市照明翻转力——城市照明3.0时代来临
一种DSP与PCI总线的接口设计
誓言要和小米拉开高端机差距,华为要将P10再创售价之最!
vivoX9plus星空灰和红米Note4X同一天发布,谁才最佳是情人节礼物?
OPPO R15火爆创下新高 京东、天猫、苏宁拿下销量/销售额双料冠军
Banana Pi 开源社区发布BPI-M6开源硬件开发板,支持6.75TOPs算力
热力膨胀阀选型标准
在军事和航空航天系统中迁移安全关键型软件
MU-MIMO是什么
改进的超薄隔膜助力350 Wh/kg锂金属电池
远程控制自动地板清洁机器人DIY图解
韩国46家电子企业共同拓展中国内陆市场
大数据技术在个应用领域面临哪些挑战
1000MW机组高加退出对机组的影响
NetSpeed Systems推出SoC芯片内部互连解决方案Orion AI
第二代多处理器SoC,实现最佳低成本电源解决方案