- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于Hi3515处理器的智能云台系统的设计
随着人们安防意识的不断提高,校园安全、家居安全、公共设施安全越来越受到社会的重视。当前广泛使用的视频监控系统主要通过位置相对固定的监控主机才能获得监控信息,这种由监控人员发起的监控方式已不能满足人们日益增长的多元化需求。顺应当前发展趋势,我们整合并扩展了传统监控方式,将移动终端引入智能监控系统或网络中,并加入视频分析功能,使智能监控系统能够做到智能报警、实时控制。云台摄像机在上述智能监控系统中的作用就相当于人体的眼睛。针对以上构想,迫切需要设计普遍适用的智能云台系统,做到实时的大范围巡航和快速定点监控,准确定位突发情况,全面发挥云台摄像机作为智能眼的作用,与本地监控,移动客户端结合做到真正的智能化。
1 智能云台系统总体介绍智能云台控制系统的主要控制模块为Hi3515微处理器,云台摄像机采集视频图像进行显示,然后根据实时监控的需要,发送云台控制命令,命令通过RS485 电平转换电路发送至云台摄像机。考虑到人机交互的需要,我们基于自主设计的GUI( Graphic User Interface,图形用户接口) 为云台系统设计了控制界面,并且完成了实用的扩展和升级工作。智能云台系统整体架构如图1 所示,整套系统解决方案具有一定的市场竞争力。
图1 智能云台系统总体架构
2 智能云台系统硬件设计2. 1 处理器选型
智能云台系统是智能监控系统的子系统,考虑到智能监控的需要,我们选择了一款专业面向安防市场推出的微处理器---Hi3515,Hi3515 是基于ARM926EJ-S 处理器内核以及视频硬件加速引擎的高性能高集成通信媒体SoC 处理器。ARM926EJ-S处理频率达400MHz,能够满足客户日益增长的DVR、DVS、IP CAMEra 软件及其他嵌入式应用需求;200MHz 的DDR2 SDRAM 接口能够提供充足的数据处理带宽和能力; 提供H. 264 和MJPEG 多协议编解码和双码流编码能力,编解码性能高达120fps D1@ NTSC 或100fps D1@ PAL,能够满足最佳的4 路D1、8 路CIF DVR/DVS 解决方案功能、性能和成本需求; 丰富的视频输入输出接口( CVBS、高清VGA、BT. 1120) ,高达有效分辨率1280x1024@ 60fps VGA输出能力能够给数字监控产品带来更加清晰的画质和视频体验; 集成丰富的外设接口( SATA/SDIO/SPI /UART /USB) 方便满足多样的嵌入式设备规格需求,既简化了硬件板卡设计,又有效降低整机的BOM 成本。同时海思半导体拥有针对视频监控领域的从低端到高端的全系列芯片,这对系统升级提供了很好的保证。
2. 2 硬件电路设计
系统使用串口对云台摄像机进行控制,云台摄像机控制使用RS485 电平信号,而Hi3515 微处理器串口输出为TTL 电平信号,需要设计电平转换电路将TTL 电平信号转换为RS485 电平信号,图2 为电平转换电路原理图。
图2 智能云台控制系统电平转换电路原理图。
云台摄像机一般在远端,控制信号的传输距离会比较长,而RS485 信号的显着特点是差分传输,抗干扰能力强,适合远距离传输,很好地满足了云台控制的要求,图2 中电平转换电路使用的芯片为
3 智能云台系统软件设计
3. 1 底层驱动设计
系统使用串口对云台摄像机进行控制,所以底层驱动需要做的工作就是为Hi3515 编写串口驱动。
3. 1. 1 串口设备注册
Hi3515 串口设备注册的核心结构体是uart _driver 和amba_driver,它们的定义如下:
STatic struct uart_driver amba_reg = {
owner = THIS_MODULE,
driver_name = " ttyAM" ,
dev_name = " ttyAM" ,
major = SERIAL_AMBA_MAJOR,
minor = SERIAL_AMBA_MINOR,
nr =UART_NR,
coNS =AMBA_CONSOLE,
} ;
static struct amba_driver pl011_driver = {
drv = {
name = " uart-pl011" ,
bus =&amba_bustype,
} ,
id_table = pl011_ids,
probe = pl011_probe,
remove = pl011_remove,
} ;
Hi3515 的串口挂载在AMBA 总线上,所以我们必须将串口设备注册到AMBA 总线,首先初始化AMBA 总线设备链表,然后判断是否有设备要添加,如果有则调用__driver_attach 函数将新设备添加至AMBA 总线设备链表。
3. 1. 2 串口结构设计
Hi3515 串口驱动实现串口功能的核心结构体为uart_ops,它的定义如下:
static struct uart_ops amba_pl011_pops = {
tx_empty = pl01x_tx_empty,
set_mctrl = pl011_set_mctrl,
get_mctrl = pl01x_get_mctrl,
stop_tx = pl011_stop_tx,
start_tx = pl011_start_tx,
stop_rx = pl011_stop_rx,
enable_ms = pl011_enable_ms,
break_ctl = pl011_break_ctl,
startup = pl011_startup,
shutdown = pl011_shutdown,
set_termios = pl011_set_termios,
type = pl011_type,
release_port = pl010_release_port,
request_port = pl010_request_port,
config_port = pl010_config_port,
verify_port = pl010_verify_port,
#ifdef CONFIG_CONSOLE_POLL
poll_get_char = pl010_get_poll_char,
poll_put_char = pl010_put_poll_char,
#endif
} ;
该结构体包含了所有与串口设备相关的功能函数,我们要对这个结构体进行填充并编写所有与Hi3515 相关的功能函数,以使Hi3515 的串口能够正常工作。
3. 2 应用软件设计
系统软件设计涉及linux 串口编程,整个云台系统的控制流程如图3 所示,我们实现了对云台摄像机以下功能的支持:
①支持当前市面上所有主流云台协议;②支持360 度全方位快速定位;③支持各种距离下的快速变焦功能;④支持自动巡航和自动扫描功能;⑤支持线扫和巡视组设置。
图3 云台系统控制流程
3. 3 云台界面设计
由于Hi3515 的内存空间和显存空间是公用的,为了最大限度的提高编解码性能,并且解决当前市面上主流GUI 占用内存空间较多的问题,我们自主设计了专用GUI,保证了界面灵活美观的同时占用内存空间极小,很好满足了要求。GUI 系统架构如图4 所示。
图4 智能云台系统GUI 架构
在Linux 提供的Framebuffer 显示接口基础上,系统移植了字体库和图片库。字体库包括ttf 和freetype 字体库,图片库包括png、jpeg 和bmp 图片库。上层主要工作就是设计消息循环,设计多窗口管理模式,编写必要的控件。本文利用自主设计的GUI 为智能云台系统设计了美观的本地界面和客户端界面,整套界面美观大方,简洁实用,图5 是我们为智能手机客户端编写的界面。
图5 云台控制界面在智能手机客户端上的显示
4 对智能云台系统扩展和升级的考虑通常视频监控服务器上均会有多路视频接入,而且云台摄像机也会更新换代。所以我们对于云台系统的设计还要解决两方面的问题: 一是云台系统要易于多路扩展; 二是云台系统要方便进行软件升级。考虑到云台摄像机都有可配置的物理地址,我们对所需控制的云台摄像机进行分组,每组云台摄像机配对一个串口,利用Linux 多线程机制实现对组内云台摄像机的分时控制,很好地解决了多路扩展的问题。针对云台摄像机自身的升级和协议的改变我们采取的对策是封装当前市面上所有主流云台协议,使用云台时只要进行简单的配置选择就可使用新款的云台摄像机。整个系统简便易用,具有很好的市场前景。
5 总结
本文面向当前蓬勃发展的视频监控市场,充分考虑到了实际产品的需要,有针对性地提出了一套完整的智能云台系统解决方案,包括硬件设计、系统软件设计、用户界面设计和系统扩展升级机制的研究。本文基于实际产品研发,设计了一整套云台解决方案,并实现了云台系统的扩展和升级,具有一定的市场应用价值。
作者:刘明 王超 张萌 来源:《电子器件》