工业以及汽车应用中多种串行总线特性及比较

发布者:平和宽容最新更新时间:2012-12-06 来源: 21IC 关键字:串行总线  数据传输  微控制器 手机看文章 扫描二维码
随时随地手机看文章
    微处理器中常用的集成串行总线是通用异步接收器传输总线(UART)、串行通信接口(SCI)和通用串行总线(USB)等,这些总线在速度、物理接口要求和通信方法学上都有所不同。本文详细介绍了嵌入式系统设计的串行总线、驱动器和物理接口的特性,并为总线最优选择提供性能比较和选择建议。 

    由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与PC软件、开发系统(如仿真器)或网络中的其它设备进行通信。目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。 

    微处理器中常用的集成串行总线是通用异步接收器传输总线、串行通信接口、同步外设接口(SPI)、内部集成电路(I2C)和通用串行总线,以及车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)。这些总线在速度、物理接口要求和通信方法学上都有所不同。本文将对嵌入式系统设计的串行总线、驱动器和物理接口这些要求提供一个总体介绍,为选择最优总线提供指导并给出一个比较图表(表1)。为了说明方便起见,本文的阐述是基于微处理器的设计。
串行与并行相比 

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

    另外,在PCB板设计中并行总线需要更多的线来与其它外设接口,使PCB板面积更大、更复杂,从而增加了硬件成本。此外,工程师还可以很容易地将一个新器件加到一个串行网络中去,而且不会影响网络中的其它器件。例如,可以很容易地去掉总线上旧器件并用新的来替代。 

    串行总线的故障自诊断和调试也非常简单,可以很容易地跟踪网络中一个有故障的器件并用新器件替换而不会干扰网络。但另一方面,并行总线比串行速度快。例如,Rambus公司的“Redwood”总线速度可高达6.4GHz,而最高的串行速度不会超过几个兆赫。

在工业和汽车应用中常用的串行协议 

1. UART 

    UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM通信。 

    a. UART通信 

    UART首先将接收到的并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,后面是7个或8个数据位,一个可用的奇偶位和一个或几个高位停止位。接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。如果选择了奇偶,UART就在数据位后面加上奇偶位。奇偶位可用来帮助错误校验。 

    在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。UART也产生额外的信号来指示发送和接收的状态。例如,如果产生一个奇偶错误,UART就置位奇偶标志。 

    b. 数据方向和通信速度 

    数据传输可以首先从最低有效位(LSB)开始。然而,有些UART允许灵活选择先发送最低有效位或最高有效位(MSB)。 

    微控制器中的UART传送数据的速度范围为每秒几百位到1.5Mb。例如,嵌入在ElanSC520微控制器中的高速UART通信的速度可以高达1.1152Mbps。UART波特率还受发送和接收线对距离(线长度)的影响。 

    目前,市场上有只支持异步通信和同时支持异步与同步通信的两种硬件可用于UART。前者就是UART名字本身的含义,在摩托罗拉微控制器中被称为串行通信接口(SCI);Microchip微控制器中的通用同步异步收发器(USART)和在富士通微控制器中的UART是后者的两个典型例子。 

    c. 计算机中的UART 

    UART是计算机中串行通信端口的关键部分。在计算机中,UART相连于产生兼容RS232规范信号的电路。RS232标准定义逻辑“1”信号相对于地为3到25伏,而逻辑“0”相对于地为-3到-25伏。所以,当一个微控制器中的UART相连于PC时,它需要一个RS232驱动器来转换电平。

2. 同步外设接口 

    同步外设接口(SPI)是由摩托罗拉公司开发的全双工同步串行总线,该总线大量用在与EEPROM、ADC、FRAM和显示驱动器之类的慢速外设器件通信。 

    a. SPI通信 

    该总线通信基于主-从配置。它有以下4个信号:

  • MOSI:主出/从入
  • MISO:主入/从出
  • SCK:串行时钟
  • SS:从属选择

    芯片上“从属选择”(slave-select)的引脚数决定了可连到总线上的器件数量。 

    在SPI传输中,数据是同步进行发送和接收的。数据传输的时钟基于来自主处理器的时钟脉冲,摩托罗拉没有定义任何通用SPI的时钟规范。然而,最常用的时钟设置基于时钟极性(CPOL)和时钟相位(CPHA)两个参数,CPOL定义SPI串行时钟的活动状态,而CPHA定义相对于SO-数据位的时钟相位。CPOL和CPHA的设置决定了数据取样的时钟沿。 [page]

    b. 数据方向和通信速度 

    SPI传输串行数据时首先传输最高位。波特率可以高达5Mbps,具体速度大小取决于SPI硬件。例如,Xicor公司的SPI串行器件传输速度能达到5MHz。 

    c. SPI与UART比较 

    SPI通信快于UART通信,两者都可以用在中等速度外设的通信中,例如非易失性EEPROM存储器。然而,SPI更常用于EEPROM或数模变换器的通信中。 

    有些UART能支持SPI通信,在这种情况下,会用一个通用IO作为从属选择引脚。

3. I2C总线 

    I2C是由飞利浦公司开发的双线同步总线。像SPI一样,该总线可用来与EEPROM、ADC、DAC和LCD这类慢速器件进行通信。 

    a. I2C通信 

    I2C是一个半双工、多主总线,该总线网络有一个或几个主控器件和很多个从器件。信息由两条串行线传输:串行数据线(SDA)和串行时钟线(SCL)。图1显示了使用两个主控和三个从器件相连接的例子。 

    网络中的每一个器件都预指定一个7位或10位的地址。飞利浦会给器件制造商分配地址,也有一个特定的地址用于高速通信,以及一个通用呼叫地址用于与网络中所有器件的通信。10位寻址的优点是允许更多的器件(高达1024个)布置在网络中。然而,总线中器件的数目取决于总线的电容量,必须限制在400pF以内。         

    主控器件发起数据传送,并提供用于通信的时钟信号。通信开始于SCL为高电平时SDA由高到低的转换,紧接着是一个7位或10位的从地址,一个数据方向位(R/W),一个应答位和停止状态。停止状态定义为在时钟信号为高时数据线电平由低到高的转换。每一个数据字节长度为8位,单次传送的字节数并没有限制。

    由于I2C是一个多主总线,因此可能有两个或更多的主控器件同时试图访问总线,在时钟信号为高电平时在总线上置“1”的主控器件赢得总线仲裁。 

    I2C有三种不同的运行模式:标准、快速和高速模式。在使用快速和高速模式时,可能某个从属器件不能像主控器件那么快地处理数据。此时,从属器件会将SCL线拉至低电平来保持总线,这迫使主控器件进入等待状态,直至从属器件准备就绪。 

    b. 数据方向和通信速度 

    数据传输首先从最高位开始。I2C总线设计用于三种数据传输速度,每个都向下兼容性:

  • 低速,数据传输率为0到100kbps;
  • 快速,数据传输率可以高达400kbps;
  • 高速,数据传输率可以高达3.4Mbps。

    c. I2C与SPI比较 

    I2C和SPI都能用于低速器件的通信,而SPI的数据传输速率高于I2C。此外,SPI具有一个内在地址功能,不需要设计一个额外的寄存器来测试地址,从而减少软件和硬件的设计开销。

4. 控制器区域网络 

    控制器区域网络(CAN)是一个多主异步串行总线。由于它具有优良的错误处理机制及可靠的数据传送性能,该总线在汽车工业中非常普遍,在高安全系数要求的医疗行业中也正在得到普及。 

    CAN最初由德国的Robert Bosch公司开发,提供给汽车电子系统所用的低成本通信总线,现在已经成为国际标准,被采用为高速应用的ISO11898标准和用于低速应用的ISO11519标准。 

    a. CAN通信 

    当总线空闲时,任何CAN节点都可以开始数据发送。如果两个或更多的节点同时开始发送,就使用标识符来进行按位仲裁以解决访问冲突。CAN是一个广播类型的总线,所有节点都接收总线上的数据,硬件上的过滤机制决定消息是否提供给该接点用。 
    b. 四种消息帧的类型 

    数据帧:该帧从一个发送器承载数据到一个接收器。根据CAN规范有两种数据帧格式,它们的唯一本质区别在于标识符的长度:CAN标准帧,也称为CAN2.0A,支持11位长度的标识符;另一个是CAN扩展帧,也称为CAN2.0B,支持29位长度的标识符。图2显示了两种规范的CAN数据帧。 

    远程帧:此帧由一个接收CAN节点发送,用来请求带有远程帧中规定的标识符的数据帧。 

    错误帧:此帧将任何总线错误通知其它单元,在接收到这个帧时发送器会自动进行消息重发。 

    超载帧:超载帧由一个忙的CAN节点送出,以请求在前后数据帧之间增加一个额外的延迟。 

    c. CAN硬件术语 

    基本CAN(Basic CAN)控制器:这是一种廉价的CAN控制器,具有有限的发送/接收消息缓冲器,以及有限的CAN消息过滤机制。 

    完全CAN(Full CAN)控制器:完全CAN是一个高成本、高性能的CAN控制器,具有能缓冲8个或更多消息的缓冲器用于接收和发送。例如,富士通的集成CAN微控制器能提供16个消息缓冲器用于接收和发送。此外,富士通的MB90443微控制器能灵活地将两个CAN控制器的消息缓冲器组合在一个中,以形成能缓冲32个消息的缓冲器。 

    标准CAN控制器:该CAN控制器能够处理仅有11位标识符的消息。 

    扩展CAN控制器:该控制器能够处理含有11位和29位标识符的消息。 

    时间触发CAN(TTCAN)控制器:该CAN控制器根据时间和事件的触发来安排CAN消息,增强了CAN网络的总体性能和行为的确定性。 [page]

    d. 数据方向和通信速度 

    数据字节的传输首先从最高位开始。一个8位的数据字节能在一次发送中进行传输,最大的CAN总线速度是1Mbps。 

    e. CAN在汽车中的应用 

    图3的例子显示了CAN网络是如何通过富士通的16位CAN微控制器在汽车中应用。 
    f. 物理接口 

        大多数CAN微控制器需要一个外部收发器来连接物理总线。目前市场上提供以下一些收发器: 

  • 高速CAN收发器有飞利浦的82C251,TI的SN65/75LBC031,Bosch的CF150,C250,Unitrode的UC5350;
  • 低速CAN收发器有飞利浦82C252、TJA1053,西门子TLE 6252G;
  • 单线CAN收发器有飞利浦AU5790,英飞凌TLE 6255,Delphi DK166153。

5.本地互连网络 

    本地互连网络(LIN)是一个低成本、单线串行总线,能执行全双工串行通信。LIN用在汽车的分布式电子系统中,例如与智能传感器和传动器的通信。LIN协议能采用低成本的UART/SCI接口来实现,几乎所有的微控制器都提供这些接口。 

    a. LIN通信 

    LIN网络由一个主控和多个从器件组成,主控器件发起所有的通信。 

    所有节点执行包括发送和接收任务在内的从属通信任务。此外,主节点执行主控发送任务,主控任务能决定什么时候、哪一个帧将在总线上传输。在该方式中,没有总线仲裁,并且在最坏情况下每个消息的时间很容易计算。当一个消息帧发送时,在接收和过滤标识符后,仅有一个从器件得到激活。 

    总线上的所有消息以帧的形式发送,帧由一个帧头和响应字段(response field)组成。主控器件始终在总线上发送帧头,帧头至少由一个13位字段、一个同步字节和一个6位标识符组成,该标识符的范围为0到63。响应字段由两个、四个和八个数据字节和具有倒置8位和的校验和字段,以及所有的数据字节和标识符组成。 

    图4显示了在一个消息帧上所有字段的排列顺序。 

    b. 数据方向和通信速度 

    只有很少微控制器集成有专用的LIN硬件,大多数供应商用SCI或UART来提供支持。因为LIN物理层是一个从汽车自诊断用ISO9141标准引出的单线12V总线,所以需要一个外部LIN收发器来转换电平。例如当前市场上已有供货的摩托罗拉IMC33689 LIN和英飞凌公司的TLE6259-2G收发器。 

    d. CAN与LIN的比较 

    CAN和LIN两者都使用在汽车工业中。CAN用于汽车中的高速和低速网络,而LIN仅用于低速网络,如门控制单元。在很多方面,CAN比LIN更贵也更可靠,必需在可靠性和为设计硬件与软件支付额外成本之间进行权衡。由于LIN的成本较低且容易在UART中实现,故在低速网络应用方面LIN有望替代CAN。

6. 其它通用串行总线 

    用在微控制器工业中的其它总线有RS422、RS485、USB和Microwire. 

    RS422和RS485通信可以用一个UART来执行。因此,在用于这些总线时微控制器中不需要增加另外的硬件。 

    USB总线的普及性极大地鼓舞了微控制器制造商把USB控制器集成到他们的微控制器中。将外围器件加到USB总线中是很容易的,并不需要重自举系统。Cypress半导体公司和其它业界主导厂商都提供各种系列USB芯片来满足市场的需要。 

     国家半导体公司(NSC)开发的单线总线Microwire用在许多微控制器和像EEPROM这类非易失性存储器,以及ADC中。该总线能像SPI一样提供同步通信,可用在使用SPI的地方。有些微控制器供应商通过使用UART来支持Microwire总线。 

    FlexRay是一种在汽车工业中即将推出的新型总线,可用在使用CAN总线的地方,该总线的速度是CAN总线的10倍,可以达到10Mbps。目前微控制器制造商正在努力开发具有FlexRay总线的器件。

总线选择准则 

    不同的应用在选择总线的标准方面并不同,下面是一些进行总线选择的通用参考准则: 

    1. 评估使用不同串行总线在网络上连接各种器件的系统成本。例如,在汽车应用中,一个只需要控制功能的系统可以用像LIN这类低成本的串行总线来管理。 

    2. 在效率、速度和可靠性方面确定对你最重要的性能。例如,对于一个安全关键系统来讲,可靠性是极为重要的,故而CAN是较好的选择。 

    3. 确定在网络上将连接多少器件,以及总线将可能具有的电容量。有些串行总线对连在网络上的器件数目有限制。 

    4. 注意器件间的距离,有些串行总线只支持短距离通信。 

    5. 如果用在汽车中,CAN或LIN是较好的选择。由于它们具有很强的鲁棒性,因此具有较强的容故障能力和传输可靠性。

关键字:串行总线  数据传输  微控制器 引用地址:工业以及汽车应用中多种串行总线特性及比较

上一篇:利用CAN收发器SN65HVD1050提高CAN网络的安全性
下一篇:利用电荷泵为高速CAN收发器供电

推荐阅读最新更新时间:2024-05-02 22:28

提高MSP430G系列单片机的Flash 擦写寿命的方法
摘要 在嵌入式设计中,许多应用设计都需要使用EEPROM 存储非易失性数据,由于成本原因,某些单片机在芯片内部并没有集成EEPROM。MSP430G 系列处理器是TI 推出的低成本16 位处理器,在MSP430G 系列单片机中并不具备EEPROM。为了存储非易失性数据,MSP430G 系列处理器在芯片内部划分出了256 字节的Flash 空间作为信息Flash,可用于存储非易失性数据,但是由于Flash 与EEPROM 在擦写寿命上存在一定差距,所以在实际应用中,这种应用方式并不能够满足所有客户的需求。本应用笔记介绍了使用代码区域Flash 来模拟EEPROM,通过一定的软件处理算法,可以大大增加数据存储周期的一种方法。本文
[嵌入式]
提高MSP430G系列<font color='red'>单片机</font>的Flash 擦写寿命的方法
基于单片机的X-γ射线检测报警系统的研究
核技术在给社会带来巨大利益的同时,也影响着我们的健康与我们的生存环境,经常带来人员伤亡与环境污染等事故。在工业生产、医疗检测及科学试验过程中同位素与射线装置辐射屏蔽的不完全,使工作人员或多或少地会受到一定的辐射影响。在核技术为我们的生产和生活提供极大的便利同时,我们应该考虑的是如何合理、安全的使用核技术,监测环境辐射剂量率,保护人民的健康。因此,研制一种便携的、稳定的、高性能的用于环境的X- 射线检测报警系统是非常具有意义的。 1 系统组成及原理 1.1 系统组成 X- 射线检测报警系统硬件组成包含了电源电路、显示模块、按键电路、报警电路、探测器、串行口通讯电路组成。如图1所示,结合当前X- 射线检测报警系统具有的便携,人机交互
[单片机]
基于<font color='red'>单片机</font>的X-γ射线检测报警系统的研究
意法发布PC版MCU Finder选型工具
意法半导体(ST)发布其在PC版MCU Finder之选型工具,便于嵌入式开发人员在ST MCU应用开发使用的桌面环境中直接查看STM32和STM8微控制器的相关信息。那就请您跟随eeworld存储技术小编的脚步,来详细的了解下意法发布PC版MCU Finder选型工具。 延用意法深受欢迎的手机版MCU Finder选型工具ST-MCU-FINDER功能,PC版MCU Finder为用户提供便捷的选型工具、自行维护文档和ST MCU开发者社群链接。 新的PC版应用软件选型工具支持Windows、macOS和Linux 三大操作系统,让嵌入式开发人员能够在计算机上整合所有MCU资源,包括数据和工具,方便查看与提升效率。
[手机便携]
以89C51单片机为核心控制器件的液体点滴速度监控系统设计
1. 引言 液体点滴速度控制系统对于大型医院来说是一套能够提高效率和服务质量的控制设备,特别是远程监控功能能使护士站对于病人的点滴状况进行实时监视,并可根据病人状态调节点滴速度。目前市场上点滴控制系统不少,本文的设计点在于低成本,仅使用最廉价89C51单片机以及普通的元件实现整套系统。 2. 系统设计要求 2.1. 从站设计要求 A.在滴斗处检测点滴速度,并使用数显装置动态显示点滴速度(滴/分)。 B.通过改变点滴瓶高度控制点滴速度,点滴速度可用键盘设定并显示,设定范围为20—150(滴/分),控制误差范围为设定值+/-10%+/-1 滴。 C.系统调整时间《=3 分钟。 D.当点滴瓶里的液面低于警戒值时,能发出报警信号
[单片机]
以89C51<font color='red'>单片机</font>为核心控制器件的液体点滴速度监控系统设计
单片机C8051F020为核心通用性强的多台电机控制平台设计
引言 步进电动机因具有转子惯量低、定位精度高、无累积误差等特点,非常适合用于开环位置控制系统中。直流电机是伺服控制中常用的电机。然而在实际系统中为满足不同的功能往往同时存在多个运动部件,常用的方法是一个独立的功能对应一个控制系统,这样虽然模块性很好,但是占用了大量的系统资源和空间,也在一定程度上降低了系统的可靠性。 如在某系统中存在4 个运动部件,分别为两台三相反应式步进电动机,一台直流电机和一台四相步进电动机的控制。本着提高系统集成度的想法,本文只用一个控制芯片C8051F020 就完成了以上4 台电机的驱动控制,电路简单,可靠性高。 1 总体设计 基于Cygnal 公司的MCU 控制芯片C8051F020的多电机控制
[单片机]
以<font color='red'>单片机</font>C8051F020为核心通用性强的多台电机控制平台设计
51单片机-EEPROM简单使用
我们这一讲简要讲解如何往EEPROM的地址0x55写入一个数据,然后读出这个数据的内容。本讲代码围绕的是宋老师的lesson14_2例程代码讲解。 1.写入一个字节内容 如果要在EEPROM的某个地址里写入内容,那么步骤的实现归为: 起始信号→找到这个器件是否存在(寻址),发送的字节最低位要为0意为要往这个器件写内容→选择EEPROM的哪个地址去写→写入8位的数据→停止信号。 宋老师写的“void E2WriteByte(unsigned char addr, unsigned char dat)”函数里面,上一讲都讲解过里面的函数了,写入一个字节内容的讲解我们就介绍完了。 2.读出一个字节内容 在“uns
[单片机]
恩智浦推出全新MCX N微控制器,引领智能高效的边缘处理步入新时代
恩智浦全新MCX N微控制器首次集成恩智浦专用神经处理单元(NPU),可助力实现高性能、低功耗的边缘安全智能 中国上海——2022年11月9日——恩智浦半导体(NXP Semiconductors N.V.,)宣布推出MCX微控制器产品组合N系列中的首批产品: MCX N94x和MCX N54x 。MCX N系列微控制器专为简化安全智能边缘应用(包括物联网和工业应用)打造,首次集成了恩智浦专有神经处理单元(NPU),并集成了EdgeLock®安全子系统。MCX N系列器件采用多核设计,可智能、高效地将工作复杂分配到模拟和数字外设,提升系统性能并降低功耗。 产品重要性 如今的开发者需要微控制器能够具备更高的处理能
[嵌入式]
恩智浦推出全新MCX N<font color='red'>微控制器</font>,引领智能高效的边缘处理步入新时代
如何用STM32单片机蜂鸣器来演奏音乐
本文用STM32单片机蜂鸣器来演奏音乐,用的开发软件是STM32CubeIDE。 蜂鸣器 有源蜂鸣器 内部有震荡源,只要通电就会有响声,但是声音频率固定。 无源蜂鸣器 内部不含振荡源,蜂鸣器管脚输出一定频率的信号,才能发声。 本实例中用到的是无源蜂鸣器,控制频率高低发出不同声调的声音。 电路原理图 由电路原理图可知,蜂鸣器在PB5管脚,以一定频率翻转PB5管脚的电平,可以使蜂鸣器发声。 STM32工程 打开STM32CubeIDE软件,新建STM32工程。关于STM32CubeIDE软件的使用方法,可以参考此文:STM32中PWM的配置与应用详解。 配置时钟。 项目设置。 设置调试模式。 开启PB5管脚。
[单片机]
如何用STM32<font color='red'>单片机</font>蜂鸣器来演奏音乐
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved