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

📄 lin_slave.h

📁 基于LPC76X的LIN开发通信源程序调试通过
💻 H
字号:
/****************************************************************/
/* 项目名称     : R8C/23 CAN/LIN Demo Board		                */
/*              : 样例程序4                                     */
/*              : LIN从机										*/
/* 硬件环境		: R0K521237C000BB								*/
/* MCU型号      : R5F21237JFP                                   */
/* C编译器		: NC30WA,版本5.30.r02及以上					*/
/* 文件名	    : lin_slave.h									*/
/* 版本			: 1.0                                           */
/* 作者			: wangsy                                        */
/* 修订历史     :                                               */
/*			修订者		时间		版本	说明				*/
/*			wangsy		2006/9/11	1.0		初版发行			*/
/*																*/
/****************************************************************/
/*		Copyright, 2006 RENESAS TECHNOLOGY CORPORATION &        */
/*                      RENESAS SOLUTIONS CORPORATION			*/
/****************************************************************/

#ifndef _LIN_SLAVE_H_
#define _LIN_SLAVE_H_

/* lin_status */
#define lin_SLEEP	0		// 休眠态
#define lin_IDLE	1		// IDLE状态
#define lin_RUN		2		// 运行态
#define lin_ERROR	3		// 错误态

/* lin command */
#define CMD_NO_COMMAND 	0	// 无命令
#define CMD_SLEEP		1	// 休眠命令
#define CMD_IDLE		2	// IDLE命令
#define CMD_RUN			3	// 运行命令
#define CMD_ERROR		4	// 错误命令

//error_code
#define NO_ERROR				0x10	// 无错误
#define UART_OVERRUN_ERROR		0x11	// uart过载错误
#define UART_PARITY_ERROR		0x12	// uart奇偶校验错误
#define UART_FRAMING_ERROR		0x13	// uart传输错误
#define LINRX_CHECKSUM_ERROR 	0x14	// 校验和错误
#define PID_PARITY_ERROR	    0x15	// PID奇偶校验错误
#define SHORT_MESSAGE_ERROR		0x16 	// 消息不全错误
#define SYNCBREAK_ERROR			0x17	// break错误

//sleep_status
#define SLEEP_DUMMY 			0		// 休眠默认态
#define SLEEP_WAKEUP			1		// 休眠唤醒态

//idle_status
#define IDLE_DUMMY				0		// 其他方式进入IDLE
#define IDLE_WAKEUP				1		// 由唤醒进入IDLE态

//run_status
#define RUN_RCV_BREAK 		0	// 接收break
#define RUN_RCV_SYNC 		1	// 接收同步段
#define RUN_RX_PID 			2	// 接收PID
#define RUN_TX_DATA 		3	// 发送数据
#define RUN_RX_DATA			4	// 接收数据
#define RUN_TX_CHECKSUM		5	// 发送校验和

#define INIT_UART0_BITRATE 130	// 9600bit/s

#define TRAPRE_BREAKTEST	256U	// timerRA预装入数
#define TRA_BREAKTEST		90U

#define TIMERRB_INT_PRIORITY 3		// timerRB中断优先级

typedef union
{
	struct
	{
		uchar8	ID0:1;		//cmd0	  
		uchar8	ID1:1;		//cmd1	
		uchar8	ID2:1;		//cmd2 
		uchar8	ID3:1;		//cmd3
		uchar8	ID4:1;		//dlc0
		uchar8	ID5:1;		//dlc1
		uchar8	P0:1;		//parity0
		uchar8	P1:1;		//parity1
	} bit;
	struct
	{
		uchar8 cmd:4;
		uchar8 dlc:2;
		uchar8 parity:2;
	} pid_str;
	struct
	{
		uchar8 frame_id:6;
		uchar8 id_parity:2;
	} frame_id_and_parity;
	uchar8	 byte;
} pid_def;		// 受保护ID(帧ID + 2bit奇偶校验位)

typedef struct 
{
	uchar8 slot_id;		// 消息ID,对应于帧ID
	uchar8 data[8]; 	// 数据
} lin_slave_slot_def;

typedef struct
{
	uchar8 data[8];		// 数据
	uchar8 checksum;	// 校验和
} lin_slave_buffer_def;

/*-----------------函数声明-----------------*/
void timerRA_rcv_break_config(void);		// timerRA接收break初始化
void lin_sts_convert(uchar8 lin_in_event);	// LIN状态转换函数

/*-----------------外部引用变量声明-----------------*/
extern uchar8 lin_cmd;						// lin 命令
extern uchar8 lin_sts;						// lin 状态
extern uchar8 linM[5][4];					// 命令状态转换table
extern lin_slave_slot_def lin_slave_slot[3];

#endif

⌨️ 快捷键说明

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