F
福建电脑
UJIAN COMPUTER
1Android 系统及智能机顶盒简介1.1Android 系统简介
Android 是由Google 公司和开放手机联盟领导及开发的以Linux 为核心的自由及开放源码的操作系统,主要使用于移动设备,如智能手机,平板电脑等。随着Android 的快速发展,如今已允许开发者使用多种编程语言来开发Android 应用程序,受到众多开发者的欢迎,成为真正意义上的开放式操作系统。随着用户和应用的日益丰富,对于机顶盒终端用户来讲,最大的受益并是丰富的软件资源。
1.2智能机顶盒简介
机顶盒为一种连接电视机与外部信号源的设备,其根据不同的传输制式可以分为DVB-T ,即接收地面广播电视信号的机顶盒;DVB-C ,即接收有线电视信号的机顶盒;DVB-S ,即接收卫星电视信号的机顶盒。用户不仅可以通过传统机顶盒观看数字电视节目,而且可以接收电子节目指南,访问网页等。随着Android 系统、iOS 系统等智能操作系统在手机、平板、OTT 盒子等电子设备上的普及,其全开放的平台特性使得用户可以自行安装和卸载游戏应用,使用在线视频播放、视频通话等第三方提供的程
序,可以自主不断对原设备的功能进行扩充。目前绝大多数的DVB-C 机顶盒都是使用传统的非智能的嵌入式操作系统,作为传统家庭客厅媒体中心的DVB-C 机顶盒的智能化是一个必然的趋势。本设计中我们选用开放性好及用户量大的Android 系统进行开发智能DVB-C 机顶盒。
2智能DVB-C 机顶盒的硬件系统设计
机顶盒的硬件系统设计是进行软件开发的基础和前提,该硬件系统实现了DVB 信号解调、PSI/SI 信息解复用、视频解码、网络数据收发等功能。本章介绍了智能机顶盒的硬件平台,并对所选择的各主要芯片特性及连接情况进行了详细的介绍。
2.1基于RK3228B 主芯片的硬件系统介绍
本硬件系统采用瑞芯微公司的RK3228B 为主芯片,该芯
片采用28纳米工艺,拥有四核ARM Cortex-A7,主频最高可达1.5GHz ,具备256KB 二级缓存,配有
Neon 协处理器,内置了Mali-T4002D/3D 图形加速处理器,支持OpenGL ES2.0/Open ⁃VG1.1等,还支持4K 10Bit H.264/H.265解码,4K/P60HDMI 显示。同时,该芯片具有丰富的I2C 、TS 、SD 卡、以太网、智能卡、USB 等外设接口。如图1-1所示,整个硬件电路主要由主控芯片、DVB-C 信号接收芯片、Smartcard 、EMMC 、DDR 及其它外围电路等构成。
2.2基于DC2800的DVB-C 信号接收模块设计
机顶盒前端进来的DVB-C 信号必须经过调谐和解调,转换成TS 数据后,才能由主芯片接收并处理,该部分功能主要由Tuner 调谐器和QAM 解调器组成。在本设计中,Tuner 调谐器采用MaxLinear 公司的MXL608芯片,QAM 解调器采用澜起公司的DC2800芯片。主控芯片通过I2C 接口控制DVB-C 接收芯片的状态,其中解调芯片的I2C 直接和主控芯片连接,调谐芯片的I2C 信号是通过解调芯片Bypass 到主控芯片,另外,数据接收使用TS 接口。其中DC2800是澜起公司开发的支持DVB-C 传输标准的高性能、低功耗有线数字电视信道解调芯片。该芯片被广泛应用于一体机、机顶盒等有线数字电视接收设备。该芯片还具有同类产品中较为出的抗干扰能力,能有效去除载波干扰和符号定时误差,并能对抗强同频干扰、邻频干扰和回波干扰,特别适合复杂的网络环境。
3软件和功能详细设计3.1软件总体设计
本机顶盒软件是基于Android 系统而实现的,因此软件结构上要符合Android 的架构设计。Android 的系统架构和其它操作系统类似,采用了分层的架构。Android 分为四个层,从高层到低层分别是应用程序层、框架层、系统运行库层和Linux 内核层,结合到本设计中,如图3-1所示,依次为DVB 应用程序层、DVB 框架层、DVB 中间件层、DVB Linux 内核驱动层。
基于Android 的DVB-C 智能机顶盒的设计与实现
艾有军
(福州瑞芯微电子股份有限公司福建福州350003)
【摘要】本文详细介绍了基于Android 系统的DVB-C 智能机顶盒的整个软硬件系统的架构设计过程。首先对以瑞芯微RK3228B 为主控芯片,以澜起DC2800为DVB-C 信号接收芯片的硬件设计方案进行深入分析,并研究了Android 系统的Activity 界面设计、AIDL 进程间通信及Linux DVB 驱动框架,同时详细描述了DVB 模块的应用程序层、框架层,中间件层、内核驱动层等的软件设计过程。
【关键词】Android ;RK3228B ;DVB-C ;机顶盒图2-1硬件系统整体设计示意
图
图2-2DVB 模块与主控芯片连接示意
图
DOI:10.16707/jki.fjpc.2018.03.059
如图3-1所示,当Android 系统启动后,预注册的DVB
Receiver 监听到系统启动完成的动作后,去启动DVB Service 服务,并且该服务会常驻在系统内存中。当用户开启DVB 应用后,DVB APK 的相关Activity 调用DVB Manager 服务程序,而DVB Manager 会透过AIDL 进程间通信的方法与DVB Service
进行通信交互获取DVB 相关信息。其中DVB Service 用Java 语言编写,DVB Middleware 用C/C++语言编写,DVB Service 通过JNI 的方式调用DVB Middleware 代码。DVB Middleware 为DVB 中间件代码,主要完成PSI/SI 解析与处理、EPG 解析与处理、Subtitle 和Teletext 的解析与处理等,其数据的获取是通过调用DVB Abstract Layer 来完成。DVB Abstract Layer 是DVB 抽象层代码,其通过标准的V4L2系统调用方式调用Linux 内核。Linux 内核中主要分为V4L2DVB Core 和DVB 驱动程序,其中V4L2DVB Core 为Linux 内核本身的一部分,具有标准的Linux 平台的DVB API 。DVB 驱动程序又主要分为DVB 前端模组驱动和TS 数据接口驱动两部分内容。
3.2DVB 应用程序层软件设计
Android 应用程序都是由一个或多个Activity 组成的,他们通常是松耦合关系,而Android 内部则是通过栈来对Activity 进行管理的。本设计实现的DVB 应用程序分为主界面、电视广播、音频广播、节目搜索、EPG 等Activity 子模块,各模块独立为一个Activity 运行。Activity 的用户界面是由衍生自View 类的对象的层级式视图提供的。每个视图都控制Activity 窗口内的特定矩形空间,可对用户交互作出响应。DVB 应用程序主要利用Android 提供的许多现成视图来设计和组织各子模块Activ ⁃ity 。其中涉及到DVB 节目信息等数据的获取时,则通过APK 中程序中的相关Activity 代码去调用DVB Manager 服务程序。
3.3DVB 框架层及中间件层软件设计
Android 的框架层多以Java 实现,并且采用特殊的Dalvik 虚拟机。Dalvik 虚拟机可以有多个实例(Instance ),每个An ⁃droid 应用程序都用一个自属的Dalvik 虚拟机来运行,让系统在运行程序时可达到优化。本设计实现的DVB 框架层通过JAVA 语言实现,中间件层软件层通过C/C++语言实现,其中JAVA 通过JNI 接口调用C 语言。DVB 框架层主要是为DVB 应用层提供了各种具体的DVB 服务接口,如:搜索频道的实现,DVB 播放的控制实现等。
3.3.1DVB Service 与Manager 的建立
Android 的后台运行着很多Service ,它们在系统启动时被SystemServer 开启,以维持系统的正常工作。应用程序可以通过系统提供的Manager 接口来访问这些Service 提供的数据。我们
通过ServiceManager.addService ("DVB",new DVBService (this))将DVBService 注册到ServiceManager 中。客户端通过调用ServiceManager 的getService 的方法建立一个相关的代理Binder 。而Binder 是通过远程获得的,需要通过桩(Stub )来获取,桩对象是远程对象的本地代理。在这里调用IDVBManager.
Stub.asInterface(IBinder b)返回一个Service 的Stub 实例,把这个Service Stub 实例通过参数传到DVBManager 的构造函数,并返回一个DVBManager 的实例,这样就可以在DVB Manager 通过
DVB Service 实例调用我们实现的所有DVB 操作相关接口。
3.3.2DVB 的AIDL 进程间通信
在Android 平台中,一个进程通常不能访问其他进程中的内存区域。所以,他们需要把对象拆分成操作系统能理解的简单形式,以便伪装成对象跨越边界访问。Google 提供了AIDL 工具来编写这种伪装代码。AIDL(Android 接口描述语言)是一个IDL 语言,它可以生成一段代码,可以使在一个Android 设备上运行的两个进程使用内部通信进程进行交互。如果需要在一个进程中(例如:在一个Activity 中)访
问另一个进程中(例如:一个Service)某个对象的方法,你就可以使用AIDL 来生成这样的代码来伪装传递各种参数。在我们的程序中,DVBManager.java 和DVBService.java 分别对应Manager 和Service 端的DVB 接口函数,DVB Manager 是供APK 应用程序调用的,其通过AIDL 调用DVB Service ,而DVB Service 是继承自IDVBManager.Stub 的,并且DVB Service 里的DVB 接口函数通过JNI 调用的是DVB 中间件代码。
3.3.3DVB 中间件层软件设计
DVB Middleware 为DVB 中间件代码,主要完成PSI/SI 解析与处理、EPG 解析与处理、Subtitle 和Teletext 的解析与处理等,其数据的获取是通过调用DVB Abstract Layer 来完成。DVB Abstract Layer 是DVB 抽象层代码,其通过标准的V4L2系统调用方式调用Linux 内核。
3.4DVB 驱动层软件设计
设备驱动程序是操作系统内核和机器硬件之间的接口,其为上层应用程序屏蔽了硬件的细节。对于驱动接口层,我们采用Linux 内核本身自带的V4L2DVB Core ,其构造的标准的API 保证了驱动程序的兼容性。
3.4.1DVB 驱动程序加载
驱动的加载由模块初始化函数module_ini 完成的。在kernel 启动的时候通过do_initcalls 函数该调用初始化函数。我们把DVB 相关代码直接编译到内核,在系统启动的时候并会调用DVB 模块初始化函数。DVB 设备节点的创建就是在此阶段通过I2C 设备的挂载函数注册完成的。
3.4.2DVB 驱动程序实现
在本设计中,Linux 内核驱动程序主要分为V4L2DVB Core 和DVB 驱动程序两部分,其中V4L2DVB Core 为Linux 内核本身的一部分,具有标准的Linux 平台的DVB API ,所有上层的访问操作都是通过这个进行的。DVB 驱动程序主要分为DVB 模组驱动和TS 数据接口驱动两部分,DVB 模组采用I2C 接口同主芯片进行通信,TS 数据的接收主要是通过RK3228B 芯片的TSP 接口实现。另外,CA 卡是通过Smartcard 接口使用ISO7816协议同主控芯片进行通信。
4结束语
本文是在针对基于瑞芯微RK3228B 芯片(下转第122页)
图3-1DVB 模块软件架构示意
图
的智能DVB-C机顶盒的设计研发过程中完成的。该课题以机顶盒的软硬件设计为主要研究对象,在瑞芯微RK3228B An⁃
droid OTT机顶盒方案的基础上加上DVB-C数字电视功能的支持。其中Google官方发布的Android系统本身是不支持DVB-C等数字电视功能的,本课题算是一种基于Android系统的创新设计方案,同时对在其它主控芯片方案上实现DVB-T/ T2、DVB-S/S2等数字电视功能也具有一定的参考作用。
参考文献:
[1]张健.数字电视DVB系统概述[J].使用影音技术,2005,(1):71-73[2]贾希强.嵌入式数字电视中间件技术实现研究与实现:[硕士学位论
文].西安:西北工业大学,2004-03
[3]王峰,夏良正.MPEG-2系统多路TS流软件复用及实现[J].南京理工大学学报,2002,26(12):85-90
[4]王伟详.基于国芯DVB-C机顶盒的设计与实现:[硕士学位论文].长沙:中南大学,2011-05
[5]韩超,梁泉著.Android系统级深入开发.北京:电子工业出版社,2011.2
作者简介:
艾有军(1983-),男,福建松溪人,工程师,大学本科学历,主要研究方向为DVB数字电视及机顶盒技术。
励创业、推进就业。
我要参与—微投票:社区的各类投票都可以在这里进行线上开展,是民意调查、众满意度调查的线上采集窗口。
我要参与—政务号矩阵:整合社区内、社区间及上级政府的政务,提供政务一站式服务。
linux内核设计与实现 pdf4.2“我要办事”,一站式社区服务窗口
“我要办事”实现了社区服务统一窗口,与社区原有系统实现无缝对接和统一入口集成,免去了多系统、多窗口办事的不便,为广大社区居民提供更高效、便捷的服务。
我要办事-我要约:线上预约参加各类活动、预定各类活动设施(室、乒乓球桌等),预约团委、妇联的各类课程等。
我要办事-健康服务:1、预约挂号:直接连接社区卫生中心,提供预约挂号服务,用户可凭预约号到指定窗口换取挂号凭证。2、健康教育:与卫计委协同,发布各类健康知识信息。3、健康问答:提供互动板块,由社区卫生中心组织相关人员在上回复居民提出的各类健康类问题,同时考虑给相关人员提供津贴或者奖励。4、健康档案自查:与区卫计委协同,居民可直接查询个人健康档案。
我要办事-智慧交通:实现文化、出行、养老三张地图,通过信息发布,引导出行车流,提高社区所在商圈交通运行效率,便于广大社区民众出行。
我要办事-物业服务:1、物业费缴纳:由物业公司统计、上传物业费账单,居民可选择按季度或者年度缴纳,提供网上支付通道。2、物业服务公示:提供小区物业报修和等相关信息。该功能主要方便居民快捷缴纳物业费和报修,促进物业公司提高服务质量。
我要办事-网上政务:信息、互动、业务办理三位一体的网上政务平台,主要提供三类服务:1、事项咨询:对于在本社区可办理的业务,详细列出所有事项服务内容、适用对象、办理条件、所需资料等,并提供表格样张下载。2、事项办理:对其中简单类型业务(社区本身可办理,填表内容少,审批简单或只需备案或只需要街道出证明)直接提供网上申请、表格填写,提交后由事务中心接收处理,办理完毕后通知申请人拿原件到中心确认即可。3、办理连接:对于本中心无法办理,需要在区或者市级网上政务大厅办理的业务,可向用户告知办理内容、条件、流程后跳转到相关政务大厅入口。
我要办事-服务中心一览:提供社区公共服务平台的、、服务时间等信息,并提供地图定位。
4.3“我的社区”,主人翁式互动
我的社区-个人中心:用户可以在这个板块进行实名认证,同时查看自己与平台的互动信息和足迹。
我的社区-积分兑换:用户查看自己的互动积分,并用积分兑换礼品,礼品可选用日用品、社区课程、演出门票等。该功能主要用来增加用户与平台的粘性,提高平台利用率,通过用户使用、反馈促进平台不断完善。
我的社区-金玉良言:提供用户与街道一对一建言献策/回复的通道,倾听民声民意。每年对用户反映的意见和建议做汇总,评选出“年度十大金点子”作展示,并给予相应用户奖品/积分奖励。
5.实践与总结
社区平台在上海几个社区进行了实践,已经取得较好效果。首先,社区作为舆论场和互动场,成为社区管理者与居民线上沟通的枢纽,满足了辖区众随时随地沟通和交流的需求。其次,社区促进了基层政府对社区信息的全面收集和及时回应,最大程度地公开民众关注的与其利益密切相关的信息,充分传递正能量,扩大众对社区公共事务的参与度。后续社区平台还将根据平台上沉淀的大量数据,开展社区民生大数据分析,为基层政府提供科学决策客观数据依据,逐步探索建立智慧社区。
参考文献:
[1]邓国琼.互联网+时代下创新社区治理的问题及对策[J].厦门广播电视大学学报.2017,3(1):6-10.
[2]陈成.“互联网+社区”:智慧社区功能与技术实现[J].互联网天地, 2016,10(10):6-11.
[3]张大勇,李明忠.“互联网+”下基层社会治理创新研究[J].现代商贸工业,2018(2),138-141.
[4]王国华,骆毅.论“互联网+”下的社会治理转型[J].人民论坛·学术前沿,2015(10):39-51.
[5]王成蹊.互联网+背景下的城市社区治理创新研究[D].华东政法大学,2016:33-41.
(上接第118页)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论