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

📄 sample3_readme.txt

📁 基于LPC76X的LIN开发通信源程序调试通过
💻 TXT
字号:
/********************************************************************/
                                                           2006.09.11.
            R8C/23 CAN/LIN 演示板 样例程序说明
			
                        Sample3:LIN主机
						
/********************************************************************/
<操作环境>
 * MCU : R5F21237JFP ES
 * CPU Clock : 20MHz

<实现功能>
	进度表调度;
	外界事件触发唤醒;
	接收其余节点的唤醒;
	基本的LIN通信,数据的收发;
	发送休眠命令,进入休眠状态;
	4s总线无活动,自动进入休眠状态;
	错误类型界定;
	可以修改帧时隙(一个完整的帧传输完毕需要的时间)。

<说明>
* LIN 波特率:9600bit/s

* LIN主机包括5个状态
	SLEEP状态(初始状态),等待接收/发送wakeup;
	RESET状态,初始化进度表;
	RUN状态,LIN主机通信状态;
	IDLE状态,检测总线活动,准备进入睡眠;
	ERROR状态,发生错误后进入该状态,通信停止。(用户可以根据需要添加错误处理函数)
	
* 通信过程
	启动LIN主机前,可以在SCHEDULE_TABLE处修改进度表。
	进度表修改后,需再schedule_include_frm_num将相应进度表所含的帧数同时修正。
	目前样例程序支持最多4个进度表,每个进度表最多包含4个帧。
	用户可根据需要进行扩展,将lin_frm,lin_sch中关于进度表和帧的总属性值相应标志位增加位数或变为多个字节。

    	主机启动后,处入休眠状态时,将检测:
    	1)主机应用层是否有事件发生,若发生事件,则发送wakeup信号(250us的显性电平);
   	2)总线上是否有wakeup信号(>=150us的显性电平);
	若有则等待100ms后启动进度表,从机对此等待时间的判断阈值为150ms。

    	发送header的break段; 发送header的同步段;发送header的ID段,并根据ID,判断 
   	1) 是由主机发送帧的数据段,则发送数据段,判断是否为休眠命令,若是马上转入休眠状态。
    	2) 不是由主机发送帧的数据段,分析ID,选择是否接收数据段,检查校验和(标准型)。
    	发送/接收/忽略 完数据段后,再次进入发送header的状态。直到进度表完成。

	进度表完成后,4s后自动进入休眠状态。

* 错误代码
    	1) UART传输时发生的错误:
      	   UART_OVERRUN_ERROR(uart过载错误)
      	   UART_PARITY_ERROR(uart奇偶校验错误)
      	   UART_FRAMING_ERROR(uart传输错误)
    	2) LIN错误
     	   LINRX_CHECKSUM_ERROR(校验和错误)
      	   SHORT_MESSAGE_ERROR(消息不全错误: 在接收数据段时,未接收到数据段或数据段不完整)

* 帧的定义
	除去受保护ID的两个奇偶校验位,帧ID共6位,后四位为cmd,前两位为DLC(数据长度码),参见lin_master.c中table的注解部分:
	帧ID = 0x31,0x3C主机发送,所有从机接收;0x3c为诊断帧,若数据段的第一字节为零,则为休眠指令(协议强制规定);
	其余帧ID主机根据需要接收或忽略。

⌨️ 快捷键说明

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