MAC TDMA网络的实现

MAC TDMA协议采用时分复用的方式,通过修改MAC层的相关协议,使节点只能在指定时隙发送数据而在其他时隙只能处于等待状态,因此可以保证数据可以在指定时间顺利到达目的节点,从而保证了数据的实时性。

ath9k是Atheros公司的开放源代码的驱动程序,因此可以根据需要在这一基础上做一定的修改,将传统的802.11协议修改成MAC TDMA协议。

MAC TDMA系统的设计

MAC TDMA系统的设计围绕着时钟同步和时隙调度两个方面。

时钟同步:在通信系统中时钟的同步是一个很重要的问题。

       Beacon帧是WLAN网络中一种很重要的管理帧,将本地时钟的替换成接收到的时间戳从而完成了时钟的同步。在本系统中只保留一个路由节点的Beacon帧功能,从而使系统中所有的节点都与此时钟时间同步。

时隙调度:时隙调度是指节点只是特定的时间发送数据帧或管理帧,而在其他时刻处于等待状态。在传统的802.11协议中Beacon帧是通过这六个相应的定时器完成定时发送Beacon帧的,本方案正是利用了这六个定时器的来完成时隙调度。


如图所示:每个时隙2ms,第1到第4个时隙共8ms用来传输Beacon帧,剩下的96个时隙用来传输数据包。一帧共100个时隙,200ms;为了完成在制定时隙传输数据包的要求,需要先禁掉802.11原有的事件触发机制,而在特定时隙到来后从驱动层回调MAC层的函数向驱动层发送数据。相应的核心算法如下:

       if (slot==1)

       {

       //beacon帧的发送

              ath9k_beacon_tasklet(data);

       }else

if(slot == 15)

              {

              //数据包的发送

                     tdma_send_a_skb(sc->hw);

   }

实验设计及结果分析:

       在实验中采用的是AR9220无线网卡芯片的的路由开发板RB433,通过笔记本不停的向路由器开发板发送PING信息。

实验结果,如图所示:


由于,printk信息是从内核态到用户态需要好几百个时钟周期消耗的而打印的内容中还有减法操作,所以在这次的实验中把时隙设置为原来的一百倍,否则系统会因资源不足而崩溃,而在后面的分别分析中证明2ms仍然是很合理的。   从前往后打印的几项分别是触发中断时刻的TSF值,数据包在进入驱动到传输完成的时间,传输的队列,数据sk_buff的地址,时隙和整个MAC帧长度。

分析SWBA,从时隙1到时隙15所经历的时间是21402999195-21400199197=(2800000-2)us,这和从时隙1到时隙时隙15共经历了14个时隙,每个时隙200ms相匹配的,另一方面,两个相邻的时隙15一共间隔20000000us这个也和帧周期相对应,进而说明了我们的时隙控制是正确的。

分析athtime,该时间是数据从进入驱动到完成发送所用的时间,这个时间一般不超过300us,远小于时隙划分的2ms,从而保证数据有足够的时间从驱动发送出去,说明时隙划分为2ms是合理的。

实验总结

设计了完成了一个简单的MAC TDMA系统的设计,对通信的基础模型概念有了更深刻的了解。

你可能感兴趣的:(TCP/IP详解学习)