微处理器设计中集成串行总线的特性及比较

网友投稿 298 2022-11-19

微处理器设计中集成串行总线的特性及比较

串行与并行相比

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

1. UART

a. UART通信

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

b. 数据方向和通信速度

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

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

c. 计算机中的UART

2. 同步外设接口

a. SPI通信

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

MOSI:主出/从入

MISO:主入/从出

SCK:串行时钟

SS:从属选择

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

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

b. 数据方向和通信速度

c. SPI与UART比较

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

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

3. I2C总线

a. I2C通信

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

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

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

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

b. 数据方向和通信速度

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

低速,数据传输率为0到100kbps;

快速,数据传输率可以高达400kbps;

高速,数据传输率可以高达3.4Mbps。

c. I2C与SPI比较

4. 控制器区域网络

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

a. CAN通信

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

b. 四种消息帧的类型

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

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

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

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

c. CAN硬件术语

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

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

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

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

d. 数据方向和通信速度

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

e. CAN在汽车中的应用

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

f. 物理接口

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

5.本地互连网络

a. LIN通信

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

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

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

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

b. 数据方向和通信速度

数据字节的传送首先从LSB开始,LIN总线的最大速度是20kbps。

c. 物理接口

只有很少微控制器集成有专用的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来执行。因此,在用于这些总线时微控制器中不需要增加另外的硬件。

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

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

总线选择准则

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

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

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

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:收下这份实操案例,还怕不会用Jmeter接口测试工具?
下一篇:学完这篇Charles抓包教程,我直接把fiddler卸载了
相关文章

 发表评论

暂时没有评论,来抢沙发吧~