《嵌入式系统开发》课程设计
1) 自由软件;
2) 完全兼容 POSIX1.0 标准; 3) 支持多用户和多任务; 4) 良好的用户界面; 5) 支持多种文件系统; 6) 丰富的网络功能; 7) 可靠的系统安全; 8) 良好的可移植性;
正是由于以上特点,Linux 在短时间内获得了飞速的发展,已在各个行业得到了广泛的应用。同时,Linux 嵌入式系统具有优秀的可移植性,利用 Linux 系统来进行软件开发已经成为一种趋势。可以想象,Linux 的发展前景非常可观[6]。
2.4交叉编译环境
通常而言,一个编译器所编译生成的目标代码一般是这个编译器所在的机器上的机器语言编码。但是在嵌入式系统开发中,需要使用宿主机(即:系统开发用的PC机)上的编译器来编译将要在目标机(待开发的嵌入式系统)上运行的目标代码,这种编译就是交叉编译(Cross Compiling)。图2.2给出了交叉编译环境组成示意图。该环境在项目开发过程中的作用主要体现在两个阶段:
首先在项目的起始阶段,目标平台还未建立,因此需要做交叉编译,以生成所需要的启动引导代码(BootLoader)以及操作系统核心;其次是当目标平台启动之后,由于目标平台上资源的限制,编译大型程序时,依然需要用到交叉编译。
《嵌入式系统开发》课程设计
主 机 目 标 机 调试工具 GCC编译器 Binutils Glibc库 交叉开发工具链 目标机接口层 主机通讯层 RAMDisk ARM Linux Bootloader
图2.2 交叉编译环境示意图
交叉编译环境的源代码主要包含以下三个部分:
1) ARM.Linux C comelier and linker这是编译内核代码的工具,可以编译汇编语言程序和C语言程序。由于内核版本的不同采用的Comelier版本也不同。本文针对2. 4. 18的内核选用的是2.95.3 Compliera
2) Bin utilities它里面主要包含了一些辅助开发工具,包括GNU的链接器ld、汇编代码编译器as、用来将文件打包重组的ar以及为ar打包的文件建立符号表的ranlib等工具。这些工具主要用在系统开发初期,特别是移植调试操作系统的阶段。
3) Glibc Library其主要是包含了编译器使用的C函数库和针对Linux的线程库。
交叉编译器Cross.gcc.2.95.3 安装在宿主机/usr/local/arm目录下,并把交叉编译器路径添加到系统环境中:
$export PATH=$PATH:/usr/local/arm/2.95.3/bin
此后直接使用arm.linux.gcc等工具对目标机应用程序进行交叉编译链接。
本章小结:由于本课题需要对整个系统进行开发,虽然嵌入式linux系统相对于windows要小的多,但是也有100多Mb,对比一下用网络传输是最快的,因此必须搭建各种服务器。
《嵌入式系统开发》课程设计
3 ZigBee技术概述
ZigBee是一种新兴的低速率、低功耗的短距离无线通信网络技术主要用于低功耗、近距离的无线连接[6][7]。它有着自己的无线电标准,通信的实现是通过数十个甚至成百上千个微小的传感器之间相互协作来完成的。这些传感器所需要的能量很少,并将数据以接力的式通过无线电波从一个传感器传送到另一个传感器,所以具有非常高的通信效率。
3.1 ZigBee简介
ZigBee技术的命名主要来源于蜜蜂在采蜜的过程中,跳ZigZag形状舞蹈来交流信息等,因蜜蜂自身体积小,所需能量少,又能传送花粉,因此人们用ZigBee技术代表体积小、成本低、能量消耗小及传输速率低的无线通信技术。
ZigBee 是一种新兴的近距离、低复杂度、低功耗、低数据速率、低成本的无线网络技术。主要适合用于自动控制和远程控制领域,可以嵌入各种设备,近几年再市场中逐步打开局面。ZigBee 是近几年兴起的一种短距离、低功耗、低速率、组网灵活的无线通信技术,适用于传输数据量小,功耗要求较为苛刻,实时性要求低,网络节点要求较多的场合[7]。
3.2 ZigBee技术
ZigBee技术的主要技术优势在于:
(1)低功耗。在低耗电待机模式下,2节5号干电池可支持 1 个节点工作 6~24 个月,甚至更长。这是ZigBee的突出优势。相比较,蓝牙能工作数周、WiFi 可工作数小时。
(2)近距离。传输范围一般介于 10~100m之间,在增加发射功率后,亦可增加到1~3km。
这指的是相邻节点间的距离。如果通过路由和节点间通信的接力,传输距离
《嵌入式系统开发》课程设计
将可以更远。
(3)低成本。ZigBee 免协议专利费,每块芯片的价格大约为 2 美元。 (4) 低速率。ZigBee 工作在 20~250kbps 的速率,分别提供 250 kbps (2.4GHz)、40kbps (915 MHz) 和20kbps(868 MHz)的原始数据吞吐率,满足低速率传输数据的应用需求。
(5)安全性高。提供了数据完整性检查和鉴权功能,加密算法采用通用的AES-128确保了数据传输过程中的高度保密[8]。
(6) 高可靠性。发送数据时采用碰撞避免机制;为了避免发送数据时的竞争和冲突,特别预留了专用时隙(GTS)给需要固定带宽的通信业务;节点间具有自动动态组网的功能,在Zigbee网络中数据通过自动路由的方式进行传输,进而使得数据在网络中的传输得到可靠保证[9]。
3.3 ZigBee协议分析
ZigBee 协议结构[4]在采用OSI七层模型的基础上根据市场和应用的实际需要而定义而成的。 ZigBee 协议规范采用了IEEE802.15.4 定义的物理层(PHY)和媒体介质访问层(MAC),由摩托罗拉、飞利浦半导体、三菱电气等国际知名公司组成的ZigBee联盟定义了网络层(NWK)和应用层(APL)。ZigBee支持星形、树状和网状网络拓扑结构,其协议体系结构如图2.1所示。
图2.1 ZigBee协议体系结构
3.3.1 物理层
对于物理层(PHY),ZigBee采用了868/915 MHz物理层和2.4 GHz物理层,两个物理层都基于直接序列扩频(DSSS)技术,使用相同的物理层数据包格式,
《嵌入式系统开发》课程设计
区别在于工作频率、调制技术、扩频码片长度和传输速率不同。物理层数据包由同步包头、物理层包头和物理层净荷3部分组成。物理层通过射频固件和射频硬件提供了一个从MAC层到物理层无线信道的接口。
图2.2 PHY模型
3.3.2 数据链路层
数据链路层分为逻辑链路控制子层(LLC)和介质访问层(MAC),介质访问层(MAC)主要实现的功能有:网络协调器产生网络信标;与信标同步;支持个域网(PAN)链路的建立与断开;为设备的安全提供支持;信道接入方式采用载波监听多址接入/冲突避免(CSMA/CA)机制;处理和维护保护时隙(GTS)机制;在两个对等网的MAC实体之间提供一个可靠的通信链路。
图2.3 MAC层参考模型
3.3.3 网络层
对于网络层(NWK),其主要功能是负责拓扑结构的建立和维护网络连接,包括设计连接和断开网络时所采用的机制、帧信息传输过程中所采用的安全性机制、设备的路由发现和路由维护和转交机制等。