基于IMX6Q构建云终端
2017-03-01海永军蒋勇
海永军+蒋勇
【摘要】 IMX6Q系列芯片是Freescale半导体公司推出的高性能低功耗CPU,该芯片利用其功耗低和价格低的优势,并且内置了比较强大的GPU处理单元,非常适用于桌面虚拟化环节中的云终端。论文基于Freescale的IMX6Q处理器,分析了云终端的软件、硬件特性,再基于此处理器和Freescale已有的硬件DEMO原理图以及BSP代码,从硬件电路和软件两个方面进行改进,最终构建出一个能够流畅运行RDP、Citrix的ARM架构云终端。
【关键词】 桌面虚拟化 云终端 ARM IMX6Q
一、绪论
1.1 云终端概述
云终端是桌面云应用的终端硬件承载侧,它运用自身的VDP技术,通过网络访问后端服务器主机,将服务器的音频视频流通过云终端的显示端输出并且利用鼠标键盘等设备进行交互,使得用户看起来独立拥有一套完整的操作系统硬件和软件。服务器侧具有强大的运算能力,一台服务器一般可以虚拟出十几个甚至上百个操作系统。
1.2 IMX6Q芯片简介
IMX6Q系列芯片是Freescale 半导体公司最新推出的高性能低功耗CPU,该系列芯片包含S/D/Q等几个不同型号,分别表示单/双/四核芯片。芯片基于ARM CortexTM-A9架构,兼容DDR 3-1066M、LVDDR 3-1066M、LPDDR2-1066M(单通道或双通道)等内存设备接口,被广泛应用于:笔记本、手持设备、多媒体播放等视频终端设备。
IMX6Q具备1.2GHz主频,32KB L1,1MB L2(共享于所有CPU核心,双核/四核),96K超大启动ROM,内部特有的16K加密RAM,多达128个GPIO口,2D/3D图形视频加速处理器引擎,独立的多媒体处理器引擎IPU,独立的视频处理器单元VPU,性能非常强大。
二、云终端的总体设计
2.1 云终端的总体结构
云终端作为桌面云应用的终端承载体,主要的功能就是接收服务器端通过网络传过来的音视频流,本地不需要太强的运算能力。所以,CPU具有视频流硬件解码能力是非常重要的。而ARM类型的CPU,其本身的计算能力不强,功耗非常低,且一般都配有GPU单元,能够轻易的对视频流进行硬件解码。
2.2 云终端的硬件技术
对于ARM架构的CPU,只要CPU的频率在1GHz左右,并且具有GPU能力,就完全可以用来做云终端的主控CPU。论文中使用的硬件是基于IMX6Q进行开发的。IMX6Q开发板里包含了非常丰富的外设,根据云终端的需求,去掉开发板中多余的模块。
2.3 云终端的软件技术
由于各种云桌面协议客户端的特性,Linux云终端至少需要有如下的要求:1、需要支持各种解码库,最好能在库里实现硬件解码功能。2、需要支持X11。3、需要有很好的视频播放组件。
三、基于IMX6Q处理器构建云终端
3.1 硬件改进
针对DEMO板和云终端的一般结构,提出如下硬件改进方案:
1、IMX6Q具有两个USB2.0接口。但是一般的云终端至少需要4个或以上的USB口,所以采用一个USB口外接4口USB HUB芯片来满足。
2、IMX6Q支持两路10M/100M/1000M以太网接口,支持MII/RMII/GMII/RGMII接口,于是采用RMII接口及PHY芯片RTL8201F完成。
3、云终端一般配合显示器使用,所以要有一个VGA接口。所以,采用THS8200芯片将IMX6Q的一路HD视频信号转化为VGA信号来实现。其中,VGA信号接入时,采用IMX6Q的I2C来读取外部显示器的EDID信息。
4、电源按键设计,给单板供电的12V全部通过mos管来控制,mos管的栅极通过按键和CPU的IO口相与来控制,这样,在上电后,按下按键后,mos管导通,单板供电,CPU工作后,第一时间通过IO口控制mos的栅极,已达到持续供电的目的。
3.2 软件改进
IMX6Q的DEMO板已经带了UBOOT、Linux内核和简单的文件系统,基于这些已有的代码,再结合2.4节的需求,需要移植一套X11图形管理系统。
Ubuntu上软件非常丰富,而且完全开源,出现问题后能够充分的利用开源资源解决,非常适合做为云终端的承载OS。目前市面上的Linux云终端,也有很多都是利用的Ubuntu操作系统。
结论:本文首先分析了云終端的硬件架构与软件架构,然后基于Freescale的IMX6Q处理器和DEMO板,从硬件、软件两方面进行改进,最终实现一个具备连接RDP与Citrix服务器功能的云终端。
参 考 文 献
[1] 杨凯, 刘绪伟.基于spice协议的嵌入式云终端系统的构建方法[P]。电子通信装置的制造及其应用技术,2013
[2] 杨华强.基于ARM9云终端系统的设计与实现[D]。河北:燕山大学,2013