预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于Linux的物联网智能网关的软件设计洪岚王佳斌【摘要】随着物联网技术突飞猛进的发展,智能控制和无线传感领域正在发生着一场重大的技术变革,智能家居系统的出现就是物联网技术的典型应用。而智能网关作为整个智能家居系统的核心,实现了无线传感网络和互联网、移动网络的融合,完成不同类型的网络协议的转换,为远程监控和管理提供了桥梁。本文先介绍了目前通用的智能家居系统及其智能网关的硬件结构,随后着重介绍了智能网关的软件设计方案,使得网关可以实现与协调器的串口通信,以及网关和用户手持终端的通信。由于嵌入式Linux的可靠性较高且稳定性较好,因此网关的软件设计采用嵌入式Linux来实现。【关键词】智能网关嵌入式LinuxZigbee引言:近年来,随着科技的不断发展,信息化建设越来越广泛地应用在日常生活中。智能家居系统的出现,满足了人们对现代生活更简便更快捷的要求。通用的智能家居系统的主要功能是能够实现用户能远程地控制家中的家电设备并监控家里环境等,智能网关则是人和家中设备通信的一个桥梁,是智能家居系统中最重要的控制单元。一方面,智能网关通过zigbee与系统中的所有设备进行无线通信,读取数据,并发送指令。另一方面,智能网关通过TCP/IP等网络协议连接到网络中,方便人们对其进行访问和读取。由于接口的不同,通信方式存在差异,因此智能网关要完成不同设备之间的信息和数据交换的任务。智能网关的实现主要有电脑和嵌入式系统两种方式,其中嵌入式系统具有体积小巧,成本低廉,可靠性高,稳定性好、功耗小等优点,更能符合智能家居系统中智能网关的性能要求,因此,本文采用嵌入式的Linux来进行智能网关的软件设计。一、智能家居系统的主要结构组成在一个通用的智能家居系统中,主要是根据用户的需求来设置智能节点,通常包含门禁系统,视频监控,家用电器,数据采集等。智能家居系统主要包括终端节点、智能网关和上机位系统等三个部分,智能网关是统一管理终端节点的控制设备。如图1所示。智能家居系统中终端节点主要有家用电器,水表电表,门禁节点,视频监控,防盗报警等等,这些设备通过Zigbee网络与智能网关进行通信,并把数据转输到网关中进行解析,智能网关把解析后的数据通过以太网传输到用户的手中,从而实现用户对末端节点的监测和控制。二、网关的硬件结构智能网关主要板载嵌入式处理器,Zigbee网关协调器,天线,串口,以太网接口等模块。1、网关采用三星公司主流Cortex-A8嵌入式处理器,该处理器是采用的芯片是SamsungS5PV210,S5PV210采用了ARMCortexTM-A8内核,ARMV7指令集,主频可达1GHZ,64/32位内部总线结构,32/32KB的数据/指令一级缓存,512KB的二级缓存,可以实现2000DMIPS(每秒运算20亿条指令集)的高性能运算能力。其该处理器支持TCP/IP协议,安卓软件和Zigbee等应用。。2、Zigbee网关协调器是采用德州仪器设备公司主流CC2530无线收发芯片组成智能网关协调器,它作为ZigBee网络的协调器,负责家庭内网络的建立,对各个终端节点的入网加以验证。Zigbee发收模块部分,是将接收到的无线Zigbee信号通过串行通信的方式传送到处理器芯片,另一个面,处理器发送数据的时候,也是通过串行通信的方式,将数据传送到Zigbee收发模块,然后模块将数据以Zigbee协议进行发送。其采用的无线协议是zigbee2007。3、网关通过外扩LAN9220网卡芯片和RJ-45的水晶头来实现联网功能。LAN9220集成了以太网的MAC和PHY,符合IEEE802.3/802.3u标准,支持全双工和半双工的模式,能够自动生成并检查32位的CRC,其引脚数少且体积小巧,适用于小型系统设计。三、嵌入式Linux网关的软件设计由于智能网关要处理的数据量比较大,不同设备之间的协议转换复杂,因此软件设计考虑采用多线程的编程技术。多线程的编程技术优点在它可以把上行数据和下行数据分开处理,且两个线程可同时运行,节省了运行时间。这样既充分发挥嵌入式Linux网关的网络性能,又能获得最大的通讯效率和稳定性[1]。网关的网络编程是通过Socket接口来实现的,系统在网关和上机之间建立了一个面向连接的服务,使网关用无线或者有线的方式和上位机进行通信。在系统工作的主程序中,网关服务器不断地检测来自设备终端和来自用户终端的连接请求,当从任一端收到请求命令时,服务器被激活并创建一个子进程与发送请求端通信,直到通信结束服务器方才结束该进程,而主程序返回继续检测来自其他终端的连接请求。智能网关软件设计主流程图如下图所示:3.1网关数据库的选择嵌入式系统可用的数据库是很多种,本文选用SQLite数据库,SQLite是一种开源数据库,免费使用,功能完善,体积小巧,具有可自由授权,可