Subversion Repositories HomeAutomation

Rev

Rev 1209 | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. #ifndef CANID_H_
  2. #define CANID_H_
  3.  
  4. #ifdef MODULE_APPLICATION
  5. #include "moduleid.h"
  6. #endif
  7.  
  8. //---------------------------------------------------------------------------
  9. // CAN controller definitions
  10. #define CAN_AVR_INTERNAL 0
  11. #define MCP2515 1
  12.  
  13. //---------------------------------------------------------------------------
  14. // CAN ID definitions
  15.  
  16. #define CAN_MASK_CLASS      0x1E000000
  17. #define CAN_SHIFT_CLASS     25
  18. //------------------------------------
  19. #define CAN_NMT             0x00UL
  20. #define CAN_MASK_NMT_TYPE   0x00FF0000
  21. #define CAN_SHIFT_NMT_TYPE  16
  22. #define CAN_MASK_NMT_SID    0x0000FF00
  23. #define CAN_SHIFT_NMT_SID   8
  24. #define CAN_MASK_NMT_RID    0x000000FF
  25. #define CAN_SHIFT_NMT_RID   0
  26. #define CAN_NMT_TIME        0x00UL  //D0:3 UNIX_TIME, D4:7 {YY:6, MM:4, DD:5, hh:5, mm:6, ss:6}
  27. #define CAN_NMT_RESET       0x04UL
  28. #define CAN_NMT_BIOS_START  0x08UL  //D0: VER7:0, D1:VER15:8, D2: 0 if no app, >0 if app
  29. #define CAN_NMT_PGM_START   0x0CUL  //D0: ADR7:0, D1:ADR15:8, D2:ADR23:16, D3:ADR31:24
  30. #define CAN_NMT_PGM_DATA    0x10UL  //D0: OFS7:0, D1: OFS15:8, D(n+2): DATAn7:0 [n=0..x] [x=0..5]
  31. #define CAN_NMT_PGM_END     0x14UL  //D0: CRC7:0, D1: CRC15:8
  32. #define CAN_NMT_PGM_COPY    0x18UL  //D0: SRC7:0, D1:SRC15:8, D0: DST7:0, D1:DST15:8, D0: LEN7:0, D1:LEN15:8
  33. #define CAN_NMT_PGM_ACK     0x1CUL  //D0: OFS7:0, D1: OFS15:8
  34. #define CAN_NMT_PGM_NACK    0x20UL  //D0: OFS7:0, D1: OFS15:8
  35. #define CAN_NMT_START_APP   0x24UL
  36. #define CAN_NMT_APP_START   0x28UL  //D0: ID7:0, D1:ID15:8, D2: VER7:0, D3:VER15:8
  37. #define CAN_NMT_HEARTBEAT   0x2CUL
  38. //------------------------------------
  39. #define CAN_SNS             0x02UL
  40. #define CAN_MASK_SNS_TYPE   0x01FF8000
  41. #define CAN_SHIFT_SNS_TYPE  15
  42. #define CAN_MASK_SNS_ID     0x00007E00
  43. #define CAN_SHIFT_SNS_ID    9
  44. #define CAN_MASK_SNS_SID    0x000001FF
  45. #define CAN_SHIFT_SNS_SID   0
  46. //------------------------------------
  47. #define CAN_ACT             0x04UL
  48. #define CAN_MASK_ACT_TYPE   0x01FF8000
  49. #define CAN_SHIFT_ACT_TYPE  15
  50. #define CAN_MASK_ACT_ID     0x00007E00
  51. #define CAN_SHIFT_ACT_ID    9
  52. #define CAN_MASK_ACT_SID    0x000001FF
  53. #define CAN_SHIFT_ACT_SID   0
  54. //------------------------------------
  55. #define CAN_PKT             0x06UL
  56. //------------------------------------
  57. #define CAN_CON             0x08UL
  58. #define CAN_CHN             0x0AUL
  59. #define CAN_TST             0x0FUL
  60.  
  61. //--------------------------------------------------------------------
  62.  
  63.  
  64.  
  65. //---------------------------------------------------------------------------
  66. // CAN ID definitions for NMT messages
  67. #ifdef NODE_ID
  68. #define CAN_ID_NMT_BIOS_START  ((CAN_NMT << CAN_SHIFT_CLASS) \
  69.                               | (CAN_NMT_BIOS_START << CAN_SHIFT_NMT_TYPE) \
  70.                               | ((uint32_t)NODE_ID << CAN_SHIFT_NMT_SID))
  71. #define CAN_ID_NMT_PGM_ACK     ((CAN_NMT << CAN_SHIFT_CLASS) \
  72.                               | (CAN_NMT_PGM_ACK << CAN_SHIFT_NMT_TYPE) \
  73.                               | ((uint32_t)NODE_ID << CAN_SHIFT_NMT_SID))
  74. #define CAN_ID_NMT_PGM_NACK    ((CAN_NMT << CAN_SHIFT_CLASS) \
  75.                               | (CAN_NMT_PGM_NACK << CAN_SHIFT_NMT_TYPE) \
  76.                               | ((uint32_t)NODE_ID << CAN_SHIFT_NMT_SID))
  77. #else
  78. #define CAN_ID_NMT_BIOS_START  ((CAN_NMT << CAN_SHIFT_CLASS) \
  79.                               | (CAN_NMT_BIOS_START << CAN_SHIFT_NMT_TYPE))
  80. #define CAN_ID_NMT_PGM_ACK     ((CAN_NMT << CAN_SHIFT_CLASS) \
  81.                               | (CAN_NMT_PGM_ACK << CAN_SHIFT_NMT_TYPE))
  82. #define CAN_ID_NMT_PGM_NACK    ((CAN_NMT << CAN_SHIFT_CLASS) \
  83.                               | (CAN_NMT_PGM_NACK << CAN_SHIFT_NMT_TYPE))
  84. #endif
  85.  
  86. #define CAN_APPTYPES_IRRECEIVER     0xf010
  87. #define CAN_APPTYPES_RELAY          0xf015
  88. #define CAN_APPTYPES_SERVO          0xf020
  89. #define CAN_APPTYPES_SENSOR         0xf025
  90. #define CAN_APPTYPES_IRTRANSMITTER  0xf030
  91. #define CAN_APPTYPES_RGBLED         0xf035
  92. #define CAN_APPTYPES_FANCONTROLLER  0xf040
  93. #define CAN_APPTYPES_LCD        0xf045
  94. #define CAN_APPTYPES_CANGW      0xf04a
  95. #define CAN_APPTYPES_SERIALTRANSCEIVER  0xf050
  96.  
  97. // CAN ID definitions for SNS messages
  98. #define SNS_TYPE_STATUS             0x10L
  99. #define SNS_TYPE_IR                 0x12L
  100. #define SNS_TYPE_TEMPERATURE        0x14L
  101. #define SNS_TYPE_LIGHT              0x18L
  102. #define SNS_TYPE_PHONENR            0x1aL
  103. #define SNS_TYPE_PRESSURE           0x1bL
  104. #define SNS_TYPE_VOLTAGE            0x1cL
  105. #define SNS_TYPE_ROTSPEED           0x1dL
  106. #define SNS_TYPE_VELOCITY           0x1eL
  107. #define SNS_TYPE_FUELCONS           0x1fL
  108. #define SNS_TYPE_SERIAL             0x20L
  109.  
  110. #define SNS_ID_RELAY_STATUS           0x0BL
  111. #define SNS_ID_SERVO_STATUS           0x0dL
  112.  
  113. //Definitions of precision of different sensors
  114. #define SNS_DECPOINT_TEMPERATURE    0x04
  115. #define SNS_DECPOINT_PRESSURE       0x06
  116. #define SNS_DECPOINT_ROTSPEED       0x02
  117. #define SNS_DECPOINT_VOLTAGE        0x06
  118. #define SNS_DECPOINT_VELOCITY       0x02
  119. #define SNS_DECPOINT_FUELCONS       0x06
  120.  
  121.  
  122. // CAN ID definitions for ACT messages
  123. #define ACT_TYPE_RELAY          0x01L
  124. #define ACT_TYPE_SERVO          0x02L
  125. #define ACT_TYPE_RGBLED         0x03L
  126. #define ACT_TYPE_IR             0x04L
  127. #define ACT_TYPE_LCD            0x05L
  128. #define ACT_TYPE_FAN            0x06L
  129. #define ACT_TYPE_SERIAL         0x07L
  130.  
  131.  
  132. #endif /*CANID_H_*/
  133.