CAN总线,全称为控制器局域网络,它专为满足工业过程控制设备和监控设备之间的通信需求而设计。这种总线式串行通讯网络不仅支持高速数据传输,还具备高抗电磁干扰性和错误检测功能。它被广泛应用于汽车电子控制系统、电梯控制系统、安全监控系统、医疗仪器、纺织机械以及船舶运输等多个领域。
### 主要特性
- **低成本**:CAN总线使用的硬件和软件成本相对较低,使得它成为经济高效的选择。 - **远距离传输**:在适当条件下,CAN总线可以支持长达10公里的数据传输。 - **高速数据传输速率**:在短距离内,CAN总线能够实现高达1mbps的数据传输速率。 - **选择性接收**:通过报文ID,节点可以选择接收或屏蔽特定的报文。 - **可靠的错误处理**:CAN总线具有强大的错误检测和处理机制,确保数据的准确性和完整性。 - **自动重发机制**:当发送的信息在传输过程中被破坏时,CAN总线会自动重发信息。 - **节点自我保护**:在错误严重的情况下,节点可以自动退出总线,避免影响整个网络的运行。
### 嵌入式系统的CAN接口电路
在嵌入式系统中,CAN接口电路设计是关键部分。以嵌入式微处理器S3C44BOX为例,其CAN接口电路图中,ARM和SJA1000通过总线方式连接。由于ARM的信号电平为3.3伏,而CAN总线控制器的电平为5伏,因此需要使用电平转换芯片QS34X245来实现信号电平的转换。
QS34X245不仅具备电平转换功能,还是一种总线开关和隔离器件。它提供了32位高速CMOS兼容的总线开关,可以根据输出使能端的不同状态,控制总线A和总线B的连接或隔离。此外,为了兼容ARM非复用总线和SJA1000的复用总线,需要通过逻辑产生地址锁存信号ALE。这个信号通常由芯片GAL22V10产生。
在写入SJA1000寄存器时,首先向总线的一个地址写入数据作为地址,此时读写信号无效,ALE信号变化以产生锁存信号;接着写入另一个地址,此时读写信号有效,作为数据。这一系列逻辑完全由GAL产生。
为了确保CAN总线的稳定运行,还需要在两线之间加入一个120欧姆的电阻。
### 结语
随着自动化和电子技术的不断发展,CAN总线作为一种高效、可靠的通信网络,其应用范围将继续扩大。对于嵌入式系统开发者而言,深入理解CAN总线的原理和接口电路设计,将有助于开发出更加稳定和高效的系统。
CAN总线概述
CAN总线即控制器局域网络,是现场总线之一,由德国Bosch公司为汽车的监测、控制系统而设计的总线式串行通讯网络,适合于工业过程控制设备和监控设备之间的互联。是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。主要应用于汽车电控制系统、电梯控制系统、安全监控系统、医疗仪器、纺织机械、船舶运输等方面。CAN具有下下列主要特性:①低成本;②远距离传输(长达lOKm);③高速的数据传输速率;④可根据报文的ID决定接收或屏蔽该报文;⑤可靠的错误处理和检错机制;⑥发送的信息遭到破坏后,可自动重发;⑦节点在错误严重的情况下具有自动退出总线的功能。
嵌入式系统的CAN接口电路
图2是嵌入式微处理器S3C44BOX的CAN接口电路图。如图所示,ARM和SJA1000以总线方式连接,由于ARM信号为3.3伏,而CAN总线控制器电平为5伏,所以所有信号之间均需要电平转换,本例中使用了QS34X245作为电平转换芯片。 QS34X245为80引脚的双例直插芯片,它既有电平转换功能(5V变到3.3V),又是一个总线开关和隔离器件。QS34X245内提供一组32位高速CMOS兼容的总线开关,当输出使能端OEn(n为1~4)为低电平时,开关通,连能总线A和总线B;当输出使能端OEn为高电平时,则开关断开,总线 A和总线B隔离。OE1控制总线A和总线B的低8位(即A7~A0和B7~B0),OE2控制A15~A8和B15~B8,OE3控制A23~A16和 B23~B16,OE4控制A31~A24和B31~B24。由于ARM总线非复用,而SJA1000总线复用,所以必须通过逻辑产生地址锁存信号 ALE,在本例中该信号由芯片GAL22V10产生。SJA1000的片选、读写信号均采用arm总线信号,ALE信号由读写信号和地址信号通过GAL产生。在写SJA1000寄存器时,首先往总线的一个地址写数据,作为地址,读写信号无效,ALE变化产生锁存信号;然后写另外一个地址,读写信号有效,作为数据。上述逻辑完全通过GAL产生。此外,CAN总线需要在两线问加一个120欧电阻。