单片机厂商将生产几乎可随插即用的IoT云端连线
网际网路术语一直以来就模糊不清,如同常用来代表网际网路的弯曲闭合线一样。 直觉上,我们认为云端以及物联网 (IoT) 是相同的概念,只是用字表达方式不同。 但要设计嵌入式系统,就必须要清楚地区隔两者,并且了解其效果。
IoT 是云端的组成项目之一。 从硬体角度来看,IoT 含有嵌入式系统和其他边缘装置,如行动电话等,而云端硬体整体则含有 Web 伺服器、应用程式伺服器、资料库伺服器、路由器、闸道器、运算资源和边缘装置。
对於嵌入式系统设计人员来说,可以将云端简单地想成是提供连线的资源,可藉此在边缘装置、伺服器、电脑或资料库之间进行数据移动。 但是,他们最後却发现,或许能将网际网路单纯视为嵌入式系统与伺服器之间的「通道」,但是云端却不是如此。 若在设计流程末端才发现此道理,将会耗费大量成本,也因此,专案工程师或经理必须确保在安排专案时,适度纳入资讯科技 (IT) 作业的相关人员。
若要将产品连线到云端,嵌入式设计人员就必须纳入额外的设计考量,特别是安全性和隐私权。 为了建立通用、完备的虚拟运算系统,除了云端架构考量外,目前也有越来越多在安全性和隐私权上制订要求的法律规范。 社群媒体才是促成这些规范的主要原因,而非嵌入式系统,但所有的数据皆套用相同的准则。
另一方面,即便透过 IoT 传输的数据量与资料中心之间每天流通的庞大流量相比是小巫见大巫,但 IoT 数据却特别容易受到安全漏洞的影响,因为日积月累後,IoT 会控制家中、工厂和办公室内为数众多的嵌入式装置。
安全连线
嵌入式设计人员正面临转变,设计典范也是一样。 举例而言,无线健身与健康监测器等穿戴式嵌入装置其实是相当新的潮流,通常会当作运动手表系统使用,包括测量健身参数的脉搏监测感测器或计步器。
目前这一代的穿戴式装置主要是透过蓝牙与行动电话或平板装置进行通讯,其次才是跟 PC 通讯。 云端连线绝大多数是由 PC 管理,其已具有完备的安全功能。 连线的两端必须都支援且实施 SSL/TLS 等安全协定。
而此情况,将在蓝牙核心规格 4.1 批准後有所改变,此规格将让感测器直接连线到云端,无需透过智慧型手机或 PC 的中介。 除此之外,也能让嵌入式设计人员汇集多重感测器的数据,因此可在云端上计算完整的健身报告,并透过社群媒体网站分享给他人,达到鼓舞效果。
智慧家庭、工厂、远端监控站以及云端连线汽车中的装置也属於嵌入式系统,必须达到至少如同电脑一样的安全程度。 网际网路要求嵌入式系统必须注重安全性以及隐私权功能。
文化冲击之处
同一时间,嵌入式系统和网际网路之间的连线本质也在改变,且网际网路本身也在演进。 十年前,代表网际网路的弯曲闭合线,其实是指连线的硬体架构,但并非真正整合。
以目前的图表来看,云端代表着一种资源共用达到一定程度的基础架构,以至於可视为单一虚拟机。 这都是透过云端软体的能力促成,让我们成为公有云、私有云、混合云以及社群云的一份子,而这些云都是由其背後的云端软体进行定义与实施。
本文将不会阐述云端的详细定义,但云端连线设计的起点就是选择云端服务,因此必须建立此概念。
碍於云端软体的复杂性,将由第三方负责透过云端连接网际网路。 例如,Amazon 拥有 25% 的市占率,因此是基础架构即服务/平台即服务 (IaaS/PaaS) 云端服务的领导厂商。图 1 指出云端基础架构供应商的相关市占率。
云端运算厂商的营收市占率示意图
图 1:2013 年第 1 季的云端运算营收市占率(资料来源:Microchip Technology)。
嵌入式系统当然也可绕过云端厂商,透过免权利金的 Web 伺服器提供动态网站,直接连接网际网路,即可同时服务成千上万的要求。 最典型的例子就是 LAMP,其代表 Linux(作业系统)、Apache(HTTP 伺服器)、MySQL(资料库管理)和 PHP(指令码语言)。
然而,嵌入式系统很难不受到非法、不正当或纯粹干扰性活动的影响。 车库门开启器通常是简易但实用的 Web 架构嵌入式系统的良好例子,而其很明显地容易受到影响。 但智慧家庭中的装置的影响或许就没那麽容易受到注意。 举例而言,恒温器设定可能会受到熟悉网路的罪犯监控,藉此寻找外出度假的家庭。 数十亿个无监控的 IoT 边缘装置将可在阻断服务 (DoS) 攻击中派上用场。
从这个观点来看,LAMP 伺服器缺乏完善的安全性,因此即便是伺服器端开发的良好选择,但仍然不适合用於实际执行伺服器 (Production Server)。
透过MCU厂商无缝接轨
MCU厂商运用云端厂商所提供的运算平台,以较轻松且更快速的方式进行安全、完善的云端连线。而这就是嵌入式设计和 IT 相互配合的领域。
举例而言,Amazon 云端架构服务的基本单位,是 Amazon 机器映像 (AMI)。 AMI 是一种虚拟装置,能在 Amazon 弹性运算云端 (EC2) 中建立虚拟机。 MCU 厂商会针对其特定产品建立桥接器,透过中介软体层连接 AMI。 展示板和开发套件能处理云端对 MCU 介面的所有复杂项目。
接受透过安全感知云端服务进行连线的概念後,接下来就是进行其他熟知的复杂事项,例如从云端建立下游连线等。 图 2 显示出嵌入式装置与云端之间最常使用的四种数据路径。 嵌入式设计最好能够运用不只一种路径。
尤其是在学习如何建立特定 MCU 厂商的 AMI 介面时,更应该将此纳入考量。Wi-Fi 最为适合使用,因为嵌入式设计基本上会成为网路的中央协调单元。 有点像存取点 (AP) 一样,也就是说拓扑不仅采用标准架构,也都很常用。
举例而言,在 Microchip Technology 的 WCM 开发套件 1 (DM182020) 中,编程到板载 32 位元 PIC32MX695F512H MCU 中的韧体,能设定成使用 Microchip 的板载 MRF24WG0MA Wi-Fi 模组连线到 Microchip Amazon 机器映像 (AMI)。
但若要开发新产品设计,Wi-Fi 并非唯一选择。 图 2 中的各个选项皆有其优缺点。 以下提供一些说明。
嵌入式系统连接云端的配置选项示意图
图 2:嵌入式系统连接云端的配置选项(资料来源:Microchip Technology)。
Wi-Fi 相当普遍而且容易配置,但却非常耗电。 蓝牙具有原生的安全性和低功耗特性。 目前使用越来越多智慧型手机,因此蓝牙的可用性也跟着扩大。 然而,其传输范围有限,而且通常需要支付权利金。
ZigBee (IEEE 802.15) 和其自行开发的 sub-GHz 技术就具备优势,例如轻量堆叠、优异范围与穿透率、低成本,甚至低功率。 另一方面,此技术通常需要在设计中纳入额外专案:集中器 (Concentrator)。
乙太网路是符合成本效益的技术,具有随插即用、灵活设计、高频宽以及高 RF 流量耐受能力的优势。 但是,也具备有线系统的缺点。
MCU意涵
可想而知,云端连线的规划会在嵌入式系统的 MCU 选择上产生莫大影响。 功耗、时脉率、记忆体以及每单元成本,一向都是重要的考量项目。 若需要云端连线,则又增加一些重要的因素,而且大多数都与安全性相关。
特别是当应用与电子商务相关时,就需要硬体加速以执行 AES、DES 和 CRC 加密,而这些功能也需要较长的指令集文字。 同样地,密码杂凑功能,如安全杂凑演算法 (SHA) 和讯息摘要演算法第五版 (MD5) 亦可透过 32 位元 MCU 进行部署。
安全性功能可透过 Microchip Technology 的 PIC32MZ EC 等产品系列的整合式周边装置在 MCU 上执行。 Microchip 亦提供软体堆叠可供嵌入式工程师使用,能在 TCP/IP 堆叠中支援安全通讯协定,如 SSL/TLS。
Texas Instruments 提供 Tiva C 系列连线式 LaunchPad 开发套件 (EK-TM4C1294XL),能为云端功能应用提供开箱即用的网际网路连线。 TI 连线式 LaunchPad 设计属於 ARM Cortex-M4 架构微控制器的低成本评估平台,采用 TM4C1294NCPDT 微控制器,具有晶片上 10/100 乙太网路 MAC 和 PHY、USB 2.0、休眠模组、动作控制脉宽调变,以及多种序列通讯周边。
通常,这些产品系列以及其他 MCU 厂商的产品都会整合通讯周边,如高速 USB 2.0、10/100 Mbps 乙太网路控制器、CAN 2.0b 控制模组、UART、SPI/I2S 序列介面、多重 I2C 通讯介面,以及 4 位元序列四通道介面 (SQI)。 工业应用通常会采用整合式类比数位转换器 (ADC)。
开发套件
如同之前所述,针对已经由云端专家开发的所有流程与程式码进行重新改造并不是明智的作法。
MCU 厂商正在集结厂商知识以及自家晶片与软体的功能,以纳入到开发套件中。 Microchip Technology 之前提及的 WCM 开发套件 1 就是一个例子。 透过此开发套件以及 Microchip Amazon 机器映像 (AMI),IT 部门以及工程部门将可了解开创云端方案所需的基本步骤。
此套件能让使用者设定 Amazon AWS(Amazon Web 服务)帐户并且布建套件随附的装置。共有四个基本入门步骤:
1.在 Amazon 的 AWS 市集中寻找 Microchip 的 AMI。
2.透过此 AMI 启动 Amazon 弹性运算云端 (EC2) 执行个体。
3.配置展示,存取本地路由器或存取点。
4.执行展示。
有多种自订选项可使用,但展示仅需两种:安全群组选项,提供必须开启执行之连接埠的名称;加密所需的金钥对。
接受 Amazon 的使用条款和条件即可开始 Microchip AMI 架构的 EC2 执行个体。 执行个体就绪後(需数分钟),即可使用 AMI 主控台。 即使新页面有庞大资讯,展示仅需要寻找公用 IP 位址。
开启新的浏览器页面,然後输入公用 IP 位址。 画面即会显示伺服器的 Web 介面。
要将展示板连线到 Web 必须将板件设定成 AP 模式,即可进行配置。 展示套件会带领使用者进行配置,包括选择适当的安全选项。 仅需输入公用 IP 位址和通行代码,就可完成展示板的配置并且使用。
图 3 显示出展示的浏览器视窗,左边为网页,右边为板件。 可按下板件上的按钮,网页上的虚拟 LED 指示灯即会亮起,若调整板件上的电位器也会反映在网页上,浏览器画面底端的数字会改变。
Microchip Technology 的展示网页和板件
图 3:Microchip Technology 的展示网页和板件(资料来源:Microchip Technology)。
虽然展示板和软体所达到的功能非常简单,但此展示的真正用意在於,完整连线的装置也可搭配 Microchip MCU 专用的预先定义 Amazon AMI 使用,而且设定仅需几分钟即可。
结论
产品若能进行远端处理或储存并且连接云端,将是非常吸引人且创新的概念,但也要考量安全性和隐私权的问题。 然而,对於嵌入式设计工程师而言,伺服器端软体不仅复杂而且不直觉,因此 MCU 厂商开始建立合作关系,提供几乎能随插即用的云端连线。 透过这些开发套件,即可让设计团队节省时间与作业,专注於为产品提供市场领先的功能,而不是钻研 IT 技能。