嵌入式系统设计的多种串行总线特性及比较
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微控制器需要一个外部收发器来连接物理总线。目前市场上提供以下一些收发器:
高速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. 数据方向和通信速度
数据字节的传送首先从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来执行。因此,在用于这些总线时微控制器中不需要增加另外的硬件。
USB总线的普及性极大地鼓舞了微控制器制造商把USB控制器集成到他们的微控制器中。将外围器件加到USB总线中是很容易的,并不需要重自举系统。Cypress半导体公司和其它业界主导厂商都提供各种系列USB芯片来满足市场的需要。
国家半导体公司(NSC)开发的单线总线Microwire用在许多微控制器和像EEPROM这类非易失性存储器,以及ADC中。该总线能像SPI一样提供同步通信,可用在使用SPI的地方。有些微控制器供应商通过使用UART来支持Microwire总线。
FlexRay是一种在汽车工业中即将推出的新型总线,可用在使用CAN总线的地方,该总线的速度是CAN总线的10倍,可以达到10Mbps。目前微控制器制造商正在努力开发具有FlexRay总线的器件。
总线选择准则
不同的应用在选择总线的标准方面并不同,下面是一些进行总线选择的通用参考准则:
1. 评估使用不同串行总线在网络上连接各种器件的系统成本。例如,在汽车应用中,一个只需要控制功能的系统可以用像LIN这类低成本的串行总线来管理。
2. 在效率、速度和可靠性方面确定对你最重要的性能。例如,对于一个安全关键系统来讲,可靠性是极为重要的,故而CAN是较好的选
- Linux嵌入式系统开发平台选型探讨(11-09)
- 嵌入式系统中文输入法的设计(03-02)
- 基于MPC755的嵌入式计算机系统设计(05-10)
- WinCE下光电编码器的驱动程序设计(04-12)
- 为什么嵌入式开发人员要使用FPGA(05-13)
- VxWorks几种常用的延时方法介绍(05-16)