MAC Project 826 DEMO DCFcontention Warp Client 1

  • Slides: 11
Download presentation
MAC Project 8/26

MAC Project 8/26

DEMO 環境(DCF)–contention Warp (Client) 1 Warp (Client) 0 Warp (Client) 2

DEMO 環境(DCF)–contention Warp (Client) 1 Warp (Client) 0 Warp (Client) 2

DEMO 環境(PCF)-contention free Warp (Server) 1 Warp (Client) 0 Warp (Client) 2

DEMO 環境(PCF)-contention free Warp (Server) 1 Warp (Client) 0 Warp (Client) 2

Superframe B 0 1 2 0 PCF(contention free) � 1. change … B DCF(contention)

Superframe B 0 1 2 0 PCF(contention free) � 1. change … B DCF(contention) mode DCF->PCF server key “P” to start PCF mode � 2. server polling every client key “D” if client have data � 3. change mode PCF->DCF server key “S” to end PCF mode

csma. MAC. c Main() //poll the timer, PHY and user I/O warpmac_poll. Peripherals() you

csma. MAC. c Main() //poll the timer, PHY and user I/O warpmac_poll. Peripherals() you can trace warpmac. c to know the detail

csma. MAC. c Void uart. Recv_callback(unsigned char uart. Byte) if(uart. Byte != 0 x

csma. MAC. c Void uart. Recv_callback(unsigned char uart. Byte) if(uart. Byte != 0 x 0) { xil_printf("(%c)t", uart. Byte); } switch(uart. Byte) case ASCII_1: …. .

csma. MAC. c void timer_callback(unsigned char timer. Type) switch(timer. Type) { case TIMEOUT_TIMER: …

csma. MAC. c void timer_callback(unsigned char timer. Type) switch(timer. Type) { case TIMEOUT_TIMER: … case BACKOFF_TIMER: … }

csma. MAC. c void data. From. Network. Layer_callback(Xuint 32 length, char* payload) tx. Macframe.

csma. MAC. c void data. From. Network. Layer_callback(Xuint 32 length, char* payload) tx. Macframe. header. length = length; tx. Macframe. header. pkt. Type = PKTTYPE_DATA; tx. Macframe. header. dest. Addr = (unsigned short int)(NODEID_TO_ADDR(dest. Node)); tx. Macframe. header. remaining. Tx = (maximum. Re. Send+1); if(warpmac_carrier. Sense()) { … } else { warpmac_set. Timer(BACKOFF_TIMER); }

csma. MAC. c int phy. Rx_good. Header_callback(Macframe* packet ) if( packet->header. dest. Addr ==

csma. MAC. c int phy. Rx_good. Header_callback(Macframe* packet ) if( packet->header. dest. Addr == (NODEID_TO_ADDR(my. ID)) ) { switch(packet->header. pkt. Type) { case PKTTYPE_DATA: …. case PKTTYPE_ACK: …. }

� Deadline & Demo � Question?

� Deadline & Demo � Question?