鲁棒且易于实现的串行总线(汽车应用)

时间:2008-09-27 22:10:31

标签: serial-port microcontroller can-bus

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

,您将在汽车嵌入式系统中使用哪种串行通信总线
  • 电气性强
  • 慢速(32 kb / s)
  • 易于编程
  • 易于与微控制器连接

它不会传输太多数据,但需要定期高速传输(100 - 500 Hz)。我发现如果你的地线有噪音,RS-232就不够可靠了。 CAN总线似乎很有趣,但我没有经验。

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

5 个答案:

答案 0 :(得分:9)

您已经选择了AT90CAN128,与其他AVR处理器相比,它的出色功能是支持CAN总线。对于具有数据速率和抗噪声要求的汽车应用,确实​​没有比CAN更好的选择。如果你用CAN之外的其他任何东西进入汽车客户,你最终会花费所有时间来捍卫不使用它的决定。

据说,为了在汽车这样的恶劣环境中提供抗噪能力,你需要使用差分信号的总线。这排除了i2c或SPI,这是不幸的,因为它们符合您的其他要求。正如@Andrew Edgecombe指出的那样,RS-485是可行的。

如果您没有制造商业产品,而是建造一些供您自己使用的东西放入发动机舱,您可以使用USB。 USB可以方便地与乘客舱中的笔记本电脑连接,虽然它不是专为高噪声环境设计的,但它会在相当高的电压下进行差分信号传输。

答案 1 :(得分:3)

为了实现可靠性,您无法通过CANbus(但那时您选择的处理器有何暗示?)

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

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

答案 2 :(得分:1)

除了CAN之外的其他两个很好的选择是LIN和FlexRay。 LIN是一个更简单,更慢的界面,而FlexRay更强大,专为安全关键系统设计,如刹车的实时控制。

有关各种总线选择如何相互关联的精彩概览图表,请参阅此slide

答案 3 :(得分:1)

我总是建议CAN是汽车通信中最好的。

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

答案 4 :(得分:0)

正如其他人所说,CAN是标准的,强大的,更强大的,速度慢等。

如果您需要更大的系统,那么Linux内核甚至可以从版本2.6.15获得支持。