2.1 XC886与UN驱动模块的接口设计
英飞凌公司的XC886单片机是基于8051工业标准架构的高性能8位微控制器,其内部集成有CAN控制器并支持UN通信,同时包含两个UART(其中一个用于支持LIN)和两个单独16位计时器的捕捉/比较单元(CCU),可灵活产生PWM信号。此外,还集成有高精度8路10位ADC、四个通用16位计时器和可编程16位看门狗计时器(WDT),并支持片内调试。XC886包含多种省功耗模式,非常适用于各种汽车车身控制网络以及工业和农业设备控制、建筑物照明控制、智能传感器和工业自动化等领域。
系统中的LIN驱动模块选用英飞凌公司的TLE7259芯片,它具有总线接地短路保护功能,适用于传输速率为2.4 kb/s~20 kb/s的车载系统通信网络。同时,该器件还具有极强的防静电放电(ESD)特性和优越的抗电磁干扰(EMI)能力。其基于固定斜率的斜率控制机制,还可实现在宽频带范围内优越的EMC性能。在XC886作为LIN总线主节点控制器的设计方案中,必须在TLE7259芯片的LIN_BUS引脚与INH引脚之间连接一个1kΩ的电阻和一个反向二极管,并将TLE7259配置成主节点驱动模块。图5所示是系统LIN驱动模块的接口电路。
TLE7259芯片具有等待模式、正常模式和睡眠模式等三个工作模式。上电后。芯片立即进入等待模式,然后可通过EN引脚置1使之进入正常模式。在正常模式,XC886单片机可在TXD LIN管脚输入所需发送的数据流,并通过TLE725芯片转换成LIN总线信号,以控制转换速率和波形,从而降低电磁辐射(EME)。LIN总线的输出管脚(Bus)可通过一个内部终端电阻拉成高电平。TLE725芯片可在LIN总线的输入管脚检测数据流并通过管脚RXD_LIN发送到XC886单片机。在正常模式下,将EN引脚置0可使芯片进入睡眠模式,此时的静态电流不超过8 mA,用户也可以通过LIN总线或本地引脚(WK)进行唤醒,使之重新进入等待模式。
2.2 LIN通信中主节点的软件实现
软件采用C语言模块化编写,易于维护。本设计方案中,LIN总线的传输速率设置为20 kbit/s,可在单主节点和3个从节点之间通讯,支持数据场长度设置为2个字节。第一个字节用于发送主节点控制命令或接收从节点状态信息,后一个字节为预留,可用于用户扩展。