新闻中心

EEPW首页 > 设计应用 > 基于TS201的实时图像处理系统链路口通信设计

基于TS201的实时图像处理系统链路口通信设计

作者:时间:2016-10-10来源:网络收藏

随着信息处理技术的发展,已成为现代信息处理领域中的一项关键技术,该技术的发展对于电视制导、图像跟踪等具有重要的意义。要求非常大的计算量与超高的计算速度,单片DSP很难满足要求,因此必须采用多DSP并行计算结构。这就要求系统能够实时获取图像数据,并在多片DSP之间实现实时通信交互。论文实时图像处理系统为核心,论述了基于Analog Device公司的DSP(TS201)为核心器件的通信设计。

本文引用地址:http://www.eepw.com.cn/article/201610/306198.htm

1 实时图像处理系统的组成

如图1所示,实时图像处理系统主要由4个模块组成:CCD图像采集模块、图像处理模块(TS201 3个DSP+FPGA模块)、图像处理结果输出模块、逻辑控制模块。

基于TS201的实时图像处理系统链路口通信设计

其基本的工作原理是将CCD摄像头采集得到的实时图像经AD转换成数字图像,通过FPGA(现场可编程逻辑门阵列)分别送到3个DSP中,DSP经过图像处理模块完成对图像信号的运算处理,最后通过输出模块输出所期望的运算结果如被捕捉目标的位置信号、调节控制信号等。

实时图像处理系统FPGA(Field Pmgrammable Gate Array)选用Altera公司的EP4SGX230/180,该器件具有高密度、高性能、低功耗等优点。FPGA是在专用ASIC的基础上发展而来的,它克服了专用ASIC不够灵活的缺点。其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便。

DSP选用ADI公司的TigerSHARC 201,TS201是目前业界性能最高的DSP处理器之一,具有以下特点:主频可高达500 MHz;拥有24 Mbit片上内存、双运算模块、外部端口、4个高速、SDRAM控制器、可编程标志引脚、2个定时器和定时输出引脚、14通道的DMA控制器。可以完成片内存储器、片外存储器、储存器外设、、主机处理器和其他处理器之间的地开销的高速传输,通过共享总线可无缝链接多达8个TigerSHARC ADSP。FPGA加多个DSP的系统结构在通信、图像处理、遥感观测以及雷达等领域得到了广泛的应用。

2 基于TS201链路口的图像技术

2.1 TS201链路口

TS201具有4位宽的4个双向LVDS(LOW Voltage Differential Signaling)链路口是其组成并行系统的关键。链路口是ADI公司提出的总线传输方式,链路口可以直接由处理器核控制,也可以由DMA控制器控制。链路口由端和端两部分组成,以低压差分信号(LVDS)方式传输数据,可以高速准确的完成板内或者板问数据的传输,满足系统的实时要求。每个链路口的都有指定的DMA通道。通过编程控制可以将链路口设置成4位并行或者1位的方式进行传输。TS201支持点对点的链路口通信,可用于任意的按照链路口协议设计的器件之间的通信,每个链路口的数据传输率高达500 Mbytes/s,4个链路口传输速度达到4 GB/s。TS201链路口及接收数据的通信协议中最小传输长度为4字。在1bit模式下,传输4字需要64个时钟周期;在4bit模式下,需要16个时钟周期;

链路发送传输原理如图2所示。

基于TS201的实时图像处理系统链路口通信设计

当链路口的发送端发送数据时,首先检测链路接收端LxACKI是否有效,有效后使能时钟信号LxCLKOUT,开始发送数据,LxBCMPO信号表明数据是否传输结束;数据传输开始于第一个时钟的上升沿。结束于最后一个时钟的下降沿;当传输结束后,LxCLKOUT置为低。对于发送端,当LxACKI采样为高时,表示接收端缓存空闲,可以发送。

链路口接收原理如图3所示。

基于TS201的实时图像处理系统链路口通信设计

在接收方式中,当接收端检测到LxACKO,有效后,时钟信号LxCLKIN开始传输,即开始接收数据,LxBCMPI信号表明数据传输结束。

2.2 直接存储器访问DMA

TS201对图像的接收可利用DMA进行。DMA(Direct Memory Access)是在处理器内核不干预情况下的后台高速数据传送机制口,不占用DSP内核的处理时间,TS201片内的DMA控制器允许将数据传输作为一个后台任务执行,从而将处理器核释放出来,进行其他数字信号处理操作。在复杂信号处理系统中,特别是需要大量数据传输和搬移的操作系统,采用DMA方式可以释放处理器内核,提高工作效率。特别对于图像处理系统,可采用二维DMA数据传输方式,能够将图像数据块实时接收到DSP中。

TS201有14个DMA通道。其中8个用于链路口。一个链路口有发送和接收两个通道。DMA驱动传输仅允许4字传输,且支持链路口DMA交叉传输。从发送链路到接收链路的数据发送及接收,要编程发送和接收链路传输控制块寄存器TCB,发送数据到目标发送链路的缓冲区,DMA根据TCB编程和请求启动一次传输。

2.3 传输控制块寄存器TCB介绍

传输控制块寄存器TCB是一个128位的四字组寄存器。

如图4所示:包括DI寄存器、DX寄存器、DY寄存器、DP寄存器。TCB包含了DMA传输的控制信息。

DI寄存器占TCB的0~31位,是32位DMA索引寄存器,用于设置要发送或接收数据的源地址和目的地址,地址可指向内部,外部存储器及链路口。

DX寄存器占TCB的32~63位,如果传输的是二维数据的话,高16位是x方向计数值,低16位是x方向修改量。

DY寄存器占TCB的64~95位,DY寄存器和DX寄存器结合在一起使用,如果传输的是一维数据,不设置此寄存器,如果传输的是二维数据的话,高16位是Y方向计数值,低16位是Y方向修改量。

DP寄存器占TCB的96~127位,用于设置DMA传输的控制信息。包括TCB指针,链路指针选择器,链路目的通道,操作数据长度,二维DMA使能等。

3%20图像处理系统TS201链路接收

在图像处理系统中选用了链路口接收作为图像数据接收方式。FPGA采集图像数据完成预处理后,将图像数据通过内部FIFO发送到高速链路口,通过链路口,将图像数据分别

传输到各个DSP。

图像处理系统中以DSP1获取FPGA传送的图像为例。

如图1所示:DSP1和FPGA之间通过链路口3(Link3)连接,TS201%20Link3接收通道对应DMA通道11。

链路口接收步骤如下:

1)打开并允许DMA11中断。

2)设置DSP1链路口3接收控制寄存器LRCTL,LRCTL寄存器如同5所示。

设置LRCTL3接收使能,链路传输数据大小模式等。代码如下:buihin_sysreg_write(LRCTL3,0x11);0x11的含义是使能Link3接收,每次传送4 bit数据。

3)对DSP1 DMA11传输控制块(TCB)编程。

代码如下:

TCB_Link3R.DI=Image_Data;

TCB_Link3R.DX=4|(Img_Col16);

TCB_Link3R.DY=4 |(Img_Line16);

TCB_Link3R.DP=0x4fla0000;

Link3RecTCB=builtin_compose_128((TCB_Link3R.DI | TCB_Link3R.DX32,TCB_Link3R.DY |TCB_Link3R.DP32);

DI寄存器设置为二维图像接收端的目的地址;DX寄存器为二维DMA的X方向传输的数据位数Img_Col,传送Img_Col个32bit数据,一个图像数据占16位,图像数据共Img_Col*2列;DY寄存器为二维DMA的Y方向传输的数据位数,传送Img_Line行数据,图像数据共Img_Line行;DP寄存器设置为二维链路口3接收。

4 TS201各个DSP之间的设计

实时图像处理系统中各个DSP之间的设计采用链路口的方式。以系统DSP0和DSP1为例,从图1可以看出DSP0 Link3连接DSP1 link2,DSP0 link3发送通道为DMA7,DSP1 link2接收通道为DMA10。

通讯步骤如下:

1)打开并允许DMA7,DMA10中断。

2)设置DSP0链路口3发送控制寄存器LTCTL,寄存器如同6所示。

基于TS201的实时图像处理系统链路口通信设计

代码为builtin_sysreg_write(LTCTL3,0x11);0x11的含义是使能Link3发送,每次发送4bit数据。

3)DSP0 DMA7传输控制块寄存器(TCB)编程,代码如下:

TCB_Link3Send.DI=(int *)DSP0SendData;

TCB_Link3Send.DX=4 |(DSP0SendData_Num16);

TCB_Link3Send.DY=0;

TCB_Link3Send.DP=0x47180000;

Link3_SendTCB=buihin_compose_128(TCB_Link3Send.DI | TCB_Link3Send.DX 32,TCB_Link3Send.DY | TCB_Link3Send.DP32);

DI寄存器设置为DSP0发送数据的源地址;DX寄存器为DSP0发送数据位数;DY寄存器为0说明是一维DMA传输,DP寄存器设置为一维链路口3发送。

4)设置DSP1 link2接收寄存器LRCTL,代码为builtin_sysreg_write(LRCTL2,0x11);接收原理和DSP1 Link3接收图像原理相同。

5)DSP1 DMA10传输控制块寄存器(TCB)编程,代码如下:

TCB_Link2R.DI=DSP1RecDSP0Data;

TCB_Link2R.DX=4 |((DSPlRecNum)16);

TCB_Link2R.DY=0;

TCB_Link2R.DP=0x47100000;

Link2_RecTCB=builtin_compose_128(TCB Link2R.DI | TCB_Link2R.DX32,(TCB_Link2R.DY |TCB_Link2R.DP32));

DI寄存器设置为DSP1接收数据的目的地址;DX寄存器为DSP1接收的数据位数;DY寄存器为0说明是一维DMA传输,DP寄存器设置为一维链路口2接收。注意DSP1接收的数据长度DSP1RecDSP0Data和DSP0发送的数据长度DSP0SendData要一致。

5 结论

介绍了基于TS201+FPGA的实施图像处理系统中关于TS201链路口通讯的二维实时图像获取以及多DSP之间链路口通讯。给出了通讯时序图,关键代码,关键寄存器设置,保证了实时系统中的图像数据能够按帧获取及多DSP之间的实时通讯,确保系统的实时性。



评论


相关推荐

技术专区

关闭