




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 内部648软件开发介绍一 DM648介绍DM648属于TI达芬奇系列,采用单核C64X+定点CPU,支持最高频率1.1GHz,有两个乘法器支持四个16bits*16bits(结果32bits)单个clock cycle或者八个8bits*8bits(结果16bits)单个clock cycle。还有6个ALU。648的片上存储器有L1P(32KB),L1D(32KB),L2(512KB)648集成了五个视频口VPORT,省去FPGA做FIFO,可以节省产品成本。648集成了丰富的外设,包括edma(64个通道),SPI,I2C,UART,EMIF,DDR2,Ethernet,gpio(32个
2、),McASP,PCI。二 搭建软件开发环境2.1操作系统环境 Win7 32位或win-XP环境2.2软件安装和配置 需准备的安装软件Ccs3.3 bios3.08 648dvsdk perlBios是TI针对DSP开发的实时嵌入式操作系统。Dvsdk是基于BIOS系统的视频开发包。Perl是脚本工具,烧写程序时将out文件转换为ais文件。建议所有软件安装到默认目录下,安装完后配置操作系统环境变量修改BIOS_INSTALL_DIR变量为C:/CCStudio_v3.3/bios_5_31_08配置CCS的组件管理器,如图2-1 点“开始->所有程序->TI->compo
3、nent manager,修改Target Content(DSP/BIOS)->TMS320C64XX为当前版本的DSP/BIOS 图 2-12.3 DVSDK目录文件介绍 默认安装到C:dvsdk_1_11_00_00_DM648目录下,其中edma3_lld_1_05_00是edma3驱动包examples 包含很多基于BIOS的示例应用工程,我们参考video_preview示例程序作为框架,添加图像处理算法和通讯驱动。flashutil 包含flash烧写工程norwriter,bootloader程序ubl,ais文件生成脚本ndk_1_92_00_22_eval 网络开发软
4、件包pspdrivers_1_10_00 包含了TI提供的很多基于BIOS系统的驱动,我们参考其中VPORT的驱动,将按帧采集修改为按场采集的功能xdc_2_95_02 xdc工具安装路径,xdc是ccs的子工具,是一个javascript编译工具,用于编译cfg文件,cfg文件在后面讲。如图2-2安装XDC后,会在工程的编译选项界面增加XDC选项。图2-22.4仿真器 TDS560USB PLUS 在CCS setup界面选择TDS560USB PLUS platform和C64x+ family的DM648。如图2-3.图2-3三 VPORT+EDMA工作原理3.1 VPORT介绍 DM6
5、48集成了五个VPORT口,用于视频输入输出,每个VPORT可以配置为capture或display模式。Capture模式又分为双通道8bit BT656,单通道16 bit Y/C模式。Display模式又分为单通道8bit BT656, 单通道16 bit Y/C模式。目前,capture和display模式都采用8bit BT656子模式,PAL视频编码芯片和解码芯片也设置为BT656模式。3.2 BT656标准简介 BT656标准将4:2:2格式YCbCr数据统一封装在一个数据流中,按照CbYCrY顺序排列,Y的数据数量是Cb,Cr的2倍,。BT656数据流中,ffh和00h保留用于
6、时序标示。在视频数据每行的开头和结尾有标示SAV(start of video),EAV(end of video)。SAV和EAV的格式是ffh,00h,00h,XYh,前三个字节固定,第四个字节包含场标示,场消隐状态和行消隐状态,如图3-1。 图3-13.3 VPORT FIFO每个VPORT有一个FIFO存储进入的数据或者从FIFO输出。BT656 capture模式中,FIFO分成A、B两个通道,如图3-2,A通道接收VDIN9-2管脚的数据,B通道接收VDIN19-12管脚的数据。每个通道又分Y,Cb,Cr三个缓存,每个缓存区有独立的读寄存器。 图3-2BT656 display模式
7、中,如图3-3,只有一路输出,FIFO分为Y,Cb,Cr三个缓存区,每个缓存区有独立的写寄存器。 图3-3VPORT和EDMA配合在FIFO和外部或片上存储器之间移数。我们可以编程FIFO的阈值寄存器,当FIFO达到设置满度(fullness)(对于捕获模式)或者低于设置满度(对于显示模式)时,生成EDMA事件,触发相应EDMA通道移数。每个VPORT对应6个EDMA事件,分别是VPxYEVTA,VPxCbEVTA,VPxCrEVTA,VPxYEVTB,VPxCbEVTB,VPxCrEVTB例如,我们用VP0口的A通道做为BT656视频输入,VP1口做为BT656视频输出。设置VP0口A通道Y
8、,Cb,Cr三个缓存区的阈值为720,360,360。当PAL图像数据传输完一行后,三个缓存区都达到阈值,生成VP0YEVTA,VP0CbEVTA,VP0CrEVTA三个事件,触发对应的三个EDMA通道将三个FIFO缓存区的一行图像数据移入DDR2缓存区。设置VP1口Y,Cb,Cr三个缓存区的阈值为720,360,360。当三个缓存区数据数量低于阈值时,生成VP1YEVTA,VP1CbEVTA,VP1CrEVTA三个事件,触发对应的三个EDMA通道将DDR2缓存区的一行图像数据移入三个FIFO缓存区。四 应用程序及驱动解析4.1两个重要文件 基于BIOS/DSP系统开发软件,有两个重要工程文件
9、tcf和cfg文件,如图4-1中红圈1和2。 图4-1 tcf文件包含了DSP/BIOS的配置信息。红圈3的global settings设置DSP工作频率,L1,L2 cache size,大小端,L2 cache 128kB。Memory section设置程序和数据各部分在存储器中的段地址。红圈4 HWI(hardware interrupt)处,添加硬件中断处理函数红圈5 添加BIOS/DSP的线程cfg文件包含了库链接路径信息,使用javascript语言,如图红圈6。使用XDC工具编译cfg文件,生成库链接信息,供C编译器链接库时使用。cfg文件常链接的库有vport驱动,edma
10、驱动程序。4.2图像缓存分配和管理 Edma在VPORT和SDRAM之间搬数,CPU要访问SDRAM最新的图像数据,程序采用多个图像缓存区循环的方式将这两个过程并行化。应用层创建捕获或显示通道时,调用驱动层程序在DDR2分配存放图像数据的缓存区。分配之前,驱动根据通道的配置参数计算每个缓存区的大小。例如,vp0按场采集,vp1按帧显示。Vp0的每个缓存区的大小是720*288*2,vp1的每个缓存区的大小是720*576*2。应用程序使用FVID_dequeue()出队函数和FVID_queue()入队函数或FVID_exchange()交换函数,在应用程序和驱动程序之间交换图像缓存区。捕获和
11、显示驱动的缓存管理方法不同,如下面两图4-2和4-3:图中蓝块表示应用程序的图像缓存区,白块表示驱动程序的图像缓存区。图像捕获缓存区,初始时所有的缓存区都在捕获队列里,捕获驱动程序以循环的方式填充每个缓存区。当应用程序调用FVID_dequeue()函数时,将放有最新图像数据的缓存区出队并返回给应用程序,驱动在余下的队列里循环填充,如(a)到(b)和(b)到(e)。当应用程序调用FVID_queue()函数时,将一个空的缓存区交给驱动程序并加入队列,如图(b)到(a)和(e)到(b)。当应用程序调用FVID_exchange()函数时,应用程序交给驱动一个空的缓存区,驱动交给应用程序放有最新图
12、像的缓存区,相当于同时调用FVID_dequeue()和FVID_queue()两个函数,如图(b)到(c)和(c)到(d)。 图4-2 图像显示缓存区,初始时只有一个缓冲区用于显示,其它缓存区等待出队,如图(a),黄块表示显示驱动队列里准备出队的缓存区。显示驱动程序重复显示一个缓存区的图像。当应用程序调用FVID_dequeue()函数时,从驱动获得一个缓存区,应用程序向它填充显示数据,同时驱动仍然显示之前的缓存区,如图(b) 和(d)。当应用程序调用FVID_queue()函数时,应用程序给驱动程序一个准备显示的缓存区,同时驱动将它设置为当前的缓存区,如图(b)到(c)到(d)。当应用程序
13、调用FVID_exchange()函数时,应用程序给驱动一个准备显示的缓存区,从驱动得到一个空的缓存区,相当于同时调用FVID_dequeue()和FVID_queue()函数,如图(d)到(e)。 图4-34.3 应用程序框架介绍基于dvsdk_install_dir/example目录下的video_preview示例程序,做为项目软件框架应用程序主要包含三部分: Main函数 Video_preview线程 自添加的中断处理函数许多实时DSP应用都需要同时执行很多不相关的功能,这些功能一般是对外部事件的响应,这些功能就加线程。DSP/BIOS支持4种线程:(1) 硬件中断(HWI):频率
14、可达200KHz(5us)(2) 软件中断(SWI):SWI允许HWI将一些非关键处理在低优先级上延迟执行,这样可以减少在中断服务程序中的驻留时间。(3) 任务(TSK):任务与中断不同点在于,任务在执行过程中可以被挂起。(4) 后台线程(IDL):空闲循环,运行那些没有执行时间限制的函数。 上电加载完操作系统内核后,首先执行main函数。 Main函数执行完后,启动video_preview线程,线程生命期直到执行结束后。此线程主要功能有图像采集,处理,字符叠加,显示。 Video_preview线程第一步调用FVID_create()函数为vp0口创建捕获通道对象capChan,初始化vp
15、0寄存器,为vp1口创建显示通道对象disChan,初始化vp1寄存器。第二步调用FVID_allocBuffer() 为capChan和disChan分别分配三个图像缓存区,然后调用FVID_queue()将三个缓存区组成队列,同时为capChan和disChan分配edma通道,设置edma参数表。第三步调用FVID_control()函数使能vp0,vp1口,vp0开始捕获,vp1开始输出显示。第四步调用FVID_dequeue()从capChan和disChan的缓存队列中各出一个缓存。第五步 进入while(1)循环,在循环中执行两次FVID_exchange()。FVID_exch
16、ange(capChan,pImg1)捕获新的一场图像数据,FVID_exchange(disChan,pImg)显示新的一帧图像。捕获两次,显示一次。 FVID_exchange(capChan,pImg1)后面添加图像处理算法和叠加字符。 4.4添加图像处理算法 在FVID_exchange(capChan,img)函数捕获图像后添加图像处理算法。为了减少CPU访问图像数据时间,将图像数据和访问频率高的中间数组放在L2 RAM里。DM648 L2的大小512KB,其中128KB用于cache,剩余384KB可用于应用程序存放图像数据。4.5 VPORT驱动调试方法 VPORT驱动采用BIO
17、S的两层驱动模型class/mini-driver,BIOS现在抽象定义了三种class驱动,PIP/PIO,SIO/DIO,GIO,应用程序通过这三类BIOS API接口与mini driver通讯,在一个应用工程中可以同时使用这三种API 接口。Mini层通过CSL层访问外围硬件的寄存器,存储器,中断资源,如图4-6。 图4-6Video_preview应用工程中使用了BIOS GIO接口API,如图4-7是GIO和mini diver层包含的API,FVID函数是GIO API的宏定义,如下:#define FVID_create(name, mode, status, optArgs,
18、 attrs) GIO_create(name, mode, status, optArgs, attrs)#define FVID_exchange(gioChan, bufp) GIO_submit(gioChan, FVID_EXCHANGE, bufp, NULL, NULL)#define FVID_control(gioChan, cmd, args) GIO_control(gioChan, cmd, args) 图4-7VPORT的mini driver层实现工程vport_bios_dm648_drv_lib.pjt在dvsdk_install_dir/pspdriver目录下,将其设置为video_preview_PAL.pjt的依赖工程(Dependent Projects),如图4-8,这样应用工程重新编译之后就可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年计算机基础知识的内容划分研究试题及答案
- 2024年食品质检员考试的心理准备试题及答案
- 解析2024年统计学考试重点试题及答案
- 新进护士岗前培训
- 美容师当下市场竞争态势与分析试题及答案
- 2024年药理学考试设计题及答案
- 2024年汽车维修工考试对行业影响
- 面向宠物主的营养传播方式试题及答案
- 宠物营养学新技术对考试的影响与试题及答案
- 2024年宠物营养师考试复习经验与试题及答案
- (2025)驾照C1证考试科目一必考题库及参考答案(包过版)
- 克服考试紧张情绪的技巧
- 2025年一季度安全自检自查工作总结(3篇)
- 2025年泰兴经济开发区国有企业招聘笔试参考题库含答案解析
- 2025年人民法院信息技术服务中心招聘应届高校毕业生高频重点提升(共500题)附带答案详解
- 《卵巢癌的手术治疗》课件
- 中学教育《养成好习惯》主题班会课件
- 无线通信射频收发系统设计研究
- 造纸厂管理规章制度
- 护理授权管理制度内容
- 断层封闭性定量研究现状
评论
0/150
提交评论