张念 陈碧伟
摘要摘要:会话初始化协议SIP是一种应用层控制协议,可方便地创建、修改和释放多媒体会话,目前已被应用于移动互联智能家居,其特点是易用、低成本。基于此,利用SIP作为网络传输协议、SPI作为串口通讯接口,采用Eclipse和Android作为开发工具,实现一套支持多媒体播放,能够与智能手机交互的梯口机系统。运行结果表明,该系统不仅能够远程获取和管理访客信息,而且可以随时随地接收社区广播及各种推送信息,有效提高社区生活的安全性、便捷性和智能化水平。
关键词关键词:SIP协议;SPI接口;移动互联;梯口机
DOIDOI:10.11907/rjdk.162834
中图分类号:TP319
文献标识码:A文章编号文章编号:16727800(2017)005007204
0引言
梯口机,又称门口机或对讲主机,是指楼宇单元门口装的对讲系统。梯口机系统,又叫梯口机交互系统,用来完成梯口机(主机)与终端之间的信息交换。上世纪90年代以来,随着国内房地产行业的蓬勃发展,门禁及楼宇对讲系统快速发展,许多先进的技术,如生物识别技术(指纹识别、虹膜识别等)逐步应用于门禁系统。
近年来,随着电子技术、计算机技术、通讯技术的快速发展,楼宇对讲系统也从早期的模拟系统逐步转化为数字系统。此外,随着物联网、云计算、移动互联网的快速发展,尤其是智能手机的普及,利用手机端与梯口机进行信息交互成为可能。与传统梯口机终端相比,智能手机不仅携带方便,而且可以远距离接收梯口机发来的各种信息(如访客信息、社区公告等),非常安全、便捷。
基于此,本文探讨基于Eclipse平台及Android技术,运用SIP协议实现梯口机与智能手机间的通讯,设计一套具有多媒体播放功能、能够进行无线互联的梯口机交互系统。
1基本概念
1.1SIP协议
1999年,IETF(Internet Engineering Task Force,因特网工程任务组)提出了SIP(Session Initiation Protocol,会话初始化协议)。基于该协议,可以方便地创建、修改和释放(终止)一个或多个参与者的会话。SIP协议广泛应用于下一代网络(NGN,Next Generation Network)、电路交换(CS,Circuit Switched)及IP多媒体子系统(IMS,IP Multimedia Subsystem)[1,2]。
SIP是一个基于文本的控制协议,工作于应用层,借鉴HTTP协议,特别适合用来实现基于因特网的多媒体会议系统。SIP协议采用C/S架构,主要通过代理服务器来完成用户呼叫的建立过程,易于扩展,也容易实现。SIP协议支持代理、定位、重定向、登记(注册)等功能,支持移动用户,与RTP/RTCP、RTSP、SDP、DNS等配合,可支持和应用于语音、视频、数据等多媒业务,同时可应用于Instant Message(即时消息,与QQ类似)等特色业务。图1为SIP网络系统基本构成。
由图1可以看出,SIP网络系统主要由5个部分组成:用户代理(User Agent)、代理服务器(Proxy Server)、位置服务器(Location Server)、重定向服务器(Redirect Server)、登记(注册)服务器(Registrar Server),分别描述如下:
(1)用户代理。一个发起和终止会话的实体,包含两个功能实体:用户代理客户端(UAC,User Agent Clients)和用户代理服务端(UAS,User Agent Server)。其中,UAC为发起SIP事务请求的功能实体,UAS为接收SIP事务请求的功能实体,二者都有权终止呼叫。
(2)代理服务器。与位置服务器和重定向服务器有联系,为其它的客户机提供代理服务,进行SIP消息接收與转发功能,对SIP请求及响应进行路由。
(3)位置服务器。是一个数据库,用于存放终端用户的当前位置信息,为代理服务器或重定向服务器提供被叫用户可能的位置信息。
(4)重定向服务器。与位置服务器有联系,将用户新的位置返回给呼叫方,呼叫方可根据得到的新位置重新呼叫。与代理服务器不同的是,重定向服务器不会发起对自己的呼叫;与用户代理不同的是,重定向服务器不会主动终止呼叫,也不接受呼叫终止。
(5)登记服务器。接受Register注册请求,完成用户地址的注册,可以支持签权功能。
1.2SPI接口
SPI (Serial Peripheral Interface,串行外围接口)是摩托罗拉公司开发、用以实现微控制器(MCU,Microcontroller Unit)与外围设备之间数据交换的低成本、易用接口。与标准串行接口不同,SPI是一个同步协议接口,全双工通信,所有传输参照同一个共同的时钟,该同步时钟信号由主机产生[3]。
SPI有3个寄存器:控制寄存器SPCR,状态寄存器SPSR,数据寄存器SPDR。外围设备包括闪存、网络控制器、LCD显示驱动器等。
SPI总线一般有4根,分别为:串行时钟线SCLK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线NSS。
在点对点通信中,SPI接口由于不需要寻址操作,显得非常高效。本文采用SPI作为数字单元机(数字广告单元机)与主板上MCU之间的通讯规范。
1.3Eclipse平台及Android技术
Eclipse是著名的跨平台自由集成开发环境(IDE),最初由IBM开发,用以替代Visual Age for Java,2001年11月贡献给开源社区,现在由Eclipse基金会(一个非营利性软件供应商联盟)管理。Eclipse最初主要用于Java语言开发,现在,通过安装不同插件,Eclipse可以支持不同的计算机语言,比如Python和C++等开发工具。Eclipse本身只是一个框架平台,但由于众多插件都支持Eclipse,使其具有其他许多IDE所不具备的灵活性。目前,许多软件开发商基于Eclipse架构开发自己的IDE[4,5]。
Android是一种以Linux为核心、免费、开放源代码的操作系统,最早由Andy Rubin创办,2005年被谷歌收购。Android平台主要包括应用程序(Application)、应用程序框架(Application Framework)、库(Libraries)、Android运行时(Android Runtime)和Linux内核(Linux Kernel)。Android最早应用于智能手机,后来逐渐扩展到平板电脑及其它领域,如电视、游戏机、数码相机等[6]。
2需求分析
仔细分析社区住户及社区管理需求,并参考多种梯口机系统,提出本系统的两大功能需求。分别如图2、图3所示。
(1)智能门禁对讲。访客可以通过梯口机终端设备的键盘输入已注册的房间号(或住户手机号),呼叫住户,住户可通过手机APP接收来自梯口机终端设备的呼叫请求,7×24小时接听门禁来电,掌握全部访客信息,提高系统的便捷性和安全性,提高社区智能化水平。
(2)多媒体实时播放。社区物业可通过梯口机平台发布物业公告、社区新闻、图片、视频等信息,也可播放住户关心的民生信息,还可播放一些观赏性广告信息。用户无论在家与否,均可方便接收上述信息。
3系统设计
3.1门禁对讲模块
采用SIP协议实现梯口机与终端之间的通讯,主要包括如下两部分:
(1)SIP信息获取及注册。首先获取设备参数信息,然后访问SIP信息获取接口,获取相关住户信息、通话参数、设备SIP信息。注册前确认SIP账号是否更换,确认SIP账号是否已经测试并登录,若处于登录状态则重置SD,保存上述信息至数据库。图4为获取设备SIP信息及用户信息的流程。
(2)SIP拨号。核实输入是否有误,有误则弹出“输入有误”的窗口并语音提示;拨号前确认拨号模式是否为“梯口机/围墙机”,若设备类型为“梯口机”则可以拨房号/手机号,若设备类型为围墙机,则只可拨手机号码。查找数据库,若数据库中无此用户则给予提示,相关的SIP回调通知在这个MysipReceiver广播中(SIP消息推送、SIP通话状态、DTMF指令)。
3.2串口通讯模块
串口通信模块主要关注广告单元机MCU与主控芯片A20之间的通讯。MCU与A20通过SPI接口进行通讯,其中ARM为主控芯片,MCU为从芯片(接收主芯片发送来的控制信号及数据)。A20平台硬件模块如图5所示。
3.3播控模块
播控模块由后台控制,一旦物业管理部门推送节目,梯口机便可接到推送通知,接口联网即可获取节目清单与即时插播清单。在网络正常情况下,上述资源会先行下载到梯口机本地文件目录下;网络信号不好或中断时,则停止下载,重新联网后可继续下载。全部资源下载完成后,发送广播信息给播放端。
播放端接收到广播信息后,直接到梯口机本地目录下读取节目信息,并解析JSON数据信息,判断节目列表是否为空,“是”则播放播放本地默认目录下的素材;“否”则继续判断素材类型(视频or图片),再检测MD5校验码是否正确,正确则继续播放素材资源,每播完一个素材均要进行一次MD5校验,当出现MD5不正确的时候又开始播放本地默认目录下的素材。
还有一种情况是即时插播节目,该节目优先级较高,一旦接收到此命令,梯口机终端便开始下载该资源,下载完成即刻播放(原来播放的节目暂时中止)。即时插播节目播完,梯口机终端又回到插播前状态。播放流程处理如图7所示。
3.4设置模块
设置模块用于完成设备信息切换、网络切换、基础信息查看与设置。该模块分为基础设置、网络设置、门禁模块、区域管理、恢复出厂设置、重启应用、重启系统等功能设置
设置界面的按键操作主要是在串口通讯的基础上通过虚拟按键传值并通过广播发送动作指令,在SettingBaseActivity活动中接收广播动作,定义虚拟按键传值函数以供其它Activity调用,其中,设置模块的各个Activity都继承SettingBaseActivity并调用定义的传虚拟按键的函数来做按键响应。表1为虚拟键值与梯口机终端按键的对应关系。
4结语
经过多轮测试,上述梯口机系统满足系统需求,能够实现梯口机与智能手机终端的对讲功能;社区管理人员可根据需要对梯口机系统进行设置;播放功能较流畅,能够满足社区信息自动推送功能。运行结果表明,该系统可以帮助用户通过手机直接与梯口机访客通信,及时掌握访客信息,既方便又安全;多媒体播放功能可以实时播放民生信息,增强社区服务水平;物业信息等可以通过图片、视频等无纸化手段推送,提高了小区智能化水平,同时减少纸张带来的环境污染问题。综上所述,该系统的使用,会大大增强社区管理与服務的便捷性、智慧性、规范性和安全性。
系统设计中也存在一些待完善的地方,如网络设置中与WiFi连接时,有时会因为WiFi网络不稳定而掉线。为解决这一问题,今后可以在梯口机网络连接硬件、WiFi连接算法两方面进行优化,提高系统的可用性和稳定性。
参考文献参考文献:
[1]林健浩.基于SIP协议的音视频会话技术研究[D].广州:广东工业大学,2014.
[2]陈宾,马大玮,尹才华,江雪银.基于SIP的无线网络移动性管理研究与OPNET仿真[J].计算机科学,2015,42(s2):289291.
[3]罗莉,夏军,邓宇.通用SPI Flash控制器的设计与验证[J].计算机工程,2011,37(8):2224.
[4]闫志贵.基于Eclipse的嵌入式调试软件的研究与实现[D].武汉:武汉理工大学,2010.
[5]郑晓梅.一个基于Eclipse的通用Java程序插桩工具[J].计算机科学,2011(7):139142.
[6]卿斯汉.Android安全研究进展[J].软件学报,2016,27(1):4571.
责任编辑(责任编辑:陈福时)