论文部分内容阅读
现场总线技术因其分散化、网络化的结构和设备智能化的特点,节省了硬件上的开销、安装成本和空间,同时更便于硬件设备的维护,使不同厂家硬件的兼容性也得到了提升,改善了系统的抗干扰能力,因而在世界上许多汽车厂家得到了广泛应用。控制器局域网(CAN)就属于现场总线技术范畴,现已被广泛应用于汽车通讯和控制系统中,并可支持多节点、多主控同时发送。传统CAN通信通常是在板级电路上通过MCU和独立的CAN控制器构成通信节点,而板级分立式系统相比于片上系统,在实时传输性和可靠性等方面均有一定差距。为了改善这一点,本文基于MIPS指令集的RISC CPU,研究片内CAN控制器的设计及FPGA实现。基于对主流CAN2.0B总线协议的研究分析,本文采用“自顶向下”的方法划分出CAN控制器的硬件电路结构,主要包括接口管理、收发缓冲器、位时序控制、位流处理控制、验收滤波及错误管理等模块,并使用Verilog HDL硬件描述语言完成CAN控制器各模块电路的设计。然后以Wishbone为SoC片上总线,按照Wishbone协议实现MIPS的Wishbone接口、指令和数据存储器,并基于Ubuntu搭建MIPS交叉编译环境。最终针对所搭建的MIPS CPU软硬件环境,进一步复用之前的CAN控制器和UART等IP,实现具有CAN的SoC系统。设计完成之后,首先使用Verilog为CAN控制器搭建仿真环境进行功能验证,然后基于Altera的FPGA开发板为SoC实现Nor Flash和SDRAM控制器,从而使用板上Nor Flash和SDRAM芯片作为片外存储。通过Altera的Quartus II编译整个SoC系统并把生成的FPGA配置文件下载到FPGA芯片中,最终在FPGA中实现一个具有CAN功能的片上系统,并与市面上的CAN控制器进行通信验证。验证结果表明,所设计的CAN控制器可以与市面的CAN兼容通信,设计的SoC软硬件环境工作正常,CAN控制器达到设计要求。本文通过采用片上集成的方法优化了板级独立CAN控制器的工作稳定性和实时性,使用Wishbone总线增强了CAN控制器的可移植性和SoC系统的可扩展性,搭建的FPGA验证环境可为其他项目提供参考和借鉴,因而本设计具有良好的发展前景和工程应用价值。