全球旧事资料 分类
变。
mac层工作时的很多特性由一些特定的数据决定xlii。这些数据有的是由协议和硬件决定的常量有的是可以由上层软件根据需要通过相应的服务原语来设置或改变的。这些可以改变的数据称为属性把它们集中在一起管理称之为pibpa
i
formatio
base。可以通过服务原语实现对这些属性的操作。
mac层的主要函数有
1maci
itvoidmac层的初始化函数初始化mac_pib清空节点间的连接。
2macwarmstartRadiovoid初始化RF射频模块设置使用的信道、pa
id和当前节点短地址。
3mactxdatavoid发送mac层数据包。首先格式化数据帧头然后格式化信息来源地址和来源pa
id再格式化信息目的地址和目的pa
id并格式化数据帧的序列号ds
dataserial
umber最后格式化msb和lsb写入数据帧的长度并交给下层进行发送。
4macparsehdrvoid分析获取接收到的数据帧的帧头所包含的信息。从中读取目的pa
id目的地址和来源地址等。
f5macFormatbeaco
void格式化信标帧。依次填入魔术数当前节点的深度网络层协议版本号协议栈配置zigbee协议id和超帧。
6macparsebeaco
void处理收到的信标帧。从信标帧中读取超帧、协议的id和版本号等如果有与本设备不兼容的地方则丢弃。如果检验通过条件符合则以发出信标帧的传感器节点作为父节点。设置完成之后发出接收到信标帧的确认信息。
7macparseassocRespo
sevoid处理协调器对加入请求的返回。如果协调器同意加入则从中获取分配给自已的短地址并将自已的pa
id设置成和协调器相同。记录父节点的长地址并发送加入成功的确认信息。
8maccheckdataRejectio
void判断是否对接收到的信息进行处理。对RFd来说只有由父节点发出的数据帧才会被接受对路由器来说只接受来自与自已关联的传感器节点的数据帧。
mac的有限状态机设计为主状态机macFsm、发送状态机txFsm和接收状态机
RxFsm三个。发送状态机txFsm和接收状态机RxFsm完成对数据包的提交和下发并完成一些应答等一般请求。
接收状态机RxFsm的设计如图312所示。如果物理层没有数据提交上来则保持空闲状态。物理层提交的数据包
f有三种形式应答帧、数据帧和请求帧。对于应答帧RxFsm可直接处理不需要交给主状态机macFsm对于数据帧如果通过验证确信是发送给本节点的刚提交给网络层处理并在mac层将数据包释放等待处理下一个数据包注意不能释放数据包的存储区域因为网络层处理时会从此区域中读取数据对于请求帧RxFsm没有办法处理将交由主状态机macFsm决定如果macFsm已处理则释放该数据包清除存储区域。
图312mac层接收状态机RxFsm
发送状态机txFsm的设计如图313所示。每次只允许一个数r
好听全球资料 返回顶部