serial-communication - CAN总线协议(protocol)实现

标签 serial-communication can-bus lpc

我想学习和实现CAN BUS协议(protocol)。我已经在软件中使用 MSP430 Launchpad 实现了 UART、SPI、I2C 和单线总线协议(protocol)。现在我想了解CAN Bus协议(protocol)。我有 mBed LPC 1768 Cortex M3 开发板。 mBed 有 Can Bus 库,但我想编写自己的库,以便详细了解它,即我为其他通信协议(protocol)所做的方式。

我无法找到合适的资源开始, Material 似乎散落在网上。任何人都可以指导我如何使用我提供的开发板编写和实现 CAN 总线协议(protocol)。

谢谢

最佳答案

与 I2C 或 SPI 相比,开发 CAN 库相对容易。这是因为您的 Cortex 的 CAN Controller 将处理大多数复杂的事情。

要传输数据,您必须将 ID 和 Data 写入指定的寄存器并设置位以传输数据。

This恩智浦的应用笔记对您非常有用。

我建议您实现以下功能:

  • InitCAN - 这应该设置 CAN 的指定波特率。
  • SetFilters - 大多数 CAN Controller 都带有接收过滤器,所以最好有
  • SendData - 确保您接受 ID_Type 和 RTR 等参数。
  • RecieveData - 这可以是基于阻塞或中断的。

  • 在开始之前,请阅读 CAN 基础知识以了解。应用说明 AN713AN754来自 Microchip 是一个很好的来源。还有 Vector 的网站和 Wikipedia 文章。

    另外,您可以随时在此处或 Electronics.StackExchange.com 上发表您的疑问 :)

    关于serial-communication - CAN总线协议(protocol)实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15189390/

    相关文章:

    c++ - CreateFile() 串行通信问题

    C# 在一个端口上与多个设备进行串行通信

    c++ - 串行通信期间读取的未知字节

    Linux CAN 总线驱动程序

    can-bus - 使用 ELM327 接收 CAN 报文时的流量控制报文

    c++ - 函数在 lpc824 中返回错误值

    python - Li-Fi通信中的编码/解码问题

    bluetooth - 福特 CAN 数据和 ELM327

    c - 微 Controller 中的图像接收