当前位置:文档之家› S-MAC协议设计流程

S-MAC协议设计流程


PHY 入 DATA
从 PHY 层 DATA 到 MAC 层ACK
五 功能模型
——主模块详细设计
N-S法
六 测试
——以PAD图为标准进行条件测试
PDA图
START B A While 1 收到分组
否 否
收到 发送 收到 发 送 收到 上层 D RTS H CTS K DATA M ACK DATA
P1
A-B-D-H-K-M-N
P2
空闲,完成完整的收到PHY层来的数据
P2
A-C-E-I-L-N P3 空闲, 从发送DATA到收到确认
P3
A-C-F-J-N P4 空闲,发送了确认
P4
A-C-G-N P5 空闲,完成通信
P5
A-N
三 对象模型
——对象描述
共有9种对象:SmacTimer,SmacGeneTimer, SmacRecvTimer,SmacSendTimer,SmacNavTimer, SmacNeighNavTimer,SmacCsTimer, SmacCounterTimer,SMAC。只举一例对象描述 对象1:SmacTimer(SMAC的定时器) 属性:当前定时器所处状态 (TIMER_IDLE,TIMER_PENDING,TIMER_HANDLING) , 定时的事件,一个SmacTimer定时器实例 操作:返回当前事件进行到的状态:
判断当前定时器状态是否忙(TIMER_PENDING)
定时 重新定时 取消定时 强制取消定时 定时时间到后该做的事 处理
三 对象模型
——对象关系模型
四 动态模型
——状态转移图
如下:
四 动态模型
事件-响应模型
——事件脚本
1、等待SmacCounterTimer到时启动SmacCsTimer。2、SmacCsTimer到时 发送RTS,启动SmacSendTimer。3、SmacSendTimer到时,启动 SmacGeneTimer等待CTS。4、收到CTS,发送DATA,启动 SmacSendTimer。5、SmacSendTimer到时,启动SmacGeneTimer等待 ACK。6、收到ACK,完成发送。 1、启动SmacRecvTimer。 2、SmacRecvTimer到时,发送CTS,启动 SmacSendTimer。3 SmacSendTimer到时,相应处理。4、收到 DATA,发送ACK,启动SmacSendTimer。5、SmacSendTimer到时, 相应处理。 1、启动SmacRecvTimer。 2、SmacRecvTimer到时,发送DATA,启动 SmacSendTimer。3、SmacSendTimer到时,启动SmacGeneTimer等待 ACK。4、收到ACK,完成发送。 1、启动SmacRecvTimer。 2、SmacRecvTimer到时,发送ACK,启动 SmacSendTimer。5、SmacSendTimer到时,相应处理。 1、启动SmacRecvTimer。 2、SmacRecvTimer到时,完成发送。 1、相应处理,进入空闲
PHY入 SYNC,ACK
LLC入 DATA
从LLC层 DATA到 MAC层RTS
MAC 层CTS
LLC 层 DATA
PHY 层 CTS
PHY 层 DATA PHY 层DATA
PHY 层 RTS
MAC层 ACK
PHY 入RTS
从RTS 到CTS
PHY 入CTS
从 PHY 层 CTS 到 LLC 层 DATA
——事件轨迹图
2. Smac层收到下层来的 RTS分组
其它事件轨迹图同上面差不多,略去。
五 功能模型
——数据流图
顶层数据流图
五 功能模型
将SMAC层扩展后的数据流图
MAC层 RTS MAC层 CTS LLC层 DATA
——数据流图
SMAC
MAC 层 RTS , CTS , ACK,LLC层DATA
软件工程设计
——无线传感器网络mac层协议设计
一 计划
本软件是对无线传感器网络中的媒体接入 控制层(MAC)的协议设计实现, 要在NS环境 下用C++编程实现该协议(简称Smac). 所需硬件资源为一台普通的PC机,软件资源 为NS-2仿真环境.由于理论上的协议已经设 计出来了,故本设计只需要编写出相应的程 序就可以了,工作量不大,一个熟悉C++编程 和NS-2仿真环境的人大概一月就能完成.
Smac层收到上层来的 DATA分组
Smac层收到下层来的 RTS分组 Smac层收到下层来的 CTS分组 Smac层收到下层来的 DATA分组 Smac层收到下层来的 ACK分组 Smac层收到下层来的 SYNC分组
四 动态模型
——事件轨迹图
1. Smac层收到上层来的DATA分组
四 动态模型
二 需求问题描述
该SMAC协议工作在MAC层,处于逻辑链路控制层 (LLC)之下,物理层(PHY)之上. 与上层LLC之间的接口是接收和发送函数:接收来 自上层LLC的PDU并交给MAC层处理和将下层PHY 到来的数据经过MAC处理后的帧上交到LLC层. 与下层PHY之间的接口也是接收和发送函数:接收 来自下层的PHY的数据交给MAC层处理和将上层 LLC到来的PDU经过MAC处理后的帧交到PHY层.
否 否 否 否
来自上层 是

N

C

发送 收 到 发送 E CTS I DATA L ACK
收到下层RTS

F
发送 J 收到 DATA ACK



CTS

G 发送 ACK
DATA
否源自文库
ACK
END
SYNC
空闲
六 测试
——以PAD图为标准进行条件测试
路径表示 路径号 P1 空闲,完成一次从LLC层到PHY层的数据发送 测试用例 测试结果
GET MAC层RTS GET MAC层 CTS
MAC层 RTS GET LLC层 DATA
MAC层 ACK
GET MAC层 ACK
LLC层 DATA LLC 层DATA PHY 层 RTS
PHY 层 CTS
PHY 层 ACK , SYNC
MAC 层 RTS , CTS , ACK , LLC层DATA出到PHY SYNC,ACK
二 需求问题描述
1. 2. 3. 4. 5. 6. 7. 8.
9. 10. 11.
SMAC协议要完成的功能是: 拥有虚拟和物理载波监听机制,用于无线网络中避免发送数据的冲突. 使用CSMA/CA算法,即用RTS/CTS/DATA/ACK机制. 有退避算法和重传机制. 广播分组的发送不需要使用RTS/CTS/ACK机制. 一个长的单播消息被上层划分为多个分片.RTS/CTS为整个消息预留媒 体.ACK用于给每个分片确认,保证每个分片能正确传输到目的地. 当节点的邻节点正在和另一个节点通信时,该节点进入休眠状态. 每个节点遵守周期性的监听/休眠时间表(listen/sleep schedule). 启动后,每个节点监听一个固定的时间SYNCPERIOD,然后试图发送一 个同步分组.如果它事先收到了从邻节点来的同步分组,那么它就不发 送同步分组了,而是遵守该同步分组中包含的邻节点的时间表. 或者一个节点可以选取自己的时间表, 而不遵守其它节点的时间表,开 始选取自己时间表的时间用户可调. 邻节点发现机制为:为了避免由于彼此拥有完全不同的时间表而没法 发现对方,每个节点周期性的监听一整个SYNPERIOD周期. 工作周期是用户可调的.
相关主题