:“于PIC的LIN总线设计.doc”
:“于PIC的LIN总线设计.doc”
:“PIC” “LIN总线” “设计”
【文档内容概述】:
该文档主要介绍了一个基于PIC微控制器(Microchip Technology Inc.的PIC系列)的LIN(Local Interconnect Network)总线设计项目。LIN总线是一种汽车电子系统中广泛使用的串行通信协议,用于简化汽车内部子系统的通信。在这个设计中,分为主节点和从节点两个部分。主节点负责发送同步间隔场并控制通信流程,而从节点则通过UART(通用异步收发传输器)和CCP(比较捕获模块)接收和解析数据。
主节点设计:
主节点采用的是PIC16F877型号的微控制器,使用MCP2012作为收发芯片。它拥有4个按键,并且使用9600波特率的UART进行通信。在发送同步间隔场时,使用较低的波特率4800。主节点的程序包括数据发送、同步间隔场的生成以及事件处理功能。
从节点设计:
从节点配备有UART接口和CCP模块。在接收到同步间隔场后,从节点会通过定时器1进行计时判断同步间隔场是否符合标准。如果合格,从节点将使用CCP模块捕捉同步头(0x55),同时计算波特率,然后开启UART接收数据。
协议说明:
LIN协议定义了显性电平(逻辑0)和隐性电平(逻辑1)。同步间隔场由至少13位的显性电平和1位的界定符(隐性电平)组成。同步场发送0x55,从节点通过定时器计算波特率。数据场包含标识符场和命令场,其中标识符场定义报文内容、长度和奇偶校验位,命令场可以由2到8个数据字节组成,加上一个数据校验场。保留的标识符如“0x3c”用于主机广播命令,而“0x3d”用于从机响应。
程序实现:
程序使用HiTech PIC C compiler v.8.05编译环境编写,包括了键盘扫描、事件处理函数、数据发送、同步间隔场发送等关键功能。中断服务程序(SDI)用于处理数据接收中断,而Delay函数则提供了延时功能,Send函数和SendSync函数分别用于普通数据和同步间隔场的发送。
这个基于PIC的LIN总线设计涉及了硬件接口设计、通信协议理解和软件编程等多个方面,为构建简单的LIN网络提供了基础。设计者需对LIN协议有深入理解,并熟练掌握PIC微控制器的编程和应用。