如果您的主要选择标准是:

  • 电气性能稳定
  • 慢速(32 kb/s)
  • 易于编程
  • 易于与微控制器连接

它不会传输太多数据,但需要定期高速传输(100 - 500 Hz)。我发现如果地线上有噪声,RS-232 就不够可靠。CAN总线看起来很有趣,但我没有这方面的经验。

我们目前对 AVR AT90CAN128 微控制器的组合感兴趣。

有帮助吗?

解决方案

您已经选择了 AT90CAN128,与其他 AVR 处理器相比,其突出特点是支持 CAN 总线。对于满足您的数据速率和抗噪要求的汽车应用来说,确实没有比 CAN 更好的选择了。如果您使用 CAN 以外的任何技术来接触汽车客户,您最终将花费所有时间来捍卫不使用 CAN 的决定。

话虽如此,为了在汽车等恶劣环境中实现抗噪性,您需要使用差分信号的总线。这排除了 i2c 或 SPI,这是不幸的,因为它们满足您的其他要求。正如 @Andrew Edgecombe 指出的那样,RS-485 是可行的。

如果您不是构建商业产品,而是构建一些供您自己使用并放入发动机舱的东西,那么您可能可以使用 USB。USB 可以轻松地与乘客舱中的笔记本电脑连接,尽管它不是为高噪声环境而设计的,但它会在相当高的电压下发出差分信号。

其他提示

为了获得全面的可靠性,您不能超越 CANbus(但这在某种程度上是由您选择的处理器暗示的?)

根据您想要连接的内容,这可能非常简单 - 基础层协议非常简单。但是,如果您想与任何其他非专有设备通信,您将必须实现更高的协议(例如CANopen)。

但如果 CANbus 不合适,那么我会推荐 RS485 或 RS422(取决于您的拓扑)。如果您想要实现的只是点对点通信,那么它与 RS232 相同。(如果您想支持多点通信,则必须将自己的协议层放在顶部。)

除了 是 LIN 和 FlexRay。 是一个更简单、更慢的界面 弗莱克斯雷 更加稳健,专为制动实时控制等安全关键系统而设计。

有关各种总线选择如何相互关联的概览图表,请参阅此 滑动.

我始终认为 CAN 是汽车通信中最好的。

  • 它具有差分线,即使物理层数据传输中存在电气故障,也能承受
  • 它可以提供可靠的速度,在大多数汽车软件应用中提供 500KBaud 速率的速度。
  • 如果您了解 CAN 控制器邮箱和寄存器结构,接口也很容易。

正如其他人所说,CAN是标准的、稳健的、速度较慢等更稳健。

如果您需要更大的系统,Linux 内核甚至从 2.6.15 版本开始就支持它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top