当前位置:首页 > 单片机 > 单片机
[导读]摘要:针对自组织网络中的互同步算法进行了研究,基于单片机设计了一种便于验证学习的实体节点,弥补了单纯软件仿真的不足。该设计具有简单直观、网络规模扩展灵活的特点,对于掌握无线传感网或多智能体等进行同步和

摘要:针对自组织网络中的互同步算法进行了研究,基于单片机设计了一种便于验证学习的实体节点,弥补了单纯软件仿真的不足。该设计具有简单直观、网络规模扩展灵活的特点,对于掌握无线传感网或多智能体等进行同步和协调的自组织组网技术有一定的借鉴意义。
关键词:单片机; 自组织网络; 互同步

引言
    随着无线网络与电子技术的发展和普及,各类专业设备甚至民用产品之间的数据传输已经不满足于简单的点对点形式,对组网的需求日益突出。为了应对这一需求,自组织网络技术应运而生。
    自组织网络的突出特点是,没有传统的中心控制节点来协调组网过程,分布的节点之间的组织主要靠“临时性的自治”实现。实现无线自组织网络的基础之一是网络互同步技术。该技术通过网络节点之间时间基准的相互交换和相互控制,实现节点之间的相互同步。
    由于无线节点硬件成本偏高,相关软件使用也较为复杂,在进行相关技术的研究和学习时,大多通过计算机软件仿真。这种纯粹软件仿真实验的形式更适用于已有一定的实践经验和算法基础的人员,对于其进行更专业的算法学习和研究有较大帮助。但由于缺乏具体的实物,初学者难以建立起直观的感性认识。
    为此,本设计首先选择低成本的单片机作为核心,利用简单的光电信号替代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所示。


    需要注意的是,图中电阻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所示。


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


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

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2024年4月17日 /美通社/ -- 在2024 F1中国站即将拉开帷幕之际,高端全合成润滑油品牌美孚1号今日举办了品牌50周年庆祝活动。三届F1年度车手总冠军马克斯•维斯塔潘也亲临现场,共同庆祝这一里程...

关键字: BSP 汽车制造 行业标准 产品系列

北京2024年4月17日 /美通社/ -- 2024年4月13日,由北京康盟慈善基金会主办的"县域诊疗,规范同行"——肿瘤诊疗学术巡讲项目首站在广州隆重召开。本次会议邀请全国多位肺癌领域专家和县域同道...

关键字: AI技术 医疗服务 BSP 互联网

海口2024年4月16日 /美通社/ -- 4月14日,在中法建交60周年之际,科学护肤先锋品牌Galenic法国科兰黎受邀入驻第四届中国国际消费品博览会(以下简称"消博会")法国馆。Galenic法...

关键字: NI IC BSP ACTIVE

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

在现代电子技术的快速发展中,单片机以其高度的集成性、稳定性和可靠性,在工业自动化、智能家居、医疗设备、航空航天等诸多领域得到了广泛应用。S32单片机,作为其中的佼佼者,其引脚功能丰富多样,是实现与外部设备通信、控制、数据...

关键字: s32单片机引脚 单片机

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

上海2024年4月17日 /美通社/ -- 每年4月17日是世界血友病日。今年,世界血友病日以"认识出血性疾病,积极预防和治疗"为主题,呼吁关注所有出血性疾病,提升科学认知,提高规范化诊疗水平,让每一位出血性疾病患者享有...

关键字: VII 动力学 软件 BSP

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB
关闭
关闭