图4 lin接口电路 在电路中我们设计了一个5位的拨码开关,由于在各个不同的工作系统中,lin总线和can总线的传输是不一样的,这就需要改换软件,因此在此设计中用一个5位的拨码开关用于波特率设置,三位用于lin波特率设置,两位用于can波特率设置。同时为了展示网关的工作状态,特意设计了工作指示灯,在接收和发送信号时分别以一定的频率闪烁,当有故障出现时,两个灯同时点亮。 为增强can节点的抗干扰能力,单片机的txdc和rxdc引脚并不是直接与pca82c250a的txd和rxd引脚相连,而是通过高速光耦6n137相连(图3)。这样很好的实现了总线上各个节点间的电气隔离,光耦部分电路所采用的两个电源vcc和vdd必须是完全隔离的,否则采用光耦也就失去了意义。 网关软件设计 网关的软件设计主要包括主控程序模块和can模块软件设计以及lin模块软件设计,can模块软件设计主要有三个子函数,一个是can初始化can_init(),另外两个是can_re_isr()和can_send()。can_init()主要是设置can通信的波特率和can基本设置,
2、图3、图4所示。图2 单片机电路图3 can接口电路图4 lin接口电路 在电路中我们设计了一个5位的拨码开关,由于在各个不同的工作系统中,lin总线和can总线的传输是不一样的,这就需要改换软件,因此在此设计中用一个5位的拨码开关用于波特率设置,三位用于lin波特率设置,两位用于can波特率设置。同时为了展示网关的工作状态,特意设计了工作指示灯,在接收和发送信号时分别以一定的频率闪烁,当有故障出现时,两个灯同时点亮。 为增强can节点的抗干扰能力,单片机的txdc和rxdc引脚并不是直接与pca82c250a的txd和rxd引脚相连,而是通过高速光耦6n137相连(图3)。 这样很好的实现了总线上各个节点间的电气隔离,光耦部分电路所采用的两个电源vcc和vdd必须是完全隔离的,否则采用光耦也就失去了意义。