打印

TMS320VC5402DSP与51单片机的接口设计技术

[复制链接]
1515|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Peonys|  楼主 | 2018-7-16 12:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TMS320VC5402DSP与51单片机的接口设计技术

利用双口RAM实现   

由于DSP的数据是16位,而单片机的数据是8位,所以TMS320VC5402与双口RAM的接口并无特别之处,但是89C51与双口RAM之间的接口电路中就需要对89C51进行总线扩展了。具体做法是利用锁存器74HC373的锁存功能,通过对其使能信号的控制,进行分时读写,实现数据总线的扩展,即利用锁存器作为虚拟总线。DSP,单片机与双口RAM之间的接口电路如图1所示。




图1 通过双口RAM实现的接口电路

双口RAM必须采用一定的机制来协调左右两边CPU对他的读写操作,否则会出现读写数据的错误。通常可以用中断、硬件、令牌和软件这4种方式来协调双方。在接口电路中利用89C51的最低地址位A0把双口RAM的存储空间分为奇、偶地址两个空间。其中,奇地址空间专供89C51写,偶地址空间专供89C51读。那么只需对VC5402的软件做相应处理即可,即VC5402对双口RAM的奇地址空间只读,对偶地址空间只写。这样就避免了DSP和单片机对双口RAM同一地址单元的写入操作。另外,在对双口RAM进行访问之前,单片机和DSP首先对本端的BUSY信号进行查询,只有本端/BUSY信号无效时才进行读写操作,进一步保证了数据读写的可靠性。
  
通过串口实现
  
VC5402多通道缓冲串行口(McBSP)主要特点:双缓冲区发送,三缓冲区接收以便数据的连续性;接收与发送的帧同步、时钟信号独立;多通道发送和接收,最多可以到达128个通道;数据大小可为8,12,16,20,24和32b;μ率和A率压缩;帧同步、数据时钟极性可编程;内部时钟和帧同步可自行设定。
  
VC5402串口通过16b宽度的控制寄存器与内部总线通信。
  
数据接收过程:数据从输入引脚(DR)移位到接收移位寄存器(RSR),然后拷贝数据到接收缓冲寄存器(RBR),接着把数据拷贝到数据接收寄存器(DRR),CPU或者DMA控制器读取DRR。
  
数据输出过程:CPU或者DMA把数据写到数据传输寄存器(DXR),再通过寄存器(XSR)移位到数据输出引脚DX6。
  
对串口寄存器的访问是间接寻址方式,例如要对McBSP数据寄存器进行访问,首先写串口控制寄存器SPCR子地址到子地址寄存器SPSA,然后对数据寄存器进行访问。硬件连接如图2所示。


图2 通过McBSP实现的硬件连接
  
McBSP的位时钟由内部采样率发生器产生,为UART波特率×16。
  
在软件的设计中McBSP的16位代表UART的1位。发送时,软件将UART的每一位扩展为16位,再由McBSP发送。接收时,软件将McBSP接收的16位压缩为UART的1位,并进行合并。软件还应负责处理UART的起始位、奇偶校验位和停止位。
  
通过HPI和电平转换器件实现
  
DSP芯片中的HPI(主机接口)是为了满足DSP与其他的微处理器接口而专门设计的。他分为HPI—8和HPI1—6,分别针对具有8位和16位数据线的单片机。每一种又分为标准型和增强型,区别在于标准型只可以访问固定的地址空间,而增强型可以访问整个DSP的片内存储器。利用C5402的增强型8位并行主机接口(HPI)与单片机通信。
  
VC5402DSP的外部I/P引脚用的是3.3V的逻辑电平,而大部分51单片机用的是5V的逻辑电平。前者输出高电平,最小值为2.4V;后者输入高电平,最小值为2.0V。所以前者的输出可以直接接到后者的输入。但是前者允许输入高电平最大值为3.6V,而后者的输出高电平一般都在4.6V以上。所以前者的输入和后者的输出不能直接连接,需要做电平转换。如果引脚数量少,可以直接用三极管电阻来转换。这里由于引脚较多,所以选用TI74LVC16245A芯片来进行电平转换。硬件电路如图3所示。



图3 通过电平转换芯片实现
  
HPI的数据传输分为2部分:外部传输和内部传输。外部传输是指主机和HPI寄存器之间的传输,由主机发出指令完成。内部传输是指HPI寄存器和DSP内部RAM之间的传输,由DSP内部的DMA控制器自动完成。主机在进行外部传输时,要先检查内部传输是否完成,这是通过检测HRDY信号实现的。外部传输操作的一般步骤是:检查HRDY信号的电平。为高,表示可以进行传输;为低,表示DSP正在进行内部传输,此时不能进行外部传输。主机发出指令,设置HCNTL0,HCNTL1,BHIL,HRˆW信号的状态,以确定读或写的寄存器以及字节的选择。主机发出时序控制信号,按时序进行操作,从而完成一次外部传输。

结语

双口RAM实现VC5402和89C51之间的数据通信,极大地提高了数据传输速度和可靠性,能满足控制系统的实时、高速的控制要求。

利用McBSP的方法,硬件结构简单所用芯片少,但是将占用片上系统中为数不多的同步串行口资源,而且也要占用DSP的处理时间,他是用于传输数据较少,传输速率慢而又希望DSP与单片机之间是紧耦合的场合。

HPI方案比较简单,附加硬件少、成本低、数据吞吐量非常大,但不适合于实时控制的场合,因为工作中可能将DSP挂起,影响实时工作。而一般应用在对成本比较敏感而数据量又比较大的场合。


相关帖子

沙发
Peonys|  楼主 | 2018-7-16 12:27 | 只看该作者
TMS320VC5402DSP与51单片机的接口设计技术

文档1.pdf

127 KB

使用特权

评论回复
板凳
firstblood| | 2018-7-16 22:30 | 只看该作者
双口RAM必须采用一定的机制来协调左右两边CPU对他的读写操作,否则会出现读写数据的错误。通常可以用中断、硬件、令牌和软件这4种方式来协调双方。

使用特权

评论回复
地板
kkzz| | 2018-7-17 16:38 | 只看该作者
速度能够跟上吗?

使用特权

评论回复
5
hudi008| | 2018-7-17 16:38 | 只看该作者
DSP的数据是16位,而单片机的数据是8位,这样搭配太难。

使用特权

评论回复
6
lzmm| | 2018-7-17 16:39 | 只看该作者
有实现的代码吗

使用特权

评论回复
7
minzisc| | 2018-7-17 16:39 | 只看该作者
通信的稳定性怎么样

使用特权

评论回复
8
selongli| | 2018-7-17 16:39 | 只看该作者
主要考虑数据读写的可靠性

使用特权

评论回复
9
fentianyou| | 2018-7-17 16:40 | 只看该作者
TMS320VC5402自己就能解决了。

使用特权

评论回复
10
xiaoyaodz| | 2018-7-17 16:40 | 只看该作者
双缓冲区发送?

使用特权

评论回复
11
febgxu| | 2018-7-17 16:40 | 只看该作者

使用特权

评论回复
12
sdlls| | 2018-7-17 16:41 | 只看该作者
DSP的数据是16位,单片机的数据是8位,这都能行?

使用特权

评论回复
13
pixhw| | 2018-7-17 16:41 | 只看该作者
74HC373的锁存功能怎么通信呢

使用特权

评论回复
14
sdlls| | 2018-7-17 16:41 | 只看该作者
单片机的读取速度能够跟上吗?

使用特权

评论回复
15
kkzz| | 2018-7-17 16:41 | 只看该作者
怎么不使用FPGA呢?

使用特权

评论回复
16
febgxu| | 2018-7-17 16:41 | 只看该作者
好就没有使用过51单片机了。

使用特权

评论回复
17
hudi008| | 2018-7-17 16:42 | 只看该作者
推荐DSP+ARM的形式

使用特权

评论回复
18
xiaoyaodz| | 2018-7-17 16:42 | 只看该作者
数据的连续性怎么保证的

使用特权

评论回复
19
lzmm| | 2018-7-17 16:42 | 只看该作者
软硬件是怎么实现的呢

使用特权

评论回复
20
fentianyou| | 2018-7-17 16:42 | 只看该作者
这样的双核处理器不用设计了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

640

主题

901

帖子

5

粉丝