RIoTboard开发板介绍

全球信息化产业的加快促使越来越多的公司投入到物联网这块大蛋糕中,物联网一直存在,只不过受制于网络、设备等条件,从未被真正普及起来受惠于民,然而从目前电子产品的发展历程观看,智能插座等智能家居以及智能可穿戴设备的热势促使了物联网进程的加速、崛起。

去年老大哥Intel发布了针对物联网领域的夸克处理器以及基于夸克处理器、兼容Arduino开发板的Galileo开发板,而前不久更是传出消息说英特尔将携其物联网夸克处理器与微软展开深度合作进军物联网,伴随着一个个世界巨头级公司的加入,物联网领域炙手可热、愈演愈烈。这不,去年刚被全球电子元件分销商E络盟收购的本土企业英蓓特也带来了一款面向物联网的开发平台--RIoTboard开发板。

刚拿到RIoTboard开发板时还颇感烦恼,怎么取这么一个绕口的名称,不知其意,也不知该如何“称呼",好在包装盒印刷的名称字体特意突出了“IoT”(Internet of Things,物联网),见下图。

RIoTboard开发板包装盒

望文生义,就很容易就猜到这款板卡的用途,或者说是目的,这是准备要用RIoTboard开发板对物联网进行一场革命啊。对于去年Intel推出的针对物联网领域Galileo开发板我们还记忆犹新,似乎效果不是太理想,那RIoTboard又会扮演怎样的作用,是否能担当物联网革命者的称号?继续来看

RIoTboard包装盒内的东西

打开盒子,包装盒内仅有的两个东西,一块用防静电袋密封完好的RIotTboard开发板以及一根mini USB线,原本以为用这跟USB线就可以给板卡上电,事实是no(后面详说),而且线很短,对于习惯主机放桌底下的,简直是坑人,有等于无,如果你使用的是笔记本电脑,那一切不是问题。不过这种mini USB线非常通用,随便整一根长点的即可,有些遗憾的是没有配备供电的5VDC适配器,这东西目前倒稀有了。拆下防静电袋,呈现在眼前的就是RIoTboard开发板。

RIoTboard开发板

索性板卡还真是不错,一种“高大上”的感觉,有木有。板卡核心是基于ARM Cortex-A9的飞思卡尔应用处理器,后面将详细介绍。这里倒是有必要啰嗦一句,笔者使用过多块英蓓特的板卡,总体来说,质量那是“杠杠的”。

RIoTboard开发板

RIoTboard是那种让人感觉“一看倾心,经年难忘”的板卡,暗红色的8层PCB板,长宽120mm*75mm,两张银行卡般大小,板载丰富的外设资源,见下图(点击图片放大)。

RIoTboard开发板正面(点击图片放大)

RIoTboard开发板反面(点击图片放大)

RIoTboard板载资源:

  • 飞思卡尔i.MX 6Solo应用处理器,基于ARM Cortex-A9内核,1GHz主频
  • 飞思卡尔Kinetis MCU (K20)
  • 2*512MB DDR3 SDRAM,4GB eMMC Flash
  • LVDS接口*1、HDMI接口*1、数字摄像头接口*1、USB2.0 HOST接口*4、USB OTG接口*1
  • MIPI接口*1、Open SDA*1、SD卡接口、TF卡接口、10/100M/1Gbps RJ45接口*1、JTAG接口*1
  • 3线TTL电平接口(3个在扩展接口中引出、一个调试串口)、复位按键*1、音频输入/输出接口*1、
  • Boot Configuration拨码开关*1、LED*4(一个系统LED、两个自定义LED、一个Open SDA LED)
  • LCD接口*1、I2C接口*2、SPI接口*2、PWM接口*3、GPIO接口(在扩展接口中引出、部分引脚存在复用)

RIoTboard配置颇为强悍,基于ARM Cortex-A9内核的飞思卡尔i.MX6Solo处理器,1GB DDR3内存,这在开发板中已经是顶配的存在了,即使目前市面上疯抢的华为、小米等推出的真8核处理器手机也仅仅采用了联发科MT6592基带芯片——基于ARM Cortex-A7内核。

而丰富的板载资源更较于一般的智能手机也有过之而无不及,其众多外设的引出可以大大减少用户二次开发成本,同时也更方便用户增加功能性的模块,如GPS、蓝牙、WLAN等。除了丰富的外设功能,RIoTboard开发板调试功能也有好几种,除了需要借助仿真器调试的JTAG口,串口、Open SDA等都是方便好用的调试方法。

除了硬件资源的丰富,RIoTboard开发板的操作系统也可以适应多种,支持大家都非常熟悉Android以及GNU/Linux系统,而且RIoTboard同样支持用户自己搭建开发环境,编译自定义的操作系统。总的来说,RIoTboard是开发者理想的开源硬件平台。

大致了解了RIoTboard开发板,其基本的硬件框图概括如下

RIoTboard开发板硬件框图

看到这,不由的想到去年英蓓特也曾发布过一款类似的板卡——MarS Board,不过其采用的是基于飞思卡尔的i.MX 6Dual应用处理器(双核),要比i.MX 6Solo的性能强上不少,MarS Board的外形更像mini板的RIoTboard(见下图),只不过引出的外设资源相对要少些,有兴趣的可以参考爱板网MarS Board初体验

MarS Board与RIoTboard开发板

飞思卡尔i.MX 6Solo应用处理器

从之前简单的介绍中我们了解了RIoTboard采用的应用处理器还不如去年推出的MarS board中的i.MX 6系列,这可能会使大家产生一些疑惑——这不是在倒退吗?要把握住这个问题的关键点,我们必须从RIoTboard的定位中切入:

  • 首先RIoTboard定位于物联网,而物联网设备还未成长到手机一样的高度——系统徘徊、死飚硬件性能
  • 第二物联网设备更关注的是功能与功耗,在满足应用条件的同时保证适用即可,这同样是嵌入式系统的原则

所以我们从RToTboard开发板上看到了基于飞思卡尔入门级的应用处理器——i.MX 6Solo,下面具体看看这颗庞大的“心脏”。

飞思卡尔i.MX 6Solo应用处理器——MCIMX6S5DVM1AB

飞思卡尔i.MX 6Solo应用处理器——MCIMX6S5DVM1AB系统框图

飞思卡尔i.MX 6Solo应用处理器具体型号为MCIMX6S5DVM1AB,21mm*21mm大小,BGA封装,从这么庞大的封装也能想象一下i.MX 6Solo的功能有多丰富了。

飞思卡尔i.MX 6Solo应用处理器特性:

  • 基于ARM Cortex-A9 Core(带TrustZone),主频1GHz,集成2D、3D图形处理器、1080p 3D视频 处理器
  • 集成了电源管理模块、多种32/64位接口的存储器、高清显示、摄像头等接口
  • MMC/SD/SDIO接口、USB2.0 HOST、USB2.0 OTG、PCIe接口
  • 支持最大192KHz音频采样输出以及I2S输出,5路UART,支持RS232接口以及9-bit RS485模式
  • 4个eCSPI、4个I2C,1个千兆以太网口控制器、4个PWM、8x8路键盘控制
  • 两个CAN、两个看门狗、GPIO、JTAG、MIPI CSI-2接口等

从飞思卡尔i.MX 6Solo应用处理器的特性不难发现RIoTboard并未把处理器的功能全部挖掘完毕,或者说,仅凭这么小的一块板卡还无法做到,不过好在现有的功能已经足够强大,囊括了开发者常用到的功能。相比单一的微控制器,i.MX 6Solo真有种无从下手的感觉,毕竟每个功能的延伸都能成为一个独当一面的功能产品。

不过在这里,笔者先要给大家介绍i.MX 6Solo一个非常重要的功能单元——TrustZone(i.MX 6Solo硬件系统框中),说到这,或许有人马上有疑惑,这是什么?别急,先听笔者说一个故事。

众所周知,当初Iphone5S发布的时候几个重要的功能莫过于Touch ID(指纹识别)、64位应用处理器A7以及协处理器,而最吸引用户眼球的无一不是指纹识别这项功能,这大大提升了用户体验。但同时问题来了,指纹识别系统可以用于用户密码解锁或者支付认证等,具有非常强大的保护功能,但是,谁又来保护我们的指纹呢?

当时苹果CEO库克在发布会也一再强调用户的指纹是不会被上传网络或者备份到云端,它只会通过硬件加密(即使软件再强大也撬不开)存储在A7处理器的一块隔离区Secure Enclave,而这块Secure Enclave,说到底就是ARM公司在后期使用的一种加密技术——TrustZone,它把需要加密的信息分开储存处理,在硬件上杜绝恶意软件或者未授权的程序读取该部分的内容,从而实现更安全的支付和权限管理,TrustZone主要包括两部分,硬件建构及软件架构,如下图。

TrustZone硬件架构

TrustZone软件架构

TrustZone通过监视模式来切换用户系统运行在安全区域或者普通区域,从而实现重要信息的加密。随便互联网普及程度越来越高,网络信息安全已成为生活中重要的一步,尤其前不久爆出华为这样一个在中国乃至世界具有如此影响力及技术实力的公司被美国监视了长达7年之久而未被发觉,想想都觉得恐怖,所以笔者在这里重点介绍了一下TrustZone单元,而目前ARM TrustZone 技术是所有 Cortex-A 类处理器的基本功能。

另外,从i.MX 6Solo应用处理器众多外设功能来看,作为开发板是算最充分发挥其功能的一个项目,至于产品应用,好像有点浪费了,似乎想不到有这么一个产品能将i.MX 6Solo的功能彻底利用,但是,换一种思维来看,似乎也因此很多方案都能采用i.MX 6Solo来实现,毕竟,在飞思卡尔看来,i.MX6可并不是简单的定义为只针对物联网领域的应用处理器,在消费电子、汽车、工业等领域都可灵活应用,比如人机交互、多媒体网络电话、GPS导航等应用,下图则是例举了部分应用的硬件原理框图

基于i.MX6S的人机交互应用原理框图

GPS导航设备

多媒体网络电话

除此之外,更让人不能淡定的是这么强大的i.MX 6Solo仅仅是飞思卡尔i.MX 6系列中入门级的产品(见下图),在这之上,更有双核(MarS Board)、4核,而且同时也扩展更多的功能。

飞思卡尔i.MX 6系列应用处理器

 

RIoTboard板卡其他功能芯片

RIoTboard开发板强大的i.MX6S应用处理器同样需要周边芯片的配合来实现各种功能,下面简单的介绍下其他几个重要的功能芯片。

飞思卡尔K20系列微控制器——MK20DX128VFM5

RIoTboard开发板的Open SDA调试模块主要由微控制器MK20DX128构成,这是飞思卡尔K20系列的产品,基于ARM Cortex-M4内核,集成了USB控制器,在飞思卡尔推出的板卡中,主要定位于调试模块的控制器,在飞思卡尔的FRDM-KE02Z等板卡中都有用到,具体可以参考Freedom开发板评测

电源管理IC--MMPF0100NPAEP

电源管理芯片采用的是飞思卡尔的MMPF0100NPAEP方案,这是一个可编程配置的电源管理的芯片,集成了6个降压转换器以及6个线性稳压器,MMPF0100NPAEP可输出不同的电压为整个系统提供供电,如应用处理器、储存器、系统外设、及一些应用功能的电压,是电子书、IPTV、家庭、工业自动化等嵌入式解决方案的理想电源管理芯片。

从左往右分别是--以太网PHY、USB2.0 HUB、音频codec

 以太网PHY采用的是Atheros的方案——AR8035,这是一颗低成本、低功耗单口速率为10/100/1000Mbps的以太网PHY,AR8035支持MAC.TM RGMII接口和IEEE 802.3az-2010。4个USB2.0 HOST口通过USB2.0集线器解决方案FE1.1扩展,可支持高速(480MHz)、全速(2MHz)、低速(1.5MHz)通信。音频codec采用的是飞思卡尔的低功耗立体声音频编解码芯片SGTL5000,这是一颗面向完整音频解决方案的芯片,包括了音频功放输入输出、麦克输入、耳机输出等数字IO口,低功耗加上不错的性能和功能可以帮助用户减少整个系统成本,可应用在无线电话等产品中。

RIoTboard开发板上电启动

在了解了i.MX 6S的强大之后,我们上电启动RIoTboard开发板。如笔者一开始抱怨的,上电必须自己准备一个5V的电源适配器,额定电流最好大于1A的。

RIoTboard开发板在出厂时内置的系统是Android,存放在eMMC中,同时默认的启动方式也是从eMMC中启动,所以启动配置开关先不用设置。我们只需在上电前,先将输入、输出设备连接好,笔者这里使用的输入设备主要是键盘鼠标、输出设备则是通过标准的HDMI接口连接的液晶显示器。

上电后,Power LED会长亮,一个自定义LED一开始点亮,过几秒后就熄灭,然后将会显示Android的启动画面,最后进入一个原生态的Android 4.3版本的系统,可以通过鼠标键盘进行控制,具体操作很简单,不再介绍,下图则是进入Android系统的系统信息查看RIoTboard硬件情况

基于Android 4.3版本的操作系统

当然,我们不可能满足于此,插上网线的话还可以上网,浏览网页无压力(见下图),这点跟树莓派一比较,优势明显,另外还可以播放优酷、土豆之类的在线视频,但是播放过程中有卡顿,且无声音,按照RIoTboard这个配置应该毫无压力才对,导致这种现象的原因可能是英蓓特仅仅照搬一个系统,并未对其有任何的优化,如果想够买这个板卡的朋友,后续优化一切要靠自己了,前路任重道远啊。

插上网线连接上网

RIoTboard开发板有多种显示输出模式,除了通过默认的HDMI输出显示外,还能通过LVDS显示输出,设置显示输出模式我们可以通过配置U-Boot的参数来实现。为达到这步操作,我们首先要借助串口工具通过串口打印获取U-boot启动参数。

笔者一开始择最为方便的Open SDA调试模块作为转串口的输出,无奈,不知道咋回事,笔者拿到的RIoTboard开发板,Open SDA无法使用,无法检测到插入的mini USB(各种方法折腾,安装驱动、换miniUSB线,未果,最后多方查证才发现目前这个接口软件上还无法启用,建议大家参考RIoTboard原版的英文指导手册,里面有详细说明,不像英蓓特的中文版手册,缺斤少两),最后无奈只能通过另一个debug排针座引出的串口查看输出Logo,串口排针座的引脚为3.3V的TTL电平,不能直接连电脑上的UART口的 RS232电平,只能通过电平转换IC实现连接,笔者使用的是一个USB转串口模块(见下图)。

通过USB转串口工具查看系统启动信息

串口连接好以后,设置串口输出的工具(配置信息参考),然后上电启动,在打印出的Logo中出现U-boot自动启动倒计时的时候按下键盘任意键来停止U-boot自动启动,然后输入配置输出显示模式的代码,按回车确定(下图黄色框中是HDMI显示输出模式,仅作为举例说明),之后再输入saveenv(保存环境的命令),大功告成。

设置HDMI输出模式

知道了不同的显示输出方式,加之RIoTboard开发板默认的为Android系统,真有种马上一试的感觉,毕竟在没有触摸屏支持的显示器上玩Android系统太二了,但是笔者这没有适合的LVDS接口输出的触摸显示屏,这个愿望无法满足了。

那就换种思维,将系统给换掉。笔者在之前提过RIoTboard可以支持Android或者GNU/Linux系统,下面就以Ubuntu为例简单的介绍下如何在RIoTboard开发板上更换操作系统。

RIotboard开发板像手机一样刷系统

在刷Ubuntu系统之前,先要做些准备工作,下载Ubuntu镜像文件、下载工具MfgTool,这些东西在英倍特的华为云盘有提供,不得不抱怨下,以前都配有光盘,如今要自己下载确实很费事,当然下载的好处的确保你获得的资源是最新的。

将下载完的镜像文件拷贝到下载工具MfgTool的OS Firmware文件夹的files目录下(见下图)

设置下载工具

将启动配置开关的1,2档ON,OFF切换为OFF、ON状态则进入下载模式,见下图

RIotboard启动开关配置

打开下载工具MfgTool,将mini USB线电脑与RIoTboard的mini USB OTG接口,插上5V电源适配器上电(如果第一次连接会自动安装驱动),MfgTool工具检测到RIoTboard板卡,点击start开始下载系统。

下载中

下载完成

下载完成后先点击Stop断开设备连接,再点击Exit退出。然后断开RIoTboard板卡供电,将启动配置开关还原(1:ON、2:OFF),重新连接显示器,输入、输出设备,再次上电启动,Ubuntu系统就呈现在眼前了

RIoTboard搭载Ubuntu系统

最后,不得不回应一下开头,Intel Galileo与RIoTboard两块评估板都是优秀的开发平台,同样也都打着面向物联网领域而推出的开发板,只不过一个是站在山上往下走,另一个是一直在朝着山头走,哪个更适合自己,相信用户心中早有答案。

小结

介绍了RIoTboard开发板的基本硬件组成、软件开发环境及上手使用等,RIoTboard丰富的外设功能和强大的性能如果仅仅局限于物联网领域,实在有些大材小用,而偏偏RIoTboard开发板的命名很容易让用户仅仅认为它只不过是针对物联网的一款产品,但实际远非如此,售价仅为680RMB的RIoTboard即可以针对物联网领域的单一化功能的简单设备,又可用于高端移动设备、掌上电脑、便携式媒体播放器等高端领域。用一个不恰当的比喻,当人们都在担心商家挂羊头卖狗肉的时候,英蓓特此举无疑在反其道而行——“挂狗头卖羊肉”。