当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于DSP/ARM的网络硬盘录像机的设计方案

 随着人们生活水平的提高和对工作、生活环境中安全防卫需求的增长,视频监控系统近年来得到了迅速的发展。传统的基于PC 机的视频监控系统多存在着诸如安装携带不便、不能在恶劣环境下使用等一些缺点,这就亟待一种全新的视频监控系统的出现。随着近年来超大规模集成电路和嵌入式软硬件技术的迅猛发展,特别是DSP、PowerPC 等嵌入式芯片的出现,将嵌入式处理器应用到视频监控系统中不仅克服了上述基于PC 机系统的一些缺点,而且其强大的功能加上丰富的外设接口和高度的可编程性使得视频监控的硬件和软件都更容易实现。正是由于越来越高的性价比加上体积小、成本低等独特优势,使得嵌入式芯片在视频监控领域也渐渐拥有了一席之地。

  1 系统概述

  本方案采用DSP+ARM 的双核结构,采用H.264标准作为视频压缩标准,采用开放性的uclinux 操作系统。其中DSP 芯片采用TI 公司的DM642,主要用来进行图像处理,ARM 芯片采用S3C2510 进行操作控制。本方案中服务器不仅要采集、处理视频,还要进行控制,如通过云台的控制对监控图像的视场、方位进行改换等。虽然DM642 具有较高的性能和丰富的接口,但要让DSP 完成上述全部功能,就显得力不从心了,系统的实时性和图像质量将难免受到损伤。

  引入ARM 主机则可从根本上解决这些问题。ARM 是32 位CPU,功能强大,可以构建适于网络传输的操作系统。

  2 系统设计

  2.1 总体设计

  网络硬盘录像机的硬件体系包含以下几个处理单元:视音频采样、视音频压缩处理模块、视音频预览模块、视音频回放模块、记录模块、网络模块、报警输入输出模块、人机界面模块等,以下是网络硬盘录像机的结构示意图,其中包含了压缩模块、预览模块、硬盘控制器及主控模块,各模块之间的数据通过PCI内部总线进行传输。

图1 系统结构示意图

  采样的视音频数据由压缩模块进行处理,处理后的视音频数据供预览、录像或通过网络传输,视音频处理的核心部件为数字信号处理器(DSP)。系统资源的管理与调度由主控模块完成,其核心部件为ARM 芯片。

  2.2 视频和音频采集和处理模块

  本系统采用模拟摄像头进行视频数据采集,然后将采集到的模拟数据通过TI 公司的TVP5154 芯片进行数字化,TVP5154 视频编码器支持PAL/NTSC、CVBS 或Y/C 模拟视频输入,8-bit BT.656 数字视频数据流输出,其输出的数字视频流可以与DM642 实现无缝连接。在本地预览和本地回放模块,采用SAA7105 视频解码器进行解码,SAA7105 型视频解码器支持8-bit BT.656 数字视频数据流输入,PAL/NTSC、CVBS 或Y/C 模拟视频输出。通过DM642 的I2C 总线对视频编/解码器的内部寄存器进行编程,实现不同的输入输出,视频编解码器的参数通过I2C 总线配置。作为视频输入口时,视频数据的行/场同步又包含BT.656 数字视频数据流中的EAV和SAV 时基信号控制,视频口只需视频采样时钟和采样使能信号(控制采样起始),TVP5154 用系统时钟SCLK 提供采样时钟,用可编程引脚GPCL 提供采样使能。作为视频输出口时,视频口要为SAA7105 提供时钟和行/场同步信号。DM642 有3 个视频口,每个都可以配置为上下两个通道,但VP0、VP1 的两个通道必须同时为视频输入口或输出口。结合实际应用,在本系统中VP0 和VP1 的 A 通道配置为8-bitBT.656 视频输入口,VP2 A 和B 通道配置为2 个8-bit BT.656 视频输入口,VP0 和VP1 的B 通道配置为MCASP,接四个音频Codec.

  音频部分采用TLV320AIC23B 型音频编/解码器,它支持麦克风/立体声模拟输入/输出和数字音频数据流输出/输入。PLL1708型可编程视频/音频同步数字锁相环给McASP 和TLV320AIC23B 提供时钟信号,SCK02 端口接McASP 的AHCLKX,SCK03 端口接TLV320AIC23B 的主时钟MCLK.PLL1708 的时钟输入为27MHz.DM642 与TLV320AIC23B 的对应引脚功能见表1.

表1 DM642 与TLV320AIC23B 的对应引脚。

2.3 存储模块

  DM642 的EMIF 在内存中的地址映射分为4 个可独立寻址的空间CE[3:0],自地址0x80000000 起各占256MB.根据设计中所选用芯片的数据宽度等特点,可以对这4 个寻址空间进行配置。其中,CE0 空间配置成64 位宽度,只用于SDRAM 内存的映射;CE1 空间配置成8 位宽度,用于Flash、UART 的映射;CE2 空间配置成16 位宽度,用于ATA 寄存器的映射;CE3 本设计中未使用,可以作为将来扩展子卡用。[!--empirenews.page--]

  在本设计中,硬盘控制器芯片使用Silicon Image公司的SiI3512双口SATA 控制器来实现SATA 功能。

  SiI3512 直接挂载在S3C2510 的PCI 总线上为系统提供SATA 接口。连接方式如图2 所示:

图2 SiI3512 与S3C2510 的连接方式。

  2.4 电源模块

  2.4.1 供电电路

  整个电路板采用+5 V 电压供电,可以从外部引入,也可以从扩展的PCI 接口引入。DM642 芯片需要2 个独立的电压,CPU 内核电压GVDD(+1.4 V)和外围I/O 电压DVDD(+3.3 V)。这两个电压在供电时需要严格按照顺序进行,即GVDD 要比DVDD 上电早,至少不能晚于DVDD.设计中采用2 片TI 公司专为高性能DSP、FPGA、ASIC 和微处理器的应用而设计的电源芯片TPS54310,分别给DM642 提供CVDD 和DVDD 电压。在电路连接上将TPS54310(1)的PWRGD引脚和TPS54310(2)的SS/EN引脚相连。

  当(1)的输出电压高于1.2 V 时,芯片(2)开始工作;当这个值达到稳定的+1.4 V 后,PWRGD 引脚输出高电平送到芯片(2)的SS/EN 引脚。这就保证了CPU 内核的上电时间早于I/O 的上电时间,如图3 所示:

图3 电源电路。

  2.4.2 电源监测电路

  为了保证DM642 芯片在电源未达到要求的电平时,不会产生不受控制的状态,而且允许系统中的各个芯片在任意时刻可以通过复位来调整工作状态,这就需要在系统中加入一个电源监测电路,.该电路能确保在系统的加电过程中,CVDD 和DVDD 达到要求的电平之前,DSP 始终处于复位状态。选用了TI 公司生产的TPS3823-33 芯片,其固定复位信号时间长达200 ms,能满足系统中所有芯片的复位需求。芯片带有一个看门狗电路,通过WDI 引脚接收来自CPU 的定时信号,避免发生系统程序跑飞的情况。

  3 系统的软件设计

  3.1 系统的软件设计

  该系统的软件主要包括三个部分:启动程序,内核与根文件系统,专业芯片驱动及应用。为了开发和升级的方便,我们将根文件系统作成RAMDISK 的格式。据此我们将FlashROM 分为3 个区:1 Cramfs,2 Boot-Loader,3 Kernel+RAMDISK.本系统的启动程序用的是DENX 的U-boot-1.1.0.它的主要工作是初始化硬件,为加载操作系统准备必要的环境及其参数,同时可以与开发主机通讯,下载程序到SDRAM 和Flash.通过修改它的一些配置文件,可以完成对目标系统Memory Controller,memory map以及I/O,PCI,Flash,Ethernet controller,Serial等硬件设施的初始化。

  对于芯片驱动程序的编写,一些通用设备驱动,如以太网卡驱动已经在内核中,对于系统的一些专业芯片的驱动由于其特殊性,将其和应用做成Cramfs文件系统格式,在目标板的的操作系统启动时以module 的形式进行加载,方便修改和升级。编写驱动程序可以按照Linux 下编写驱动程序的规则来编写。编写的驱动程序应该具有以下功能:a)对设备的初始化和释放:b)数据从内核传到硬件和从硬件读取数据:c)读取应用程序传递给设备文件的数据和回应应用程序请求的数据:d)检测和处理设备出现的错误。

  设备驱动程序的实质就是中断处理。Linux 中断处理程序分为上半部和下半部。上半部即一般的中断服务程序, 由硬件中断触发,一般运行在关中断的方式下,应当尽可能的短小,处理尽可能的快:下半部运行在开中断和任务串行化的环境下,处理需要较长时间的任务。驱动程序上半部在处理完实时性很强的任务后,用Queue-task 函数将下半部处理函数挂入立即队列,用mark-bh 函数来激活立即队列,下半部就可以最优先的被执行。

  3.2 应用程序的设计

  应用程序的设计可以采用多线程或者多进程的方式。多线程的优点在于线程比进程要小,可以使应用更轻量,线程间通讯方便,缺点就在于由于线程使用同一个地址空间,如果一个线程出了问题,将可能影响到整个系统;多进程各自占有一份内存空间,因此可以增强系统的健壮性,但是多进程增加了系统的开销,同时进程间通讯较复杂。结合我们系统的实际,考虑到各个线程通讯的重要性,我们采取多进程多线程的方式,在软件上增加一个与主进程并行的守护进程,在硬件上设置看门狗,以增强系统的健壮性。

  4 远程控制与通信链路的建立

  本设计采用PPP 串行通信接口协议方式。PPP(PointtoPointProtocal,点对点协议)协议中包含3 个部分:

  在串行链路上封装IP 数据报的方法;建立、配置及测试数据链路的链路控制协议(LCP);不同网络层协议的网络控制协议(NCP)。PPP 具有很多优势;支持循环冗余检测、支持通信双方进行IP 地址动态协商、对TCP 和IP 报文进行压缩、认证协议支持(CHAP 和PAP)等。

  PPP 的实现可以通过2 个后台任务来完成,协议控制任务和写任务。协议控制任务控制各种PPP的控制协议,包括LCP、NCP、CHAP 和PAP.它用来处理连接的建立、连接方式的协商、连接用户的认证以及连接中止。写任务用来控制PPP 设备的数据发送。数据报的发送过程,就是通过写任务往串行接口设备写数据的过程,当有数据报准备就绪,PPP 驱动通过信号灯激活写任务,使之完成对串行接口设备的数据发送过程。PPP 接收端程序通过在串行通信设备驱动中加入"hook"程序来实现。在串行通信设备接收到1 个数据之后,串行设备的中断服务程序(ISR)调用PPP 的ISR.当1 个正确的PPP数据帧接收之后,PPP 的ISR 通过调度程序调用PPP输入程序,然后PPP 输入程序从串行设备的数据缓存中将整个PPP 数据帧读出,根据PPP 的数据帧规则进行处理,也就是分别放入IP 输入队列或者协议控制任务的输入队列。

  5 总结

  我们采用ARM 和DSP 芯片的双核结构组建了一种网络视频服务器。以DM642 和S3C2510 分别作为视频板和主机板的核心芯片,H.264 作为视频压缩方案,操作系统选用了uclinux.本系统充分利用了ARM 和DSP 的各自特点,充分发挥ARM 的事件处理控制能力和DSP 对数字视频大吞吐量要求,同时通过优选主要芯片,努力提高整机性价比。本系统可同时输入16 路视频信号,在保障视频质量的前提下,适于当前不同带宽的网络要求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Arm CPU正在从根本上推动AI变革,并造福地球。Arm架构是未来AI计算的基石。​

关键字: ARM AI

数字信号处理器(DSP)在通信、控制、图像处理等多个领域扮演着越来越重要的角色。TMS320F2808PZA作为德州仪器(Texas Instruments)推出的一款高性能DSP控制器,其独特的架构和强大的功能使其在众...

关键字: tms320f2808pza 数字信号处理器 DSP

近日,Arm推出了Arm® Ethos™-U85神经网络处理器(NPU)和Arm Corstone™-320物联网参考设计平台,旨在满足海量的数据处理和大规模计算,加速推进边缘AI的发展进程。

关键字: ARM

从世界上第一颗DSP诞生至今30年来,国际一线老牌芯片厂商长期占据领先技术和市场地位,国内芯片厂商在DSP上的声量很小。然而经过了6年的沉心打磨之后,湖南进芯电子开始在这一领域崭露头角。凭借着更贴近中国本土特色的差异化产...

关键字: DSP MCU 电机控制 进芯电子

为了赶超云计算市场上的竞争对手,谷歌正试图通过定制的Arm服务器芯片降低云计算服务成本。

关键字: 谷歌 ARM 定制芯片

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

随着汽车软件数量爆发式的增长,整个行业都需要重新思考汽车产品的开发流程。为此,Arm推出了丰富的硬件IP、新的系统IP,以及全新的汽车计算与计算子系统产品路线图,旨在为各种汽车应用实现性能、功能安全、可扩展等方面的支持。

关键字: ARM 汽车电子

知名移动芯片设计公司ARM最近迈出重要一步,它正式推出汽车芯片设计。ARM推出的芯片设计方案名叫Neoverse,随同芯片一起推出的还有面向汽车制造商、汽车供应商的新系统。

关键字: ARM 汽车芯片 芯片

随着通用人工智能的发展,数据中心的计算需求逐步提高。针对多模态数据、大模型的推理和训练需要更高的算力支持,而随着算力提升与之而来的还需更关注在功耗方面的优化。对于头部云计算和服务厂商而言,针对专门用例提高每瓦性能变得至关...

关键字: ARM 服务器 AI Neoverse CSS

一直以来,riscv架构都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来riscv架构的相关介绍,详细内容请看下文。

关键字: riscv ARM riscv架构
关闭
关闭