⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 proto_defs.h

📁 CAN工业节点设计、CAN控制器为SJA1000.C源码
💻 H
字号:
#ifndef	__PROTO_DEFS_H__
#define __PROTO_DEFS_H__

#include "xkcan_defs.h"

// Definitions of COB_ID

#define _GET_NID(x)			( (x) & 0x7f )	   				// last 7 bits of COBID
#define _GET_FC(x)			( ((x)>>7) & 0x0f )				// first 4 bits of COBID

#define _GET_FRAME_NID(x)	( ((x)->cobid) & 0x7f )			// last 7 bits of COBID	in Can frame
#define _GET_FRAME_FC(x)	( (((x)->cobid)>>7) & 0x0f )	// first 4 bits of COBID in Can frame

// Generate COBID from Function Code(x) and Node ID (y)
#define _GEN_COBID(x, y) 	(((uint)(x)<<7)|(y))
#define _GEN_D_COBID(x, y) 	((x) + (y))


// Status Definitions
#define STATUS_OPERATIONAL			0x05
#define STATUS_STOPPED				0x04
#define STATUS_PRE_OPERATIONAL		0x7f
#define STATUS_BOOTUP	`			0x00

#define STATUS_INITIALISING			0x01
#define STATUS_RESET_APP			0x02
#define STATUS_RESET_COMM			0x03
#define STATUS_ERROR				0xff

#define EXP_PRE_INIT				0x00
#define EXP_INITIALISING			0x01
#define EXP_STANDBY					0x02
#define EXP_STOPPED					0x04
#define EXP_RUNNING					0x05
#define EXP_PAUSE					0x06
#define EXP_FAULT					0x10
#define EXP_END_REQUEST				0x0e				
#define EXP_END						0x0f
#define EXP_STATUS_ERROR			0xff

// Function Code Definitions
#define FC_NMT_MC					0x00
#define FC_SYNC						0x01
#define FC_TIME_STAMP				0x02
#define FC_EMCY						0x01
#define FC_PDO1_TX					0x03
#define FC_PDO1_RX					0x04
#define FC_PDO2_TX					0x05
#define FC_PDO2_RX					0x06
#define FC_PDO3_TX					0x07
#define FC_PDO3_RX					0x08
#define FC_PDO4_TX					0x09
#define FC_PDO4_RX					0x0A
#define FC_SDO_TX					0x0B
#define FC_SDO_RX					0x0C
#define FC_NMT_EC					0x0E


// FC for decimal generation

#define FC_D_NMT_MC					0
#define FC_D_SYNC					128
#define FC_D_TIME_STAMP				256
#define FC_D_EMCY					128
#define FC_D_PDO1_TX				384
#define FC_D_PDO1_RX				512
#define FC_D_PDO2_TX				640
#define FC_D_PDO2_RX				768
#define FC_D_PDO3_TX				896
#define FC_D_PDO3_RX				1024
#define FC_D_PDO4_TX				1152
#define FC_D_PDO4_RX				1280
#define FC_D_SDO_TX					1408
#define FC_D_SDO_RX					1536
#define FC_D_NMT_EC					1792


// Node ID Definitions
#define NID_MCC						0x7F
#define NID_BROADCAST				0x00

// Definitions of NMT Module Control Frame
//#define _GET_NMT_NID(x)		( ((x)->dat[1]) & 0x7f )			// last 7 bits of COBID	in Can frame
#define _GET_NMT_MC_CS(x)	((x)->dat[0])

#define NMT_MC_CS_START_REMOTE		1
#define NMT_MC_CS_STOP_REMOTE		2
#define NMT_MC_CS_ENTER_PRE_OP		128
#define NMT_MC_CS_RESET_NODE		129
#define NMT_MC_CS_RESET_COMM		130

// Definitions of NMT Error Control Frame
#define _GET_NMT_EC_CS(x)	( ((x)->dat[0]) & 0x7f )


// Definitions of TIME stamp

// Definitions of Emergency frame

// Definitions of PDO frams

// PDO1 objects are reserved for all status setting commands
#define PDO1_TX_SET_SWITCH			0x01
#define PDO1_TX_GET_STATUS		  	0x02
#define PDO1_TX_SET_SPC_SWITCH		0x11
#define PDO1_TX_GET_SPC_STATUS		0x12

// PDO2 objects are reserved for all 485 communications
#define PDO2_485_READ				0x01
#define PDO2_485_CTRL				0x10
#define PDO2_485_CTRL_1				0x11
#define PDO2_485_CTRL_C				0x20
#define PDO2_485_CTRL_C_1			0x21


// PDO3 objects are reserved for all status indications, such as LEDs, LCDs
//#define PDO3_CS_


// Definitions of SDO frams

#define SDO_CS_EXP_TIME				0x24
#define SDO_CS_EXP_START			0x21
#define SDO_CS_EXP_STOP				0x22
#define SDO_CS_EXP_PAUSE			0x23
#define SDO_CS_EXP_RESET			0x28
#define SDO_CS_EXP_RESUME			0x25
#define SDO_CS_EXP_END				0x2f

#define SDO_CS_EXP_FAULT			0x01
#define SDO_CS_EXP_END_REQUEST		0x2f



#endif	//__PROTO_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -