3.1 接收并解析键盘指令本文引用地址:http://www.eepw.com.cn/article/201709/364877.htm
视频矩阵控制服务器能够支持多个键盘同时工作,多个键盘连到不同串口上,同时对视频矩阵进行控制。单个串口读取键盘指令的程序流程如图3所示。
控制服务器读取键盘串口指令后,根据键盘协议解析每一条指令。键盘常用操作包括切换操作、设置(摄像头)预置位、到达预置位、云台PTZ控制、up到达上一摄像头,down到达下一摄像头。
切换指令解析流程如图4所示,其它指令解析的流程与切换指令类似。
3.2 生成并发送矩阵控制指令
矩阵控制服务器在接收并解析键盘指令后,会根据MAX-1000矩阵协议把键盘指令转化为矩阵指令,然后存入到相应的串口指令队列中,再由相应的串口线程轮询该串口的指令队列并给相应矩阵发送指令。
矩阵控制服务器与视频矩阵之间通过RS-232协议通信,采用的7位数据位、1位停止位、奇校验,波特率是19200或者9600。MAX-1000矩阵协议主要包括对云台PTZ控制协议和对输入输出切换控制协议。矩阵指令的格式很固定,只需要根据键盘指令的类型修改几个固定的参数即可生成矩阵控制指令。
矩阵控制服务器为每个串口上外设为矩阵的串口启动了独立的线程检测串口的指令队列中是否有指令,有指令就通过RS-232串口下发给视频矩阵。利用队列的先入先出特性,能够保证指令的正确顺序。
3.3 系统可靠性设计
由于控制服务器安装环境的电磁干扰和辐射干扰比较强,需要保证控制服务器能够稳定可靠地工作。
在硬件电路方面,设计了相应的保护装置,同时将控制服务器的硬件设备安装在密封的金属外壳里,以屏蔽电磁干扰。
在软件方面,采用看门狗技术来实现控制服务器在断电等极端条件下自动恢复的功能,保证系统长时间不间断运行的稳定性。控制器树莓派的CPU带有硬件看门狗,由内核发送喂狗指令管理看门狗,只有在内核异常时看门狗才会起到重启系统的作用。而在实际的应用情况下,系统工作异常很少由内核异常导致,因此,本文在应用程序里实现对看门狗的管理。在Linux系统下,通过操作/dev/watchdog来管理内核自带的看门狗功能。在应用程序打开/dev/watchdog设备后,即通知内核看门狗开始工作,内核自动启动看门狗计时器,如果没有按时对/dev/watchdog设备进行写操作,即没有喂狗,内核就会重启系统。
4 WEB控制设计
目前主流的WEB服务技术主要有Java WEB、PHP、ASP.NET和基于Python的WEB服务。其中ASP.NET、Java WEB和PHP对服务器的硬件要求较高,而基于Python的WEB服务则更为小巧轻便,开发也更加方便,因此采用基于Python的WEB服务技术。
WEB服务器包括三个部分:前端WEB页面、通信协议和后端WEB服务器。WEB服务构架如图5所示。
浏览器访问网页时,网页上的脚本获取操作,并通过HTTP[6]协议将操作数据发送到服务器,服务器处理操作数据并控制视频矩阵,同时向浏览器返回处理结果,页面将展示处理结果。
4.1 前端页面设计
WEB页面的开发采用的是HTML超文本标记语言和JQuery脚本语言。HTML 是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种标记语言。JQuery是一个快速、简洁、优秀的 JavaScript 代码库。
WEB页面能够进行视频矩阵的相关参数配置和矩阵切换与云平台PTZ控制,其主要功能有:用户管理、系统IP配置、矩阵配置、控制设备配置、摄像头配置、轮询方案配置、切换方案配置、切换方案配置、实时切换与PTZ控制。
4. 2 数据交互与数据响应格式设计
WEB服务器的前后台数据交互技术采用Ajax技术,以实现在不重新加载页面的情况下更新网页。Ajax的工作原理:首先创建XmlHttpRequest对象,该对象可以完成服务器端和后台数据库的数据交换,然后利用JQuery完成WEB页面的更新,即在客户端和服务器端增加一层后台数据交互,也就是Ajax引擎[7]。
目前,前端与后台服务器的数据响应主要是文本串和XML两种。XML格式比较冗余,会增加用户的访问流量,降低访问速度,所以采用文本串的形式。目前在WEB应用最为广泛文本形式的是JSON,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式[8]。JSON以严格的“键/值”的形式来传输数据对象,可在不同的编程语言中应用。
4.3 服务器设计
后台服务器采用Tornado框架开发,数据库选择MySQL数据库。Tornado框架采用Epoll来实现处理大量并发的连接,具有响应速度快、并发连接处理能力强等特点,特别适用于实时的WEB服务[9]。
控制服务器收到前端请求,tornado会拦截请求,并根据请求的url把请求转发到对应的处理类去处理用户请求并返回处理后的数据。
5 结论
本文设计的视频矩阵控制服务器是控制外设和视频矩阵的控制中心,硬件部分以树莓派为核心,采用高速USB转4串口模块与控制键盘和MAX-1000矩阵通信,实现了视频矩阵的传统键盘控制;软件部分采用嵌入式Linux系统,开发了基于HTTP协议的WEB控制系统,通过配置控制服务器相关信息,实现了WEB远程控制。目前已经应用在北京东城检察院,达到了预期的设计目标。
参考文献:
[1]秦迎春.实现嵌入式矩阵切换控制系统的设计[J].微计算机信息,2008,4(23):121-122,132.
[2]郑灵翔.嵌入式Linux系统设计[M].北京:北京航空航天大学出版社,2008,67-83.
[3]何晓龙,李明.完美应用Ubuntu[M].北京:电子工业出版社,2010:12-15.
[4]M Doraipandian, P Neelamegam.Wireless Sensor Network Using ARM Processors: A Review in Hardware Perspective[J].International Journal of Embedded and Real-Time Communication Systems,2013,4(4):48-59.
[5]李雪红.USB/RS232接口转换器的设计[D].长安大学,2004.
[6]A Rousskov,V Soloviev. A Performance Study of the Squid Proxy on HTTP/1.0[J].World Wide Web-internet & Web Information Systems,2000,2(1-2):47-67.
[7]谭日森.Ajax技术的特点及发展前景[J].黑龙江科技信息,2007(21):87-87.
[8]B Smith. Beginning JSON [EB/OL]. http://dx.doi.org/10.1007/978-1-4842-0202-9_4,2015.
[9]Tornado. Tornado WEB Server [EB/OL]. http://www.tornadoWEB.org/en/stable/, 2009.
本文来源于《电子产品世界》2017年第10期第55页,欢迎您写论文时引用,并注明出处。