用FIFO实现DSP间的双向并行异步数字通信

发布者:Ziyu2022最新更新时间:2013-02-11 来源: 21ic关键字:FIFO  双向并行异步数字通信 手机看文章 扫描二维码
随时随地手机看文章
   

在多CPU的分布式信号处理系统中,往往涉及CPU间的通讯与数据交换,大数据量的数据传输一般采用DMA方式,而小数据量的数据交换采用并行接口则比较快速灵活。因此,对于传输速度要求较高的DSP间的小数据量的数据交换及通讯来说,要提高DSP的工作效率,不仅要求并行接口的响应快,而且必须采用异步方式以免相互等待。本文介绍了采用CYPRESS公司的FIFO芯片CY7C419来实现DSP间的双向并行异步通讯接口。该方法不仅比用TTL锁存器的方式速度快,而且译码逻辑简单,另外,由于FIFO芯片有一定的深度(256个),因此,在少于256个数据传输时,可实现零等待时间。

1 FIFO芯片简介

全满(FF)和全空(EF)标志用以防止数据溢出或不足;

扩展输入(XI)、扩展输出(X0)、首次装载(FL):用以实现无限的宽度及深度扩展,深度扩展技术可使操纵控制信号从一个元件并行传至另一个元件,因而消除了传输延迟的串行附加,其最高读、写速度可达50MHz,读写信号低电平有效;

当CY7C419独立使用或多片实现宽度扩展结构时,半空标志(HF)输出有效,在深度扩展结构中,该此脚输出扩展输出信息(XO)并告知下一个FIFO;

D0~D8为数据输入,Q0~Q8为数据输出。

R、W及MR分别为读、写及复位信号的输入端,它们均为低电平有效。

2 硬件结构与通讯流程

2.1 硬件结构

利用FIFO实现DSP间双向并行异步通讯的结构原理如图2所示。DSP56001和ADSP21020分别树熊美国Motorola和ADI公司的DSP芯片。两个CY7C419芯片U1、U2分别用于DSP56001和ADSP21020间双向并行接口的一个方向,其中U1用于完成DSP56001向ADSP21020的数据传送,U2则用于完成ADSP21020向DSP56001的数据传送。U1的全满标志(FF)与U2的全空标志(EF)通过缓冲器74LS245与DSP56001的数据总线相连,该缓冲器被映射为DSP56001数据区的一个地址单元(0x600),因此,DSP56001通过对该地址单元的读操作便可获知U1是否已写满以及U2是否有数所要读。同理,U2的全志(FF)与U1的全空标志(EF)通过一缓冲器74LS245连于ADSP21020的数据总线,该片74LS245补映射为ADSP21020数据区的一个地址单元(身份地址+0x100000),这样ADSP21020通过对该地址单元的读操作也可获知U2是否已写满以及U1是否有数据要读。另外,DSP56001对U1的写操作、对U2的读操作映射为对其数据存储区一个地址单元(0x200)的写、读操作;而ADSP21020对U2的写操作和对U1的读操作则被映射为对其数据存储区地址单元(身份地址+0x180000)的写、读操作。两个DSP芯睡均可同时对U1、U2进行复位操作。

DSP56001对双向口的读56FIFOR、写56FIFOW、复位56FIFORST及对标志口状态56FLGR的读信号可由DSP56001的地址线与读写信号译码获得;ADSP21020对双向口的读21FIFOR、写21FIFOW、复位56FIFORST及对标志口状态56FLGR的读信号则可由ADSP21020的地址线与读写信号译码获得。各译码输出的逻辑表达式如下:

 

 

56FIFOR=AdEn+Ma10+Ma9+MRD

(映射地址为:0x200)

56FIFOW=AdEn+Ma10+Ma9+MWR

(映射地址为:0x200)

56FIFOORST=AdEn+Ma10+Ma9+MWR

(映射地址为:0x400)

56FLGR=AdEn+Ma10+Ma9+MRD

(映射地址为:0x600)

AdEn=DS+Ma15+Ma14+Ma13+Ma12+Ma11

21FIFOR=IDMAT+A21+A20+A19+RD

(映射地址为:身份地址+0x180000)

21FIFOW=IDMAT+A21+A20+A19+WR

(映射地址为:身份地址+0x180000)

FIFORST=(IDMAT+A21+A20+A19+WR)56FIFORST

(映射地址为:身份地址+0x200000)

21FLGR=IDMAT+A21+A20+A19+RD

(映射地址为:身份地址+0x100000)

 

 

为区分两个DSP的读、写信号,在逻辑表达式中用MRD和MWR分别表示DSP56001的读、写信号RD和WR。ADSP21020作为主芯片同时与多个DSP56001(图2仅画出其中一个)相连,因此每一个DSP56001均有一个不同的身份地址,表示该身份地址的地址线(A25~A22)的译码结果为IDNAT。为简化硬件电路,译码逻辑均采用PAL器件实现。

2.2 软件流程

图3所示为DSP56001对并口进行读、写数据的软件流程。ADSP21020向DSP56001传送数据及从并行口读取由DSP56001传送过来的数据步骤与上述流程相同。对DSP56001和ADSP21020来说,并行接口均为异步双向口。当DSP56001要向ADSP21020传送数据时,首先读状态标志口(口地址0x600),若标志第0位为0(全满),则重复读状态标志口,直至标志第0位为1(数据未满,已被ADSP21020全部或部分读出)时,DSP56001才向接口(地址0x200)写入数据;当DSP56001要读取由ADSP21020传送过来的数据时,首先读状态标志口(口地址0x600),若标志第1位为0(全空),则重复读状态口,直至标志第1位为1时(不空,已邮ADSP21020写入数据),DSP56001读接口(地址0x200)即可获得所需数据。

该方法已成功应用于一台自动研制的基于DSP的实时模拟及被频信号采集与处理系统。实际运行结果表明,该方法不仅速度较高,而且译码逻辑也十分简单。

关键字:FIFO  双向并行异步数字通信 引用地址:用FIFO实现DSP间的双向并行异步数字通信

上一篇:SOPC大规模可编程专用集成电路的快速开发
下一篇:Almalence将其图像处理软件移植到Tensilica新的IVP 图像/视频数字信号处理器上

推荐阅读最新更新时间:2024-05-02 22:33

msp430单片机接收(FIFO实现)不阻塞CPU
/**************** UART的高效率使用 串口接收一字节程序, 要求利用FIFO结构与接收中断 不阻塞CPU继续执行后续代码 且允许CPU随时读串口 Author:七禾页8 site:创客基地 *******************/ #include msp430x14x.h #include iic.h #define RXBUF_SIZE 32 //接收FIFO的最大容量 unsigned char RX_BUFF ; //接收FIFO缓冲区数组 unsigned int UART_InpLen = 0; //接收FIFO内待发出的字节数 unsigned int RX_IndexR
[单片机]
msp430单片机接收(<font color='red'>FIFO</font>实现)不阻塞CPU
STM32进阶之串口环形缓冲区实现 FIFO
队列的概念 在此之前,我们来回顾一下队列的基本概念: 队列 (Queue):是一种先进先出(First In First Out ,简称 FIFO)的线性表,只允许在一端插入(入队),在另一端进行删除(出队)。 队列的特点 类似售票排队窗口,先到的人看到能先买到票,然后先走,后来的人只能后买到票 队列的常见两种形式 普通队列 在计算机中,每个信息都是存储在存储单元中的,比喻一下吧,上图的一些小正方形格子就是一个个存储单元,你可以理解为常见的数组,存放我们一个个的信息。 当有大量数据的时候,我们不能存储所有的数据,那么计算机处理数据的时候,只能先处理先来的,那么处理完后呢,就会把数据释放掉,再处理下一个。那么,已经处
[单片机]
STM32进阶之串口环形缓冲区实现 <font color='red'>FIFO</font>
FIFO实现DSP间的双向并行异步通讯
    摘要: 介绍了利用CYPRESS公司的FIFO芯片CY7C419实现DSP间双向并行异步通讯的方法,该方法简单实用,速度快,特别适用于小数据量的数据相互传送。文中给出了CY7C419的引脚功能以及用FIFO实现DSP间双向并行异步通讯的硬件结构和软件流程。     关键词: FIFO 并行接口 DSP异步通讯 CY7C419 在多CPU的分布式信号处理系统中,往往涉及CPU间的通讯与数据交换,大数据量的数据传输一般采用DMA方式,而小数据量的数据交换采用并行接口则比较快速灵活。因此,对于传输速度要求较高的DSP间的小数据量的数据交换及通讯来说,要提高DSP的工作效率,不仅要求并行接口的响应快,而且必须
[应用]
MAX3108带有FIFO的SPI UART
小尺寸的MAX3108通用异步收发器与128字的接收和发送FIFO每个(UART)是控制通过串行I ² C或SPI™控制器接口。自动休眠和关机模式,有助于减少非活动期间的功耗。低为500μA(最大值)电源电流和微小的25焊球WLP封装(2.1毫米x 2.1毫米)封装使低功耗便携式设备MAX3108理想。在MAX3108工作在低电源电压的1.71V至3.6V。   波特率高达24Mbps使MAX3108为今天的高数据速率的应用场合。锁相回路(PLL),predivider,和小数波特率发生器允许高分辨率波特率编程和尽量减少对参考波特率时钟频率的依赖。   四GPIO可作为输入,输出或中断输入。当配置为输出,它们可以被编程为开漏
[模拟电子]
MAX3108带有<font color='red'>FIFO</font>的SPI UART
在EPP模式下利用并口实现与DSP高速数据通信
    随着技术的进步和大量外设的增加,不仅要求计算机并行口可以连接打印机,而且可以连接到其他外设,并要求能够双向传输数据,对高速外设还要求高速数据传输,如DPS。在科技飞速发展的今天,DSP的处理能力和速度也快速提高,广泛用户在科学研究、军事及通信等电子领域。在这些应用中免不了要和PC机进行高速数据传输。计算机并口传统的传输模式为SPP(标准并口),数据传输方向是从计算机到外围设备,只能输出数据,不能输入数据。这就限制了并行口高速数据通信的应用。于是我们在EPP模式下设计了一种实现DSP与PC机之间进行高速数据传输的方案。 在EPP模式下实现数据传输 EPP协议是一种与标准并行口兼容且能完成双向数据传协议。该协议定义的并
[嵌入式]
基于FIFO的目标距离脉冲模拟电路
1引言 雷达是无线电测向和测距,测距是其主要的功能之一,雷达是通过测试发射脉冲和目标回波之间的时间差来测量目标距离的 。雷达模拟器的主要功能是逼真地模拟雷达接收到的目标回波。根据雷达模拟器的输出频率可以将雷达模拟器分为射频雷达模拟器、中频雷达模拟器及视频雷达模拟器。在雷达模拟器中,目标航路通常是由计算机实时计算产生的。如何将实时计算的目标距离数据转化为模拟的目标回波是设计雷达模拟器需要解决的关键问题之一。对高重复频率的雷达而言,由于存在距离模糊,雷达通常使用多个不同的重复频率,这就要求回波模拟电路必须具备适应不同重复频率的功能,而且在雷达切换重复频率的瞬间模拟电路必须能够快速适应。 我们在研制某种型号雷达模拟
[模拟电子]
51单片机系统与标准PC键盘的接口模块设计
概述 在单片机系统中,当输入按键较多时,在硬件设计和软件编程之间总存在着矛盾。对于不同的单片机系统需要进行专用的键盘硬件设计和编程调试,通用性差,使项目开发复杂化。标准PC键盘在工艺与技术上都已相当成熟,而且工作稳定,价格低廉。本设计实现了一个接口模块,它将标准PC键盘发出的位置扫描码,变换为标准的ASCII码和OEM扫描码或Windows虚拟键代码,再以并行或串行方式传送给上位单片机。 接口模块的特点 该模块在PC键盘与上位单片机之间起转换作用,它屏蔽了与PC键盘进行数据和命令交互的复杂过程,大大简化了上位单片机系统的输入设计;它实现了类似DOS操作系统中键盘中断服务程序的功能,使设计人员只需关心接收按键的结果,并可使
[单片机]
51单片机系统与标准PC键盘的接口模块设计
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved