CPLD与TMS320VC55x的McBSP接口设计?

网友投稿 294 2022-10-30

CPLD与TMS320VC55x的McBSP接口设计?

【摘 要】 根据McBSP和

的时序分析,采用VHDL语言设计了CPLD模拟McBSP并与之进行全双工通信,给出了实际的

时序结果。

关键词:McBSP,CPLD,VHDL,

在许多数字信号处理应用系统中,DSP担任的工作是快速而复杂的核心运算,但是,在运算的同时DSP对数据输入输出的控制是有限的,DSP与CPLD(复杂可编程

)或

(现场可编程阵列)相结合的设计则可以有效地弥补这种不足。笔者设计的基于DSP实时视频编解码系统,采用

)公司的

高性能低功耗TMS320VC55x系列DSP芯片TMS320VC5509做视频双向编解码运算,但如果DSP还承担视频输入输出的工作,那么视频编解码运算的实时性将得不到保证,因此,这里采用

公司的CPLD芯片EP1K50作为视频输入输出的缓冲和控制,DSP与CPLD之间的通信采用McBSP串口(多通道缓冲串口)

方式。

McBSP串口一般通过六只引脚使得数据通路和控制通路与外部设备相连。数据经McBSP串口与外设的通信通过DR和DX引脚传输,控制同步信号则由CLKX、CLKR、FSX、FSR等四只引脚来实现。其基  本的发送和接收时序如图1所示。  由于McBSP串口的数据线DR和DX有缓存寄存器,帧同步信号FSX、FSR,以及时钟信号CLKX、CLKR具有可编程性,使得其与CPLD之间的接口设计非常灵活,设计的步骤可以是:先对CPLD进行编程,然后根据所产生的数据发送和接收的波形特点,对McBSP串口编程,与CPLD的波形相匹配。

2 CPLD的内部结构设计

数据输入通道是由视频采样芯片SAA7114H、CPLD和C5509的McBSP串口组成,视频采样数据从SAA7114H出来之后,在CPLD的内部输入F

O(先入先出队列)中缓冲一下,由于McBSP是串行的,所以在CPLD内部要进行并串转换,串行输出,同时还要产生同步时钟给McBSP串口。

数据输出通道是由McBSP串口、CPLD和LCD(液晶)控制器组成,解码后的视频数据经过McBSP串行进入CPLD,在其内部串并转换之后,送入内部的输出FIFO暂时缓存一下,然后进入外部的LCD控制器,具体流程见图2。

CPLD内部不仅有逻辑控制,而且还有存储器(FIFO),故采用Altera公司的具有存储阵列ACEX系列的EP1K50芯片。EP1K50是Altera公司新近推出的性价比高的系统可编程芯片(SOPC),内部有50K个典型门,40kbit存储单元,双向输入输出建立时间可达250MHz,2.5V的内核供电,3.3V的

输入输出电平与McBSP串口一致,可见,EP1K50非常适合做此接口。这里,McBSP串口的接收帧同步(FSR)和时钟信号(CLKR)由CPLD提供,而发送帧同步(FSX)和时钟信号(CLKX)由McBSP串口自己提供。

3 CPLD数据流以及同步控制的VHDL描述

CPLD的仿真编程工具采用MaxplusII软件,用VHDL(高速硬件描述语言)设计。内部的FIFO、移位寄存器和计数器分别采用MaxplusII的宏库lpm—fifo—dc、lpm—shiftreg和lpm—coun

r,它们的参数都是可预先设定的。

lpm fifo dc是双口FIFO宏库,字长为16位,输入和输出深度均为64字,输入FIFO的写时钟由SAA7114H产生,读时钟是移位寄存器为空时的脉冲,同时还有空和满信号使能读写时钟。同样,输出FIFO的写时钟由移位寄存器产生,读时钟由LCD控制器送入。lpm— shiftreg为移位寄存器,它受Ipm—fifo—dc和Ipm-cornter的状态控制,当FIFO可以读写时,移位寄存器就输入和输出16位并行数据,并且开始移位,计数器满时要停止移位。lpm—counter为4位计数器,当计数器溢满(为16)时,在开始移位时对全局脉冲计数,产生进位信号来停止移位寄存器的移位操作。限于篇幅,下面只给出视频数据输入通道同步与控制的部分VHDL语言。

END IF;

END IF;

END PROCESS;

由上述的组合逻辑与时序逻辑结合VHDL语言描述,可以看出,在移位寄存器并行装入数据后,由类似

逻辑停止并行装入,并且开始串行移出和计数。当计数器满时停止移位,置移位寄存器为空的状态,停止移位,如果FIFO为空,则移位寄存器和计数器都处于等待状态,如果FIFO不为空,就并行装入移位寄存器,MaxplusII仿真结果如图3所示。

图3所示的输入信号IFIFO empty、GCLK、VIDEO data分别为输入FIFO的空标志、全局时钟、视频数据,输出信号FSX、DX、CLKX为直接与McBSP串口连接的发送帧同步线、数据线、时钟线,内部信号COUNT en为计数器使能信号,ICLK为数据输入时钟。由图3可看出,CPLD视频数据以16位5555固定数据输入,在全局时钟的上升沿输出串行移位,这样,在McBSP串口端就可以在CLKX的下降沿采样数据,并且根据图示,视频数据相对于帧同步信号有一个时钟周期的延迟,故在McBSP编程时设置串口时钟延迟为1即可。

4 结束语

由于CPLD和TMS320VC5509的McBSP串口都具有灵活的可编程性,可以在CPLD端完全地模拟McBSP串口与之通信,经实践

,这种方式确实可行。这样,TMS320VC5509就以串口的DMA方式与CPLD交换数据,而不会因为与外设直接交换数据而中断CPU的快速视频编解码运算,从而达到视频流的实时性。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Docker基本概念
下一篇:Docker概述篇
相关文章

 发表评论

暂时没有评论,来抢沙发吧~