一种DSP与PCI总线的接口设计
所示。
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总线要求的时序,缩短了开发周期。采用该方案设计的数据处理系统工作稳定,已应用在低频信号检测领域中。
- μC/OS-II下通用驱动框架的设计与实现(07-23)
- 基于S3C44B0X+μcLinux的嵌入式以太网设计(07-08)
- 基于DSP Builder的VGA接口设计(04-10)
- 基于DSP的嵌入式显微图像处理系统的设计(06-28)
- DSP和Flash接口技术的实现(08-15)
- dsPIC33F系列DSC的 SD存储卡接口设计(01-05)
