基于ARM的LIN主节点控制器的设计与实现答辩人:***导师:***专业:***论文研究的背景及意义随着电子技术的迅速发展和在汽车上的广泛应用,汽车电子化程度越来越高,汽车总线技术的发展甚为迅速。本文所要研究的LIN总线技术是目前使用较多的一种低速汽车总线。在不需要CAN总线性能、带宽及复杂性的领域,LIN总线标准得到了广泛的应用。LIN网络开发和设计过程中,需要针对整个网络进行整体设计和调试,调试工具尤为重要。现有的硬件调试工具有NI的LIN卡等,存在着价格较高、必须使用专用软件配合才能调试等缺点。为了解决上述问题,更好地进行LIN总线的开发调试,本论文开发了一套基于ARM的LIN主节点控制器系统。本设计实现的主要功能有:实现LIN主节点发送和接收数据。通过RS232串口实现LIN主节点与上位机之间的通信。通信数据可以通过液晶显示器显示出来。系统实现的方法论文首先对LIN总线协议进行研究,包括LIN总线网络通讯机制、LIN总线报文帧的构成等。然后,结合设计要求确定系统的总体硬件方案及各个功能模块,并绘制硬件原理图。在分析LIN协议和硬件支持的基础上,设计和开发系统的软件部分。系统硬件部分设计系统总体结构图:嵌入式硬件平台LIN通信模块节点2节点3LIN总线节点1节点4上位机上位机软件RS232串口上位机通信接口模块微控制器MCU电源模块液晶显示模块电源模块:系统需要12V,3.3V,1.8V电源。图中通过LM1085和AS1117两个稳压器可以获得3.3V和1.8V电源;二极管D1起反向保护的作用。微控制器MCU模块:微控制器MCU是整个系统的核心,控制上位机和LIN总线的通信,还提供液晶显示模块的数据和控制接口。本设计选择了NXP公司的LPC2103处理器。MCU外围电路模块包括复位电路、晶振回路和JTAG调试电路。LPC2103芯片的复位电路和引脚分配:通过复位按键S1,可以将硬件和软件复位,P0.0和P0.1用于上位机通信发送和接收数据,P0.8和P0.9用于LIN收发器通信发送和接收数据。LIN通信模块:使用TJA1020收发器,图中C8为220pf电容,提高EME和EMI性能。上位机通信接口模块:使用RS232串口通信,MAX3232为电平转换芯片,J2为九针的公头接口。液晶显示模块:采用MD1602A,RS为寄存器选择端口,RW为读写信号线,E为使能端,D0-D7为8位数据总线。系统软件部分设计本系统的软件主要包括系统与LIN总线的通信程序模块、系统与上位机通信的程序模块和液晶显示程序模块。软件开发环境:软件编辑调试环境是KeiluVision3集成开发环境。硬件仿真/编程器为Keil公司配套推出的ARM仿真器ULINK。系统整体的程序流程图:NY上电开始系统初始化发送LIN报文头(HEADER)清显示标识符是否为接收数据?接收数据送上位机并显示检测同步间隔场系统上电后,执行系统初始化程序,设定串口通讯波特率,配置LIN总线收发器和初始化液晶显示器。然后执行主机任务即发送LIN报文头,发起整个LIN总线的通信。LIN总线上的节点接收报文头并与主节点取得同步后,根据标识符调用相应的LIN发送或接收函数,通过LIN总线传输相应的报文,并调用上位机软件和液晶显示程序将数据送至上位机并显示。LIN主节点主机任务流程图:开始总线初始化发送同步间隔场发送同步场0x55h发送受保护的标识符报文的逻辑组成主机任务位于主机节点内部,用SCI串口发送报文头。即先发送一个同步间隔场,然后发送同步场0x55h和一个标识符场。LIN主节点从机任务流程图:NY开始接收受保护标识符PID接收数据标识符为接收数据?接收校验和检测同步间隔从机任务检测同步间隔,并与主节点取得同步后,接收受保护标识符,如果标识符为接收数据则调用LIN接收数据函数接收数据和校验和,否则继续检测下一个同步间隔。系统与上位机通信流程图:串口初始化串口发送数据接收LIN总线数据结束LIN报文是否准备好?串口初始化主要是设定通信波特率,如果LIN报文已经准备好,则调用相应的上位机通信程序接收LIN总线数据并通过RS232将数据发送至上位机,通过串口调试工具观察分析数据。液晶显示程序流程图:开始初始化清显示设定光标位置显示数据结束MD1602A液晶模块内部的控制器共有11条控制指令,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。程序流程图中,先初始化液晶显示器,然后调用清屏程序清显示,接着设定光标位置进而显示数据。谢谢!