车载总线,通常包含can,can-fd,lin,flexray,most,gmsl千兆多媒体串行链路,以太网,SPI,uart等。汽车总线布线图,如下所示:

android app 支持scheme协议_应用程序

                                                                     车载总线布线图1

android app 支持scheme协议_总线_02

                                                                     车载总线布线图2

android app 支持scheme协议_引脚_03

                                                                                  车载总线布线图3

  1TPCE =1个双绞线 100 Mb/s 以太网。RTPGE =减少的双绞线千兆位以太网

1 can协议简介

 CAN:Controller Area Network,控制器局域网络总线。控制单元通过CAN网络交换数据。它是由德国博世公司于上世纪80年代初,为了解决众多传感器与执行器之间的数据交换而开发的一种串行通讯协议。绝大多数汽车制造厂商采用CAN总线来实现汽车内部控制系统之间的数据通信。

       can是一种总线,也是一种协议。CAN协议和CANOpen协议是两套不同的协议。从软硬件层次来划分,CAN协议属于硬件协议,而CANOpen属于软件协议。CAN网络可以理解为多台CAN设备连接在同一条CAN总线上组合成的网络,其中的CAN设备我们称之为节点。

android app 支持scheme协议_引脚_04

一个CAN节点主要包含三类:MCU应用程序、CAN控制器、CAN收发器。

1.1 MCU应用程序

MCU应用程序我将其分为三块:业务逻辑代码、协议层代码、底层驱动代码。

A.业务逻辑代码:是根据项目需求而定,比如读取一个传感器数据,并对其做出相应逻辑处理。

B.协议层代码:比如CANOpen。

C.底层驱动代码:配置CAN总线相应参数、控制收发的代码。

1.2 CAN控制器

CAN控制器内部结构还是挺复杂的,一般现在CAN控制器都是与处理器集成在一起。

其实对于编程的人来说,无非也就是包含一些控制、状态、配置等寄存器。

比如我们看到有些STM32芯片带有CAN,也就是说CAN控制器已经集成在STM32芯片中了,我们只需要编程操作其中的寄存器即可。

1.3 CAN收发器

CAN收发器:将CAN收发引脚(CAN_TX和CAN_RX)的TTL信号转换成CAN总线的电平信号。

PS:你可以把CAN总线通信认为是UART通过485进行通信:CAN控制器就如UART的控制器,而CAN收发器就如485转换芯片。

2 i2c

I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。

1)在硬件上,I2C总线只需要一根SDA(串行数据线)和一根SCL(串行时钟线),总线接口已经集成在芯片内部,不需要特殊的接口电路。

2)连接到相同总线上的IC数量只受总线最大电容的限制,串行的8位双向数据传输位速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s。

3)总线具有极低的电流消耗,抗高噪声干扰,增加总线驱动器可以使总线电容扩大10倍,传输距离达到15m;兼容不同电压等级的器件,工作温度范围宽。

3 TDM

TDM(TimeDivisionMultiplex)时分多路复用,即在一个传输介质上传输多路数字化信号的技术,具有可靠、快速等特点。在MACH2系统中,TDM总线主要用于传输电压、电流等模拟信号,并具有以下特点:串行通讯连接,最大31个数据槽(每个数据槽32字节)加一个校验和数据槽,时钟频率达10.6MHz(32Hz/3),数据单向传输,一发多收。

4 GMSL

GMSL(Gigabit Multimedia Serial Links),中文名称为千兆多媒体串行链路,是Maxim公司推出的一种高速串行接口,适用于音频,视频和控制信号的传输。

通信介质支持同轴电缆以及屏蔽双绞线,使用50Ω同轴电缆或者100Ω屏蔽双绞线(STP)时,长度可达15m甚至更长

其核心技术为串行器/解串器技术,首先通过串行器将并行数据流转为串行数据流,然后通过更高的频率进行传输,之后通过解串器将接收到的串行数据流转换为并行数据流。

android app 支持scheme协议_数据_05

5 常用总线汇总

Can速度高100-500kbps


Lin是低速总线19200bs/9600bs-20kbps


I2C

低速,0-100kbps;

快速,400kbps;

高速,3.4Mbps。

SPI 5Mbps

uart 最高1.5Mbps

通信距离最远可达10km(速率低于5Kbps),速率最高可达到1Mbps(通信距离小于40M)

全双工

半双工,两线

全双工,三线或四线

全双工

CAN用于汽车中的高速和低速网络。

在高安全系数要求的医疗行业中也正在得到普及

LIN仅用于低速网络,如车顶、信号灯控制、汽车顶篷、车门、车窗玻璃、方向盘

方向控制开关、空调、座椅等等这些低速,校验不强的场景

可用来与EEPROM、ADC、DAC和LCD这类慢速器件进行通信

常用于EEPROM或数模变换器的通信中

UART用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM通信

CAN收发器用的是TJA1050

LIN收发器用的是TJA1020

物理层电平协议,Can是2.5V上下1V

Lin是12V

                                                                            车载串行总线对比

       

android app 支持scheme协议_总线_06

android app 支持scheme协议_数据_07

串行相比于并行的主要优点是要求的线数较少。例如,用在汽车工业中的LIN串行总线只需要一根线来与从属器件进行通信,Dallas公司的1-Wire总线只使用一根线来输送信号和电源。较少的线意味着所需要的控制器引脚较少。集成在一个微控制器中的并行总线一般需要8条或更多的线,线数的多少取决于设计中地址和数据的宽度,所以集成一个并行总线的芯片至少需要8个引脚来与外部器件接口,这增加了芯片的总体尺寸。相反地,使用串行总线可以将同样的芯片集成在一个较小的封装中。

         但另一方面,并行总线比串行速度快。例如,Rambus公司的“Redwood”总线速度可高达6.4GHz,而最高的串行速度通常几Mbps

android app 支持scheme协议_引脚_08

android app 支持scheme协议_数据_09