基于字符串的ipc网络协议的设计与实现(编辑修改稿)内容摘要:

PTZ 及一体球型摄像机类似,此类 IPC 通常具有预置位、隐私遮挡、自动跟踪等多种功能,属于高端应用类摄像机。 IPC:此类摄像机一般采用固定焦距或手动变焦镜头,内置与半球护罩内,外观漂亮便于安装,通常需要天花板支撑安装,缺点是镜头基本固定,由于空间有限难于更换其他焦距的镜头,摄像机现场 FOV( Filed Of View)固定,难于调整。 :防水防尘。 :与上面的相比多了防爆还有日夜转换的功能。 IPC 的专业术语 (互联网协议 ) 互联网协议是一种通过网络传输数据的方式,是用于报文交换网络的一种面向数据的协议,数据在 IP 互联网中传送 时会被封装为报文。 第 2 章 IPC的 基本理论知识 6 (专用集成电路) 它是为特定应用设计的一种电路,与一般用途的电路(比如微处理器)相区分。 图像分辨率是度量数码图像清晰程度的一种方法:分辨率越高,图像清晰程度就越高。 分辨率可以通过纵向(宽度)像素数 *横向(高度)像素数来表达,如 320*240。 CIF 即通用中间格式。 在 PAL制式下, CIF 是 352*288 像素,在 NTSC 制式下 CIF是 352*240 像素的视频分辨率。 帧率( FPS)用于描述视频流更新的频率,用帧 /秒表示,当帧率达到每秒钟 25 帧以上( PAL)时,人眼认为视频是即时的。 HTTP 即超文本传输协议,为网站上运行的文件(文本、图形、声音、视频、和其他多媒体文件)设定规则, HTTP 协议在 TCP/IP 协议组的上端运行。 第 3 章 IPC 所用到的 软件网络以及硬件技术 7 第 3章 IPC所用到的软件网络以及硬件技术 IPC 用到的软件技术 用到的组件 IPC 与 DVR 一样,在软件开发过程中用到了一些组件 [3],如 GUI、 Widget 组件、GDI 组件、 Comm 组件、 Media 组件、 Manager、 ExchangeAL 组件; Json[4]、 XML、 Zlib、ZZIP、 Squirrel; Storage、 WFS; Infra 组件; NetIP 组件; TPBase。 GUI:图形用户界面,包含了各种 GUI 界面的实现,是 GUI 应用的重点。 Widget:各个 GUI 控件的实现 (Button, ComboBox、 ListBox等) GDI:各种图形算法的实现,输入法,多语言,字库。 Comm组件:包括报警、云台、串口、前面板 Media 组件: GUI 业务核心组件,包括 DVR 的一些核心功能(视频编码、回放、录像、语音对讲(音频编码)、抓图、预览)。 Manager、 ExchangeAL 组件:配置管理、事件管理、日志、用户管理、升级、自动维护、配置交换。 Infra 组件:线程、定时器、信号量、互斥锁、时间。 开发技术以及常用技术 可以在 Linux下开发,也可以在 Windows 下开发。 由于本人对 Windows 下的开发工具相对而言熟悉一点,这是在实习的初期。 所以当时选择在 Windows 下进行开发。 当然经过两个多月的学习发现其实 Linux下的功能也很强大,在 Linux 下编译时只需写一个 makefile 文件,把文件中的依赖以及它的路径还有命令行写好就可以通过终端的一个make 命令对工程 进行编译,生成可执行文件。 我们是生成一个可执行文件包,里面包括可执行文件,可升级文件以及串口升级文件等等,所以我们采用的是 make pack 命令。 之前我一直用的 VC 工具进行编辑编译以及链接运行,在公司大家都是用的是 source insight 编辑器,而我在学习这一编辑器后发现它的功能确实强大,使用也很方便。 它内置对 C/C++、 Java 甚至 x86 汇编语言程序的解析。 在编程时可以给你提供有用的函数、宏、参数等提示,可能刚开始的时候使用起来不太方便,但是习惯后绝对是你编程的首选,当然这也和个人习惯有关,有些人用 惯了 VC,就愿意使用 VC,这也是无可厚非的,没有谁规定必须用哪一个工具经行编辑。 第 3 章 IPC 所用到的 软件网络以及硬件技术 8 程序写好以后就要进行编译了。 编译是在 Linux操作系统环境下的 ARM[5]平台交叉进行的。 当把编译过程中的错误改完后就可以生成可执行文件了,我们生成的是 Sofia文件以及可升级的 bin文件。 由于公司的编译环境早就搭好,所以一直以来我是直接用的,没有考虑到搭建环境这一环节,知道回学校的十天前。 在之前的工作中,早已意识到编译环境不简单,因为它要适应各种类型的 DSP[6]芯片,各种类型的开发板,而这些都需要在各种 ARM 平台上才能 运行,所以需要在 Linux 系统中或者虚拟机中植入 ARM 平台方可进行 gcc[7]和g++交叉编译。 了解了这些后我就跟主管要了一个 Linux 安装包,他给了我一个 ubuntu还有 dm365 的 ARM 平台安装软件包,而主管在给我这些后就不再管我了,我想他是想试试我的个人能力。 因为我在跟他反映安装中出现的问题时他对我说这个你自己解决就行了,所以一遇到问题我就只能百度解决了,但是由于百度上面的问题解答有时和我遇到的具体问题不是太接近,所以我只能慢慢搜寻答案,虽然明白编译环境不是那么好搭建,但我仍要一直仔细的寻找,慢慢的找 下去,即使缓慢也能接近吧。 当我欣喜若狂的自以为配好环境并改变了 Linux系统的环境变量,我以为我成功了,可是再次开启系统时怎么也打不开,百度才知道是因为有些不必修改的环境变量被修改了,只要改回来就行,可是我用 ctrl+alt+F1 进入终端,再进入 Vi /etc/profile 改回来也无法启动系统,说到这我要声明一下为什么我安装 ubuntu系统而不是安装虚拟机,因为我的系统内存只有 2G,而且电脑用了好几年,内部有些零部件开始氧化,已经非常卡了,如果再按虚拟机的话系统可能跑不起来,所以我就安装了 ubuntu系 统。 再一次安装完系统并成功植入 ARM 平台而且改好环境变量后依然是无法编译,我根据终端给出的错误提示适当的修改了 makefile 文件,在这还要声明一下,之前在公司为了配合整个公司的研发工作,所有写好的程序都必须放到服务器上固定的目录下,每个人都有一个自己专属的目录,所以 makefile 文件中的依赖关系中的文件路径都必须写好以方便其他同事使用,也就是说 makefile 文件编写必须统一。 所以我把程序转移到自己的电脑后也需要对 makefile 文件进行相应的修改。 可是明明已经修改对了还是无法通过编译,浪费了两天时间 才知道原来我安装的 ubuntu是 64位操作系统,对我需要的 ARM不兼容,不过此时我没有浪费时间的失望以及无法解决问题的灰心的感觉,因为我仿佛看到了胜利的曙光。 果然在我换好 32 为操作系统并进行一系列的环境变量配置, ARM 平台移植后可以进行编译了,尽管还是会遇到细微的编译错误,但这些都是很容易解决的,我只需加一第 3 章 IPC 所用到的 软件网络以及硬件技术 9 条 chmod 命令使它对后面所有遇到需要获取权限的文件有效就可以了。 终于在连续一周时间内的每天下午 7 点到夜里 12 点的这段时间内成功配置好了编译环境,因为白天是要工作的,在公司不允许你干自己的事。 说到这可 能你会有疑问,既然不允许干自己的事那我毕业设计怎么能在工作时间做的,那是因为我的毕业设计就是我的工作之一,我写好的程序以后工作中会用到,而且这也是领导安排给我的任务。 IPC 用到的网络协议 传统模拟闭路电视监控系统已经无法客户的需求。 IPC 重要功能之一是能够实现远程监控。 IPC 存储数据的网络传输、集中管理功能更是广大客户的喜好。 IPC 网络协议的应用层协议 IPC 在应用层的协议 [8]包括 HTTP、 FTP、 RTSP、 DDNS、 ADSL、 DHCP、 PPPoE、SMTP、 DNS、 QoS 等等。 HTTP:一种超文本传输协议,是基于客户端浏览器以及其他程序与 Web 服务器间的通信协议。 端口号: 80。 错误代码解释: HTTP 400 请求无效。 HTTP 403 禁止访问。 HTTP 404 无法找到文件。 HTTP 405 资源被禁止。 HTTP 406 无法接受。 Error 501 未实现。 HTTP 502 网关错误。 FTP:一种文件传输协议,主机间可以通过输入相互之间的 IP 地址 共享文件。 端口: 2 20。 RTSP:定义:定义了一对多应用程序如何有效地通过 IP 网络传送多媒 体数据。 应用:实时流协议是应用级协议,控制实时数据的发送。 它提供了一个可扩展框架,使实时数据,如音频与视频,的受控、点播成为可能。 数据源包括现场数据与存储在剪辑中数据。 DDNS:将用户的动态 IP 地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态 IP 地址传送给位于服务商主机上的服务器程序,服务项目器程序负责提供 DNS 服务并实现动态域名解析。 DDNS 在监控行业中的应用:目前 ISP 大多为我们提供动态 IP( ADSL拨号上网),而很多网络视频服务器和网络摄像机通过 远程访问时需要一个固定的 IP,而固定 IP 的费用很难让客户接受。 所以 DDNS 为大家提出了一种全新的解决方案,它可以捕获用户第 3 章 IPC 所用到的 软件网络以及硬件技术 10 每次变化的 IP,然后将其与域名相对应,这样客户可以通过域名来进行远程监控了。 DDNS 解决方案: 路由器外挂。 集成 DDNS 的监控设备。 运行 DDNS客户端软件。 ADSL非对称数字用户环路,一种非对称的 DSL技术,所谓非对称是指用户线的上行速率与下行速率不同,上行速率低,下行速率高,特别适合传输多媒体信息业务,如视频点播、多媒体信息检索和其他交互式业务。 DHCP:一个局域网的 网络协议,使用 UDP 协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配 IP 地址给用户给内部网络管理员作为对所有计算机作中央管理的手段。 PPPoE:可以使以太网的主机通过一个简单的桥接设备连到一个远端的接入集中器上。 SMTP:是一组用于由源地址到目的地址传送邮件的规则 ,由它来控制信件的中转方式。 DNS:在 Inter 上域名与 IP 地址之间是一对一(或者多对一)。 QoS:一种安全 的网络 机制 , 可以 解决网络延迟和阻塞等问题。 IPC 网络协议的传输层协议 IPC 在传输层上的协议主要包 括 TCP 以及 UDP,我们公司还提供了一种云服务VVNAT。 TCP 是目前传输层上应用相对广泛的协议,因为他的三次握手保证了发送的可靠性安全性, 根据接收到的数据量来确定的数据确认数及数据发送、接收完毕后何时撤消联系,并建立虚连接。 不容易出现发送丢帧的情况,即使发生了也会有很好地解决措施。 UDP 是直接发送,发送的时候不用向 PU(前端,指编码器,包括 DVR,DVS,IPC等)或者 CU(客户端,指 WEB, SNS 等)发送请求, 就采用的这种发送方式,所以 经常会出现发送的信号丢失的情况,但是 UDP 协议在 语音对讲 时采用的很多。 为了保证实时性所以 UDP 协议在这是必要的。 还有我们公司自己提供的 VVNAT,也称云平台, PU端连接到云平台, CU端通过云平台来访问 PU端。 之前还有一种访问方式,就是说 PU端分配了好多 IP 地址,这些IP 地址用了不同的端口, CU端访问这些端口时通过 DNS 解析将 PU端的端口解析成自己能够识别的端口进行访问,之前这两种访问方式是分开进行的,最近正在调试将两种合在一起,把第二种也加进云平台,这样就可以统一在云平台给用户提供服务,这部分第 3 章 IPC 所用到的 软件网络以及硬件技术 11 代码我已经完成,应用部那边还没改好,需要与他们联合调试,所以一直未 能进行,这项工作我想会在毕业以后回单位再跟他们合作完成吧。 IPC 所用到的硬件技术 目前 DVR以及 IPC 的平台厂商主要有:大陆海思半导体( Hisilicon)、德州仪器( TI)、台湾智源( Faraday)、以及其他的一些方案等等。 但 DVR 硬件的组成不尽相同, DVR方案设计中的硬件大致有一下几个部分组成:。 码( AD) ( DA)。 :控制完成取出指令和执行指令任务的部件,它是系统的核心部件 . 我所了解的 IPC 方案中应用的中央处理器采用的芯片是 Hi3515,TI ( DM365) GM8181 等。 Hi3516 集成高性能的 ARM Cortex A9 作为主控 CPU,完成系统任务和部分音视频处理功能。 其主要规格如下: 集成 32KB L1 指令 Cache 和 32KB L1 数据Cache,集成 256KB L2 Cach。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。