提到嵌入式视频处理芯片,德州仪器(TI)的达芬奇(DaVinci)系列绕不开。DM365是达芬奇系列里针对高清视频应用的主力芯片之一,从2008年发布至今,在网络摄像机、DVR、视频服务器、可视对讲这些领域依然能看到它的身影。虽然TI已经推出了性能更强的DM8168、AM57x等后续型号,但DM365凭借成熟的生态、便宜的价格,至今还是很多中低端视频产品的首选平台。今天就聊聊DM365的架构特点、开发要点以及实际项目中踩过的坑。
DM365的核心架构可以概括为"ARM9+视频加速器"的组合,跟达芬奇系列的设计理念一脉相承。主控是一颗300MHz的ARM926EJ-S处理器,跑Linux系统,负责系统调度、网络协议栈、应用逻辑这些通用任务。视频处理部分是独立的硬件加速模块,包括HDVICP2视频编解码引擎(支持H.264、MPEG-4、MJPEG的编解码,最高1080P 30帧)、ISP图像信号处理器(做3A、降噪、色彩校正)、缩放器(Scaler)、视频后端(做显示输出)。这种架构的好处是ARM核心不用处理繁重的视频编解码任务,专注做控制和网络,视频部分全靠硬件加速,效率非常高。
开发DM365最头疼的不是硬件,而是软件生态。TI的达芬奇平台用的是Linux系统,早期提供DVSDK(达芬奇软件开发套件),后来升级到EZSDK,现在又迁到了Processor SDK(PSDK)。SDK里包含U-Boot引导程序、Linux内核、基于TI框架的多媒体组件(通过V4L2接口访问视频硬件)、交叉编译工具链。但这套框架的学习曲线很陡,尤其是视频管线的搭建:采集→ISP处理→编码→网络传输,每一步都要配置复杂的DMA管道和内存映射。好消息是TI有比较完整的参考设计(网络摄像机IPNC、DVR参考板等),直接在参考设计上改是最快的入门方式。
硬件设计方面,DM365的外围电路不算复杂,但有几个要点不能忽视。第一是DDR内存,DM365支持DDR2,标配128MB或256MB,做视频应用时建议至少128MB,因为视频帧缓冲要占不少内存(1080P一帧就要6MB左右)。第二是电源,DM365有多路电源需求:内核1.35V、IO口3.3V、DDR2 1.8V,最好用TI配套的电源管理芯片(比如TPS65053),不要自己搭LDO电路。第三是时钟,DM365需要一个27MHz的晶振,这是TI达芬奇系列的标准晶振频率。第四是视频输出,DM365支持CVBS(模拟复合视频)和HDMI输出,HDMI输出需要加一个HDMI发射芯片(比如Ti的THS8200),不能直接从DM365引出来。
实际项目中的常见问题,说几个我踩过的。第一个是视频卡顿,很多人第一反应是CPU不够用,但实际上90%的卡顿都是内存带宽不够。DM365的DDR2带宽有限,同时做采集、编码、网络发送时要注意带宽分配,建议用TI的内存带宽工具(mbt)做性能分析,找出瓶颈。第二个是ISP调试,图像偏色、噪点多、逆光看不清这些问题,需要调ISP的参数,TI提供了ISP调试工具(IPNC RDK里带),可以实时预览改参数后的效果,耐心调能调到不错的画质。第三个是散热,DM365的功耗不算大(1W左右),但密闭空间里(比如网络摄像机的外壳)还是要加个小散热片,不然夏天长时间运行会降频。总的来说,DM365是一款成熟稳定的视频处理平台,入门难但精通后好用,适合做中低端视频产品。