嵌入式系统开发课程设计.doc
《嵌入式系统开发课程设计.doc》由会员分享,可在线阅读,更多相关《嵌入式系统开发课程设计.doc(154页珍藏版)》请在咨信网上搜索。
<p>精选资料 《嵌入式系统》 课程设计 (题目:基于嵌入式系统和ZigBee的环境监测研究) 院 (系) 信息工程学院 专 业 班 级 学 生 姓 名 学 号 设 计 地 点 教13(605) 指 导 教 师 王华本 起止时间:2015年4月20日至2015年4月30日 可修改编辑 精选资料 基于ZigBee技术的智能交通灯的实现 摘 要 本文提出了一种基于ARM嵌入式系统ZigBee技术的智能交通灯实现方法,以及相应的系统硬件结构和软件的流程[1]。该系统对震动值进行采集,并在下位机上进行处理和显示,同时在ZigBee模块上也能显示出结果。由于采用了ZigBee技术,该系统具有低成本、低功耗、智能化、易维护、保护生态环境等特点,且具有很好的实用性[2]。 关键词:ZigBee技术;ARM嵌入式系统; 智能交通灯; Abstract This paper puts forward a system based on ARM embedded ZigBee technology method to realize intelligent traffic lights, and the corresponding system hardware structure and software flow. The system was carried out on the vibration value acquisition, and the next bit machine for processing and display, at the same time also on ZigBee module can show the results. By using ZigBee technology, the system has low cost, low power consumption, intelligent, easy to maintain and protect the ecological environment etc, and has a good practicability. Keywords: ZigBee technology;ARM embedded system; Intelligent traffic light ; 可修改编辑 目 录 1综述 2 1.1 本文研究背景与意义 2 1.2 智能交通灯的特点 3 1.3 国内外研究状况 3 1.4典型无线网络技术介绍 4 1.5 ZigBee技术综述 5 1.5.1 ZigBee技术介绍 5 1.5.2 ZigBee协议分析 7 2搭建平台 9 2.1 嵌入式系统概述 9 2.2 S3C6410 处理器 10 2.3 Linux 操作系统 10 2.4交叉编译环境 11 3 硬件技术介绍 13 3.1系统总体设计 13 3.3电源电路设计 14 3.4存储器电路设计 14 3.5复位电路 15 4软件技术介绍 16 4.1 程序框架设计 16 4.2 3秒程序的控制 16 4.3 8秒程序的控制 17 4.4 点阵代码 18 4.5 数码管代码 19 4.6 蜂鸣器代码 20 5功能实现 21 5.1 ZigBee无线通讯协议 21 5.2传感器感应和显示程序 22 6测试结果及分析 25 6.1硬件测试 25 6.2软件测试 25 6.3实验截图 25 致 谢 29 参考文献 30 附件1 31 1综述 目前,随着科技和经济的发展,我国的交通系统越来越庞大,交通管理也有了很大的困难。特别是在节假日时,高速堵塞,城市交通也苦不堪言。对于城镇交通的管理,主要还是靠红绿灯的控制,但目前现有的红绿灯,大多数是靠单片机控制的。单片机程序更改是比较麻烦的,而对于实时监测信息也无法满足。因此,如何搭建一个成本低、维护方便的红绿灯系统是非常重要的。所以智能交通灯有了很大的应用空间。无线传感网络这一新技术的出现,为解决路面监测提供了很好的技术方案。无线传感器网络(wirelesssensornetwork,WSN)是计算机、通信和传感器3项技术相结合的产物,近年来得到了飞速发展,已成为计算机科学领域一个活跃的研究分支[3]。 1.1 本文研究背景与意义 交通是城市经济活动的命脉,对城市经济发展、人民生活水平的提高起着十分重要的作用。城市交通问题自人类进入21世纪以来,道路交通一直是困扰城市发展、制约城市经济建设的重要因素。而使用合理的交通灯可以合理的规划城市交通,从而为城市的快速运输和发展提供最优化的交通解决方案。 可以肯定的说,城市道路增长的有限与车辆增加的无限这一对矛盾是导致城市交通拥挤的根本原因。对于减轻交通拥塞及其副作用特别是对于大的交通网络而言,仍然缺乏一种真正的交通响应控制策略。计算机硬件能力与控制软件能力很不相符,由此造成的影响是很多交通控制策略根本不能实现。在少数几个例子中,一些新的控制策略确实能得以实现,但他们却没能对早期的控制策略进行改进。由于缺乏能提高交通状况、特别是缺乏拥塞网络交通状况的实时控制策略,几乎可以说真正成熟的控制策略仍然不存在.智能化和集成化是城市交通信号控制系统的发展趋势和研究前沿,而针对交通系统规模复杂性特征的控制结构和针对城市交通瓶颈问题并代表智能决策的阻塞处理则是智能交通控制优化管理的关键和突破口[4]。 车辆的不断增多,表明车辆对道路容量的要求仍然很高,短期内还不可能改变。自从开始使用计算机控制系统后,不管在控制硬件里取得什么样的实际进展,交通控制领域的控制逻辑方面始终没能取得重大突破。 因此,研究基于智能集成的城市交通信号控制系统具有相当的学术价值和实用价值。把智能控制引入到城市交通控制系统中,未来的城市交通控制系统才能适应城市交通的发展。从长远来看该研究具有巨大的现实意义。 1.2 智能交通灯的特点 智能交通灯系统拥有可靠的环境信息采集分析能力。为了实现路面监测的精确性、全面性并且方便使用本文的智能交通灯应具有以下各种特点。 (1)监测路面车流量信息。 (2)多点监测信息同步。 (3)根据监测信息能改变信号灯的时间长度[5]。 1.3 国内外研究状况 城市交通信号控制系统的管理是保障城市交通高效有序运行的一个重要组成部分,如何实时有效的对交通信号进行控制,优化城市交通车流是目前国内外学者研究的热点。对交通信号控制系统的优化,现阶段主要体现在对城市交叉路口相位中的绿信比的调节,通过调节绿信比来形成各个车道的路阻,改变交通车流量。随着数字智能技术与通信和控制领域的结合,交通信号控制系统的优化逐渐的由孤立路口的控制向大规模区域网络控制、定时控制向自适应控制、集中控制向分布式协同控制的方向发展,传统城市交通网也将被智能交通网络所取代。 1、城市交通信号控制系统的优化 交通信号灯的控制是城市交通网络中一个最主要的控制手段。通过优化交通岔路口交通灯的红绿灯配时方案,设计有效的交通信号优化控制策略,可提高城市交通资源的利用率,缓解道路拥堵。 目前,设计一个实时可靠并且实际可行的交通信号控制系统仍然有诸多的问题需要解决。这些问题集中在以下几个方面:a)绿灯转换是一个离散变化过程,其优化组合往往是一个 NP困难问题;b)城市交通规模巨大,除了要处理大量交通数据外,一定范围内相邻路口交通车流量存在相关性,故相邻路口应有一定的协调特性才能达到整体优化;c)交通中面临着许多的不可知以及难以测量的扰动因素(如:交通事故,非法停车,行人穿行等);d)交通状态的测量信息往往是局部信息,并且测量的准确度受许多因素的影响。针对以上问题,国内外研究学者提出了交通信号控制系统的解决方案,按几何拓扑可分为交叉路口控制、城市主干道控制和网络控制三类。 2、智能交通系统与分布式协同优化控制 智能交通系统的提出为全面解决城市交通运输问题提供了一个有效的路径。智能交通系统涵盖了交通领域中的许多方面,包括信息服务系统、交通管理系统、电子收费系统等,是高度综合化、智能化的交通控制系统。在交通管理方面,智能交通系统采用先进的车辆检测技术和计算机信息处理技术,获取实时交通路况信息,并根据收集到的信息对交通进行控制,信息的收集一方面提高了交通控制的准确性,但同时大量的数据也增加了消息处理的复杂性。 因此,目前不少国内外学者正在研究交通控制系统的分布式解决方案,并尝试将智能控制技术应用到分布式交通信号控制中[6]。 但对于国内来说,最近几年发展迅猛,各地的发展状况良莠不齐,同样各厂家都在推出不同的换代产品。据了解,目前北京,天津等这些一线城市,发展相对成熟,产品更新较快。就最新的状况而言,国内最新的智能交通软件在向着多功能多元化的方向发展,一些软件提供厂商都会提供一整套解决方案。简单的拿闯红灯系统来说:目前需求不单单仅限于只抓拍闯红灯的违法行为,还需要兼顾治安卡口,录像,压线,逆行,不按道行驶,异常停车等集中一体。 1.4典型无线网络技术介绍 ZigBee 技术主要用于低数据传输速率并且传输距离要求不是很远的各种通信设备之间。ZigBee的名字主要来源于蜜蜂通过跳 ZigZag形状的舞蹈来传递所发现的食物的位置、距离和方向等信息一只一只的传递下去此种技术与蜜蜂的这种通信方式相类似。ZigBee联盟则于2001年成立而在2002年下半年以及四大半导体公司共同宣布加盟ZigBee技术联盟以研发名为ZigBee的新一代无线通信标准。而在2006年作为中国通信行业龙头的华为公司亦加入了此联盟[7]。 1.5 ZigBee技术综述 ZigBee是一种基于IEEE802.15.4标准的低功耗个域网协议根据此协议的规定ZigBee技术是一种短距离、低功耗的无线通信技术。这一名称来源于蜜蜂的一种名叫ZigBee的舞蹈由于通过持续不断地跳这种舞蹈来实现对新发现的食物或其他信息的传递换句话说蜜蜂是依靠这样的通信方式来实现了一个通信网络而每个个体则是网络中的一个节点。这样做的好处是不需要专门的通信蜜蜂通过信息接力就完成了整个通信从而实现了蜜蜂的低成本、低数据速率、自组织、低功耗、近距离、低复杂度等的信息传递方式。受蜜蜂的这种特殊的通信方式的启发ZigBee技术的研究也主要是在低速率、低功耗通信领域进行应用亦可以低成本地嵌入各种设备中组成庞大的网络。总而言之ZigBee技术就是一种低功耗低成本的无线网络通信技术[8]。 1.5.1 ZigBee技术介绍 ZigBee 技术主要用于低数据传输速率并且传输距离要求不是很远的各种通信设备之间。ZigBee的名字主要来源于蜜蜂通过跳 ZigZag形状的舞蹈来传递所发现的食物的位置、距离和方向等信息一只一只的传递下去此种技术与蜜蜂的这种通信方式相类似。ZigBee联盟则于2001年成立而在2002年下半年以及四大半导体公司共同宣布加盟ZigBee技术联盟以研发名为“ZigBee”的新一代无线通信标准而在2006年作为中国通信行业龙头的华为公司亦加入了此联盟。截至目前该联盟大约已有约27家成员企业所有这些公司都参加了负责开发ZigBee协议物理层和媒体控制层技术标准的 工作组。ZigBee联盟负责开发网络层及以上的协议。ZigBee协议则比蓝牙技术、高速率个人区域网或 802.11x无线局域网等技术更简单而实用。ZigBee使用的是 波段采用了跳频技术这和蓝牙技术相似可以说是同族兄弟了。但相比之下ZigBee协议比蓝牙更简单、速率更慢、功率及费用也更低。ZigBee的基本速率是传输半径可扩大到400米并可得到更低的功耗和更高的可靠性。此外单个ZigBee无线模块就可与254个节点互联若网络中加入路由节点则网络最大承载量可支持65535个节点设备互联[9]。由于它的低延迟和低功耗性能优越性所以在支持鼠标、键盘等电脑周边产品和家庭自动化仪器等低速率应用时可以比蓝牙做地更好人们更希望能在无线玩具、传感器网络、家庭监控、工业监控和安全系统等众多领域拓展ZigBee的应用。 ZigBee网络采用的是无线自组织网络技术与蜜蜂的通信类似网络中的各个节点间通信以一跳或多跳的形式自动建立网络。网络节点则以ZigBee协议为基础进行通信与各种传统无线网络相比其主要优点有以下几个方面。 (1) 网络稳定性好。其设计的网络自己组织性能使网络各个节点在无需人工干预的情况下自己组网并实现数据传输的任务当添加或去除网络中某个节点时其余节点可以自行寻找其他节点替代中转信息具有较强网络自愈能力 (2)成本低。由于ZigBee联盟已经有二十多家他们的研发实力都很强好多公司均已在2003年正式推出自己的ZigBee芯片竞争较大近年来应用于主机端的芯片成本将会比蓝牙等模块更具价格上的优势。 (3)功耗低。它的超低功耗也使得在应用中两节普通AAA干电池即可使用6个月至2年的时间这也是ZigBee的最大的一个优势 (4)网络容量大。每个ZigBee设备可以与另外254台节点设备相连接而加入路由节点的ZigBee网络最多可容纳多达65000多个节点的网络 (5) 数据传输速率低。只有10kb/s—250kb/s符合本设计需求 (6)工作频段灵活。使用的频段中2.4GHz全世界通用欧洲使用868MHz美国则使用915MHz频段但这些均是免申请频段可以直接使用 (7)网络延迟时间短。活动设备信道接入延时和休眠激活延时均仅为15ms而搜索设备延时时间达到30ms根据ZigBee联盟所设定的技术标准按功能分其网络设备划分为三种ZigBee协调器ZigBee路由器ZigBee终端设备。他们的功能分别如下。 1、ZigBee协调器它是个全功能的设备包含所有的网络功能是3种设备中功能最全面亦最复杂的一种特点是计算能力强、存储量大。它的作用是发送网络信标、建立并且管理一个网络及网络节点、存储节点信息并且不断地接收下级节点所发来的信息[10]。 2、ZigBee路由器它也是全功能设备在加入网络后协调器就会分配给它一定量的十六位地址空间再由其分别分配给下级节点使用方便每个节点接入或离开网络时具有数据转发及路由之功能。 3、ZigBee终端设备是其一般的简化的功能设备。只能自己的与上一级如协调器或路由器之间通信包括获取网络地址等。在ZigBee协议规范中组网时有三种网络拓扑结构可供选择星型结构网状结构和簇树型结构图1.1所示。 图1.1 ZigBee网络拓扑结构图 在星状结构中无论是路由器或终端设备都是直接与协调器进行通信在ZigBee协调器则负责运作与维护着整个网络在簇状和网状网络结构中协调器负责初始化和建立网络的操作而路由器则对网络进行扩展终端设备的信息由路由器进行转发,只不过在簇状结构中终端间的信息交换只能通过一级级向上传递到协调器再由协调器将信息分发下去。 1.5.2 ZigBee协议分析 ZigBee联盟在IEEE802.15.4协议基础之上规定了ZigBee协议的网络层与应用层协议规范。下面就网络层与应用层作简要介绍。 ZigBee网络层的主要功能就是确保正常工作同时定义了一些必须的函数并且为应用层提供适合的服务接口。网络层提供了两个必须的功能服务实体来向应用层提供服务接口它们分别是管理服务实体和数据服务实体。 应用层主要由用户根据具体的应用进行自我开发用以维持节点的各种功能发现此节点工作空间范围内其他节点的工作再根据服务的需求为各个不同的节点提供通信服务。ZigBee应用层有三个不同的部分分别是应用支持子层、ZigBee设备对象和制造商定义的应用对象。 2搭建平台 由于本课题采用的是嵌入式linux系统,由于通用PC机一般都是x86架构,在x86架构使用的编译器是GCC,但是本课题使用的是ARM架构,因此必须在x86架构上搭建交叉编译器。 2.1 嵌入式系统概述 嵌入式系统并不是一个新兴的领域,它早已出现并深入了我们的生活。人们的日常工作、生活都已经离不开嵌入式系统的产品。嵌入式系统是应用于特定的环境下执行专业领域任务的应用系统,与通用型计算机系统相比,它具有以下特点: ①专用性,面向具体应用,用于完成某一特定任务。 ②实时性,许多应用场合都有实时要求。 ③嵌入式系统是将先进的计算机技术、半导体工艺、电子技术、通信网络技术以及各领域的具体应用融合在一起的产物。 ④嵌入式系统的软硬件都必须高效率地设计,在保证稳定、安全、可靠的基础上进行量体裁衣,力争在同样的硅片面积上实现更高的性能,降低成本。 ⑤开发需要专门的开发工具和环境。嵌入式系统本身不具备自主开发能力,必须有一套交叉开发工具和环境才能进行开发。和一般的计算机系统一样,嵌入式系统也是由硬件和软件系统构成,硬件包括嵌入式处理器及外围设备,软件主要是嵌入式操作系统和嵌入式应用软件,如图2.1所示: 图2.1 嵌入式系统结构 2.2 S3C6410 处理器 S3C6410是三星公司生产的基于ARM11内核的嵌入式处理器,内部集成了强大的多媒体处理单元,支持Mpeg4,H.264/H.263等格式的视频文件硬件编解码,可同时输出至LCD和TV显示;它还并带有3D图形硬件加速器,以实现OPEnGL ES 1.1 & 2.0加速渲染,另外它还支持2D图形图像的平滑缩放,翻转等操作。 ARM11开发板采用S3C6410处理器,包括触摸屏接口电路、SD 卡接口电路、FLASH、SDRAM,串口等。操作系统采用免费开源的嵌入式Linux系统[11]。 2.3 Linux 操作系统 Linux 从 1991 年问世到现在,短短十几年的时间已经发展成为功能强大、设计完善的操作系统之一。作为最能体现互联网自由和开放精神的代表,Linux 自诞生以来就以软件源代码开放、可自主开发和高效灵活等特点迅速得到众多软件开发者的推崇。并且,随着互联网的迅猛发展,Linux 正取代 Windows 成为全球增长最快的操作系统。随着 Linux 应用的普及,Linux 下的软件开发无疑会成为 IT业发展的又一次高潮。Linux 操作系统主要有以下特点: 1) 自由软件; 2) 完全兼容 POSIX1.0 标准; 3) 支持多用户和多任务; 4) 良好的用户界面; 5) 支持多种文件系统; 6) 丰富的网络功能; 7) 可靠的系统安全; 8) 良好的可移植性; 正是由于以上特点,Linux 在短时间内获得了飞速的发展,已在各个行业得到了广泛的应用。同时,Linux 嵌入式系统具有优秀的可移植性,利用 Linux 系统来进行软件开发已经成为一种趋势[12]。可以想象,Linux 的发展前景非常可观。 2.4交叉编译环境 通常而言,一个编译器所编译生成的目标代码一般是这个编译器所在的机器上的机器语言编码。但是在嵌入式系统开发中,需要使用宿主机(即:系统开发用的PC机)上的编译器来编译将要在目标机(待开发的嵌入式系统)上运行的目标代码,这种编译就是交叉编译(Cross Compiling)。图2.2给出了交叉编译环境组成示意图。该环境在项目开发过程中的作用主要体现在两个阶段: 首先在项目的起始阶段,目标平台还未建立,因此需要做交叉编译,以生成所需要的启动引导代码(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 硬件技术介绍 本文的智能交通灯,通过对传感器技术、无线网络技术和计算机等技术的综合运用,得以实现对路面环境的实时监测,实现智能控制交通灯的功能。 3.1系统总体设计 本论文是基于ZigBee技术的智能交通灯系统,故根据ZigBee技术的标准和特点设计了由传感器节点,协调器节点和PC组成的该系统。其中,传感器节点通过无线技 术与协调器进行信息的交换;协调器则通过串口 进行相连通信。系统总体设计图如图3.1 所示: 图3.1 系统总体设计构图 本系统中传感器节点主要负责的是环境信息的采集与发送,协调器节点主要负责的是网络的建立、终端节点管理、数据处理和对PC端的数据通信。当然在实践过程中可以根据路面的实际情况来增加或减少传感器节点,而只需做小许改动即可[4]。当监测区域较大时,可用增加传感器节点的方法来保证网络的连通性,相反区域较小时可以根据情况减少路由器节点的设置以节省系统资源,降低成本。在本设计的实践环节,本人只象征性的做了一个传感器节点进行试验演示。 以ZigBee技术的无线传感器网络环境监测系统所要实现的功能为设计标准,系统硬件按功能模块的形式划分为以下几个部分: 1)微处理器单元:作为系统的核心,微处理器承担着系统各种功能的实现。除了要求具有较高的运行速度外还必须拥有丰富的外设接口以及轻巧的封装,以便实现系统的运行稳定、功能丰富、结构轻便的设计宗旨。 2)数据存储单元:这个部分主要是实现对操作系统、应用软件以及地图数据的存储。 3)USB通讯单元:在对系统数据进行备份或更新时,使用者将通过USB接口来实现对系统数据的存取。 4)人机交互单元:这部分包含两个方面的内容,在输入方面,操作者通过触摸屏向导航系统输送控制命令。同时系统通过输出设备向操作者反馈系统的工作状态。而在输出方面则包含了针对视觉的液晶屏和针对听觉的音频设备。 3.2最小系统电路设计 最小系统主要由电源电路、存储电路、LCD显示电路、触摸屏电路和复位电路等常规电路构成。 3.3电源电路设计 系统要求三种电压供电:S3C6410需要3.3V和1.3V两路电源;外部接口芯片和设备需要5V电源。 3.4存储器电路设计 Flash存储器是一种可在线带电擦写、掉电后信息不丢失的存储器,通常用于存放用户的启动程序、操作系统内核以及应用程序。ARM微处理器的体系结构支持8位/16位/32位的存储器系统,而其中16位的存储器系统在成本及功耗上占有优势。本系统选用容量为4M、数据宽度16位的SST39vF3201Flash存储器。 SDRAM不具有掉电保持数据的特性,但其存取速度快,且具有读/写的属性,因此在系统中主要用作程序的运行空间、数据及堆栈区。为保证导航系统的流畅运行及将来的系统升级,选用两片32M的SDRAM存储器K4S561632并联构成32位数据宽度、容量64M的SDRAM存储系统[13]。 3.5复位电路 在系统中,复位电路需要完成系统的上电复位和按键复位。电路设计中采用专用微处理电源监控芯片MAX811,相比常用的RC复位电路,提高了系统的可靠性。 本章小结:本章首先介绍了智能交通灯的主要硬件结构总体设计,之后分别对各硬件结构进行了分析。 4软件技术介绍 完成硬件的准备后,就要考虑如何编程实现这一功能,基于Linux平台下的编程,可以采用C语言来完成。由于Linux系统把所有的硬件都封装成文件,调用硬件只需要打开文件就行了。 4.1 程序框架设计 本文介绍的智能交通灯有普通交通灯的功能(此处设置时间为3秒)和监测到震动后调整时间(本文设置为8秒)的功能。程序流程图如图4.1所示: 图4.1程序流程图 4.2 3秒程序的控制 3秒中的程序是在车流量较少时即未检测到震动时执行的程序,其流程图如图4.2所示: 图4.2 3秒中程序流程图 4.3 8秒程序的控制 8秒中的程序是在车流量较多时即检测到震动时执行的程序,其流程图如图4.3所示: 图4.3 8秒中程序流程图 4.4 点阵代码 无线传感器上的点阵是按列送数据的,每列对应两位十六进制数,并且是高电平点亮。绘制出站立的小人的代码如下: void ting() { if(LED) { int nwrite; printf(" It's a red light,nothroughfare!!!\n"); printf("\n"); unsigned char SBuff[21]; SBuff[0] = 0x02; SBuff[1] = 0x12; SBuff[2] = 0xB9; SBuff[3] = 0x46; SBuff[4] = 0xF1; SBuff[5] = save_byte4; SBuff[6] = save_byte5; SBuff[7] = 0x01; SBuff[8] = 0x07; SBuff[9] = 0x04; SBuff[10] = 0x0; SBuff[11] = 0x0; SBuff[12] = 0x10; SBuff[13] = 0x08; SBuff[14] = 0x7a; SBuff[15] = 0x05; SBuff[16] = 0x7a; SBuff[17] = 0x08; SBuff[18] = 0x10; SBuff[19] = 0x00; if(SendNum == 8) SendNum = 0; SBuff[20] = 0x0; SBuff[20] = XorVerifySend(SBuff); nwrite = write(serial_fd,SBuff,sizeof(SBuff)); //printf("nwrite1=%d\n",nwrite); buffer_has_send = 1; } } 同理走动的代码也可以编写出来。 4.5 数码管代码 无线传感器上的数码管只有一位,显示数字的代码为0x0-0x9。实现倒计时的代码如下所示: void js(i){if(SEG) { int nwrite; printf(" The remaining%ds\n",i); printf("\n"); unsigned char SBuff[21]; SBuff[0] = 0x02; SBuff[1] = 0x12; SBuff[2] = 0xB9; SBuff[3] = 0x46; SBuff[4] = 0xF1; SBuff[5] = save_byte4; SBuff[6] = save_byte5; SBuff[7] = 0x01; SBuff[8] = 0x07; SBuff[9] = 0x01; SBuff[10] = 0x0+I; SBuff[11] = 0x0; SBuff[12] = 0x0; SBuff[13] = 0x0; SBuff[14] = 0x0; SBuff[15] = 0x0; SBuff[16] = 0x0; SBuff[17] = 0x0; SBuff[18] = 0x0; SBuff[19] = 0x0; SBuff[20] = 0x0; SBuff[20] = XorVerifySend(SBuff); nwrite = write(serial_fd,SBuff,sizeof(SBuff)); buffer_has_send = 1;//sleep(2); } 4.6 蜂鸣器代码 无线传感器上的数码管只有一位,应用蜂鸣器也很简单,具体代码如下所示: void fmq() {int nwrite; //控制蜂鸣器 printf("Control buzzer\n"); printf("\n"); unsigned char SBuff[21]; SBuff[0] = 0x02; SBuff[1] = 0x12; SBuff[2] = 0xB9; SBuff[3] = 0x46; SBuff[4] = 0xF1; SBuff[5] = save_byte4; SBuff[6] = save_byte5; SBuff[7] = 0x01; SBuff[8] = 0x07; SBuff[9] = 0x02; SBuff[10] = 0x0; SBuff[11] = 0x1f+SendNum; SendNum++; SBuff[12] = 0x0; SBuff[13] = 0x0; SBuff[14] = 0x0; SBuff[15] = 0x0; SBuff[16] = 0x0; SBuff[17] = 0x0; SBuff[18] = 0x0; SBuff[19] = 0x0; SBuff[20] = 0x0; SBuff[20] = XorVerifySend(SBuff); nwrite = write(serial_fd,SBuff,sizeof(SBuff)); //printf("nwrite1=%d\n",nwrite); buffer_has_send = 1; } 本章小结:本章主要讲了智能交通灯的软件设计部分,主要涉及到数码管,点阵,蜂鸣器的编程实现。 5功能实现 在嵌入式linux中,通过无线收发模块,提取传感器信息,并将提取的信息存储起来并在终端上显示出来。 5.1 ZigBee无线通讯协议 终端节点的软件主要实现以下功能 (1)数据采集功能采集传感器的输出信号并进行数据分析存储。 (2)数据传输功能采用标准的MODBUS协议通过上位机修改系统参数。 (3)与无线模块通讯嵌入式系统将要发送的数据以特定的波特率通过串口送到无线模块发送。 ZigBee无线通讯协议程序流程图如图4.1所示。 图5.1 ZigBee无线通讯协议程序流程图 5.2传感器感应和显示程序 (主要程序见附件1) void scan() { int source_addr,father_addr; char byte4,byte5,byte6,byte7,byte8,byte9,byte10,byte11,byte12,byte13,byte14,byte15,byte16,byte17,byte18,byte19; char test,byteCheck; char PacketBuff[50]; int PacketLen; int j; struct wsn_comm_pkg *pkt = 0; if(sRecDataLen > 0) { //printf("sRecDataLen : %d\n",sRecDataLen); int sFirstPosition = 0; while(sFirstPosition < sRecDataLen) { //printf("sFirstPosition: %d\n",sFirstPosition); if(Recbuff[sFirstPosition] == 0x2) { PacketLen = Recbuff[sFirstPosition + 1]+3; //printf("PacketLen : %d\n",PacketLen); if(PacketLen <= sRecDataLen -sFirstPosition) { //printf("PacketBuff="); int i; for(i = 0; i < PacketLen; i++){ PacketBuff[i] = Recbuff[sFirstPosition + i]; //printf("%02x ",PacketBuff[i]); } printf("\n"); if(PacketBuff[7]==0x1){ byte10 = PacketBuff[10]; byte11 = PacketBuff[11]; byte12 = PacketBuff[12]; byte13 = PacketBuff[13]; byte14 = PacketBuff[14]; byte15 = PacketBuff[15]; byte16 = PacketBuff[16]; byte17 = PacketBuff[17]; byte18 = PacketBuff[18]; if((byte10 & 0x7)==0x0) { if(byte17 == 0x00) { printf(" Vibration sensors: NO vibration\n"); </p>- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 开发 课程设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文