DM642 RF框架小结

合集下载

TMS320DM642中文资料

TMS320DM642中文资料

TMS320DM642中文资料1.2 概述TMS320C64x DSP芯片(包括TMS320DM642)是在TMS320C6000 DSP平台上的高性能定点DSP。

TMS320DM642(DM642)是基于有TI开发的第二代高性能,先进VelociTI技术的VLIW结构(VelociTI1.2),从而使得这些DSP芯片成为数字多媒体的极好的选择。

DM642在主频720MHz下处理速度达到5760MIPS,并且给高性能DSP规划提供了廉价的解决方案。

DM642操作灵活的高速处理器和用数字表达容量的阵列处理器。

C64x DSP核具有64个32位字长的通用寄存器和8个独立的功能单元——两个结果为32位的乘法器和6个ALUs——是VelociTI1.2的升级版。

VelociTI1.2升级版在8个功能单元里包括新的指令,可以在视频和图像应用方面提高性能,并能对VelociTI结构进行扩充。

DM642每周期能够提供4个16位MACs,每秒可提供2880百万个MACs,或者8个8位MACs,每秒5760MMACs。

DM642具有特殊应用的硬件结构,片上存储器和与其它的C6000系列DSP平台相似的额外的片上外围设备。

DM642使用两级缓存,有一个强大的多变的外围设置。

一级程序缓存L1P是一个128Kbit的直接映射缓存,另一级数据缓存L1D是一个128Kbit双路结合设置缓存。

L2存储器能被配置成映射存储器,高速缓存或者两者结合。

外围设置包括:3个可配置的视频端口;1个10/100Mb/s的以太网控制器(EMAC);1个管理数据输入输出(MDIO);1个内插VCXO控制接口;1个McASP0;1个I2C总线;2个McBSPs;3个32位通用定时器;1个用户配置的16位或32位主机接口(HPI16/HPI32);1个PCI;1个16引脚的通用输入输出口(GP0),具有可编程中断/事件产生模式;1个64位IMIFA,可以与同步和异步存储器和外围设备相连。

基于DM642的车距预警系统设计与实现

基于DM642的车距预警系统设计与实现

拟 芯片供 电 , 这样 就 可从 电源端 切 断数 字噪声 干 扰 。
复 位 电路 采 用 了T S 8 3 3 , 片 是低 电平 复 P 32 — 3 芯 位 , 位 时 间 是 20 , 持 手 动 复 位 , 复 0 ms 支 可进 行 看 门 狗 复位 ( 通过 C L 的1 P D 0口进行 喂 狗操 作 ) 应该 注 意 ,
时 变化 。 22 F .S 和 CP D 块 . L H A L 模
在 视频 解 码 电路 中 , 采用 T P 1 0 片设 计 , V 55芯 可 用 IC 行 初始 化 。芯 片 可 以接 收N制 和P 视频 数 2进 制 据 流 . 输 人视 频流 转化 为8 IU R B . 6 把 位 T — T6 格式 的 5
视 频 数 据 , M6 2 理 器 通 过 片 上 的 视 频 口把 B . D 4处 T 66 5 数据 流存 人F F 然 后通 过E MA 道把 FF I O. D 通 I O中
的数据搬 入 到 片 内或 片外 的存 储器 .在 程 序 中可 以
调 用 图像 数 据进 行处 理 。
个 问 题 ,在 D 4 电 路 系统 中 使 用 C L M6 2 P D器 件 , 把
F A H芯 片 的 地 址 线 引 脚 A『 1 9 与C L LS 2 : ] P D器 件 的 1 输入/ 出 引脚 连 接 , 输 通过 A[ 11 ] F A H存 储 器 2 :9 把 L S 的6 个扇 区划 分 为若 干个 页 , 4 每个 页包 括 多个扇 区。 在C L P D内部 扩展 控 制A[ 11 ] 2 :9 引脚 信 号 的寄 存 器 , D 4 通过 操作 寄存 器 端 口实 现遍 历F A H芯 片所 M6 2 LS

DM642图像处理程序的主要结构

DM642图像处理程序的主要结构

DM642图像处理程序的主要结构直接从图像处理这块进行学习不是特别适应,以前做单片机时由于单片机的片内资源不是特别多,所以对片内资源掌握的比较好,相关的寄存器配置等都是从底层自己配置,现在学习DSP反而不知道怎样从硬件入手了,只能从顶层向底层倒着来摸索。

这是一个简单的图像处理程序,仔细看看,很多地方不懂,只能先了解大概,很多地方可能还没有认识到,在以后的学习中再接着摸索。

在源程序的基础之上我加了一些注释,程序如下:/********************************************************************//* 灰度图运行结果:在屏幕之中画出一块区域显示灰度图像*//********************************************************************//* 关于csl:1,用于配置、控制和管理DSP片上外设2,已为C6000和C5000系列DSP设计了各自的CSL库3,CSL库函数大多数是用C语言编写的,并已对代码的大小和速度进行了优化4,CSL库是可裁剪的:即只有被使用的CSL模块才会包含进应用程序中5,CSL库是可扩展的:每个片上外设的API相互独立,增加新的API,对其他片上外设没有影响*/#include <csl.h> /* 总库,提供外设接口和基本配置*/// 具体的接口定义,头文件中定义了接口的地址等#include <csl_emifa.h> /* emifa是一种64位的外部接口,可连接64/32/16/8bit的器件*/#include <csl_i2c.h> /* 一种两线式串行总线*/#include <csl_gpio.h> /* 也是一种通用的输入输出接口*/#include <csl_irq.h> /* 一些基本中断的定义*/#include <csl_chip.h>#include <csl_dat.h>#include "iic.h"#include "vportcap.h"#include "vportdis.h"#include "sa7121h.h" /* SAA7121可以将数字信号编程模拟信号和下面的编码芯片一样都采用iic总线* /#include "TVP51xx.h" /* 视频编码芯片,将模拟信号进行数字化,这是其进行配置的头文件*//*SEEDDM642的emifa的设置结构*/EMIFA_Config Seeddm642ConfigA ={0x00052078,/*gblctl EMIFA(B)global control register value *//*将CLK6、4、1使能;将MRMODE置1;使能EK2EN,EK2RATE*/0xffffffd3,/*cectl0 CE0 space control register value*//*将CE0空间设为SDRAM*/0x73a28e01,/*cectl1 CE1 space control register value*//*Read hold: 1 clock;MTYPE : 0000,选择8位的异步接口Read strobe :001110;14个clock宽度TA:2 clock; Read setup 2 clock;Write hold :2 clock; Write strobe: 14 clockWrite setup :7 clock-- ---------------\ 14c /1c\----------------/ */0x22a28a22, /*cectl2 CE2 space control register value*/0x22a28a42, /*cectl3 CE3 space control register value*/0x57115000, /*sdctl SDRAM control register value*/0x0000081b, /*sdtim SDRAM timing register value*/0x001faf4d, /*sdext SDRAM extension register value*/0x00000002, /*cesec0 CE0 space secondary control register value*/ 0x00000002, /*cesec1 CE1 space secondary control register value*/ 0x00000002, /*cesec2 CE2 space secondary control register value*/ 0x00000073 /*cesec3 CE3 space secondary control register value*/ };/*SEEDDM642的IIC的设置结构*/I2C_Config SEEDDM642IIC_Config = {0, /* master mode, i2coar;采用主模式*/0, /* no interrupt, i2cimr;只写,不读,采用无中断方式*/(20-5), /* scl low time, i2cclkl; */(20-5), /* scl high time,i2cclkh; */1, /* configure later, i2ccnt;*/0, /* configure later, i2csar;*/0x4ea0, /* master tx mode, *//* i2c runs free, *//* 8-bit data + NACK *//* no repeat mode */(75-1), /* 4MHz clock, i2cpsc */};CHIP_Config SEEDDM642percfg = {CHIP_VP2+\CHIP_VP1+\CHIP_VP0+\CHIP_I2C};I2C_Handle hSeeddm642i2c;int portNumber;extern SA7121H_ConfParams sa7121hPAL[45];extern SA7121H_ConfParams sa7121hNTSC[45];Uint8 vFromat = 0;Uint8 misc_ctrl = 0x6D;Uint8 output_format = 0x47;// 地址为0 for cvbs port1,选择复合信号做为输入Uint8 input_sel = 0x00;/*地址为0xf,将Pin27设置成为CAPEN功能*/Uint8 pin_cfg = 0x02;/*地址为1B*/Uint8 chro_ctrl_2 = 0x14;/*图像句柄的声明*/VP_Handle vpHchannel0;VP_Handle vpHchannel1;VP_Handle vpHchannel2;/*确定图像的参数*/int numPixels = 720;//每行720个像素int numLines = 576;//每帧576行(PAL)/*确定处理的范围*//*A *//* *//* D*/int intAPixels = 190;int intALines = 59;int intDPixels = 530;int intDLines = 229;/******************************//*****画矩形边框函数的声明*****/void drawRectangle();/*消去彩色*/void removeColor();/*采集与显示缓冲区的首址*/Uint32 capYbuffer = 0x80000000;Uint32 capCbbuffer = 0x800675c0;Uint32 capCrbuffer = 0x8009b0a0;Uint32 disYbuffer = 0x80100000;Uint32 disCbbuffer = 0x801675c0;Uint32 disCrbuffer = 0x8019b0a0;Uint32 tempYbuffer = 0x80200000; //临时Uint32 tempCbbuffer = 0x80300000; //临时Uint32 tempCrbuffer = 0x80400000; //临时/*图像格式标志*/Uint8 NTSCorPAL = 0;extern far void vectors();extern volatile Uint32 capNewFrame;extern volatile Uint32 disNewFrame;/*此程序可将四个采集口的数据经过Video Port0送出*/ void main(){Uint8 addrI2C;int i;/*-------------------------------------------------------*//* perform all initializations *//*-------------------------------------------------------*//*Initialise CSL,初始化CSL库*/CSL_init();CHIP_config(&SEEDDM642percfg);/*----------------------------------------------------------*//*EMIFA的初始化,将CE0设为SDRAM空间,CE1设为异步空间注,DM642支持的是EMIFA,而非EMIF*/EMIFA_config(&Seeddm642ConfigA);/*----------------------------------------------------------*//*中断向量表的初始化*///Point to the IRQ vector tableIRQ_setVecs(vectors);IRQ_nmiEnable();IRQ_globalEnable();IRQ_map(IRQ_EVT_VINT1, 11);IRQ_map(IRQ_EVT_VINT0, 12);IRQ_reset(IRQ_EVT_VINT1);IRQ_reset(IRQ_EVT_VINT1);/*打开一个数据拷贝的数据通路*/DAT_open(DAT_CHAANY, DAT_PRI_LOW, DAT_OPEN_2D); /*----------------------------------------------------------*//*进行IIC的初始化*/hSeeddm642i2c = I2C_open(I2C_PORT0,I2C_OPEN_RESET);I2C_config(hSeeddm642i2c,&SEEDDM642IIC_Config);/*----------------------------------------------------------*//*进行TVP5150pbs的初始化*//*选择TVP5150,设置第三通路*/GPIO_RSET(GPGC,0x0);/*将GPIO0不做为GPINT使用*/GPIO_RSET(GPDIR,0x1);/*将GPIO0做为输出*/GPIO_RSET(GPVAL,0x0);/*GPIO0输出为高,选择IIC1总线,配置第二路,即为U21*/addrI2C = 0xBA >>1;_IIC_write(hSeeddm642i2c, addrI2C,0x00, input_sel);_IIC_write(hSeeddm642i2c, addrI2C,0x03, misc_ctrl);_IIC_write(hSeeddm642i2c, addrI2C,0x0D, output_format);_IIC_write(hSeeddm642i2c, addrI2C,0x0F, pin_cfg);_IIC_write(hSeeddm642i2c, addrI2C,0x1B, chro_ctrl_2);/*回读当前摄像设备的格式*/_IIC_read(hSeeddm642i2c, addrI2C,0x8c, &vFromat);vFromat = vFromat & 0xff;switch (vFromat){case TVP51XX_NTSCM:case TVP51XX_NTSC443:NTSCorPAL = 1;/*系统为NTSC的模式*/break;case TVP51XX_PALBGHIN:case TVP51XX_PALM:NTSCorPAL = 0;/*系统为PAL的模式*/break;default:NTSCorPAL = 2;/*系统为不支持的模式*/break;}if(NTSCorPAL ==2){/*系统不支持的模式,重新配置*/for(;;){}}/*----------------------------------------------------------*//*进行SAA7121H的初始化*/GPIO_RSET(GPVAL,0x0);/*GPIO0输出为低,选择IIC1总线,配置图像输出*/ addrI2C = 0xB8 >>1; /*选择第0路的I2C的地址*//*将第0路的视频输入口的数据口设为高阻状态,使能SCLK,将第27脚设为输入*/_IIC_write(hSeeddm642i2c, addrI2C,0x03, 0x1);/*配置SAA7121H*/GPIO_RSET(GPVAL,0x1);/*GPIO0输出为低,选择IIC1总线,配置图像输出*//*初始化Video Port0*//*将Vedio Port1设为encoder输出*/portNumber = 0;vpHchannel0 = bt656_8bit_ncfd(portNumber);addrI2C = 0x88 >>1;for(i =0; i<43; i++){if(NTSCorPAL == 1){_IIC_write(hSeeddm642i2c,addrI2C,(sa7121hNTSC[i].regsubaddr),(sa7121hNTSC[i].regvule));}else{_IIC_write(hSeeddm642i2c,addrI2C,(sa7121hPAL[i].regsubaddr),(sa7121hPAL[i].regvule));}}/*----------------------------------------------------------*//*初始化Video Port1*//*将Vedio Port1设为采集输入*/portNumber = 1;vpHchannel1 = bt656_8bit_ncfc(portNumber);bt656_capture_start(vpHchannel1);/*等待第一帧数据采集完成*/while(capNewFrame == 0){}/*采集完成,将数据存入显示缓冲区,并清采集完成的标志*/ capNewFrame =0;for(i=0;i<numLines;i++){/*传送临时Y缓冲区*/DAT_copy((void *)(capYbuffer + i * numPixels),(void *)(tempYbuffer + i * numPixels),numPixels);/*传送临时Cb缓冲区*/DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)), (void *)(tempCbbuffer + i * (numPixels >> 1)),numPixels>>1);/*传送临时Cr缓冲区*/DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)), (void *)(tempCrbuffer + i * (numPixels >> 1)),numPixels>>1);}/* 画边框,消去彩色灯操作都需要在缓冲区中进行*/ /*画边框*/drawRectangle();/*消去彩色*/removeColor();/* 再将缓冲区的内容送入显示区*/for(i=0;i<numLines;i++){/*传送Y缓冲区*/DAT_copy((void *)(tempYbuffer + i * numPixels),(void *)(disYbuffer + i * numPixels),numPixels);/*传送Cb缓冲区*/DAT_copy((void *)(tempCbbuffer + i * (numPixels >> 1)), (void *)(disCbbuffer + i * (numPixels >> 1)),numPixels>>1);/*传送Cr缓冲区*/DAT_copy((void *)(tempCrbuffer + i * (numPixels >> 1)), (void *)(disCrbuffer + i * (numPixels >> 1)),numPixels>>1);}/*启动显示模块*/bt656_display_start(vpHchannel0);/*建立一个死循环实时采集和播放*/for(;;){/*当采集区的数据已经采集好,而显示缓冲区的数据已空*/ if((capNewFrame == 1)&&(disNewFrame == 1)){/*将数据装入显示缓冲区,并清采集完成的标志*/capNewFrame =0;disNewFrame =0;for(i=0;i<numLines;i++){/*传送临时Y缓冲区*/DAT_copy((void *)(capYbuffer + i * numPixels),(void *)(tempYbuffer + i * numPixels),numPixels);/*传送临时Cb缓冲区*/DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)), (void *)(tempCbbuffer + i * (numPixels >> 1)),numPixels>>1);/*传送临时Cr缓冲区*/DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)), (void *)(tempCrbuffer + i * (numPixels >> 1)),numPixels>>1);}/*画边框*/drawRectangle();/*消去彩色*/removeColor();for(i=0;i<numLines;i++){/*传送Y缓冲区*/DAT_copy((void *)(tempYbuffer + i * numPixels),(void *)(disYbuffer + i * numPixels),numPixels);/*传送Cb缓冲区*/DAT_copy((void *)(tempCbbuffer + i * (numPixels >> 1)), (void *)(disCbbuffer + i * (numPixels >> 1)),numPixels>>1);/*传送Cr缓冲区*/DAT_copy((void *)(tempCrbuffer + i * (numPixels >> 1)), (void *)(disCrbuffer + i * (numPixels >> 1)),numPixels>>1);}}}for(;;){}/*----------------------------------------------------------*//*采集与回放*/}/*画矩形边框函数的定义*/void drawRectangle(){int i,j;/*画上边*///奇数行for(i=intALines-4;i<intALines;i++){for(j=intAPixels-6;j<intDPixels+6;j++){*(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;}}//偶数行for(i=numLines/2+intALines-4;i<numLines/2+intALines;i++){for(j=intAPixels-6;j<intDPixels+6;j++){*(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;}}/*画下边*///奇数行for(i=intDLines;i<intDLines+4;i++){for(j=intAPixels-6;j<intDPixels+6;j++){*(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;}}//偶数行for(i=numLines/2+intDLines;i<numLines/2+intDLines+4;i++) {for(j=intAPixels-6;j<intDPixels+6;j++){*(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;}}/*画左边*///奇数行for(i=intALines;i<intDLines;i++){for(j=intAPixels-6;j<intAPixels;j++){*(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;}}//偶数行for(i=numLines/2+intALines;i<numLines/2+intDLines;i++) {for(j=intAPixels-6;j<intAPixels;j++){*(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;}}/*画右边*///奇数行for(i=intALines;i<intDLines;i++){for(j=intDPixels;j<intDPixels+6;j++){*(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;}}//偶数行for(i=numLines/2+intALines;i<numLines/2+intDLines;i++){for(j=intDPixels;j<intDPixels+6;j++){*(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;}}}/*消去彩色*/void removeColor(){int i,j;//方框内奇数行for(i=intALines;i<intDLines;i++){for(j=intAPixels/2;j<intDPixels/2;j++){*(Uint8 *)(tempCbbuffer + i * (numPixels >> 1) + j) = 0x80;*(Uint8 *)(tempCrbuffer + i * (numPixels >> 1) + j) = 0x80;}}//方框内偶数行for(i=numLines/2+intALines;i<numLines/2+intDLines;i++){for(j=intAPixels/2;j<intDPixels/2;j++){*(Uint8 *)(tempCbbuffer + i * (numPixels >> 1) + j) = 0x80;*(Uint8 *)(tempCrbuffer + i * (numPixels >> 1) + j) = 0x80;}}}。

DM642技术参考手册2型

DM642技术参考手册2型

TMS320DM642Ⅱ型评估板(EVM)技术参考手册1.TMS320DM642 EVM模块介绍 (3)描述了TMS320DM642 EVM的关键特性和电路板方框图1.1 关键特性 (4)1.2 功能综述 (5)1.3 基本操作 (6)1.4 存储映射 (6)1.5 开关转换配置 (7)1.6 电源供应 (8)2.TMS320DM642 EVM的操作 (9)描述了TMS320DM642 EVM的操作,关键接口和电路板的布局2.1 板卡布局图 (10)2.2 连接器 (10)2.3 用户LED信号显示灯 (11)2.4 系统状态显示灯 (12)2.5 复位开关-S1 (12)2.6 测试点 (13)A.TMS320DM642 EVM图表 (15)关于手册此文档描述了TMS320DM642Ⅱ型评估板(EVM)的一些相关操作,此评估板采用的是TI公司的TMS320DM642 DSP器件。

TMS320DM642Ⅱ型评估板(EVM)是台面式,它允许工程师和软件开发者来评估TMS320DM642 DSP的某些特性看处理器是否满足他们的应用要求。

评估者可以用各种方式创建软件程序在板卡上执行或者扩展系统。

符号协议此文档有以下协议。

TMS320DM64Ⅱ型评估板(EVM)在本文中简称为DM642 EVM或者EVM。

程序清单,例程以及交互式显示器用斜体字表示。

例如这个程序清单例子。

等式!rd=!strobe&rw警告信息这本书可以包含警告信息。

这是一个警告声明的例子。

警告生命描述了对软件或者硬件以及其他设备有潜在破坏性的状态。

警告信息起保护作用。

请仔细阅读每一个警告信息。

相关文档第一章TMS320DM642简介第一章描述了TMS320DM642 EVM的关键特性和电路板方框图1.1 关键特性1.2 功能综述1.3 基本操作1.4 存储映射1.5 开关转换配置1.6 电源供应1.1 TMS320DM642 EVM 关键特性DM642 EVM 是一个低成本的独立运行研发平台,使用户用来评估TI C64××DSP 系列的开发应用程序。

wintech的DM642视频驱动的讲稿总结的很好

wintech的DM642视频驱动的讲稿总结的很好

Specific Functions
3.3 FVID驱动
DSP/BIOS Thread Types TSK or SWI SWI TSK
DSP/BIOS provided Class Drivers
FVID SIO
PIP GIO
Mini-Driver (IOM)
IOM mini-driver
FVID-specific IOM
#define FVID_control(gioChan, cmd, args) \ GIO_control(gioChan, cmd, args) #define FVID_alloc(gioChan, bufp) \ GIO_submit(gioChan, FVID_ALLOC, bufp, NULL, NULL) #define FVID_exchange(gioChan, bufp) \ GIO_submit(gioChan, FVID_EXCHANGE,bufp,NULL,NULL)
Frame A
Frame B
Frame C
1.
驱动分配帧缓存
3.3 FVID驱动
使用FVID操作帧 Frame A Application
Driver
FVID_alloc()
Frame B
Frame C
1. 2.
驱动分配帧缓存 应用程序从驱动获得缓存,并填充数据
3.3 FVID驱动
使用FVID显示帧 Frame B Application FVID_exchange()
FVID_alloc FVID_free FVID_exchange FVID_control FVID_create FVID_delete
返回驱动分配的缓存指针 释放分配的缓存 交换缓存 传递给GIO 传递给GIO 传递给GIO

基于TMS320DM642的多点显示单元的设计

基于TMS320DM642的多点显示单元的设计

中国高新技术企业基于TMS320DM642的多点显示单元的设计文/许成鹏1李晓伦1朱林2【摘要】介绍基于TMS320DM642的多点显示单元的系统结构和基本功能,给出在TMS320DM642DSP上实现优化H.263视频解码器的方法,并多点显示单元进行了模块化设计。

【关键词】TMS320DM642视频会议多点显示单元随着网络技术的发展和多媒体技术的崛起,视频会议系统得到越来越广泛的应用。

同时与之相关的视频会议多点显示单元MDU(MultipointDisplayUnit)在会议中的需求也越来越多。

MDU用单一的多路视频数据处理与显示设备,同步执行多个视频解码器,然后对多个解码后的图像进行合成处理,最后将图像输出到显示设备上,这就是独立设备实现方式。

因为它只接收MCU转发过来的多路视频压缩编码流,不会占用终端和MCU(MultipointControlUnit)的处理器资源,所以很好的满足了视频会议对多画面显示功能的需求。

MDU就是针对这一需求而设计开发的,它不仅能对多个分会场图像数据进行集中控制和处理,而且还可以向电视或者VGA显示设备输出视频信号,直接显示多个会场的图像。

当在视频会议系统中增加了MDU之后,MDU通过专门的端口接收MCU转发过来的多个分会场的视频数据,不会增加各分会场终端的视频和语音频数据处理负担。

高性能的硬件资源和新的视频压缩编解码标准在视频会议系统中正逐步得到应用为开发类似MDU的独立设备进行多会场图像同步处理与显示提供了软硬件保证。

通用DSP(DigitalSignalPro-cessor)具有开发灵活、适应面宽和扩展性强等优越性,本文选用了TI公司C64系列中性能比较高的TMS320DM642处理器平台,设计实现多点显示单元。

1TMS320DM642DSPTMS320C6000系列是TI公司DSP家族中拥有最高性能的DSP,同时也是目前世界上最高性能的DSP系列。

在这个系列的DSP中,TI使用了VLIW技术。

基于DM642的图像采集系统的设计和实现

基于DM642的图像采集系统的设计和实现

在 0 76 的H E  ̄脚 上 产 生 如 图2 示 的波 形 图 ,其 中 两 帧之 间 的 时 V6 0 R F l 3 所 间 间 隔一 一 垂 直 消 隐 间 隔远 远 大 于 两 行 之 间 的 时 间 间 隔一 一 水 平 消 隐 间 隔。利 用这 一 时间 关系 ,D 62 以实 现R W 式 下 的帧 同步功 能 。在SE M 4可 A 格 S位 置 位 且视 频 口使 能 的情 况 下 ,D6 2 2 设 定 的垂 直 消隐 间 隔后 ,开 始采 M4 在 个 集 数 据 。通 过 设置 VV LK 位 定义 一 个 时间 长度 作 为垂 直 消 隐间 隔 。为 了 CB N P
D 62 S控 制器 和P 主机 组 成 ,其 中D6 2 核 心 ,所 以系统 实现 的 关键 M 4 、UB c M 4是 就 是灵 活运 用D6 2 多个外 设接 口。包括 :接 收 图像 数据 的视 频接 口,配 M4 的 置 076 的IC 口和与 UB 制器 相连 接 的H I 口等 。系统 基本 操 作 过程 V 60 2接 S控 P接 是 : 系统 上 点后 ,D6 2 过 IC 口对 0 76 配 置 ,包 括输 出类 型 , 图像 M 4通 Z接 V6 0
D 62 频 口相 连 , 后端 采 用C P ES 司 的 C 760 3S 模 块 与 D 62 M4 视 Y RS 公 Y C 8 1UB M4 的 HI P 口相连 完成 与P 机通 信 ,实现 图像 的 实时采 集 与显 示 。 c 1系 统基 本原 理 系 统原 理 框 图如 图l 示 。系 统 主要 由CO 图 像传 感 器 (V 60 所 MS 0 7 6 )、
示 。阐述系统 的硬件 连接及软件 设计 。该 系统成本低 ,结构简单 ,应用范 围广 ,具有很 高的推广价 值。 [ 关键词] M 4 C O 0 7 6 U B P F D 6 2 M S V 6 0 S G I 中图分类号:T 3 文献标 识码:A 文章编号 :1 7 - 7 9 2 1 )0 2 0 1 0 P 6 1 5 7( 0 0 1 0 7 - 1

第5章 DM642的外部存储器EMIFA接口讲解

第5章 DM642的外部存储器EMIFA接口讲解
第5章 DM642的外部存储器 EMIFA接口
TDS642EVM 开发板地址空间影射
EMIFA接口
TMS32ODM642的数据空间划分为4个存储空间CE0CE3,每个存储空间的大小为256MB,这4个空间的地 址分配如下。
FLASH
存储器 接口
UART接口
FPGA 异步存 储器接 口
FPGA 同步存 储器接 口
AECLKOUT1和AECLKOUT2是时钟输出引脚,为外部存 储器提供同步时钟,AECLKOUT1和AECLKOUT2引脚输出 的时钟频率有所不同, AECLKOUT1 输出的时钟频率等于时 钟源的频率,AECL KOUT2引脚输出的时钟频率可编程,可 为时钟源频率的1分频、2分频或4分频。 GBLCTL寄存器的 第18-19位决定。
5.3 EMIFA寄存器:CESECx
CE空间次级控制寄存器包括4个寄存器CESECO、 CESECI、CESECZ和CESEC3。 SNCCLKx(CESECx[6])是EMIFA接口同步时钟选 择控制位,SNCCLKx位的取位代表的含义如下:
5.3 EMIFA寄存器:CESECx
5.4 EMIFA寄存器:SDCTL
空间管理引脚
3.外设数据传输控制引脚 (输出/高阻) 该引脚信号允许DM642和外设直接交换数
据。
EMIFA存储器控制引脚
信号分别用于异步存储器、SDRAM和同 步可编程存储器的写使能
EMIFA存储器控制引脚
EMIFA存储器控制引脚
EMIFA存储器控制引脚
第一脚为外部存储器提供时钟信号、读写控制信号、输出 使能控制信号等。EMIFA同步时钟源包括3种:AECLKIN引 脚时钟信号、主频时钟1/4和主频时钟1/6。 EMIFA 时钟游 由AEA[20,19]引脚的状态决定。AECLKIN是时钟输入引 脚,最高输入时钟频率133MHz;

基于dm6 42的多路视频采集系统

基于dm6 42的多路视频采集系统

基于DM642的多路视频采集系统引言随着数字信号处理器DPS 芯片集成度,运算速度,数据吞吐率等性能的不断提高,己被广泛应用于许多实时视频处理和传输领域。

一般图像处理系统由摄像机、图像采集卡、计算机构成,图像理解和处理算法全部以软件方式实现。

这是因为实时数字图像处理信息量和计算量大,而大多数图像采集卡基于成本考虑没有处理器和大容量的存储器,绝大部分任务必须依靠计算机才能胜任。

这种计算机参与的系统的应用场合受到很大限制,在工业或军事等复杂环境下应用极为不便,因此许多专用图像处理系统应运而生。

脱离计算机独立运行的实时专用图像处理系统,由于集图像采集、处理等功能于一体,并易于满足图像处理中数据量大、运算复杂、实时性强等要求而受到众多研究人员的关注。

TI 公司推出的TMS320DM642 型数字信号处理器可实时处理4 路模拟视频和音频输入、1 路模拟/数字视频和1 路模拟音频信号输出[1-2]。

适应PAL/NTSC 标准复合视频CVBS 或分量视频Y/C 格式的模拟信号输入,可适于PAL/NTSC 标准S 端子或数字RGB 模拟/数字信号输出,也可适应标准麦克风或立体声音频模拟输入及标准立体声音频模拟输出,并进采用EDMA 的数字视频图像信号的实时传输,具有对多路采集数据进行实时处理和分析的功能。

1 系统设计TMS320DM642 是32 位定点高性能处理器,最高工作频率可以达到720MHz,处理能力可以达到5760MIPS,因此可以实现对多路图像的实时处理[3-5]。

DM642 在TI 的C64x DSP内核基础上进一步集成了完备的视频接口、音频接口、以太网接口、PCI-66 总线等片上外设。

用户可以方便地对音频、视频等各种复杂的运算进行高速处理,因此DM642 已经广泛的应用于数字视频服务器、多通道数字视频录像机、多通道数字视频监控等领域。

本系统配置了4M 的Flash 和32M 的SDRAM,可以满足一般应用的需要。

基于DM642的嵌入式无线视频监控系统硬件设计概要

基于DM642的嵌入式无线视频监控系统硬件设计概要

无线视频监控系统是公安、交通、水利等行业的重要装备,目前无线视频传输设备主要采用微波方式,其致命弱点是传输距离短,有障碍物时传输距离大为减少, 多年来一直没有得到很好的解决。

随着运营商在国内大部分地区推出GRPS 和CDMA1x公共无线数据网络, 通过公共无线数据网络传输视频已成为当今研究和应用的热点, 它能彻底解决微波方式的短距离问题。

由于公共无线数据网络的带宽比较窄且不稳定, 采用编码效率不高的视频压缩算法(如H. 263、MPEG-4 等) , 传输效果不理想, 无法满足大多数监控场合的要求。

H. 264 是JVT制定的最新视频压缩标准, 比H. 263 和MPEG- 4 在同质量时码流可低50% , 同时支持无线网络传输, 但其运算复杂度也是H.263 和MPEG- 4 的3-5倍, 因此一般的CPU 系统无法满足要求。

TMS320DM642是TI最新推出的高性能数字媒体处理器, 指令最高可达4800MIPS, 可以满足实时H. 264 编码算法的要求。

本文设计了基于TMS320DM642 的嵌入式系统, 采用H. 264 视频编码算法, 成功的开发了基于CDMA 传输的无线视频监控系统。

1无线视频监控系统构成1.1无线视频监控系统设计需求本系统要求采用嵌入式视频发送终端,对采集视频图像进行实时压缩并通过CDMA网络发送,接收端采用PC 机对接收视频数据进行解码并显示。

对于嵌入式视频发送终端有如下需求:2.4CDMA无线传输串口模块本系统中采用Q2358C串行接口模块作为CDMA接入设备,它支持语音通信、支持中英文短信、双音多频功能(DTMF) 等功能。

波特率从300 到115, 200 bit/s, 支持上网最高速率153 kb/s, 采用AT 指令集通过RS-232串口进行通信。

DM642没有异步通用串行接口, 需采用扩展异步通信芯片来实现串行通信。

TL16C752B是UART收发器,最高波特率可以达到3Mb/s(使用48MHz 时钟源时) , 其内部具有64byte发送/接收FIFO , 接收FIFO的启动和停止可通过软件编程实现, 支持多种波特率、多种串行数据格式。

基于DM642的网络视频服务器设计与实现

基于DM642的网络视频服务器设计与实现

基于DM642的网络视频服务器设计与实现李维勇,王库,傅颖,孙庆中国农业大学信息与电气工程学院电子信息系,北京 (100083)E-mail:christopherlee1984@摘要:本文提出了一种基于DM642的网络视频服务器设计。

系统以DM642为核心实现了视频数据的采集、本地显示、H.264编码和网络传输。

介绍了系统的硬件结构和软件设计,重点给出了各个模块的程序设计。

实验结果表明,该系统能够满足网络视频服务器实时性和稳定性的要求,具有良好的推广应用价值。

关键词:视频监控;DM642;H.264;DSP/BIOS;NDK中图分类号:TN919.81. 引言随着社会的进步,人们生活水平的提高,我国视频监控市场得到了快速发展。

目前,传统的模拟监控市场正逐步萎缩,而数字监控逐步成为主流,网络化、个人化和智能化将是中国视频监控市场重要的发展趋势。

与模拟和数字监控技术相比,网络视频监控利用TCP/IP 网络,实现了远程监控和低成本扩展监控范围,大大扩展了视频监控的应用场景[1]。

针对数字图像数据量大和当前网络带宽不够的情况,系统采用了H.264压缩算法。

H.264作为最新的视频压缩标准,不仅在相同图像质量下比H.263和MPEG-4节约50%的码率,而且对网络传输具有更好的支持功能,另外还有较强的抗误码性。

这些特点使得H.264非常适合于视频监控方面的应用。

本文详述了一种基于DM642的网络视频服务器的设计,给出了视频采集、本地回显、压缩和网络传输的软件实现。

2. 系统硬件设计DM642是TI公司针对数字媒体应用推出的一款32位定点DSP芯片。

其工作主频高达720MHz,8个并行处理单元,处理性能可达5760MIPS。

采用二级缓存结构L1P、L1D和L2;具有64个独立的EDMA通道,能够实现L2和其他外设之间数据的高速传输;具有3个可配置为输入或输出的视频端口,支持多种视频标准;具有符合IEEE 802.3规范的10/100M以太网MAC和媒体独立接口(MII),可直接与PHY器件连接。

基于DM642的视频处理系统硬件设计

基于DM642的视频处理系统硬件设计
pr cia lt si o e a t bi yi mprv d. c i
Ke r s MS 2 DM6 2 i e r c s ig s s m ;i g a t r y wo d :T 3 0 4 ;v d o p o e sn y t e ma ec p u e;aa i u t lr cr i m c
第l 9卷 第Biblioteka 2期 Vo .9 1 1No2 .
电 子 设 计 工 程
Elc r n c De in En i e rn e to i sg g n e i g
2 1 年 1月 01
J n 2 1 a. 0 1
基于 DM62的视 频处理 系统硬 件设计 4
圣冬冬
( 海 航 天 技 术研 究 院 第 8 8研 究所 上 0 上 海 2 1 9) 01 0
d b g ig o h lr a d eh r e d l. h y t m o l e u e n v r u il s s c si g a t r n i e e u g n ft e aa m n t en tmo u e T e s s e c u d b s d i a i sf d u h a ma e c p u e a d vd o o e
2 10 , hn ) 0 19 C i a
Ab ta t ie rc sig sse b s d o MS 2 D 4 sp o oe sr c:A vd o po e s y tm ae n T 3 0 M6 2 wa rp sd,many icu ig me r d l,J AG n il n ldn moy mo ue T
p o e so v r d l w si t d c d, n l d n ef l wig d b g ig ol ci g o e s t g v d o ds l yn , rc s f e mo u e a nr u e i cu i g t ol n e u g n ,c l t ft t i i e, i e ip a ig e y o h o e n h a c ma

DM642EMDA

DM642EMDA

DM642中EDMA结构及优化DMA(Direct Memory Access)是DSP中至关重要的一个部分,DMA可以在不需要CPU的干预的情况下,在后台执行数据的高速传输,系统效率的高低很大程度上取决与DMA的使用好坏与否。

DM642是目前公司内使用最多的DSP,其运行效率的高低决定着大部分产品的性能。

下面就DM642上的DMA性能做一个简单的介绍和分析。

DM642中的DMA称为EDMA(Enhanced Direct Memory Access),其EDMA控制器支持64个相互独立的DMA通道,每个通道都可以接受系统外设事件的触发或者CPU的指令的触发,不同DMA传输之间还可以进行连接,构成各种复杂的DMA操作,在600MHz主频时可以提供2.4GB/秒的数据吞吐量。

具备的1维、2维传输模式,非常适合图像的处理。

要想用好EDMA,需要很好的理解EDMA的传输过程。

EDMA内部划分为4个优先级,分别是Q0(Urgent)、Q1(High)、Q2(Medium)和Q3(Low),顾名思义,从0-3由高至低,4个优先级分别对应4个队列,每个队列可容纳16个传输请求,每个队列都可以被CPU和外设使用,且每个部分占用的队列单元个数可以手动设置。

每个队列都是FIFO结构,先提交的传输先执行传输操作,队列后面的操作必须等待前面的操作完成后才能够被执行,但是各个队列之间的传输可以按照优先级并行操作,当某个操作处于阻塞、等待状态时,其它队列中的任务可以得到执行。

从这个基本操作模式可以看出合理的对EDMA资源进行分配很重要,目前DM642系统中的处理如下:1、高优先级的队列中执行传输数据少但时间要求最紧迫的任务,比如CACHE操作和CPU访问操作,因为这类操作如果得不到快速的响应,会造成CPU的阻塞,严重影响CPU的性能。

2、低优先级队列中执行紧迫性不高且数据量大的传输。

比如编解码的传输,预览、缩放的传输。

因为数据量的传输会很长时间的占用DMA操作和外部总线操作,如果将其放在高优先级队列中,会使那些数据量本来很少的操作因为优先级低而长时间得不到响应,造成浪费。

DM642视频输出有大量横线问题

DM642视频输出有大量横线问题

刚开始学DM642,想改一下例程,原来的功能是把摄像头获得的图像显示出来,我想对输入的信号二值化后再输出,结果虽然看得出部分图像二值化了,但是会出现大量横线,不知道是什么原因<是不是因为捕捉到的是场信号,而输出是帧信号的关系?)下面是部分代码:/** ======== tskVideoLoopback ========* video loopback function.*/void tskVideoLoopback(>{Int i。

Int status。

FVID_Handle disChan。

Int frames = 0。

FVID_Frame *disFrameBuf。

Int numLinesDis =EVMDM642_vDisParamsChan.imgVSizeFld1。

Int numLinesCap = EVMDM642_vCapParamsChan.fldYStop1 - EVMDM642_vCapParamsChan.fldYStrt1+1。

Int numLines = (numLinesDis > numLinesCap> ? numLinesCap : numLinesDis。

FVID_Handle capChan。

Int numPixels = EVMDM642_vCapParamsChan.fldXStop1 - EVMDM642_vCapParamsChan.fldXStrt1+1。

FVID_Frame *capFrameBuf。

Int capLinePitch = EVMDM642_vCapParamsChan.fldXStop1 -EVMDM642_vCapParamsChan.fldXStrt1+1。

Int disLinePitch =EVMDM642_vDisParamsChan.imgHSizeFld1。

numLines *= 2。

/* both fields *//**************************************************** **//* allocate both capture and display framebuffers *//* in external heapmemory */ /**************************************************** **/EVMDM642_vCapParamsChan.segId = EXTERNALHEAP。

基于DM642和nRF24E1的无线视频采集系统

基于DM642和nRF24E1的无线视频采集系统

系统的工作流程为:上电后先对cMOs图像传感器初始 化。Ov7620作为系统的图像传感器,首先在其内部将获取的 图像采样量化,然后在外部逻辑的控制下输出数字图像,并存 入图像存储器sDRAM中,当DsP接收到CPLD的读取信号后 开始读取数据.并完成对图像信号的MPEG一4压缩编码,处理 完后再通过nRF.24E1无线通道发射出去。在接收端,由USB 控制器cY7c68013提供usB2.0传输通道将接收到的图像数 据上传到主机。然后由主机进行解码等后续处理。
本系统采用的DSP为TMS320DM642,它是rI'I公司推出 的一款针对视频和图像解决方案的专门面向多媒体应用的高 性能数字信号处理器。它不仅拥有高速控制器的操作灵活性, 而且具有阵列处理器的数字处理能力。DM642的外围集成了 非常完整的音频、视频和网络通信接口,主要包括:三个可配 置的双通道视频端口vjde0 pon,每个video pon又分成A、B 两个通道;一个64bit的外部内存接口(EMIF);一个符合IEEE 802.3规范的l伽00M以太网接口(EMAc);1个多通道带缓冲 音频串行端口(McAsP);2个多通道带缓冲串行端口(McBsP);
3.2无线数传模块 nRF24E1是挪威Nordic公司推出的一款带2.4GHz无线 收发器nRF2401和增强型805l内核的无线收发模块.内置 了9输入10位A巾转换器、射频发射、接收、GMSK调制、解 调等功能。它工作于ISM频段。有125个频点。能够实现点对
点、点对多点的无线通信。最大传输速率可达lMbps,最大发 射功率为odBm,在比较理想的环境中,其室内传输距离可达 30—40米,室外传输距离可达100—200米,具有体积小、功耗 低、所需外围元件少等优点。在低成本应用场合显示了其独特 的优势。

基于DM642的实时多协议转换器设计

基于DM642的实时多协议转换器设计

基于DM642的实时多协议转换器设计黄敬礼;钱进【摘要】A multi-protocol converter was designed to solve the problem of real-time interconnection between all the subsystems in virtual testing systems which have different type buses. DM642 + FPGA structure is adopted in the hardware design according to the principle of hardware resource allocation that the priority level of protocols is considered first. FPGA is used for real-time prior matching of the protocol with higher priority level. The different interrupt information is classified and returned to DM642. In the software design, the protocols are stored according to the address blocks in order to improve the search efficiency of the protocol. In accordance with the characteristics of various types of threads in DSP/BIOS, the tasks are assigned reasonably and triggered according to their classification to speed up the data processing velocity and to ensure the real-time performance of high-priority protocol.%为了解决虚拟试验系统中具有不同总线类型的各实物子系统互联的实时性问题,设计了一种多协议转换器.按协议高低优先级分配软硬件资源,硬件设计采用DM642+ FPGA的结构,使用FPGA实时匹配高优先级协议,并对DM642分类返回不同中断信息;软件设计时,按地址分块存储协议以提高的协议的查找效率,并根据DSP/BIOS中各类线程的特点,合理分配任务并分类触发不同任务,以加快数据处理速度并保证高优先级协议实时性.【期刊名称】《现代电子技术》【年(卷),期】2011(034)022【总页数】4页(P147-149,161)【关键词】多协议转换器;实时性;DM642;DSP/BIOS【作者】黄敬礼;钱进【作者单位】哈尔滨工业大学自动化测试与控制系,黑龙江哈尔滨 150001;海军驻北京航天三院军事代表室,北京100074【正文语种】中文【中图分类】TN919-340 引言在虚拟试验系统中,需要将不同总线类型和不同传输协议的各实物子系统进行互联,实物设备子系统常采用1553B,ARINC429,RS 232等总线,协议转换的实时性对整个虚拟试验系统试验结果的真实性具有重要的影响,因此设计了基于DM642的实时多协议转换器。

DM642,DM643视频采集基本架构--程序注释

DM642,DM643视频采集基本架构--程序注释

DM642,DM643视频采集基本架构--程序注释1/* Copyright 2004 by Texas Instruments Incorporated.2* All rights reserved. Property of Texas Instruments Incorporated.3* Restricted rights to use, duplicate or disclose this code are4* granted through contract.5*/67#include <std.h> //如果使用C语言,必须将此文件作为第一个头文件。

8#include <tsk.h>9#include <sem.h>10#include <gio.h>11#include <csl_dat.h>12#include <csl_cache.h> //使用CSL库,要用到的一些头文件,可参考CSL13#include <fvid.h> //视频驱动头文件14#include <edc.h>15#include <vport.h>16#include <vportcap.h>17#include <vportdis.h>18#include <saa7105.h>19#include <tvp51xx.h>20#include <dec643.h> //芯片头文件。

2122//#include <evmdm642.h>23#include <evmdm642_capParamsSDTVDefault.h> //捕获设备配置文件24#include <evmdm642_disParamsVGADefault.h> //如用VGA显示,需要的显示设备配置文件25#include "colorbar.h" //如显示彩色滚动条,需要,否则不需要。

第2.1章 DM642硬件结构

第2.1章 DM642硬件结构
第2章 DM642 的结构
封装和引脚见文档
核心CPU
引导方式3:主机加载
核心CPU
引导方式3:主机加载
核心CPU
第2章 DM642 的结构
1、DM642有2个通用寄存器组(A和B),每个寄存器 组包含32个32位寄存器,其中相邻寄存器可以组成 寄存器对。 2、DM642有EDMA,可以与CPU并行工作,相当于拥 有了一个只能提供搬运功能的协处理器。 3、DM642片内的SRAM(256K)可以配置成为Cache, 也可以做为SRAM使用,具体如何使用可以自行配置, 常用的配置是配置成为4路cache,占据64k空间,其 余空间按照SRAM的方式使用,摆放放在片内的程序 和数据。

存储器空间分配
3.2 CE1空间地址分配 a)板上LED发光二极管地址: LED0: 0x90080008; LED1: 0x90080010 对该地址写0,LED亮;写1则灭; b)FLASH存储器的起始地址:0x90000000;每页 的大小是0x80000(512KB),若是4MB的FLASH,则分 成8页;若是8MB的FLASH,则分成16页;页选寄存器地 址是:0x90080020,对该地址写000,则选择第一页; 写001则是选择第二页,其他页依次类推。复位后,缺省 的页选是000。
DM642 的结构
核心CPU
DM642 的结构
核心CPU
DM642 的结构
核心CPU
DM642 的结构
核心CPU
DM642 的结构
核心CPU
DM642 的结构
核心CPU
核心CPU
存储器空间分配
一般DM642芯片 的地址空间 地址0X00000000 内部存储器 地址0X00040000 保留空间 和 外设寄存器 地址0X80000000 EMIF CE0 地址0X90000000 EMIF CE1 地址0XA0000000 EMIF CE2 地址0XB0000000 EMIF CE3 扩展 扩展 Flash和Led SDRAM 模块的地址空间配置 内部存储器 保留空间 和 外设寄存器

基于TMS320DM642的视频系统应用设计的开题报告

基于TMS320DM642的视频系统应用设计的开题报告

基于TMS320DM642的视频系统应用设计的开题报告一、选题背景及意义当前视频技术应用广泛,包括监控、视频会议、视频直播等领域都有重要的应用。

其中,嵌入式视频系统是近年来发展迅速的一个领域,它将视频技术与嵌入式系统相结合,实现了体积小、功耗低、性能高等优势。

TI公司的TMS320DM642是一款功能强大的数字信号处理器,被广泛应用于视频系统中。

本课题旨在研究基于TMS320DM642的视频系统应用设计,通过对该处理器的功能特点和视频技术的应用进行深入研究,设计出满足高性能、低功耗、高稳定性的嵌入式视频系统。

二、研究内容和方法本课题主要研究内容包括:TMS320DM642的架构及其特点、视频编解码技术以及嵌入式视频应用设计等方面。

具体研究方法为理论研究和实践探索相结合。

通过文献调研、技术分析等方法,深入掌握TMS320DM642的技术体系、视频编解码技术的基本原理及应用特点,并利用实际的硬件开发平台进行系统设计和实验验证,逐步完善嵌入式视频系统的性能和稳定性。

三、预期成果1.掌握TMS320DM642的处理器架构和技术特点,了解视频编解码技术的基本原理和应用特点,为嵌入式视频系统的设计和实现提供技术保障。

2.设计基于TMS320DM642的嵌入式视频系统,实现视频的采集、压缩、传输等功能,满足高性能、低功耗、高稳定性的要求。

3.开展实验验证工作,测试系统的运行状态和性能指标,并优化系统的性能和稳定性。

4.撰写相关技术论文、参加技术交流会等形式,分享研究经验和成果,并为相关企业和机构提供有价值的技术支持。

四、研究进度安排1.研究基于TMS320DM642的数字信号处理技术和视频编解码技术,完成对处理器的理论分析和实际应用测试。

2.设计嵌入式视频系统的硬件电路、样机验证和指标测试,优化系统的性能和可靠性。

3.开展相关实验验证工作,整理实验数据和测试结果,并结合论文撰写和技术交流会等情境,分享研究经验和成果。

基于DM642的双路视频合成硬件系统

基于DM642的双路视频合成硬件系统

基于DM642的双路视频合成硬件系统作者:云骞胡德计来源:《科技资讯》 2011年第28期云骞胡德计(天津职业技术师范大学机械工程学院天津 300222)摘要:DM642是TI公司推出的一款专门用于视频处理的DSP芯片,它是基于C6000系列的芯片,增加了很多外围设备和接口,具有高速运算能力,在多媒体领域得到了广泛应用。

本文主要分析和介绍了以DM642为核心的双路视频合成硬件系统的工作原理和主要功能模块。

关键词:视频合成 DM642 功能模块中图分类号:TU7 文献标识码:A 文章编号:1672-3791(2011)10(a)-0015-021 视频合成技术视频合成技术是图像处理方面的一个重要应用,它将一个图像的多个状态或者多幅不同图像进行合成,来实现虚拟面板、图像叠加、模拟场景、图像优化等效果。

多路视频合成显示技术是将通过多个途径(如摄像机、PC机、网络等),采集而来的视频信号进行处理,并按照实际所需进行显示。

本硬件系统是双路视频合成系统,视频信号来源于摄像头。

2 系统工作原理如图1所示,从CCD摄像头得到的两路视频信号经过视频解码器解码,DM642通过I2C总线控制解码器的工作模式和工作状态,使解码器把视频信号解码为DM642可以处理的数据格式,然后两路视频信号分别从vp0、vp1两个视频端口输入到DM642中。

由DM642对两路视频信号进行处理,处理程序可由计算机通过JTAG口下载到FLASH中。

采集到的视频数据通过EMIF用EDMA 送到扩展出来的SDRAM中,对数据进行存储。

因为DM642的两级缓存的空间不能满足大数据量的存取,它的空间不够,所以要先把视频数据存到SDRAM中,再对数据进行处理。

然后经过处理的视频数据通过vp2视频端口输出到视频编码器,DM642通过I2C总线控制编码器将视频信号编码为显示设备支持的数据格式。

最后系统将视频信号输出。

[1]3 系统结构双路视频合成硬件系统主要包括四个模块:视频采集模块、视频输出模块、DSP视频处理模块和FLASH模块。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DM642 RF框架小框架小结结DM642 RF框架小结RF5是德州仪器TI公司新近推出的DSP软件开发的起步代码参考框架,它以DSP/BIOS为基础,利用其中的数据处理元素和数据通信元素方便快捷地完成DSP软件的设计与开发RF5是RF的最新版本,其区别于RF1和RF3的显著特点是其支持动态对象创建和支持线程(任务)挂起功能,因此适合系统较复杂的应用场合。

RF5 主要实现三个功能,存储管理,线程模型和通道封装,对于不同的应用,我们只需在这三个元素上做修改,而对于整个应用程序,不用从头设计,这样大大简化了开发者的开发难度,缩短了开发时间。

RF5适用于包含大量的算法,且要求多线程,多通道的应用,如图像处理,多媒体应用等,以Ti提供的实例mpeg2loopback为例,对RF5进行分析。

RF5包含的元素有:1 线程(Thread):RF5框架包含四个基本的数据处理元素,处在最顶层的是线程,线程总是顺序的执行所包含的通道,线程在一个比较高级的级别上把数据组织在一起,他们可以与别的线程,设备驱动以及别的类似结构进行通讯,在mpeg2lookback实例中,创建了三个线程分别是tskVideoInput,tskVideoOutput和tskProcess。

每个线程都在不断的等待消息,处理数据,并将结果发送给其他的线程,同时有可能还要发送同步消息给其他线程已实现线程间的通讯,这里使用的机制是SCOM模块。

每个线程都是进行数据处理的一个单元,有的是处理简单的,有的处理是相对复杂的过程,简单的线程可以不包括任何的通道,而进行复杂数据处理的线程有可能包含多个的通道。

2 通道(Channel):RF5提供了一种通道结构是为了更方便的封装算法,这可以理解通道为并行里的串行,因为线程的执行就是由通道的串行执行来完成的,一个通道包含一组核(Icell),其主要任务就是依次顺序的执行所包含的核,主要执行的流程为:首先需要初始化通道模块,然后建立通道对象,注册该通道所包含的核对象,接着依次执行每个核,执行完成了后就销毁对象,最后退出。

每个通道可以包含多个核,每个核都要进行初始化后在调用CHAN_regCell注册。

通道对象的结构如下:typedef struct CHAN_Obj {ICELL_Obj *cellSet; /* set of cells in the channel */Uns cellCnt; /* number of cells in the cellSet */CHAN_State state; /* state of the channel */Bool (*chanControlCB)(CHAN_Handle chanHandle); /* optional control function */} CHAN_Obj;线程一般不定义通道对象,但是在CHAN_open()调用中初始化它们。

CHAN_open()的最后一个参数是通道属性(CHAN_Attrs)结构体的地址。

如果最后一个参数是NULL,那么CHAN_open()使用默认的参数。

如果要想使用不同的参数,就要声明一个CHAN_Attrs的结构体,并需初始化为CHAN_ATTRS宏所定义的初值,然后根据需要可以修改其中相应的域的值,通常,其中的通道状态参数CHAN_State state域默认为CHAN_ACTIVE,以及通道控制回调函数参数域Bool (*chanControlCB)(CHAN_Handle chanHandle)默认为NULL。

如果通道控制回调函数不是空,那么在任何的cell调用执行之前都会先调用此回调函数。

一个典型的设置,一个线程为每一个通道建立一个CHAN_Obj对象(或者一组类似的对象),并且为每一个cell建立一个ICELL_Obj对象(或者是与每个通道相对应的一组ICCE_Obj对象).在线程初始化ICELL_Obj之后就会调用下面的函数:备注其中的cell 指向cell 对象的指针, inputIcc/outputIcc是相应的cell的 ICC 对象,这个调用计算单元需要的空间,并分配给定的ICC对象给单元cell。

CHAN_regCell( cell, inputIcc, 1, outputIcc, 1 );当所有的cells都已经创建并初始化之后,线程调用CHAN_open()函数来为每一个指定的通道(chanNum)传递cell对象(cellList)。

这个函数创建所有的XDAIS算法,并且如果单元细胞定义了cellOpen函数,则会调用每一个单元细胞的cellOpen函数,.CHAN_open( chanList[ chanNum ], cellList, numCells, NULL/* default attributes */ );最后,在运行时,线程为每一个通道(chanNum)调用CHAN_execute函数开始执行:CHAN_execute( chanList[ chanNum ], NULL /* arg to cells */ );3 核(Icell):核实际上就是ICELL接口对象,基于RF5的应用常常包含大量的算法和通道,为了便于算法集中到应用中,RF5提出了核的概念,一个核就是包含一种XDAIS算法的容器,一个RF5通道对象可以包含多个核,也即是包含多个算法,通道通过核来调用算法,实际上,真正的数据处理是在XDAIS算法,核只是提供一个调用算法的接口,这大大简化了工作量,便于移植。

该接口包含一个重要的结构:ICELL_Fxns,该结构包含一组函数指针。

通道通过调用这些函数来调用算法,其中包含一个关键的函数cellExecute,这个函数的功能是调用XDAIS算法来执行,上面的通道执行函数CHAN_execute就包含了每个cellExecute的调用。

4 ICC模块ICC模块是用来管理在核之间以及核与其他线程之间的数据通讯,我们知道线程间的数据传输是通过SCOM模块来实现的,每个ICC模块管理一个或者多个ICC对象,每个核都有一组输入和输出ICC对象。

这些对象是通过CHAN_regCell()来注册到相应的通道里。

5 同步通讯机制(SCOM)ThrProcess中包含两个SCOM对象,RF5使用SCOM对象来实现线程的通讯。

SCOM消息时用户自定义的一个机构,一个线程通过调用SCOM_putMsg()函数将SCOM消息放置一个SCOM队列中,发送给其他的线程,或者通过调用SCOM_getMsg()函数从队列中获取消息,一般情况下,发送消息指明接收线程所要读取的数据缓冲区的地址(以指针形式),接收消息指明发送线程所要写入的数据缓冲区的地址,在mape2loopback实例中,thrProcess要从thraVideoInput接收消息,并发送消息给thrVideoOutput输出图像。

RF5使用SCOM来实现线程间的通讯:thrProcess拥有一些缓冲区,需要thrVideoInput写或thrVideoOutput读,所以thrProcess通过SCOM告诉thrVideoIput和thrVideoOutput线程数据缓冲区的地址,同时还要保证两个线程不会同时访问同一个缓冲区。

thrProcess创建了两种消息以分别和两个线程进行通讯,scomMsgRx和scomMsgTx,scomMsgRx指定了被thrVideoInput写的缓冲区地址,scomMsgTx指定了被thrVideoOutput读的缓冲区地址。

在实际的操作中,可是将SCOM看作是种同步标记,她用来区分模块内存是否正在被其他线程所使用,这样就可以放置内存访问的冲突。

整个系统中包含很多存储区,这些内存区很有可能在某一时刻正在被某一线程访问,为了保证在任意时刻只有一个线程访问某一块内存,当前正在访问这一内存块的线程通过发送SCOM消息给与这一内存块有关联的线程,告诉他,“我正在访问呢,你等会再来吧”。

当他访问完后,放弃了这一内存块的占有权,再通过SCOM消息告诉相关联的线程,“我用完了,你可以用了。

”于是相关联的线程就可以访问了。

6 ALGRF模块—算法的实例化Algorithm InstantiationALGRF Module用DSP/BIOSMEM内存管理器来创建和删除XDAIS算法的模块。

参考框架服务简化XDAIS部件的使用。

所有符合XDAIS标准的算法都必须使用一个标准的接口——IALG接口。

ALGRF使用算法的IALG来实现对XDAIS 算法的实例化。

任何符合XDAIS标准的算法都可以被ALGRF所使用。

用户代码不必直接的调用ALGRF函数,这个工作由CHAN和其他的库函数来完成。

例外的是cell wrappers中的ALGRF_activate/deactivate序列化:如果cell中的XDAIS算法执行IALG_active/deactivate函数,细胞需要调用两个ALGRF函数来完成。

三个模块来简化IALG接口创建算法对象,RF5使用ALGRF模块来创建,配置,删除XDAIS算法实例。

ALG模块使用CCStudio作为通用目的使用,并且不用DSP/BIOS MEM模块分配内存.ALGMIN是三个中的最小应用。

一般情况下,三个模块是相互包含的,但是只有一个能在应用程序中使用。

ALGRF适于RF5的需要和别的RF级别,而不适合紧凑和底端的如RF1级别的系统。

ALGRF与ALG相比,有以下的优势:1 更小的代码脚本(代码量):作为一个通用的模块,ALG支持malloc/free 运行时库和DSP/BIOS MEM_alloc/MEM_free动态内存分配方式,ALGRF只支持DSP/BIOS分配,这为设计者省了代码空间,另外ALGRF保证没有无用代码的存在.只有被调用的函数才被连接到执行程序中。

2 暂存区支持:下面的API在ALGRF中介绍的实例:ALGRF_Handle ALGRF_createScratchSupport(IALG_Fxns *fxns, IALG_Handle parent,IALG_Params *params, Void *scratchBuf, Uns scratchSize)除了当IALG_SCRATCH内存区域(内部数据缓冲区)被请求,该函数能根据算法请求分配内存。

作为替代,scratchBuf和scratchSize这两个参数表明这一缓冲区已经在应用中存在,而且可以被当前的算法重新使用.这就可以受约束的共享资源有限的内存区。

3 从DSP/BIOS堆标签中做提取:ALGRF使用DSP/BIOS 的MEM模块动态分配内存。

相关文档
最新文档