【摘 要】 根据mcbsp和cpld的时序分析,采用vhdl语言设计了cpld模拟mcbsp并与之进行全双工通信,给出了实际的接口时序结果。
关键词:mcbsp,cpld,vhdl,dsp
在许多数字信号处理应用系统中,dsp担任的工作是快速而复杂的核心运算,但是,在运算的同时dsp对数据输入输出的控制是有限的,dsp与cpld(复杂可编程逻辑器件)或fpga(现场可编程阵列)相结合的设计则可以有效地弥补这种不足。笔者设计的基于dsp实时视频编解码系统,采用ti(德州仪器)公司的最新高性能低功耗tms320vc55x系列dsp芯片tms320vc5509做视频双向编解码运算,但如果dsp还承担视频输入输出的工作,那么视频编解码运算的实时性将得不到保证,因此,这里采用altera公司的cpld芯片ep1k50作为视频输入输出的缓冲和控制,dsp与cpld之间的通信采用mcbsp串口(多通道缓冲串口)dma方式。
1 mcbsp的硬件接口及时序分析
tms320vc5509是ti公司生产的第三代高性能低功耗dsp芯片,有三个mcbsp串口,mcbsp串口是在标准同步串口基础上的功能扩展,提供了强大的同步串口通信机制,速度可达100mbit/s,具有以下特征:
·全双工通信;
·双缓存的发送寄存器和三缓存的接收寄存器,允许连续的数据流传输;
·为数据发送和接收提供独立的帧同步脉冲和时钟信号;
·能够发送中断给cpu,发送事件信号给dma控制器;
·发送和接收各有128个通道,可以允许或阻断某个通道的传输;
·数据长度可以为8、12、16、20、24、32;
·提供了a-律和μ-律压缩扩展;
·内部时钟和帧同步信号的可编程性;
·与t1/e1、spi、ac97、i2s等直接接口。
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的内部输入fifo(先入先出队列)中缓冲一下,由于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—counter,它们的参数都是可预先设定的。
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的快速视频编解码运算,从而达到视频流的实时性。
图像信号处理和计算硬件类型介绍
弘信柔性电子智能制造产业园项目正式开工建设
你会选择做还是不做工业物联网
应对超声波测试挑战,如何选择合适的数字化仪?
激光加工设备在钥匙生产中的应用
CPLD与TMS320VC55x的McBSP接口设计?
凌力尔特推出高电压、低噪声、低压差线性稳压器LT3055
五种经典模拟电路的解析
世界各国无人驾驶公交陆续亮相,中国也不例外
人工智能对干线传输网络提出全新的要求
HPM6000系列 ADC 相关硬件设计教程
PCI Express架构QA问题解答
CAN总线在汽车ECU中的作用
电感电容、谐振器和振荡器的Q值
罗德与施瓦茨和华为共同完成4.5G移动通信下行传输速率测试
安捷伦N9030A频谱分析仪维修按键不灵,不稳定最新案例
Unity云原生分布式运行优化方案
Linux程序之可变参数&&选项那些事
如何解决iphone不能拍照故障
迪文2023全国巡回研讨会武汉、长沙站成功举办