README~
上传用户:joranyuan
上传日期:2022-06-23
资源大小:3306k
文件大小:3k
源码类别:

网络

开发平台:

Others

  1. Notes on Z-MAC implementation:
  2. Z-MAC works in two phases (for full description, please see the Z-MAC
  3. paper) - a) DRAND slot assignment
  4.          b) Data Transmission
  5. DRAND
  6. -----
  7. The code for DRAND slot assignment is located in tos/system/Drand*
  8. Currently, it has the following limitations which can be changed
  9. in the file DrandMSG.h:
  10.            - DRAND contains tables for neighbor information. The
  11. size of these tables can be controlled statically by changing the following
  12. variables:
  13. enum {
  14.   MAX_NBR = 20,
  15.   MAX_ONE_HOP = 15
  16. };
  17. MAX_NBR is the total number of one+two hop neighbors
  18. MAX_ONE_HOP is the total number of one hop neighbors
  19. This has an effect on the code size and the packet size.
  20. These values were chosen for our testbed, and hence we had to use a default
  21. packet size of 70 bytes (in tos/types.h):
  22. #ifndef TOSH_DATA_LENGTH
  23. #define TOSH_DATA_LENGTH 70
  24. #endif
  25. This could have an effect when using UART_MSG, since it expects a default
  26. packet size of 29 bytes. We used SODbg so we did not face any problems.
  27.            - The time for DRAND completion is a function of the network density.
  28. As a thumb rule, in a network with about 20 one/two hop neighbors, DRAND
  29. completes in about 2-3 minutes. This has to be kept in mind while testing
  30. on your testbed.
  31. The time allocated for each phase in DRAND is as follows:
  32. enum {
  33.   HELLO_PERIOD = 30000L,
  34.   HELLO_INTERVAL = 500,
  35.   GRANT_INTERVAL = 100,
  36.   REPORT_INTERVAL = 100,
  37.   REPORT_XPERIOD = 1000,
  38.   FRAME_INTERVAL = 100,
  39.   FRAME_XPERIOD = 1000,
  40.   DRAND_PERIOD = 120000L,
  41.   REPORT_PERIOD = 30000L,
  42. };
  43.   HELLO_PERIOD = 30000L --> total time for neighbor discovery = 30s
  44.   HELLO_INTERVAL = 500  --> time between two neighbor discovery 'beacons'
  45.   GRANT_INTERVAL = 100  
  46.   REPORT_INTERVAL = 100
  47.   REPORT_XPERIOD = 1000
  48.   FRAME_INTERVAL = 100
  49.   FRAME_XPERIOD = 1000
  50.   (above) time for various phases within DRAND, this should probably not be changed.
  51.   DRAND_PERIOD = 120000L --> total time allocated for DRAND = 120s or two minutes
  52.   REPORT_PERIOD = 30000L --> time after DRAND for slot/frame dissemination = 30s
  53. These time values can be used as-is for medium sized networks. Hence, data
  54. transmission should start only after:
  55.              HELLO_PERIOD + DRAND_PERIOD + REPORT_PERIOD + 30s
  56.              The final 30s is for a phase called 'FRAME PHASE' where the local
  57.              frame size is disseminated.
  58. A simple application for testig DRAND alone can be found in apps/TestBedTopology. Please
  59. see the README inside the directory for further instructions.
  60. Z-MAC
  61. -----
  62. - Z-MAC has been implemented on top of B-MAC. The only files changed are:
  63. tos/platform/mica2/CC1000RadioIntM.nc --> real implementation code
  64. tos/platform/mica2/CC1000RAdioC.nc --> component connectivity
  65.   additional files for system parameters are in:
  66. tos/platform/mica2/zmaConst.h --> contains To/Tno parameters, which you might like to vary
  67. tos/platform/mica2/zmacInfo.h --> contains ecn/time sync message structures
  68. In case you need to run B-MAC, the original files are present in:
  69. tos/platform/mica2/orig
  70. - Z-MAC needs the neighbor slot information provided by DRAND. This information can
  71. be input in two ways:
  72.    - invoke DRAND every time at initialization (normal operation)
  73.    - invoke DRAND once, get the neighbor table, and input it statically (testing)
  74. Both modes of operation are supported.
  75. For details on running Z-MAC, we have included a MultiHop application,
  76. apps/MultiHopThroughput. Please see the README in that directory.