发明内容
本发明主要是解决现有技术所存在的无法诊断节点是否出现故障、可能对设备造成误控制的技术问题,提供一种可以诊断节点或者网络是否出现故障、在出现故障以后停止改变设备状态的FlexRay总线节点。
本发明针对上述技术问题主要是通过下述技术方案得以解决的:一种具有故障诊断功能的FlexRay总线节点,包括微控制器、总线收发模块、隔离电路和ESD模块,所述微处理器与所述总线收发模块连接,所述总线收发模块与所述隔离电路连接,所述隔离电路通过所述ESD模块与FlexRay总线连接,所述微控制器还通过SPI总线与所述总线收发模块连接。
SPI(Serial Peripheral interface,高速同步串行口)是一种标准的四线同步双串行总线,其具有高速、全双工、同步等特点。SPI总线可以使MCU与各种外围设备以串行方式进行通信以交换信息。
微控制器可以通过SPI总线读取总线收发模块内的状态,从而获取错误信息,当读取到错误信息时,对设备进行安全化控制,确保不出现误操作。不同节点具有不同的安全化处理手段,比如发动机为逐渐降低功率,空调为停止工作,安全气囊为弹出操作。
作为优选,所述总线收发模块包括第一FlexRay收发器和第二FlexRay收发器。双通道冗余的连接可以提高数据传输的稳定性。
作为优选,所述ESD模块包括电容C2、电容C3、电容C5、电容C6、电阻R1、电阻R2、电阻R3、电阻R4、电阻R5、电容C8、电容C9、电容C10、电容C11、电阻R6、电阻R7、电阻R8和电阻R9;
所述第一FlexRay收发器的BP端通过电阻R1连接BP-A端,所述FlexRay收发器的BM端通过电阻R4连接BM-A端,所述电阻R2的一端连接BP-A端,另一端同时连接电阻R3的一端和电阻R5的一端,所述电阻R3的另一端通过电容C3接地,所述电阻R5的另一端连接BM-A端,所述BP-A端通过电容C2接地,所述BM-A端通过电容C6接地,所述电容C5跨接在BP-A端和BM-A端之间;
所述第二FlexRay收发器的BP端通过电阻R5连接BP-B端,所述FlexRay收发器的BM端通过电阻R9连接BM-B端,所述电阻R7的一端连接BP-B端,另一端同时连接电阻R8的一端和电阻R105的一端,所述电阻R8的另一端通过电容C9接地,所述电阻R10的另一端连接BM-B端,所述BP-B端通过电容C8接地,所述BM-B端通过电容C11接地,所述电容C10跨接在BP-B端和BM-B端之间。ESD模块可以滤除总线上的信号干扰,防止出现误诊断,同时起到隔离作用。
作为优选,微控制器的TXD_A端连接第一FlexRay收发器的TXD端,微控制器的TXE_A端连接第一FlexRay收发器的TXEN端,微控制器的RXD_A端连接第一FlexRay收发器的RXD端,微控制器的CS_A端连接第一FlexRay收发器的CS端,微控制器的INT_A端连接第一FlexRay收发器的INT端,微控制器的SCLK端同时连接第一FlexRay收发器的SCK端和第二FlexRay收发器的SCK端,微控制器的MISO端同时连接第一FlexRay收发器的SDO端和第二FlexRay收发器的SDO端,微控制器的MOSI端同时连接第一FlexRay收发器的SDI端和第二FlexRay收发器的SDI端,微控制器的TXD_B端连接第二FlexRay收发器的TXD端,微控制器的TXE_B端连接第二FlexRay收发器的TXEN端,微控制器的RXD_B端连接第二FlexRay收发器的RXD端,微控制器的CS_B端连接第二FlexRay收发器的CS端,微控制器的INT_B端连接第二FlexRay收发器的INT端。
SPI总线以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时),也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。
(1)SDO – 主设备数据输出,从设备数据输入
(2)SDI – 主设备数据输入,从设备数据输出
(3)SCLK – 时钟信号,由主设备产生
(4)CS – 从设备使能信号,由主设备控制
其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。
接下来就负责通讯的3根线了。通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。
要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备。这样传输的特点:这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义。
在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。
总线网络通讯时,微控制器可发送、接收FlexRay总线数据,经协议转换、解析等处理后作为内部控制的输入信号或者发送至CAN总线网络。同时微控制器监测与两个FlexRay收发器相连的中断(INT)信号,如果FlexRay收发器发来中断信号,微处理器通过SPI总线读取FlexRay收发器的内部寄存器状态,获知各种错误信息。
FlexRay收发器可通过SPI通讯总线报告的错误信息包括:收发器欠压错误、BP与地短路、BP与电源短路、BM与地短路、BM与电源短路、BP与BM短路、BP或BM断路错误等。
作为优选,本发明的一种具有故障诊断功能的FlexRay总线节点还包括存储电路,所述存储电路与微控制器连接。微控制器在获知总线通讯错误以后将各种故障代码存入存储电路中以便后续的诊断可以获知系统故障的详细原因。
本发明带来的实质性效果是,可以诊断节点与总线之间的通讯网络是否出现故障,在出现故障以后将节点挂起或进行安全化处理,防止误操作,可以存储故障代码方便后续检测和修理,双通道冗余结构可以提高数据传输的稳定性。
实施例:本实施例的一种具有故障诊断功能的FlexRay总线节点,如图1所示,包括微控制器1、总线收发模块2、ESD模块3和存储电路5,微控制器1分别与总线收发模块2和存储电路5连接,总线收发模块2通过ESD模块3与FlexRay总线4连接,微控制器1还通过SPI总线与总线收发模块2连接。
存储电路5为Flash存储电路。
微控制器1为具有FlexRay通讯控制器及SPI通讯模块的单片机MPC560xP。
总线收发模块2包括第一FlexRay收发器和第二FlexRay收发器,第一FlexRay收发器和第二FlexRay收发器都为E910.54芯片,具有SPI通讯功能。
如图2所示,ESD模块3包括电容C2、电容C3、电容C5、电容C6、电阻R1、电阻R2、电阻R3、电阻R4、电阻R5、电容C8、电容C9、电容C10、电容C11、电阻R6、电阻R7、电阻R8和电阻R9;
第一FlexRay收发器的BP端通过电阻R1连接BP-A端,FlexRay收发器的BM端通过电阻R4连接BM-A端,电阻R2的一端连接BP-A端,另一端同时连接电阻R3的一端和电阻R5的一端,电阻R3的另一端通过电容C3接地,电阻R5的另一端连接BM-A端,BP-A端通过电容C2接地,BM-A端通过电容C6接地,电容C5跨接在BP-A端和BM-A端之间;
第二FlexRay收发器的BP端通过电阻R5连接BP-B端,FlexRay收发器的BM端通过电阻R9连接BM-B端,电阻R7的一端连接BP-B端,另一端同时连接电阻R8的一端和电阻R105的一端,电阻R8的另一端通过电容C9接地,电阻R10的另一端连接BM-B端,BP-B端通过电容C8接地,BM-B端通过电容C11接地,电容C10跨接在BP-B端和BM-B端之间。
微控制器1的TXD_A端连接第一FlexRay收发器的TXD端,微控制器1的TXE_A端连接第一FlexRay收发器的TXEN端,微控制器1的RXD_A端连接第一FlexRay收发器的RXD端,微控制器1的CS_A端连接第一FlexRay收发器的CS端,微控制器1的INT_A端连接第一FlexRay收发器的INT端,微控制器1的SCLK端同时连接第一FlexRay收发器的SCK端和第二FlexRay收发器的SCK端,微控制器1的MISO端同时连接第一FlexRay收发器的SDO端和第二FlexRay收发器的SDO端,微控制器1的MOSI端同时连接第一FlexRay收发器的SDI端和第二FlexRay收发器的SDI端,微控制器1的TXD_B端连接第二FlexRay收发器的TXD端,微控制器1的TXE_B端连接第二FlexRay收发器的TXEN端,微控制器1的RXD_B端连接第二FlexRay收发器的RXD端,微控制器1的CS_B端连接第二FlexRay收发器的CS端,微控制器1的INT_B端连接第二FlexRay收发器的INT端。
微控制器监测与两个FlexRay收发器相连的中断(INT)信号,如果FlexRay收发器发来中断信号,微处理器通过SPI总线读取FlexRay收发器的内部寄存器状态,获知各种错误信息。
FlexRay收发器可通过SPI通讯总线报告的错误信息包括:收发器欠压错误、BP与地短路、BP与电源短路、BM与地短路、BM与电源短路、BP与BM短路、BP或BM断路错误等。微控制器在获知总线通讯错误以后将各种故障代码存入存储电路中以便后续的诊断可以获知系统故障的详细原因。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
尽管本文较多地使用了微控制器、总线收发模块、SPI总线等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。