TinyOS是由加州大学伯克利分校设计和开发的,专门用于集成无线传感器网络的开源操作系统; GAINZ是由中国科学院计算技术研究所开发的无线传感器节点平台。

学。于TinyOS系统不包括对GAINZ节点的基础支持,因此TinyOS中开发的网络协议和应用程序无法直接在GAINZ节点上运行。
此,移植TinyOS要求为GAINZ节点模块设计相应的驱动程序。拟并刻录由TinyOS生成的示例和GAINZ节点测试中编写的应用程序组件消息,闪烁的测试程序使节点的LED灯(红色,绿色和黄色)以不同的频率闪烁。用程序编写以下命令:消息首先打开发送节点的红灯,然后接收节点的绿灯亮。试结果表明可以将TinyOS移植到GAINZ上。线传感器网络(WSN)是接入点研究的一个领域,受到了全世界的广泛关注。前,许多国家的研究人员已经证明了TinyOS的可移植性,并且还在不同的芯片(例如51单片机,PIC微处理器,CC1010无线单片机,CC2430,GENE-8310集成开发板,LCP2136FBD64,等),并提出了许多改进措施,例如基于FIFO的动态优先级计划策略的使用,抢先式任务计划策略的引入以及任务计划策略的一些改进。于不同的应用程序,TinyOS系统的要求是不同的,这迫使我们相应地重建或修改TinyOS的组件。TinyOS移植的最终目标是将TinyOS移植到不同的平台,并使其正常工作以实现与平台的良好集成。于我们选择的开发平台是中国科学院开发的GAINZ节点平台,而TinyOS系统并未添加对GAINZ节点的基础支持,因此本文根据GAINZ自身的特点分析了TinyOS的可移植性,比较了GAINZ节点和MICAZ节点之间的异同,修改了组件并编写了应用程序组件以移植TinyOS。个可行的研究平台。GAINZ节点是中国科学院开发的无线传感器网络节点平台,与2.4G无线传感器网络节点兼容,在传输距离和传输速度方面具有一定优势。能源消耗。
GAINZ使用ATMEGL128低功耗微处理器芯片,射频部分使用CHIPCON CC2420芯片,扩展存储使用容量为512 KB的低功耗FLASH存储器。离检测,处理和通信模块,可以根据应用程序的不同要求进行扩展[1]。TinyOS支持的硬件平台中有MICAZ。MICAZ结由Crossbow设计和开发。过研究发现,MICAZ和GAINZ有很大的相似之处。[2]中,更详细地比较了两者之间的异同。文总结了它们。们的相似之处包括:主节点的结构,所使用的处理器,RF收发器,闪存模型和扩展接口,当组件相同时,两个设备的连接基本相同。者之间的差异在于处理器使用的晶振频率:GAINZ使用8 MHz晶振,而MICAz使用7.3827 MHz晶振。Tinyos应用程序的运行环境主要由五个部分实现:主要组件用于初始化节点的硬件并开始执行调度程序。应用程序组件由特定应用程序定义,并且用于执行用户所需的特定应用程序的功能;系统组件用于为应用层组件提供各种服务。HPL(硬件描述层)是基础硬件程序包,恒温阀芯高度依赖于硬件平台。使该层组件扮演包装材料和材料管理的角色,它也将应用层与材料隔离开来,材料描述层的独立抽象提高了TinyOS的可移植性。

过硬件抽象层对硬件平台的合理描述可以使操作系统核心从根本上独立于特定硬件,以便在不同平台之间进行移植;节点硬件是运行操作系统及其应用程序的硬件平台上的硬件安装。nesC(网络集成系统的C语言)是加利福尼亚大学伯克利分校基于C语言的某种扩展,目的是更好地支持TinyOS组件的编程模型以促进支持面向网络的高效传感器应用程序和操作系统的开发。TinyOS和TinyOS应用程序由nesC编写。nesC的主要功能包括:支持基于组件的编程模式以及与标准C语言语法的兼容性;将模块化/模块化与TinyOS事件执行模型相结合,以促进WSN协议的开发;编译器负责实现参数的维护。口有利于用户程序的开发。件编程思想提高了代码的可重用性,并大大节省了代码空间。nesC语言中,应用程序由组件和接口组成:组件组件:nesC组件使用纯本地名称空间,这意味着组件除了必须声明其功能外还必须声明其功能。
’他将执行。函数被调用。个组件都有一个正式的规范。正式规范是一段代码,用于声明由组件(执行)提供的接口(功能)和所使用(称为)的接口(功能)。nesC中有两种类型的组件:附件,用于将组件连接在一起以形成新组件;模块,提供接口代码的实现并影响组件的内部状态,这是组件内部行为的特定实现。件和模块之间的主要区别是后者具有实现代码,但无法连接。一个没有代码,但是可以连接Interface。口:接口是相关功能的集合。户可以根据功能需要定义自己的界面,但是在界面中定义功能时,必须使用命令或事件关键字声明。功能是命令或一个事件,否则将在编译过程中报告错误。TinyOS已经包含了对Atmega128L处理器的支持,我们还比较了GAINZ节点和MICAZ节点,发现两者之间的差异是处理器使用的晶振频率,这意味着这定义了波特率。过编程处理器的串行接口。代不同了。

此,只有通过修改TinyOS中的UBRR波特率寄存器的值,您才能在TinyOS中使用“ make micaz”来编译应用程序以使其能够在GAINZ节点上正常工作。大大简化了将TinyOS移植到GAINZ的工作。是,将TinyOS1.x移植到GAINZ与移植TinyOS2.x略有不同。TinyOS2.x中,您无需编写GAINZ硬件描述层,您可以使用“ make micaz”来编译应用程序。
定义编译环境,TinyOS2.x系统本身可以生成ihex格式的二进制代码。样,可以在TinyOS中编译应用程序之后生成ihex格式的二进制代码,并可以通过GAINZ开发包中的AVR编写程序将其输入到传感器节点中。

规迁移步骤如下:安装和配置TinyOS2.x环境;编写迁移代码:用nesC语言编写自定义应用程序组件的消息;执行迁移测试:首先使用“ make micaz”进行编译和通过;然后使用“ make micaz sim”模拟,最后使用命令“ python * .py”显示模拟结果。植到GAINZ节点:编译完应用程序组件后,将自动生成main.ihex文件。们将其更改为main.hex并将其刻录在GAINZ节点中。装和配置环境后,在Windows上运行cygwin并输入命令“ tos-check-env”以测试安装环境;对于闪烁的示例和应用程序组件的消息仿真,将显示仿真结果:Blink使用dbg指令在内核上设置计时器0,计时器1和计时器2显示不同频率下的仿真时间;应用程序组件的消息是节点之间的通信,因此在仿真过程中仅显示发送节点成功发送时的消息,即“成功发送”。用Graphviz生成可视图形(组件之间的关系),并使用“ make micaz docs”在/opt/tinyos-2.x/doc/nesdoc目录下的micaz文件夹中生成index.html。过单击网页左侧组件列中的BlinkAppC和messageAppC,您可以看到nesdoc并刻录在GAINZ节点中生成的main.ihex文件。果Blink测试程序已刻录了GAINZ节点,节点LED指示灯(红色,绿色和黄色指示灯)以不同的频率闪烁;如果在GAINZ节点上刻有您修改的应用程序消息,则GAINZ节点上的发送节点的红色LED首先点亮,然后接收节点上的LED的绿色LED点亮。本文中,研究人员利用在不同平台上移植TinyOS的经验,以便在GAINZ上进行移植,编写了应用程序组件消息,并对测试进行了仿真并进行了雕刻。
使用它的GAINZ节点的测试以及TinyOS下的测试示例中进行。得的仿真结果如下:Blink使用dbg指令,以便计时器0,计时器1和计时器2在内核上以不同的频率显示仿真时间;应用程序组件的消息是节点之间的通信,因此在仿真过程中只有发送节点才发送。功的消息是“成功发送”。
GAINZ节点上的雕刻测试结果如下:闪烁测试程序使该节点上的LED灯(红色,绿色和黄色灯)以不同的频率闪烁;自己发出的应用程序组件消息首先打开红色发送节点和绿色接收节点。光源。试结果表明可以将TinyOS移植到GAINZ上。
本文转载自
恒温阀芯 https://www.wisdom-thermostats.com
