TMS320VC5509与CameraLink相机的接口技术
发布时间:2008/5/26 0:00:00 访问次数:3108
    
    摘 要:本文在分析dsp片上多通道缓冲串行口(mcbsp)与直接存储器访问(dma)的基础上,提出了一种非常灵活的接口技术,并设计调试了dsp与相机接口电路和程序。利用本文提出的dma接口方式,接收数据率可以达到36mbps, 完全满足激光的实时测量。
    关键词:tms320vc5509;多通道缓冲串口 ;直接存储器访问;接口
    引言
    在激光波长测量系统中,激光信号从ccd相机输出到信号处理器的时间是实时测量激光波长的关键。即使采用高速单片机也无法满足实时测量的需要,而将dsp用于相机数据采集和信号处理使这一难题的解决成为了可能。
    接口设计
    本设计采用atmel公司的aviiva m2 cl相机,该相机采用cameralink接口。dsp选用了tms320vc5509,与tms320c54x相比,该定点dsp通过增强功能单元,提高了dsp的运算能力。相机工作方式的设置通过与dsp的串行通信来实现,采用全双工方式,波特率固定在9.6khz,每帧数据由一个起始位、8个数据位,以及一个停止位组成。
    dsp与相机的通信
    tms320c5509 芯片只有同步串口,通常只能用于与具有同步通信接口的外设进行通信。当其构成一个独立的处理单元需要和带有异步通信接口的外设交换数据时,常用的方式有两种:一种是利用dsp 的通用i/o 口线xf和bio 构成串口,由软件来设定通信波特率和握手方式。这种方式编程复杂,并且会大量占用cpu 时间。另一种方式是通过专用的异步通信芯片来实现,这虽然能实现dsp高速数据通信,但是增加了硬件电路的复杂性。
    本设计直接利用dsp的mcbsp与相机通信。tms320vc5509有3个mcbsp,依靠数据线d(r/x)、帧同步线fs(r/x)和移位时钟线clk(r/x)实现数据的发送和接收。由clkx、clkr、fsx、fsr 实现时钟和帧同步的控制。
    数据格式的统一
    要实现相机与dsp的串行通信首先要解决这两种不同通信方式之间的数据格式统一问题。相机接收的每帧数据是十位,所以dsp字长要选择16位。由于这种字长是高位先出,因此,在dsp发送数据前要对数据进行编码:先把要发送的数据位反转,然后加上起始位和停止位。
    波特率匹配
    mcbsp采样率发生器的输出时钟clkg由如下等式决定:
    
     fclkg=fclocksource/(clkdv+1)
    
    clkdv是个8位的字段,如果输入的参考时钟fclocksource来自cpu,而为了实现高速采集,cpu要工作在144mhz,所以mcbsp采样率发生器不可能工作在相机需要的波特率9.6khz。因此,本设计中利用dsp定时器为串口提供时钟。定时器的计数器分为两个:4位的预定标器(tddr)和16位的主计数器(prd)。定时器的时钟频率利用公式:ftimer=fclocksource/[(prd+1)(tddr+1)]计算。此时设置:prd=0, tddr=14999,定时器就可以输出频率为9.6khz的时钟信号。
    tms320vc5509与相机的串行通信接口电路中,要利用ds90lv047a把ttl电平转换为lvds格式。此外,在mcbsp设置中要选择来自clkr脚上的时钟作为参考时钟。
    数据采样
    dsp对数据的采样通常采用中断的方法实现,而dma不仅可以操作内部存储器的数据,而且可以操作片内外设、外部设备以及扩展存储器的数据。所以应用dma功能可实现在没有cpu 的干预下直接对内存映射区域进行数据传输。
    tms320vc5509提供了6个dma通道,每个通道均可单独设置所要传送数据的源地址、目的地址、传送数据的长度、数据传送的同步方式以及数据传送完成后是否向cpu发出中断信号等。
    dma的工作方式
    传统上,为了保证采样时不丢失数据,往往在dsp与相机间加fifo来缓冲。数据首先从相机采集到缓冲区fifo里,然后再从fifo读入到dsp内存,这样从相机采集到dsp就要一定的附加时间,无法实现高速数据采集和信号处理,而且需要额外的fifo。本文提出了一种新的dma采集方法,无需fifo却能实现数据的高速采集。
    ds90cr286的主要功能是把ccd相机输出的lvds信号转换为ttl信号,本设计中把ds90cr286输出的数据直接接到dsp的外部存储器接口(emif)数据总线上,然后dma 把源地址设置为外部存储器的地址,这个地址要初始化,但又不能是真正存在的外部存储器的地址,这样dsp每次所采集的数据,正是相机输出的数据。在图1中给出了dma方式数据采集原理
    
    摘 要:本文在分析dsp片上多通道缓冲串行口(mcbsp)与直接存储器访问(dma)的基础上,提出了一种非常灵活的接口技术,并设计调试了dsp与相机接口电路和程序。利用本文提出的dma接口方式,接收数据率可以达到36mbps, 完全满足激光的实时测量。
    关键词:tms320vc5509;多通道缓冲串口 ;直接存储器访问;接口
    引言
    在激光波长测量系统中,激光信号从ccd相机输出到信号处理器的时间是实时测量激光波长的关键。即使采用高速单片机也无法满足实时测量的需要,而将dsp用于相机数据采集和信号处理使这一难题的解决成为了可能。
    接口设计
    本设计采用atmel公司的aviiva m2 cl相机,该相机采用cameralink接口。dsp选用了tms320vc5509,与tms320c54x相比,该定点dsp通过增强功能单元,提高了dsp的运算能力。相机工作方式的设置通过与dsp的串行通信来实现,采用全双工方式,波特率固定在9.6khz,每帧数据由一个起始位、8个数据位,以及一个停止位组成。
    dsp与相机的通信
    tms320c5509 芯片只有同步串口,通常只能用于与具有同步通信接口的外设进行通信。当其构成一个独立的处理单元需要和带有异步通信接口的外设交换数据时,常用的方式有两种:一种是利用dsp 的通用i/o 口线xf和bio 构成串口,由软件来设定通信波特率和握手方式。这种方式编程复杂,并且会大量占用cpu 时间。另一种方式是通过专用的异步通信芯片来实现,这虽然能实现dsp高速数据通信,但是增加了硬件电路的复杂性。
    本设计直接利用dsp的mcbsp与相机通信。tms320vc5509有3个mcbsp,依靠数据线d(r/x)、帧同步线fs(r/x)和移位时钟线clk(r/x)实现数据的发送和接收。由clkx、clkr、fsx、fsr 实现时钟和帧同步的控制。
    数据格式的统一
    要实现相机与dsp的串行通信首先要解决这两种不同通信方式之间的数据格式统一问题。相机接收的每帧数据是十位,所以dsp字长要选择16位。由于这种字长是高位先出,因此,在dsp发送数据前要对数据进行编码:先把要发送的数据位反转,然后加上起始位和停止位。
    波特率匹配
    mcbsp采样率发生器的输出时钟clkg由如下等式决定:
    
     fclkg=fclocksource/(clkdv+1)
    
    clkdv是个8位的字段,如果输入的参考时钟fclocksource来自cpu,而为了实现高速采集,cpu要工作在144mhz,所以mcbsp采样率发生器不可能工作在相机需要的波特率9.6khz。因此,本设计中利用dsp定时器为串口提供时钟。定时器的计数器分为两个:4位的预定标器(tddr)和16位的主计数器(prd)。定时器的时钟频率利用公式:ftimer=fclocksource/[(prd+1)(tddr+1)]计算。此时设置:prd=0, tddr=14999,定时器就可以输出频率为9.6khz的时钟信号。
    tms320vc5509与相机的串行通信接口电路中,要利用ds90lv047a把ttl电平转换为lvds格式。此外,在mcbsp设置中要选择来自clkr脚上的时钟作为参考时钟。
    数据采样
    dsp对数据的采样通常采用中断的方法实现,而dma不仅可以操作内部存储器的数据,而且可以操作片内外设、外部设备以及扩展存储器的数据。所以应用dma功能可实现在没有cpu 的干预下直接对内存映射区域进行数据传输。
    tms320vc5509提供了6个dma通道,每个通道均可单独设置所要传送数据的源地址、目的地址、传送数据的长度、数据传送的同步方式以及数据传送完成后是否向cpu发出中断信号等。
    dma的工作方式
    传统上,为了保证采样时不丢失数据,往往在dsp与相机间加fifo来缓冲。数据首先从相机采集到缓冲区fifo里,然后再从fifo读入到dsp内存,这样从相机采集到dsp就要一定的附加时间,无法实现高速数据采集和信号处理,而且需要额外的fifo。本文提出了一种新的dma采集方法,无需fifo却能实现数据的高速采集。
    ds90cr286的主要功能是把ccd相机输出的lvds信号转换为ttl信号,本设计中把ds90cr286输出的数据直接接到dsp的外部存储器接口(emif)数据总线上,然后dma 把源地址设置为外部存储器的地址,这个地址要初始化,但又不能是真正存在的外部存储器的地址,这样dsp每次所采集的数据,正是相机输出的数据。在图1中给出了dma方式数据采集原理