Subversion Repositories HomeAutomation

Rev

Rev 485 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. #ifndef CANID_H_
  2. #define CANID_H_
  3.  
  4. //---------------------------------------------------------------------------
  5. // CAN ID definitions
  6.  
  7. #define CAN_MASK_CLASS      0x1E000000
  8. #define CAN_SHIFT_CLASS     25
  9. //------------------------------------
  10. #define CAN_NMT             0x00UL
  11. #define CAN_MASK_NMT_TYPE   0x00FF0000
  12. #define CAN_SHIFT_NMT_TYPE  16
  13. #define CAN_MASK_NMT_SID    0x0000FF00
  14. #define CAN_SHIFT_NMT_SID   8
  15. #define CAN_MASK_NMT_RID    0x000000FF
  16. #define CAN_SHIFT_NMT_RID   0
  17. #define CAN_NMT_TIME        0x00UL  //D0:3 UNIX_TIME, D4:7 {YY:6, MM:4, DD:5, hh:5, mm:6, ss:6}
  18. #define CAN_NMT_RESET       0x04UL
  19. #define CAN_NMT_BIOS_START  0x08UL  //D0: VER7:0, D1:VER15:8, D2: 0 if no app, >0 if app
  20. #define CAN_NMT_PGM_START   0x0CUL  //D0: ADR7:0, D1:ADR15:8, D2:ADR23:16, D3:ADR31:24
  21. #define CAN_NMT_PGM_DATA    0x10UL  //D0: OFS7:0, D1: OFS15:8, D(n+2): DATAn7:0 [n=0..x] [x=0..5]
  22. #define CAN_NMT_PGM_END     0x14UL  //D0: CRC7:0, D1: CRC15:8
  23. #define CAN_NMT_PGM_COPY    0x18UL  //D0: SRC7:0, D1:SRC15:8, D0: DST7:0, D1:DST15:8, D0: LEN7:0, D1:LEN15:8
  24. #define CAN_NMT_PGM_ACK     0x1CUL  //D0: OFS7:0, D1: OFS15:8
  25. #define CAN_NMT_PGM_NACK    0x20UL  //D0: OFS7:0, D1: OFS15:8
  26. #define CAN_NMT_START_APP   0x24UL
  27. #define CAN_NMT_APP_START   0x28UL  //D0: ID7:0, D1:ID15:8, D2: VER7:0, D3:VER15:8
  28. #define CAN_NMT_HEARTBEAT   0x2CUL
  29. //------------------------------------
  30. #define CAN_SNS             0x02UL
  31. #define CAN_MASK_SNS_FUNCC  0x01FF8000
  32. #define CAN_SHIFT_SNS_FUNCC 15
  33. #define CAN_MASK_SNS_NID    0x00007E00
  34. #define CAN_SHIFT_SNS_NID   9
  35. #define CAN_MASK_SNS_SID    0x000001FF
  36. #define CAN_SHIFT_SNS_SID   0
  37. //------------------------------------
  38. #define CAN_PKT             0x06UL
  39. //------------------------------------
  40. #define CAN_CON             0x08UL
  41. //------------------------------------
  42. #define CAN_TST             0x0FUL
  43. //------------------------------------
  44.  
  45. //---------------------------------------------------------------------------
  46. // CAN ID definitions for NMT messages
  47.  
  48. #define CAN_ID_NMT_BIOS_START  ((CAN_NMT << CAN_SHIFT_CLASS) \
  49.                               | (CAN_NMT_BIOS_START << CAN_SHIFT_NMT_TYPE) \
  50.                               | (NODE_ID << CAN_SHIFT_NMT_SID))
  51. #define CAN_ID_NMT_PGM_ACK     ((CAN_NMT << CAN_SHIFT_CLASS) \
  52.                               | (CAN_NMT_PGM_ACK << CAN_SHIFT_NMT_TYPE) \
  53.                               | (NODE_ID << CAN_SHIFT_NMT_SID))
  54. #define CAN_ID_NMT_PGM_NACK    ((CAN_NMT << CAN_SHIFT_CLASS) \
  55.                               | (CAN_NMT_PGM_NACK << CAN_SHIFT_NMT_TYPE) \
  56.                               | (NODE_ID << CAN_SHIFT_NMT_SID))
  57.  
  58. #endif /*CANID_H_*/
  59.