Sun SPOT无线通讯 University Outreach Programs in China

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

NAT与ICMP交互.
Sun SPOT介绍 University Outreach Programs in China
物聯網簡介 蔡崇洲 崑山科技大學電腦與通訊系.
GOOWI 万物“无”连 --低功耗蓝牙在IoT中的应用    魏心伟 高为通信技术有限公司.
计算机网络课程总结 一、计算机网络基础 计算机网络定义和功能、基本组成 OSI/RM参考模型(各层的功能,相关概念, 模型中数据传输 等)
Sun SPOT外部接口 University Outreach Programs in China
Sun SPOT开发环境 University Outreach Programs in China
Sun SPOT程序设计 University Outreach Programs in China
淄博信息工程学校 ZIBOIT&ENGINEERING VOCATONAL SHCOOL 03 交换机干道技术 计算机网络技术专业.
做最好的自己 ——七(6)班主题班会.
无线传感器网络介绍 University Outreach Programs in China
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
实验4 基于Socket的C/S程序开发 实验目的
在PHP和MYSQL中实现完美的中文显示
IEEE Supframe 演講者:李嘉凱 指導教授:柯開維.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
無線感測網路技術之 ZigBee發展現況分析
瑞斯康达—MSG1500 产品类型:路由器 建议零售价格:198元 上市时间:2017 年 3月
利用Wireshark观察网络报文 2015.
ZigBee的技术支持及其应用前景 华东理工大学 凌志浩
TCP/IP Protocol Suite TCP/IP協定 第二組 投影片製作by簡嘉宏 綦凱宏 林睿敏 滕孟哲.
存储系统.
大学计算机基础 典型案例之一 构建FPT服务器.
Jul 2014 HEAT部署Hadoop集群
网络常用常用命令 课件制作人:谢希仁.
实用组网技术 第一章 网络基础知识.
Windows网络操作系统管理 ——Windows Server 2008 R2.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
研发内部系统 Pdc简要说明 2013年7月.
監控系統感測器網路 李達生.
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
CPU结构和功能.
绿色圃中小学教育网 比例 比例的意义 绿色圃中小学教育网
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
厂商—型号 荣耀-HiRouter-H1 外观设计 产品类型:无线路由器 建议零售价格:149元 上市时间:2017 年 5月
微机系统的组成.
第四章 团队音乐会序幕: 团队协作平台的快速创建
DQMClientDim.cxx及双光子练习
VisComposer 2019/4/17.
主要内容: 无线局域网的定义 无线传输介质 无线传输的技术 WLAN的架构 无线网络搭建与配置 无线网络加密配置
VB与Access数据库的连接.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
March 2008 Project: IEEE P Working Group for Wireless Personal Area Networks (WPANs) Submission Title: [The PHY Solution of Chinese WPAN Standard.
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
Web安全基础教程
编译OpenSSL 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
信号量(Semaphore).
指導教授:梁明章 A 許之青 國立高雄大學 2010/06/25
数据报分片.
LOGIX500软件入门 西安华光信息技术有限公司 2008年7月11日.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
无线网络特性展现 张琦.
第七、八次实验要求.
Python 环境搭建 基于Anaconda和VSCode.
WSAAsyncSelect 模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang
阻塞式模型 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
格物资讯ICON发布 V0R3.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
VB与Access数据库的连接.
数据表示 第 2 讲.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
轉換成二進位、八進位及十六進位 = ( ) = ( ) = ( )16.
多个Activity的使用 本讲大纲: 1、使用Bundle在Activity之间交换数据 2、调用另一个Activity并返回结果
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

Sun SPOT无线通讯 University Outreach Programs in China 蒋清野(John) Sun 中国技术社区,高级经理 John.Jiang@Sun.Com http://www.qyjohn.net/ Qingye Jiang (John) Senior Manager Sun Developer Network, China 1

802.15.4的起源 在无线通讯领域,大部分的研究和进展都集中在提高通讯 速率上。 某些家庭自动化、安全、农业、工控等等领域对通讯速率 的要求不高,他们需要低功耗和低成本的无线通讯方案。 现有的方案由于复杂度、功耗和成本等等因素无法被应用 到如上所述之场合。 802.15.4 的目标是为相对便宜的固定、便携或者移动设备 提供一种低复杂度、低成本、低功耗、低数据率的中短程 无线通讯标准。

802.15.4的应用范围 家庭网络 汽车网络 工控网络 玩具网络 远程抄表

802.15.4的特征数据 通讯速率:250 Kbps, 40 Kbps, 20 Kbps 支持星形拓补网络和点对点拓补网络 能够支持低延迟设备 有完备的握手协议来保证数据传输的可靠性 低成本,低功耗 操作频带: 2.4 GHz ISM频段,16通道 915 MHz ISM频段,10通道 欧洲868 Mhz频段,1 通道

802.15.4的系统构架 应用程序 应用层 网络路由 地址翻译 数据分割 ZigBee 获得通道 冲突管理 错误纠正 NIC 地址 IEEE 802.15.4 MAC 数据打包 发送数据 接收数据 电源管理 IEEE 802.15.4 IEEE 802.15.4 868/915 MHz 2400 MHz PHY PHY

802.15.4的频段分布(PHY层)

802.15.4的数据包结构(PHY层) PHY 数据包字段定义 数据包头(32位),用于同步 数据包起始符号(8位) PHY包头(8位),表明PSDU的长度 PSDU (0~1016位),数据字段 数据包 起始符号 PHY 包头 PHY服务数据单元 (PSDU) 数据包头 6 字节 0-127 字节

802.15.4的两种节点(MAC层) 全功能节点(Full Function Device, FFD) 适用于任何拓补结构 可以担任网络协调者 可以与任何设备交换数据 精简功能节点(Reduced Function Device, RFD) 适用于星型拓补结构 不能担任网络协调者 只能够与网络协调者交换数据 实现非常简单

802.15.4的星型拓补结构(MAC层)

802.15.4的点对点拓补结构(MAC层)

802.15.4的复合拓补结构(MAC层)

802.15.4的数据包结构(MAC层) 4种MAC数据帧: 数据帧(Data Frame)Data Frame 指示帧(Beacon Frame) 应答帧(Acknowledgment Frame) 指令帧(MAC Command Frame)

ZigBee协议栈概览

常见ZigBee设备构架

互联网通讯协议 TCP/IP – 稳定的,带缓冲的数据链,保证数据的可靠、有序传输。(电话) UDP – 不稳定的,不带缓冲的数据链,不保证数据的可靠性和时序。(寄信) 端口号:0 - 65535

802.15.4通讯协议 Radiostream – 稳定的,带缓冲的数据链,保证数据的可靠、有序传输。(TCP/IP) Radiogram – 不稳定的,不带缓冲的数据链,不保证数据的可靠性和时序。(UDP) 端口号:0 - 255

IEEE扩展Mac地址 IEEE Extended Mac Address (IEEE扩展Mac地址) 基站:0014.4F01.0000.1301 移动:0014.4F01.0000.0FC9 移动:0014.4F01.0000.0FDD IEEE Extended Mac Address (IEEE扩展Mac地址) 由四组十六进制数字组成(nnnn.nnnn.nnnn.nnnn) 所有Sun SPOT的地址前面两组数字为0014.4F01 使用ant slots命令察看连接在计算机上的Sun SPOT的地址 http://en.wikipedia.org/wiki/MAC_address Q:什么是Mac地址?什么是IP地址? Q:为什么需要这些地址?

Sun SPOT无线通讯:系统保留端口 编号为0-31之间的端口为系统保留端口,请不要在您的应用程序当中使用这些端口。目前已经被系统使用的保留端口包括下面这些:

Sun SPOT无线通讯:准备工作 首先,需要知道自己的IEEE扩展Mac地址: IEEEAddress ourAddr = new IEEEAddress(Spot.getInstance().getRadioPolicyManager().getIEEEAddress()); System.out.println("Our radio address = " + ourAddr.asDottedHex()); 通过无线进行通讯涉及到I/O操作,需要捕获与I/O相关的例外! try { //在这里进行无线通讯 } catch (IOException ex) { System.out.println("Error in I/O: " + ex); }

Sun SPOT无线通讯:Radiostream RadiostreamConnection conn = (RadiostreamConnection) Connector.open("radiostream://<destinationAddr>:<portNo>"); 其中,destinationAddr是对方的IEEE扩展Mac地址,portNo则是通讯中使用的端口号。需要注意的是,通讯双方需要使用同样的端口号。 当radiostream连接被建立起来之后,可以使用DataInputStream和DataOutputStream来收发数据: DataInputStream dis = conn.openDataInputStream(); DataOutputStream dos = conn.openDataOutputStream(); 发送一条数据: dos.writeUTF("Sun SPOT Test Message."); dos.flush(); DataOutputStream.flush() 方法将发送缓冲区中的内容真正发送出去。如果没有执行DataOutputSteam.flush()方法,无线通讯模块会在发送缓冲区已经被用完的时候自动将等待发送的内容发送出去。

Sun SPOT无线通讯:Radiostream 接收一条数据并打印其内容: String input_message = dis.readUTF(); System.out.println(input_message); String input_content = DataInputStream.readUTF()方法阻塞当前的进程,等待对方发送的内容。当接收到一个数据包之后,这个数据包的内容被返回到字符串input_content里面。 关闭一个RadioStreamConnection对象: conn.close(); 注意: 如果通讯双方无法找到对方,则会抛出异常NoRouteException。在我们的应用程序中需要捕获和处理这个异常。

Sun SPOT无线通讯:Radiogram 创建一个RadiogramConnection链接: RadiogramConnection conn = (RadiogramConnection) Connector.open("radiogram://<serverAddr>:<portNo>"); 其中,serverAddr是服务器端的IEEE扩展Mac地址,portNo是通讯中使用的端口号。需要注意的是,通讯双方需要使用同样的端口号。 当通讯双方建立起连接之后,可以通过Datagram进行数据交换。 Datagram dg_send = conn.newDatagram(conn.getMaximumLength()); 向一个Datagram对象dg写入数据: dg_send.writeUTF("Hello"); 通过RadiogramConnection conn将一个Datagram对象发送出去: conn.send(dg_send);

Sun SPOT无线通讯:Radiogram 通过RadiogramConnection conn接收一个Datagram对象: Datagram dg_receive = conn.newDatagram(conn.getMaximumLength()); conn.receive(dg_receive); 从一个Datagram对象中读取数据: String input_content = dg_receive.readUTF(); 关闭一个RadiogramConnection对象: conn.close();

Sun SPOT无线通讯:Radiogram广播 radiogram还可以用于向所有的Sun SPOT进行广播。为了进行广播,您首先需要在广播服务器端创建一个特殊的DatagramConnection: DatagramConnection conn = (DatagramConnection) Connector.open("radiogram://broadcast:<portNo>"); Datagram dg_send = conn.newDatagram(conn.getMaximumLength()); dg_send.writeUTF("Sun SPOT Message"); conn.send(dg_send); 其中,portNo是需要使用的广播端口。 在接收端,则需要创建一个DatagramConnection,指定其监听相对应的端口。 RadiogramConnection conn = (RadiogramConnection) Connector.open("radiogram://:<portNo>"); Datagram dg_receive = conn.newDatagram(conn.getMaximumLength()); conn.receive(dg_receive); String input_message = dg_receive.readUTF(); 所有打开同样portNo接收数据的Sun SPOT均可以接收到从广播端发送的数据。

Sun SPOT无线通讯:Radiogram广播 当一只Sun SPOT打开某个端口进行数据广播时,它还可以打开同一个端口监听来自其他Sun SPOT的广播数据,但是无法接受到来自自己的广播数据。也就是说,假如有一组Sun SPOT需要相互交换信息,那么这些Sun SPOT可以约定使用同样的端口通过广播的方式进行通讯。

Sun SPOT无线通讯:编程练习 1 使用Radiostream方式,在两个Sun SPOT之前相互传输当前的温度和亮度数据。 2 使用Radiogram方式,在两个Sun SPOT之间相互传输当前的温度和亮度数据。 3 使用Radiogram广播方式,向所有Sun SPOT广播当前的温度和亮度数据。 4 在飞行器中通常需要监测其三轴的加速度、机舱温度和亮度等指标。譬如说,加速度超出预定的范围,则表示飞行器的运动状态可能出现了问题(例如失速)。机舱的温度过高,可能是由于某些部件过热引起。假设我们的Sun SPOT安装在某型号的小型飞行器上,与一组同型号的小型飞行器编队飞行,这些飞行器之间通过Sun SPOT提供的无线数据链进行通讯。在正常情况下,这些飞行器以每五秒一次的频率报告自己的身份以及OK信号。在加速度、温度或者是亮度超过某个范围的情况下,以每秒一次的频率向其他的飞行器发送SOS信号以及自身的加速度、温度和亮度数据。

Sun SPOT无线通讯 University Outreach Programs in China 蒋清野(John) Sun 中国技术社区,高级经理 John.Jiang@Sun.Com http://www.qyjohn.net/ Qingye Jiang (John) Senior Manager Sun Developer Network, China 27