can_app.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /******************************************************************************
  2. 版权所有:
  3. 文件名称: can_app.h
  4. 文件版本: 01.01
  5. 创建作者: sunxi
  6. 创建日期: 2013-02-28
  7. 功能说明: can传输应用层
  8. 其它说明:
  9. 修改记录:
  10. */
  11. #ifndef _CAN_APP_H
  12. #define _CAN_APP_H
  13. /*------------------------------- 头文件 --------------------------------------
  14. */
  15. /*------------------------------- 宏定义 --------------------------------------
  16. */
  17. // 帧类型,带优先级,数字越小,优先级越高
  18. // 分为4大类,每类64个
  19. // !!!!!!!!!!!!!同一大类的帧不能在不能的中断级别中发送,切记!!!!!!!!!!!!!!!
  20. // 开入开出类
  21. #define CAN_FRAME_TYPE_DO_ON 0x01 // 开出, 发送:5ms中断
  22. #define CAN_FRAME_TYPE_DO_OFF 0x02 // 开出, 发送:5ms中断
  23. #define CAN_FRAME_TYPE_DI_INIT 0x21 // 遥信板前32个遥信 接收:can中断
  24. #define CAN_FRAME_TYPE_DI_ON 0x22 // 遥信板前32个遥信 接收:can中断
  25. #define CAN_FRAME_TYPE_DI_OFF 0x23 // 遥信板前32个遥信 接收:can中断
  26. #define CAN_FRAME_TYPE_DI_INIT1 0x24 // 遥信板后32个遥信 接收:can中断
  27. #define CAN_FRAME_TYPE_DI_ON1 0x25 // 遥信板后32个遥信 接收:can中断
  28. #define CAN_FRAME_TYPE_DI_OFF1 0x26 // 遥信板后32个遥信 接收:can中断
  29. #define CAN_FRAME_TYPE_DI_INIT2 0x27 // 遥信板后32个遥信 接收:can中断 // 电源板增加了6个遥信总数为66,两组遥信只能支持64个还剩余2个,所以要再增加一组 add by EWen
  30. #define CAN_FRAME_TYPE_DI_ON2 0x28 // 遥信板后32个遥信 接收:can中断
  31. #define CAN_FRAME_TYPE_DI_OFF2 0x29 // 遥信板后32个遥信 接收:can中断
  32. // 对时类
  33. #define CAN_FRAME_TYPE_TIMING 0x40 // 对时/召子板信息,发送:5ms中断
  34. // 控制类
  35. #define CAN_FRAME_TYPE_SB_INFO 0x81 // 子板应答信息, 接收:can中断
  36. #define CAN_FRAME_TYPE_ARGUMENT_DO 0x82 // 开出参数设置, 发送:主循环中发送
  37. #define CAN_FRAME_TYPE_ARGUMENT_DI 0x83 // 遥信参数设置, 发送:主循环中发送
  38. #define CAN_FRAME_TYPE_ARGUMENT_LED 0x84 // LED参数设置, 发送:主循环中发送
  39. #define CAN_FRAME_TYPE_ARGUMENT_DO_2 0x85 // 拓展开出参数设置, 发送:主循环中发送
  40. // 其它类
  41. #define CAN_FRAME_TYPE_PROGRAM_UPDATE 0xc0 // 子板程序更新, 发送:主循环中; 接收:主循环中
  42. #define CAN_FRAME_TYPE_PROGRAM_READ 0xc1 // 子板程序读取, 发送:主循环中; 接收:主循环中
  43. #define CAN_FRAME_TYPE_LED 0xc2 // 告警LED灯, 发送:主循环中
  44. #define CAN_FRAME_TYPE_RESET 0xc3 // 复位所有子板, 发送:主循环
  45. #define CAN_FRAME_TYPE_SB_MONITOR 0xc4 // 子板监视信息, 发送:主循环; 接收:主循环
  46. #define CAN_FRAME_TYPE_TEST 0xc5 // 测试帧 发送:主循环; 接收:主循环
  47. #ifdef GW_AREA_MAIN_2021
  48. // 与查询遥测 CAN_FRAME_TYPE_LL_YC 定义重复,但目前没用到can采集线损暂时先这样定义,后续都启用的话再修改
  49. #define CAN_FRAME_TYPE_ETH_LED 0xc7 // 拓展板网口指示灯 发送:主循环; 接收:主循环
  50. #endif
  51. /*线损,针对主机来说的功能码*/
  52. #define CAN_FRAME_TYPE_LL_YX 0XC6 //查询遥信 发送:主循环中; 接收:主循环中
  53. #define CAN_FRAME_TYPE_LL_YC 0XC7 //查询遥测
  54. #define CAN_FRAME_TYPE_LL_DD 0XC8 //查询电度
  55. #define CAN_FRAME_TYPE_LL_CALIB1 0XC9 //校准1
  56. #define CAN_FRAME_TYPE_LL_CALIB2 0XCA //校准2
  57. #define CAN_FRAME_TYPE_DISCOVER 0xCB // 子板查找
  58. #define CAN_FRAME_TYPE_GIVE_CAN_SLOT 0xCC // 给与CAN子板卡槽号
  59. #define CAN_FRAME_TYPE_LL_FIXD 0X27 //定时冻结
  60. #define CAN_FRAME_TYPE_LL_RAND 0X28 //瞬时冻结
  61. #define CAN_FRAME_TYPE_LL_FRZD 0X29 //日冻结
  62. #define CAN_FRAME_TYPE_LL_SHARPD 0X2A //整点冻结
  63. #define CAN_FRAME_TYPE_LL_MONTHD 0X2B //考核日冻结
  64. #define CAN_FRAME_TYPE_LL_SET 0X85 //设置参数
  65. #define CAN_FRAME_TYPE_LL_SET_TIME CAN_FRAME_TYPE_TIMING //对时
  66. #define CAN_FRAME_TYPE_LL_SOE 0X03 //遥信突发上送
  67. /*------------------------------ 类型结构 -------------------------------------
  68. */
  69. /*------------------------------ 函数声明 -------------------------------------
  70. */
  71. int can_app_init(void);
  72. int can_app_exit(void);
  73. u8 can_app_checksum(u8 *buf,u8 len);
  74. int can_app_timing(void);
  75. int can_app_reset(int is_watchdog);
  76. int can_app_sb_monitor(void);
  77. int can_app_test_printf(void);
  78. int can_task(void);
  79. #endif //_CAN_APP_H
  80. /*------------------------------ 文件结束 -------------------------------------
  81. */