● 摘要
目前在国际上,尤其是欧洲和美国,CAN总线已经被广泛应用于各行各业,成为一项成熟实用的技术。而在我国,对CAN总线技术的应用尚处在起步阶段,主要集中于过程控制领域。国内各行业所使用的CAN总线器件中的核心模块——CAN总线控制器芯片均为进口,核心技术并没有自主知识产权。而设计出一个独立的CAN总线控制器的IP核,不但可下载到FPGA中成为产品马上投入使用,而且在对IP核进行一定的改进之后可以流片成为具有自主知识产权的芯片。这对实现CAN总线技术的国产化具有一定的意义。 基于上述思想,本研究设计了一个独立的CAN总线控制器模块,该模块完全符合CAN总线通讯协议,可以将其通过FPGA实现。在本设计中,将CAN总线控制器总共划分为八个主要的功能模块:位时序逻辑(Bit Timing Logic)、位流处理器(Bit Stream Processor)、寄存器控制(Control Registers)、验收滤波器(Acceptance Filter)、数据缓存器(Message Buffer)、接口控制逻辑(Interface Management Logic)、错误管理逻辑模块(Error Management Logic)、波特率预分频模块(Baudrate Prescalar)。在使用Verilog硬件描述语言编写完所有模块的代码后,使用软件进行仿真。通过检验仿真的结果,确定了代码的正确性。最后进行了综合与实现。 通过仿真,可以验证设计出的CAN总线控制器能够按照CAN总线通讯协议接收发送各种数据帧,并通过仿真验证了错误帧、过载帧的产生;能够正确识别CAN总线通讯协议中所定义的各种错误情形,并做出相应的标示;资源使用率满足要求,并未占用过多资源。