基于TMS320DM642驱动模型的驱动程序开发
- 格式:doc
- 大小:185.00 KB
- 文档页数:6
电子技术DM642嵌入式图像融合处理系统硬件设计研究郝雅婷,马立新(中国矿业大学,北京,100083)摘要:时代的进步使得嵌入式系统朝着更为智能的方向发展,DSP被人们广泛的应用到信号高速处理领域,特别是在图像处理加工领域能够为图像处理提供精准的数据支持。
为此,文章以图像融合硬件系统打造和技术实现为研究对象,将TMS320DM642芯片(以下简称DM642)作为核心处理器,就DM642嵌入式图像融合处理系统的架构、处理器内部配置、硬件设计问题进行探究。
关键词:DM642;嵌入式图像;融合处理系统;硬件设计在工业监督控制、机器视觉、医学影像处理领域会应用一些复杂的算法来进行多图像处理数据,基于这样的要求传统的图像处理系统很难满足系统处理要求。
文章面向实时图像处理,采用模块化的设计思想以新一代高性能多媒体专用DSP芯片DM642为核心,打造了体积小、能耗低、应用性强的嵌入式实时图像处理可拓展硬件平台。
1DM642嵌入式图像融合处理系统的总体架构设计DM642嵌入式图像融合处理系统是基于专用数字媒体应用的高性能32位定点芯片DM642进行设计开发的,系统以DM642为核心,由图像采集模块、图像处理模块、图像存储模块以及电源模块等构成。
系统的具体工作原理如下所示:在系统通电之后从FLASH加载程序,完成对DM642的初始化并通过FC总线来实现对视频编解码芯片的参数设定。
在设定好参数之后开展进行图像信息的采集整理,从四路图像传感器采集到的模拟图像信号经过解码转换成数字图像信号后会通过DM642视频接口传送到DSP 中,再经由内部图像处理后,通过DM642视频接口解码传出显ZBoDM642嵌入式图像融合处理系统总体架构如图1所示。
图1DM642嵌入式图像融合处理系统架构2DM642嵌入式图像融合处理系统的内部配置■2.1系统存储空间DM642嵌入式图像融合处理系统程序或者数据存储空间地址以字节为基本单位进行统一编写,整个寻址空间的大小为4G,片上存储器、片上外设、外部的储存器都能够映射到4G的字节空间中。
基于CAN通信实现MBD代码下载的DSP Bootloader开
发
郭毅锋;郭世成;黄丽敏;张栗
【期刊名称】《制造技术与机床》
【年(卷),期】2024()3
【摘要】为了实现DSP嵌入式系统在实际应用中便捷下载MBD(model-based design)代码的需求,文章设计了一种基于CAN通信实现MBD代码下载的Bootloader方案。
以TMS320F28335为例,通过对MBD代码的结构进行分析,设计了Boot程序与MBD程序的内存划分方案,确保程序下载的有效性和稳定性;开发了相应的Boot程序和上位机程序,详细介绍了Bootloader的实现流程,并对关键步骤函数进行了分析与解释,利用CAN通信实现了程序的下载。
实验结果表明,该方法稳定可靠且具有实用性,为DSP嵌入式系统在实际应用中的MBD代码下载提供了一种可行且高效的解决方案。
【总页数】8页(P57-63)
【作者】郭毅锋;郭世成;黄丽敏;张栗
【作者单位】广西科技大学自动化学院;成都大学机械工程学院;四川省技术转移中心
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于汽车ECU串口的代码下载与调试方法的实现
2.基于TMS320DM642的Flash头文件烧写法的DSP二级BootLoader开发
3.TMS320C6713基于
DSP/BIOS的二级BootLoader开发4.基于DSP系统的USB通信硬件电路CPLD 实现及其固件开发5.基于串口通信方式实现对工控微处理器的代码下载与调试
因版权原因,仅展示原文概要,查看原文内容请购买。
基于DM642的双路视频合成硬件系统摘要:DM642是TI公司推出的一款专门用于视频处理的DSP芯片,它是基于C6000系列的芯片,增加了很多外围设备和接口,具有高速运算能力,在多媒体领域得到了广泛应用。
本文主要分析和介绍了以DM642为核心的双路视频合成硬件系统的工作原理和主要功能模块。
关键词:视频合成DM642 功能模块1 视频合成技术视频合成技术是图像处理方面的一个重要应用,它将一个图像的多个状态或者多幅不同图像进行合成,来实现虚拟面板、图像叠加、模拟场景、图像优化等效果。
多路视频合成显示技术是将通过多个途径(如摄像机、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模块。
视频采集模块主要用于对视频信号的解码,把解码后的数据送到DSP进行数据处理。
视频输出模块把经过DSP处理的数据编码输出到显示设备。
DSP视频处理模块是整个硬件系统的核心,它的主要工作是把经过解码的两路视频数据进行合成处理并送到视频输出模块等待输出。
TMS320DM642中文资料_特点TMS320DM642 视频/图像定点数字信号处理器1TMS320DM642视频/图像定点数字信号处理器1.1特点●高性能数字媒体处理器-2-,1.67-,1.39-ns 指令周期-500-,600-,720-MHz时钟频率-每周期执行8条32位指令-与C64x完全兼容●V elociT1.2是具有先进超长指令字(VLIW)TMS320C64x DSP核V elociT的升级版-8个独立的功能单元6个ALU(32/40bit),每个功能单元支持每时钟周期32位算术操作,双16位比特算术操作,或4个8位算术操作2个乘法器支持每时钟周期4个16×16位的乘法(结果是32位)或者8个8×8位乘法(结果是16位)-具有无需阵列支持的负载存储结构(1)-64/32位通用寄存器-指令打包技术,减少代码容量●指令设置特点-字节寻址(8/16/32/64位数据)-8位溢出保护-可位提取,设置,清除操作-标准化,饱和度(1),位计数-增强交互的V elociT1.2●L1/L2存储器结构-128Kbit(16Kbyte)L1P程序缓存(直接映射)-128Kbit(16Kbyte)L1D数据缓存(2路结合设置)-2Mbit(256Kbyte)L2标准映射RAM/缓存(灵活的RAM/缓存分配)●小端模式,大端模式●64位外部存储器接口(EMIF)-支持异步存储器(SRAM和EPROM)和同步存储器(SDRAM,SBSRAM,ZBT SRAM 和FIFO)直接接口-总共1024Mbyte可寻址外部存储空间●增强的直接存储器访问(EDMA)控制器(64个独立的通道)●10/100Mb/s以太网控制器(EMAC)-适应IEEE802.3-媒体独立接口(MII)-8个独立的发送通道和1个接收通道●管理数据输入输出(MDIO)●3个可配置视频接口-给公共的视频编码解码器件提供一个直接I/F接口-支持多种协议/视频标准●内插VCXO控制接口-支持同步音频/视频●主机接口(HPI)[32/16位]●符合PCI接口规范2.2版本,32位/66MHz,3.3V PCI主/从接口●多通道音频串行接口(McASP)-8个串行数据引脚-多种I2S和相似的比特流格式-完整的数字音频I/F发送器,支持P/DIF, IEC60958-1, AES-3, CP-430格式●I2C总线●2个多通道缓存串行接口●3个32位通用定时器●16个通用输入输出(GPIO)引脚●灵活的PLL时钟发生器●支持IEEE-1149.1(JTAG)边界扫描接口●548引脚球栅阵列(BGA)封装(GDK和ZDK为后缀),0.8mm Ball Picth(1) ●548引脚球栅阵列(BGA)封装(GNK和ZNK 为后缀),1.0mm Ball Picth(1) ●0.13μm/6等级CMOS工艺●I/O采用3.3V供电,内核采用1.2V供电(-500)●I/O采用3.3V供电,内核采用1.4V供电(A-500,A-600,-600,-720)注:红字为翻译有疑问的地方,()中的数字为相应pdf文档的页数。
基于TMS320DM642驱动模型的驱动程序开发
武汉大学金朝辉
随着新技术不断涌现和DSP实时系统日趋复杂,不同类型的外部设备越来越多,为这些外部设备编写设备驱动程序已成为依赖操作系统管理硬件的内在要求。
但是,由于内存引脚、响应时间和电源管理等条件的限制,为一个给定的DSP系统编写设备驱动程序有时会很困难。
针对设备驱动程序开发者遇到的上述难题,TI公司为C64X系列DSP的开发者提供了一种"类/微型驱动模型(Class/Mini-driver Model)",该模型在功能上将设备驱动程序分为依赖硬件层和不依赖硬件层,两层之间使用通用接口。
实践结果表明,采用类/微型驱动模型进行设计后,应用软件可以复用绝大部分相似设备的驱动程序,从而提高驱动程序的开发效率。
1 类/微型驱动模型简介
在类/微型驱动模型中,类驱动通常用于实现多线程I/O请求的序列化和同步功能;同时对设备实例进行管理。
在包括视频系统I/O和异步I/O的典型实时系统中,只有少数的类驱动需要表示出外部设备的类型。
类驱动通过每个外部设备独有的微型驱动对该设备进行操作,微型驱动则通过控制外设的寄存器、内存和中断资源来实现对外部设备的控制,微型驱动程序必须将特定的外部设备有效地表示给类驱动。
例如:视频显示设备存在一些不同的帧存,应用软件会根据不同的I/O操作进行帧存的分配,此时微型驱动必须映射视频显存,使得类驱动可对不连续的内存(分别存放RGB或YUV分量)设计特定的I/O请求,类/微型驱动模型允许发送由开发者定义数据结构的I/O请求包给微型驱动来控制外部设备,此分层结构使设备驱动的复用能力得到加强,并且丰富了发送给微型驱动I/O 请求包的结构。
类/微型驱动模型的结构如图1所示,上层应用程序并非直接控制微型驱动,而是使用一个或一个以上的类驱动对其进行控制。
每个类驱动在应用程序代码中表现为一个API函数,并且通过微型驱动的接口IOM与微型驱动进行通信,类驱动使用DSP/BIOS的中的API函数来实现诸如同步等系统服务(DSP/BIOS是TI公司推出的一种实时操作系统,实际上它是一组可重复调用系统模块的ABI函数集合)。
到目前为止DSP/BIOS共定义了3种类驱动:流输入输出管理模块(SIO/DIO)、管道管理模块(PIP/PIO)和通用输入输出模块(GIO)。
在PIP/PIO和SIO/PIO类驱动中,调用的API函数已存在于DSP/BIOS的PIP和SIO模块中,这些API函数将参数传给相应的适配模块(Adapter),适配模块再与微型驱动交换数据。
在GIO类驱动中,调用的API函数直接与微型驱动通信(需在CCS2.2以上)。
每个微型驱动都为类驱动和DSP/ BIOS设备驱动管理提供了标准接口,微型驱动采用芯片支持库(chip support library)管理外围设备的寄存器,内存和中断资源。
2 类驱动的编写
流输入输出管理模块和管道管理模块是DSP/BIOS提供的两个接口模块,用于支持DSP和外设之间的数据交换。
这两种模块的数据传输都可通过类驱动中的适配模块和微型驱动的IOM连接。
SIO
的适配模块称为DIO:PIP的称为PIO。
类/微型驱动模型还可使用第三种接口模块--通用输入输出模块,其传输模块是基于流输入输出模式的同步I/O模式,更适合文件系统I/O。
在编写类驱动时,可以直接调用GIO的读写API函数,这些函数的接口已内置于微型驱动的IOM中。
2.1 流输入输出管理模块和SIO的适配模块
DSP/BIOS中的流输入输出管理模块为每个DSP/BIOS线程提供了一种独立的I/O机制,它支持动态创建。
流输入输出管理模块有自己的驱动模型,称为DEV。
DEV程序和微型驱动的编写方法相似,都要实现函数表中的打开,关闭和缓存管理等函数,然而结构比较复杂,相比之下,SIO的适配模块可以简化流输入输出模块和IOM之间的连接,使得通信和同步变得更简单。
2.2 管道管理模块和PIP的适配模块
DSP/BIOS中的管道管理模块提供了管理异步I/O的"数据管道",每个管道对象都拥有一块同样大小的缓存,这些缓存分为同样数量且等长的小块;小块的数量和长度在DSP/BIOS中设置。
虽然小块的长度是固定的,但应用程序可把小于这个长度的数据放入缓存小块中,一个管道有两个结束状态:写完缓存和读完缓存。
通常,无论是哪个结束状态都会激活I/O设备。
数据通知函数用来执行读/写同步任务以及通知PIP缓存填满或清空。
写数据时,PIP_alloc函数用来获得缓存,PIP_put函数用于将数据写入缓存;写完后,读数据通知函数notifyReader将被调用。
当读数据时,PIP_get函数用来接收缓存中的数据,PIP_Free函数在数据不再被使用时将缓存清空,清空完后,写数据通知函数notifyWriter将被调用。
2.3 通用输入输出模块
通用输入输出模块在提供必要的同步读/写API函数及其扩展函数的同时,将代码和使用数据缓存
的大小尽量简化。
如图2所示,应用程序可以调用GIO的API函数直接与微型驱动的IOM交换数据,这些API函数使得GIO成为第三种类驱动。
函数表指针是应用程序和微型驱动函数表(fxns)的接口;创建模式包括输入(IOM_INPUT)、输出(IOM_OUTPUT)和双向(IOM_INOUT);IOM_Packet在类驱动和微型驱动间执行异步操作时使用,同步对象地址指向特定通道的同步信号,通道实例地址则指向微型驱动创建的通道实例。
3 微型驱动的设计和实现
类/微型驱动模型中的微型驱动直接控制外部硬件设备。
只要微型驱动创建了规定的函数,应用程序就可以方便地通过DIO适配模块、PIO适配模块或(和)GIO类驱动调用。
规定的函数包括:通道绑定函数(mdBindDev)、通道创建/删除函数(mdCreateChan/mdDeleteChan)、I/O请求发送函数(mdSubmitChan)、中断服务函数(ISRs)和设备控制函数(mdControlChan)。
这些规定的函数将放入微型驱动的函数接口表(IOM_Fxns)中的相应位置,供应用程序通过适配模块或GIO 类驱动调用。
函数接口表的结构如下:
微型驱动支持的控制代码和控制操作,特别要注明该代码的针对对象(针对通道实例还是设备实例)。
例如,改变外设波特率的控制代码,必须注明是针对某个通道还是所有通道的,否则容易给应用程序带来错误。
4 用MiniDriver实现视频数据的输入和输出
如图3所示,从视频采集芯片采集来的视频数据通过EDMA从视频接口(Video Port)传输到缓存中,此过程可以通过MiniDriver实现,本设计在MiniDriver中通过判断视频接口是否有完整的帧数据来实现帧缓存的管理和EDMA的重装载及清零更新;在清零后MiniDriver通知上层类驱动有空帧缓存可以使用。
这样就实现了数据的连续传送。
数据输出时,使用下文设计的PCI MiniDriver实现。
4.1 微型驱动的设计与编写
ISRs为和mdControlChan的结构与mdSubmitChan的结构类似,本文不再做叙述。
4.2 在DSP/BIOS中注册微型驱动
打开DSP/BIOS配置工具,如图4所示,首先右击User-Defined Devices图标,选择插入选项,并重新命名为PCICHAN;然后右击PCICHAN,选择属性选项,如图5所示进行注册。
4.3 编写类驱动
本例的类驱动使用通用输入输出模块,首先右击图4中的GIO-General Input/Output Manager,选择"启动GIO",在应用程序中,GIO_create函数使用微型驱动PCICHAN来创建通道实例;通过调用GIO_submit函数来完成应用程序对PCI设备的读/写操作等,源代码如下:
通过上述3个步骤,PCI设备的DSP/BIOS驱动设计就基本上完成了,应用程序可以通过使用类驱动来复用PCI设备,这样极大地提高了驱动的工作效率,也大大简化了对PCI外设的控制。
本文摘自《单片机与嵌入式系统应用》。