物联网促成自动控制软/硬体现代化
要建构一套能用于生活周遭、串连各种装置的网路,因为要长时间稳定提供服务,无法避免需要考量可靠度与能源效率。已在自动控制领域被广泛应用的各类工业规格控制器、感测器,因架构单纯且经过长时间产品开发,在可靠度与能源效率上皆有不错表现。
步入IoT时代后,因有更大量的通讯需求、更多元化的通讯内容、模式与功能应用,使得可靠度与能源效率又面临新挑战。
建立标准化、支援体系丰富的架构或许是不错的方式,目前可以观察到一些软/硬体厂商正积极朝这个方向布局,例如苹果(Apple)推出的HomeKit、Google主导的Thread Group、英特尔(Intel)发起的OCF IoTivity与高通(Qualcomm)为首的AllSeen AllJoyn等,这些都是针对IoT通讯协定架构(Protocol Stack)还有应用程式执行环境(Application Runtime)推出的整合服务架构(Framework)解决方案,甚至已经有部分开始商品化。
有整合的服务架构解决方案,最方便的莫过于软体开发与商品整合。软体开发人员可以基于所提供的应用程式介面(API)开发应用程式,除可少花点心思在整合问题外,可靠度与资讯安全等也得以确保。
设备厂商只需要在感测器、控制器上部属适当的服务架构并满足相关的规范,即可让产品有不错的相容性。而在商品整合的部分,有相容于某种服务架构的标示,对于相关人员选择产品进行部署,甚至是消费者选购,都会更加方便。
除整合服务架构外,更往硬体层面看,就是控制器、感测器所使用的微型作业系统了。早期的产品多半使用厂商自行开发,或是委由软体厂商开发的封闭式微型作业系统。近年来出现一些基于UNIX-like、POSIX作业系统架构开发的开放原始码微型作业系统,例如Mbed、Contiki、FreeRTOS等。
这类型作业系统功能较为单纯,同时间须执行的处理程序也比一般电脑少很多,但须考虑资料处理的即时性,不能有太大的延迟。因此除核心、软体模组的档案大小都很小外,架构上也是针对指令集较为精简的控制器晶片设计并最佳化,且多采用事件触发导向(Event-driven)、即时作业系统(Real-time OS)等概念设计,以满足需求。
就控制晶片的设计层面,也出现许多更省电、又有强大运算能力的晶片,搭配适当作业系统、服务架构与应用程式,都是未来IoT普及所需的重要元素。目前软、硬体厂商,甚至是开源社群,皆投入不少心力在整合解决方案上,合作比单打独斗带来更大的力量,透过软/硬体整合、优化,将让新型态的IoT感测、控制元件在可靠度与能源效率上更容易达到实用需求。
不论是IoT还是自动控制,与装置通讯时最基本的动作都是读取、写入,读取感测器撷取的值、控制器的开关状态或是装置的设定值等,当有控制需求时写入开关状态、设定值等。每个装置可视为是一个拥有多个属性值的实体。
早期相当流行的Modbus使用暂存器(Register)的概念进行管理,每个装置上有数个暂存器,每个暂存器代表不同的开关状态、感测值、设定值等。读/写暂存器上的值即代表读取感测值或状态,或是控制开关的状态、写入新设定值等动作。而装置实作层面只须将感测器、开关等状态与暂存器进行对应。
同样的概念也应用在BLE上,BLE提供ATT协定(Attribute Protocol)与GATT架构(Generic Attribute Profile),每个装置可以定义数个属性质,用读写属性质的方式达到存取、控制的目的。
在资料库与软体工程领域常使用到ER模型(Entity-Relation Model),这样的概念也可套用在IoT中,每一个装置可视为一个实体(Entity),每个实体拥有若干属性(Attribute),而这些实体与属性间的互动关系(Relation),就是IoT所实作的。
在IoT的概念中,将有更多数量、更多种类的装置同在网路上,这意味着IoT网路比起传统控制网路,需要更大的定址空间与更强的定址甚至是选径能力,同时需要支援更多元化的资料型态(图2)。
图2 生活中一些常见的IoT应用装置与其属性范例
上页 1 2 3 4 下页