CAN是德国电气商博世公司开发的面向汽车的一种通信协议,问世33年以来,CAN的高性能和可靠性已被认可,并被广泛地应用于工业自动化、船舶、医疗设备、机械工业设备等领域。CAN作为一种现场总线,工作于多主方式,网络中的各节点都可根据总线访问的优先权向总线发送数据,提高了系统的可靠性和灵活性。传统的串口/CAN 转换模块采用以单片机为主处理器的设计,这种设计虽然外设丰富,操作简单,但是因为程序只能顺序执行,导致信号处理速度较慢,实时性较差,并且可编程I/O端口较少,以至于无法满足系统高可靠性和高灵活性的要求。
       针对上述问题,设计出一种基于FPGA 的串口/CAN 转换模块,该模块设计充分利用FPGA 数据并行处理和硬件资源丰富的优势,极大地提高了数据处理速度和模块参数的在线可配置性,很好地满足了系统对可靠性和灵活性的要求。
       模块框图如下图所示,主要分为电源管理单元、时钟管理单元、CAN 控制单元、CAN 总线驱动单元、CAN 电气隔离单元、电平转换单元、存储单元和FPGA逻辑编程单元。其中,电源管理单元和时钟管理单元分别提供模块各个单元的工作电源和工作时钟;CAN 控制单元完成CAN 总线的协议底层以及数据链路层;CAN 总线驱动单元完成CAN 总线的物理层,提供CAN 总线差分驱动能力;CAN 电气隔离单元用于对CAN 总线进行电气保护;电平转换单元实现数字端口之间的电平匹配;存储单元存储模块相关参数;FPGA 逻辑编程单元完成数据收发、数据转换等逻辑设计。
1.jpg
      在现代数字通信领域中,基于FPGA 的通信架构已成为设计主流,以FPGA 为主处理器,充分利用FPGA 的全面逻辑可编程性和信号处理的高度并行性,从而实现数据的快速收发和转换。