单片机的自组织网络互同步节点设计

发布者:风轻迟最新更新时间:2013-08-31 来源: 电子设计工程 关键字:单片机  自组织网络  互同步 手机看文章 扫描二维码
随时随地手机看文章
引言
    随着无线网络与电子技术的发展和普及,各类专业设备甚至民用产品之间的数据传输已经不满足于简单的点对点形式,对组网的需求日益突出。为了应对这一需求,自组织网络技术应运而生。
    自组织网络的突出特点是,没有传统的中心控制节点来协调组网过程,分布的节点之间的组织主要靠“临时性的自治”实现。实现无线自组织网络的基础之一是网络互同步技术。该技术通过网络节点之间时间基准的相互交换和相互控制,实现节点之间的相互同步。
    由于无线节点硬件成本偏高,相关软件使用也较为复杂,在进行相关技术的研究和学习时,大多通过计算机软件仿真。这种纯粹软件仿真实验的形式更适用于已有一定的实践经验和算法基础的人员,对于其进行更专业的算法学习和研究有较大帮助。但由于缺乏具体的实物,初学者难以建立起直观的感性认识。
    为此,本设计首先选择低成本的单片机作为核心,利用简单的光电信号替代WiFi、蓝牙等无线通信形式,最大程度地降低了硬件制作成本。其次,剔除了复杂的通信协议栈,仅关注于自组织网络中互同步技术的核心算法实现,最大程度地简化了学习的难度。所设计的节点组成的学习平台不仅简单直观,而且可以根据需要验证各类不同算法,网络规模也可灵活调整,不受节点数量增加的限制。

1 节点硬件设计
   
综合考虑成本、供电和算法更新等方面,选择ATtiny13A-10pu作为仿真节点的核心。该芯片是一款低功耗的8位微处理器,可以工作在0~4 MHz@1.8~5.5 V状态,用一粒普通的CR2032纽扣电池就可以为其提供3 V供电,内部有1 KB Flash RAM,64字节RAM和64字节EEPROM,空间虽然不大,但做基本算法验证已经够用。除此之外它还有4路10位ADC可作为光电信号检测之用。在光电检测元件方面采用的是常见的光敏电阻5516,当然也可以选择性能更稳定、一致性更好的环保光敏电阻。
    除了上面所述的单片机、光敏电阻以外,节点还需要有一个发光二极管用于显示各节点间的同步状态。当初始亮灭不一致的节点经过一段时间后,以相同时间点、频率进行闪烁,这时表示网络同步成功。对发光二极管只要求电压电流适当即可,设计中选择的是1.7 V、2 mA的低电流发光二极管,低电流更有利于延长节点电池的工作时长。
    整个电路力求简洁,因而没有设计复位电路。另外,由于片内振荡器已经进行了9.6 MHz的标定,经8分频后可以实现1.2 MHz的系统时钟,已经可以满足本设计的需要,所有也无需外接晶振。电路原理图如图1所示。

a.JPG


    需要注意的是,图中电阻R1、R2阻值的具体选择和电源电压、发光二极管及光敏电阻的参数有关。电阻R1的作用主要是限流,其阻值可参考公式R1=(Up-U1)/I1选择,其中Up为供电电压,U1为发光二极管压降,I1为发光二极管的电流。电阻R2的阻值主要受到光敏电阻R3工作效果的影响,选定的原则主要由保证光敏电阻在日光下可以对光线变化作出反应的灵敏程度来决定,在最初确定时可以用电位计来替换固定电阻R2,通过试验,1 kΩ阻值的电阻已经可以保证节点正常工作。
    另外,如果不采用节点间相互分离的独立电路设计,而采用多个节点固定在同一块底板上的布线,也可以不采用独立的纽扣电池供电方式,统一为所有的节点提供5 V电源供电。

2 算法设计与实现
2.1 互同步算法原理
   
为了更好地对算法进行解释,首先简单介绍自组织网络的生物原型。在自然界中有很多自组织的生物系统,在这些系统中,个体一般不具备高智商,对信息的获取和处理能力也十分有限,尽管如此,整个系统却可以在群体行为上呈现出令人吃惊的统一性和协同性。比如鱼群、鸟群等生物群体在集体活动时,虽然没有一个中心指挥,系统整体状态仍然可以依赖构成系统的个体间的相互作用,形成一个有机整体。
    在这里只研究这一行为实现的基础,互同步的相关算法。算法的实现非常类似于萤火虫同步闪烁,本设计最终呈现的效果也是模拟一个有众多“萤火虫”(节点)的网络同步。
    开始的时候,众多独立节点发光二极管的闪烁是随机的。但是,随着时间的推移,它们能够慢慢地与最近的邻居同步,随着时间的推移,最后所有的节点都同步闪烁。
    本设计采用了一种最简单的算法来实现这一过程。首先假设所有节点的闪烁频率是相同的,这就类似于同一种群的萤火虫具有相同的闪烁频率一样,它们最初呈现的不同步其实只是各自闪烁的时间点不一样。这样在简化算法实现的同时,并不失其普遍意义。
    算法中设定了一个变量,闪烁能力(Power),用于表示节点闪烁的能力,这个值随着时间会慢慢增加,当其增加到一个临界阈值(Pth)时,节点的发光二极管开始闪烁,随之这种能力开始逐渐“消耗”,即闪烁能力减小。闪烁能力的变化过程默认对于所有的节点都是一样的,也就是说所有节点闪烁的固有频率是一样的。
    通过光敏电阻,每个节点都可以感受到邻近节点的存在,这个过程是通过单片机的ADC实现的。这些节点都依据相同的原则进行同步。如果某个节点发现它比邻近节点闪烁得晚,那么下次它将稍稍提前闪烁,经过节点间的相互作用,所有的节点最终会在同一时刻按照相同的频率闪烁。这个方法虽然简单,但却十分有效,基于它的进一步研究已经在Ad Hoc网络的互同步中得到应用。相关算法如图2所示。

b.JPG[page]

    图中阈值(Pth)表示节点闪烁的阈值,当闪烁能力(Power)达到这个值时节点开始闪烁。T为节点闪烁的周期。从图2可以看出,初始时刻两个节点虽有共同的闪烁周期,但两节点开始闪烁的时刻不同,下方节点闪烁能力要更晚到达阈值,即闪烁的开始时刻要晚于上方节点。而当上方节点开始闪烁的时刻,通过光敏电阻,下方节点侦测到了这一变化,并将自己下一次的发光时刻提前,发光周期缩短为新的周期(T1)当然仅通过一次提前并不能做到两者同步,但是经过n次调整,两者的闪烁时刻逐次逼近,而且下方节点新的周期(Tn)也恢复为原周期(T),两者最终达到了同时刻同周期的互同步。该算法并不受节点规模的影响,因此网络规模可以灵活扩展。
2.2 程序设计实现
   
从上面论述可知算法实现并不复杂,下面只对关键代码做简要描述,流程图如图3所示。

c.JPG


    节点上电复位以后,程序的初始化部分对节点硬件进行相应的初始化,主要是对模/数转换(ADC)进行设置,选择对应的转换通道并使能,设置发光二极管为关闪烁状态。
    需要注意的是,由于系统采用光敏电阻作为传感器件,因此节点之间的相互感应不可避免地会受到外界光照的干扰,也就是说即使在邻近节点不闪烁时,闪烁能力(Power)的初值也不会为0。为此,本程序选择外界的背景光作为基础门限值(threshold),这个值可以通过模/数转换(ADC)多次采样再做平均获得。相关代码实现如下:
    d.JPG
    代码中对4次采样值进行了平均,考虑到干扰的问题,对平均值再加80进行调整。
    随后,程序进入主循环,在主循环中主要完成三件工作。
    首先是闪烁能力(Power)值的递增。如前面算法描述,当它逐渐增加达到闪烁阈值(FLASH_POWER)时,二极管将开始有节奏地闪烁。为了保证快速和精准,闪烁能力值的递增并不是均匀的,而是分段区别进行的。闪烁能力值比较小时,以较大的增量累积(如Power+=16),随
着其逐渐接近阈值,增量减小,比如当Power>6000后,以1为递增幅度进行(如Power+=1)。
    在计算了节点闪烁的能力后,程序进入第二个阶段,主要工作是修正闪烁能力值。考虑到外界干扰,节点可能会受到突然的外界强光照射影响,当光照很强时,节点将无法正确感知邻近节点的变化,为此还需要做相应异常处理。相关代码如下:
    e.JPG
    该段程序中首先进行采样,获得当前的光照(light)值,如果其大于预设的环境光照常量(ENV_LIGHT),则认为外界光照太强,此时节点之间已经无法进行有效地相互感应,出现异常。这里将节点延时一段时间进入休眠状态,隔一段时间再做检测。考虑到选用的单片机,环境光照常量设为总量程的一半较为合适。如果外界光照对节点的光感应处在正常范围,则再判断当前的光照(light)是否大于前面计算的基础门限值(threshold)。当其值大于此基础值时,表明邻近有节点在闪烁,且该节点晚于邻近节点的闪烁,因此需要对闪烁能力进行快速调整(如Power+=200)。这个增量远远大于常规的闪烁能力积累,执行效果就是将节点下一次开始闪烁时刻大大提前了。
    最后的工作就比较简单了,通过判断闪烁能力是否大于闪烁阈值(FLASH_POWER),当大于时设置发光二极管为开闪烁,当小于时设置为关闪烁。
    程序主体是一个死循环,根据需要还可添加电源管理、中断处理等其他功能模块。文中主要仅论述了两个节点间的互同步实现,但文中所述算法可以不加修改就适用于节点数更多的网络。这正体现了自组织网络的特点:其中功能有限的节点利用局部信息就可达到整个网络的高度协调一致。

结语
   
本文详细阐述了一种利用单片机进行自组织网络互同步算法学习的方法,网络同步的效果良好。设计的节点具有简单直观、网络规模扩展灵活的特点,是一个对自组织网络的很好的实体模拟,对于掌握无线传感网或多智能体等需要进行同步的自组织组网技术有一定的借鉴意义。

关键字:单片机  自组织网络  互同步 引用地址:单片机的自组织网络互同步节点设计

上一篇:单片机反汇编是什么? 什么是反汇编?
下一篇:怎样用门电路扩展单片机 I/O 接口?

推荐阅读最新更新时间:2024-03-16 13:27

labview与单片机串口通信
VISA是虚拟仪器软件体系结构的缩写(即Virtual Instruments Software Architecture),实质上是一个I/O口软件库及其规范的总称。 VISA是应用于仪器编程的标准I/0应用程序接口,是工业界通用的仪器驱动器标准API(应用程序接口),采用面向对象编程,具有很好的兼容性、扩展性和独立性。用户可用一个API控制包括VXI、GPIB及串口仪器在内的不同种类的仪器。它还支持多平台工作、多接口控制,是一个多类型的函数库。 在LabVIEW中编写的VISA接口程序,当外部设备变更时,只需要更换几个程序模块即可使用,简单方便而且开发效率高。 在LabVIEW 中利用VISA节点进行串行通信编程。为了方便用户
[单片机]
简单做的基于51单片机的数码管时钟
看看抽屉的材料,就想做做东西玩玩。本来想做99码表的,结果按键开关不够,就改成了时钟。话不多说,直接上图。 最小系统 显示模块 最后效果 仿真原理图如下(proteus仿真工程文件可到本帖附件中下载) 单片机源程序如下: /********************************************************************************* *实验名 :数码管动态显示 *实验效果 :8位数码管显示数字12345678 *注意 : 每位数码管显示之间延迟时间小于3ms可看见8位数码管同时点亮 * ********************************
[单片机]
简单做的基于51<font color='red'>单片机</font>的数码管时钟
基于AT89S52单片机的温度控制系统
0 引 言 在激光倍频晶体温度匹配中,有时需要很高的工作温度。晶体升温过程中,温度过快变化会导致晶体出现破裂,因此在开机过程中需要操作人员不断手动控制激光器晶体的温度。为了避免这样繁锁的工作,我们以单片机AT89S52为核心制作了一套自动控制升降温系统,有效的保证了晶体温度在安全的速率下变化。由于热敏电阻的非线性关系,一般的控温仪正常控温范围有限。在对热敏电阻和恒流源的特性进行分析后,将恒流源做了适当的改进,扩展了控温仪的控制范围,使其在较宽的温度范围内也具有较高的精度。 1 硬件系统设计 控制系统电路的核心器件是Atmel公司生产的AT89S52单片机。它是一种低功耗、低电压、高性能的8位单片机,片内带有一个8KB的fl
[工业控制]
基于AT89S52<font color='red'>单片机</font>的温度控制系统
单片机多中断处理技术的应用与研究
引 言 随着 微电子 技术和 计算机 技术的发展,原来以强电和电器为主、功能简单的电气设备发展成为强、弱电结合,具有数字化特点、功能完善的新型微电子设备。在很多场合,已经出现了越来越多的单片机产品代替传统的电气控制产品。属于存储程序控制的单片机,其控制功能通过软件指令来实现,其硬件配置也可变、易变。因此,一旦生产过程有所变动,就不必重新设计线路连线安装,有利于产品的更新换代和订单式生产。 传统电气设备采用的各种控制信号,必须转换到与单片机输入/输出口相匹配的数字信号。用户设备须输入到单片机的各种控制信号,如限位开关,操作按钮、选择开关、行程开关以及其他一些 传感器 输出的开关量等,通过输入电路转换成单片机能够接收和处理的信号。
[单片机]
avr单片机PWM控制直流电机转速和正反转
用uln2003控制,下面是仿真原理图: 源程序: /***************************************************** This program was produced by the CodeWizardAVR V2.03.4 Standard Automatic Program Generator ?Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 7/26/2009 Author : Company : C
[单片机]
avr<font color='red'>单片机</font>PWM控制直流电机转速和正反转
意法半导体市场领先的 STM32 微控制器加快无线产品开发
意法半导体市场领先的 STM32 微控制器加快无线产品开发 扩展后的STM32Cube 生态系统可支持 STM32WB 无线 MCU 新的 STM32CubeWB 固件,升级的编程器和射频测试工具 改进的无线功耗估算器准确计算电池续航时间 中国,2021 年 9 月24 日 -- 服务多重电子应用领域的全球半导体领导者意法半导体(STMicroelectronics,简称ST;) 发布了新的STM32WB无线微控制器(MCU)开发工具和软件,为智能建筑、智能工业和智能基础设施的开发者降低设计经济、节能的无线设备的难度。 意法半导体的高集成度 STM32WB 单片集成一个 2.4GHz射频收发器和Arm®
[单片机]
意法半导体市场领先的 STM32 <font color='red'>微控制器</font>加快无线产品开发
51单片机硬件知识:封装及参数介绍
看一个人,我们一般会看他的长相。同样,电子元件也要看长相,或者说是形壮,只是说法不一样,我们把它们的长相称为“封装”。 1.单片机的封装: 单片机的封装大概的可以分为:DIP(直插封装)、PLCC(贴片,引脚向内折起)、TQFP(贴片,引脚向外侧伸展)。对DIP封装的单片机的型号及管脚识别方法如下(对于所有的DIP封装的识别方法与此类同)。 对于DIP封装的单片机来说,在外壳正中央印有字(型号)的一面是它的正面,在单片机外壳的正面的一侧边有一个半月型的小坑,同时还有一个圆形的小坑在旁边。这两个标志说明离圆形小坑最近的管脚为单片机的1号管脚。把单片机印有型号的一侧朝上,1号管脚放在左手边,向右依次为2、3、4…20管脚,单片机
[单片机]
兼顾高性能与高安全,瑞萨电子推出RA MCU产品家族
日前,瑞萨电子宣布推出采用32位Arm Cortex-M核的RA MCU产品家族。作为面向未来的嵌入式解决方案,瑞萨电子将RA MCU打造成具备优化性能、安全性、连接性、外设IP和易于使用的灵活配置软件包(FSP)的终极组合。 RA MCU采用了Arm Cortex M23/M33与Cortex-M4系列内核,这也是瑞萨继Synergy系列之后,第二次推出Arm内核架构的MCU产品,补充了瑞萨在高端MCU领域的布局。目前瑞萨MCU产品阵营包括了低功耗RL78产品家族、车载RH850产品家族、工控RX产品家族、高性能嵌入式Synergy产品家族以及专为中国市场开发的R7F0C系列。 采用瑞萨电子RA MCU产品家族进行设计,可使嵌入
[嵌入式]
兼顾高性能与高安全,瑞萨电子推出RA <font color='red'>MCU</font>产品家族
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved