第 45卷 第 5期
2 0 1 6年 1 0月
上海师范大学学报(自然科学版)
Journal of Shanghai Normal University(Natural Sciences)
Vo1.45.No.5
0ct. .2 0 1 6
DOI:10.3969/J.ISSN.1000—5137.2016.05.012
基 于 Linux总线 的 智 能 网关 驱 动 层 的研 究 与设 计
张 剑,赵梗明
(上 海师范大学 信息与机 电工程 学院 ,上海 200234)
摘 要:目前在智能家居领域,还没有相关的组织机构提 出过一套统一的协议 标准,各个厂商
在设备 交互上都有着各 自的通信模式与协议标准.这增加 了异构网关软件框 架设计的复杂性
和局限性.使 用 Linux内核提供的一套 总线注册管理接 1:7,在 Linux下 自行注册维护一条 虚拟
总线,将物 理设备 驱 动挂接 在 该虚 拟 总线上 ,将 通信 协 议 的 细 节设 计放 置在底层适配器中,使
得异构 网络的融合更加 自然.同时,基 于 Linux总线 来设计智能 网关 系统的驱动层 ,可以让应
用层的设计接 口统一、逻辑清晰;使底层硬件设备 的入 网也变得更加便捷 ,层次分明.
关键 词 :智 能 网关 ;Linux系统 ;总线驱 动 :物联 网技 术
中图分类号 :TP 311 文献标志码 :A 文章编号 :1000—5137(2016)05-0587-06
0 引 言
随着手机、平板的快速发展 ,以及近年来炙手可热 的物联 网概念 的普 及 ,智能家居 的概 念 已经 走 进
人们 的生活.对于智能家居系统而言 ,智能网关无疑 占据着核心 的地位 ,网关设计的优劣不仅影响着设
备管理的用户体验 ,更加决定着系统的稳定性和兼容性.
现如今 ,物联 网界没有提出一套统一的标准协议 ,各家设备千差 万别 ,不 同的物联网应用又对不 同
的智能硬件有着各 自的需求 ,这正导致了智能网关 的设计呈现出多样化的现象.每一个智能硬件的通信
模式 、通信协议都存在着差异.因此 ,针对每一个硬件都需要定制一个特定 的应用 ,这对于网关而言在拓
展和升级上都不是很灵活 ,对于非专业的用户来说 ,网关拓展升级过程较为复杂的同时 ,成本和风险也
相对较大 .
同时,随着网关技术的发展 ,它所承担的角色不止是一个简单的接入设备 ,还渐渐变为综合服务处
理的单元.它要求不仅能控制管理智 能设备 ,还需要 连接广域 网成为一个个人终端.本文作者提 出以
Linux下总线设备驱动模型作为网关驱动层的设计模式 ,让具体通信协议细节对 于用户空间程序透明,
使得应用层程序调用 的 API高度一致 ,从而简化了应用层的开发.
1 系统整体架构
智能网关的组成一般可以抽象为应用层 、驱动层 、硬件层(图 1).
应用层相当于网关对于外界的出口,提供连接给终端服务器 、转 发 终端 发 送 过 来 的用 户 指令 .而 应
用层与硬件 的交互 ,则是通过文件系统访问设备文件 的方式来控制硬件.因此 ,对于应用层编程 ,可以直
接调用相应 的 API来操作/dev/目录下 的 Linux设备文件.对于驱 动层来说 ,仅需要实现对硬件设备 的
读写操作方法和协议.硬件层则负责实现具体的控制与实现.这种设计思想使得应用层 、驱动层 、硬件层
相互独立协 同工作 ,这也体现了 Linux内核的分离分层思想与软件设计低耦合的原则 .
收稿 日期 :2015-08—13
通信作者 :赵梗 明 ,中国上 海市 徐汇 区桂 林路 100号 ,上海 师范 大 学信 息 与机 电 工程 学 院 ,邮编 :200234,E—mail:
gengming@ shnu.edu.cn