AN和LIN相关的内容很多,今天仅对几年前困扰过我的一个疑问进行说明。
  以前最常见的通迅方式为CAN和LIN,但现在也有很多其他的通讯方式了,而这两种通讯方式仍使用广泛。
  前几年常听人说CAN的成本和LIN差不多,所以没必要用LIN;而那时又有人说CAN要收发器LIN不需要了,所以LIN还是便宜不少,当时真是很晕乎的。后来看到CAN确实要收发器,而LIN其实也是要的,只是某种情况下被集成了而以。
  为了更好的理解这个问题,了一张飞思卡尔的图来说明。从左往右有4个图:第一张图中是单独的收发器,MCU通过收发器连至CAN总线上,第二张图即LDO与CAN收发器集成了,第三张图相对第二张为增加了中等的功能安全(Medium Functional Safety)功能,最后一张图提升了功能安全的等级及增加了SMPS等。

  显然,从理论上说CAN和LIN的物理架构决定了其肯定要有一个类似于收发器的东西来实现通迅功能,但是这个收发器可集成到其他部件中。集成越来越多的功能是汽车电子芯片发展趋势之一,且一般来说,2个分开的器件集成到一起实现某个功能比仅仅只将它们拼凑到一块来实现成本要低些。因此收发器并非不存在,只是集成到别的地方去了,特定场合下简单的说LIN不要收发器不能说它不对,因为原设计可能本来就有自带的LIN还未被利用上,但这种说法在技术上却有些容易误导不明真相者。目前很多SBC(System Basic Chip)都有集成LIN收发器和CAN的收发器,如飞思卡尔MC33909。
  下图为一个SBC+MCU的框架示意,SBC带了4路LIN、1路CAN,MCU直接从SBC读取这些CAN、LIN的信息而不需要再增加单独的收发器。如果这些CAN和LIN不够用,则需自搭电路、增加分立的收发器来实现,图中为增加了2路LIN和1路CAN的示意。

  在实际设计中,整车厂不需要特别关注哪个芯片带了多少路LIN还是CAN,他们主要还是关注自己的车上需要多少路、每路上挂一些什么模块;但如果车厂想自己指定产品的芯片,则需提前对相关芯片的信息进行统一搜集和了解,以争取最高的性价比。

A.01.12—模块的输出—通讯(CAN&LIN)的更多相关文章

  1. A.01.10—模块的输出—PWM高端输出

    PWM高端输出比低端输出用得多,如上次提到的卤素灯的控制均是采用高端输出的. PWM高端输出与PWM低端输出的差异就像固态高端输出与固态低端输出的差异类似,从线路失效后对用户的影响来看:高端输出为控制 ...

  2. A.01.09—模块的输出—PWM低端输出

    PWM输出在汽车上的应用也比较多,它有三种不同的实现方式. 第一种由软件实现,即软件设定对一个输出口拉高和拉低的时间,形成时高时低的PWM控制:但这种方式目前用得不多,这是由使用需求和软件本身的特性决 ...

  3. A.01.11—模块的输出—输出复用和可配

    对于输入来说,高边输入与低边输入可配,那对于输出来说,它有哪些可配的情况呢. 下图中展示了2种常见的类型. 第一种为同一驱动芯片内部的情况.对于OPL与ODL,即PWM低端输出和固态的低端输出,它们是 ...

  4. Python模块01/自定义模块/time模块/datetime模块/random模块

    Python模块01/自定义模块/time模块/datetime模块/random模块 内容大纲 1.自定义模块 2.time模块 3.datetime模块 4.random模块 1.自定义模块 1. ...

  5. android源码环境下用mmm/mm编译模块,输出编译log到文件的方法

    android源码环境下用mmm/mm编译模块,输出编译log到文件的方法 1,在android目录下直接用mmm命令编译, log信息保存在android目录下 mmm packages/apps/ ...

  6. 数据分析01 /numpy模块

    数据分析01 /数据分析之numpy模块 目录 数据分析01 /数据分析之numpy模块 1. numpy简介 2. numpy的创建 3. numpy的方法 4. numpy的常用属性 5. num ...

  7. python 小兵(12)模块1

    序列化 我们今天学习下序列化,什么是序列化呢? 将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 为什么要有序列化模块: 比如,我们在python代码中计算的一个数据需要给另外一段程序使用 ...

  8. Java1.0-1.12各个版本的新特性

    JDK Version 1.0 1996-01-23 Oak(橡树) 初代版本,伟大的一个里程碑,但是是纯解释运行,使用外挂JIT,性能比较差,运行速度慢. JDK Version 1.1 1997- ...

  9. 01. Numpy模块

    1.科学计算工具-Numpy基础数据结构 1.1.数组ndarray的属性 NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成:① 实际的数据② 描述这些数据的元数据 注意数组格式, ...

随机推荐

  1. Netty学习笔记(一) 实现DISCARD服务

    官方那个给出的介绍是:Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序.然后我们简单理解 ...

  2. 07-Vue的基础使用

    vue的介绍 前端框架和库的区别 nodejs的简单使用 vue的起步 指令系统 组件的使用 过滤器的使用 watch和computed 钩子函数 渐进式的JavaScript框架 vue react ...

  3. Redis事务涉及的watch、multi等命令

    Redis Watch 命令 作用: 用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断. 用法: redis 127.0.0.1:6379 ...

  4. NSTimer 不工作 不调用方法

    比如,定义一个NSTimer来隔一会调用某个方法,但这时你在拖动textVIew不放手,主线程就被占用了.timer的监听方法就不调用,直到你松手,这时把timer加到 runloop里,就相当于告诉 ...

  5. errno 的使用

    error是一个包含在<errno.h>中的预定义的外部int变量,用于表示最近一个函数调用是否产生了错误.若为0,则无错误,其它值均表示一类错误. perror()和strerror() ...

  6. Python面试笔记二

    一.算法 1.归并排序 2.快速排序 3.算法复杂度 4.哈希表数据结构 二.数据库 1.设计一个用户关注系统的数据库表 1.设计一个用户关注系统的数据库表,写三个相关的SQL语句两张表,一张user ...

  7. Spark SQL中列转行(UNPIVOT)的两种方法

    行列之间的互相转换是ETL中的常见需求,在Spark SQL中,行转列有内建的PIVOT函数可用,没什么特别之处.而列转行要稍微麻烦点.本文整理了2种可行的列转行方法,供参考. 本文链接:https: ...

  8. golang http自动转为https 如何跳过证书检查

    func SendReq(req *http.Request,result interface{}) error { tr := &http.Transport{ TLSClientConfi ...

  9. 正则表达式regex(golang版)

    代码: //File: main.go package main import ( "fmt" "regexp" ) func main() { r := re ...

  10. Kafka简介、基本原理、执行流程与使用场景

    一.简介 Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统. 它最初由LinkedIn公司开发,Linkedin于201 ...