FPGA实现的CAN总线-USB通信接口设计

7 下载量 123 浏览量 更新于2024-08-30 1 收藏 292KB PDF 举报
"该文介绍了一种基于FPGA的CAN总线通信接口设计,用于解决计算机与CAN总线之间的通信问题。传统的CAN转换器多基于单片机,扩展性有限,而FPGA方案则提供了更灵活和可扩展的解决方案。在小卫星相机下位机系统中,需要处理多种总线通信,因此这种设计尤为重要。文中详细阐述了系统硬件组成,包括FPGA的作用、USB接口电路以及CAN总线接口电路。" 文章中提到的知识点包括: 1. **CAN总线**:CAN(Controller Area Network)总线是一种现场总线,广泛应用于汽车、工业控制和航天领域,因其低成本、高容错能力和高速通信能力而受到青睐。 2. **FPGA**:FPGA(Field-Programmable Gate Array)是可编程逻辑器件,能够在设计中实现灵活的硬件配置,本文中用于构建CAN总线与计算机之间的通信接口。 3. **CAN总线接口设计**:采用Philips公司的SJA1000作为CAN控制器,PCA82C250作为收发器,并通过6N137进行光电隔离以增强抗干扰能力。SJA1000工作在INTEL模式,与复位芯片MAX706T的RESET引脚相连。 4. **USB接口**:使用CYPRESS公司的EZ-USB芯片CY7C68013A,支持USB2.0协议,提供高速数据传输,其SLAVE FIFO异步通信方式满足了与CAN总线的兼容性需求。 5. **FPGA内部设计**:FPGA内部包含FIFO缓存,用于临时存储CAN总线接收的数据,然后将其转换为适合USB传输的格式。 6. **系统硬件结构**:整个系统由FPGA为核心,连接USB接口电路和CAN总线接口电路,形成一个可以双向通信的接口,允许计算机与CAN总线设备之间的数据交换。 7. **系统应用背景**:在小卫星相机下位机系统中,需要与多种总线(如CAN、RS422/RS485)进行通信,这样的设计提高了系统的调试效率和兼容性。 8. **单片机局限性**:传统的CAN转换器常基于单片机,通常只能处理单路CAN总线,扩展性较差,而FPGA方案能够提供更好的扩展性和适应性。 9. **USB固件程序**:配合USB控制器工作的固件程序负责生成控制线PA0~PA1的信号,实现USB与FPGA之间的读写命令。 10. **EEPROM**:24LC128 EEPROM用于存储USB固件程序,确保在设备启动时能够正确加载和执行。 通过以上设计,基于FPGA的CAN总线通信接口不仅实现了高速、可靠的通信,还提升了系统的可扩展性和灵活性,适应了多总线环境下的通信需求。