AT89C51CC01单片机是Atmel公司生产的一款8位微控制器,具有内嵌的CAN控制器,适用于实现CAN和LIN网络之间的通信转换。本文将探讨基于AT89C51CC01单片机设计的CAN-LIN网关,并涉及其设计要点和实现方式。 LIN总线(Local Interconnect Network)作为成本较低的串行通信网络,在汽车控制网络中作为一种辅助总线网络被广泛应用于不需求高速和复杂功能的场景,比如智能传感器和制动装置之间的通信。LIN通讯协议基于UART数据格式,并采用单主控制器/多从设备的模式,使用一根12V信号总线和一个无固定时间基准的节点同步时钟线,适合于一些低成本、低速的串行通信需求。 基于AT89C51CC01单片机的CAN-LIN网关设计包括几个核心模块:LIN接口、CAN接口、CAN和LIN的波特率设置、电源模块以及状态指示灯模块。本文提出了以CAN总线为例的设计方案,利用AT89C51CC01单片机的内嵌CAN控制器,采用TJA1020作为LIN总线收发器,和PCA82C250作为CAN总线收发器,设计网关的电路连接。 在硬件设计方面,为了实现CAN节点的电气隔离,以及增强抗干扰能力,单片机的TXDC和RXDC引脚并未直接与PCA82C250A的TXD和RXD引脚相连,而是通过高速光耦6N137连接。光耦部分电路的两个电源VCC和VDD必须完全隔离。这样的设计不仅保证了节点间的电气隔离,而且避免了由于隔离不当而丧失光耦的优势。 软件设计方面,设计包括了主控程序模块、CAN模块软件设计以及LIN模块软件设计。CAN模块的软件设计主要包含三个子函数:CAN初始化(CAN_INIT),CAN接收中断服务(CAN_RE_ISR)和CAN发送(CAN_SEND)。其中,CAN_INIT主要设置CAN通信的波特率和CAN的基本设置,而CAN_RE_ISR负责接收和处理CAN网络的信息,CAN_SEND负责发送信息。LIN模块软件设计包含LIN.H、LIN.C等文件,实现LIN规范的设定、UART波特率设定以及LIN信息的接收和发送。主控程序设计则完成整个网关的信息转发功能,依据接收中断来转发信息。 在实际应用中,为方便调整不同的波特率,设计了一个5位的拨码开关,其中三位用于LIN波特率设置,两位用于CAN波特率设置。此外,系统还包括工作指示灯,用于指示网关的工作状态,以不同的闪烁频率显示接收、发送信号,以及故障状态。 文章最后指出,该基于AT89C51CC01单片机的CAN-LIN网关设计经过现场实验验证,运行良好,工作稳定可靠,已成功应用于实际工作中,为现场总线控制中不同总线网络间的通信提供了有效的解决方案。该设计通过合理的硬件设计和软件编程,确保了CAN和LIN网络间的无缝连接和信息的准确传输,为汽车控制网络及其他低成本串行通信需求提供了有力的技术支持。
- 粉丝: 3
- 资源: 921
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助