在CAN总线接口硬件设计中,主要是CAN总线控制器与FPGA以及CAN总线控制器与CAN总线收发器之间的接口电路设计。在设计时,相比于采用单片机作为微处理器的设计,FPGA具有丰富的I/O端口,为了使FPGA的3.3V I/O接口电平与SJA1000的5 V TTL电平标准相匹配,在FPGA与SJA1000连接时需要使用74ALVC164245电平转换器,这样CAN总线控制器SJA1000的AD0~AD7、片选信号CS、RD、WR、ALE、INT、MODE分别经过电平转换器再与FPGA的I/O相连。为了增强抗干扰能力,总线控制器SJA1000的发送输出端TX0与接收输入端RX0分别经集成光电耦合器6N137,与总线收发器PCA82C250的TXD和RXD相连,PCA82C250的CANH、CANL端口直接与CAN物理总线相连。PCA82C250是CAN总线控制器和物理总线之间的接口,具有可向总线差动发送数据和从CAN总线控制器差动接收数据的功能。另外,SJA1000的RX1引脚与PCA82C250的VREF引脚相连,使用输入比较器旁路功能,可减少内部延时,增加正常通信的总线长度。