新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 用FIFO实现DSP间的双向并行异步通讯

用FIFO实现DSP间的双向并行异步通讯

作者: 时间:2010-09-13 来源:网络 收藏

  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)

用FIFO实现DSP间的双向并行异步通讯

  为区分两个的读、写信号,在逻辑表达式中用MRD和MWR分别表示56001的读、写信号RD和WR。A21020作为主芯片同时与多个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的实时模拟及被频信号采集与处理系统。实际运行结果表明,该方法不仅速度较高,而且译码逻辑也十分简单。


上一页 1 2 3 下一页

关键词: DSP

评论


相关推荐

技术专区

关闭