嵌入式系统中常用的通信接口技术
姓名:周崇杰 学号:16040120059 专业:机械设计制造及其自动化
转载自:http://blog.csdn.net/zwdyf105521/article/details/7007706,有删节
【嵌牛导读】:上次说到单片机之间通过串口通信协议进行通信,本文详细介绍在嵌入式系统中,微处理器与外围设备之间常用的通信接口技术。
【嵌牛鼻子】:嵌入式系统,通信,总线。
【嵌牛提问】:嵌入式系统会有很多外围设备,在这些外围设备与微处理器之间通过怎么样的技术实现简单高效的通信呢?
【嵌牛正文】:
嵌入式系统中微处理器要和很多外围设备连接通信,最简单来说,比如你要控制一块触摸屏,你要和触摸屏进行通信控制。这个通信接口可能要用I2C,也可能用SPI协议。如果你的这个系统还有另外一种I2C或者是SPI协议的外设,你就可以利用一种硬件接口电路来控制拥有相同协议的多种设备。这种硬件接口电路就叫总线。采用总线结构是电路简单化、微型化。当不同设备制定了了统一的总线标准,则很容易使不同设备连接到同一种总线,进行通信。也就是说如果一个系统有很多外设,而这些外设有各自的通信接口,那么我们就需要针对每一个外设去做一个通信接口电路。这样会大大增加系统软件和硬件压力。但是如果将不同设备的通信接口规范化,那样就会大大减少系统设计的压力。效率会大大的提高。
微机系统中一般有内部总线、系统总线和外部总线;内部总线是微机内部各外围芯片与处理器之间的总线。系统总线又称内总线或板级总线;因为系统总线是用来连接微机各功能部件而构成一个完整微机系统的,所以称之为系统总线。系统总线上传送的信息包括数据信息、地址信息、控制信息,因此,系统总线包含有三种不同功能的总线,即数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus)。外部总线又称通信总线,是微机系统之间或微机系统与其他系统(仪器、仪表、控制装置等)之间信息传输的通路。
从广义上说,计算机通信从传输方式上可以分为并行总线和串行总线通信,并行通信速度快、实时性好,但由于占用的口线多,不适于小型化产品,比如VME总线和PCI总线;而串行通信速率虽低,但在数据通信吞吐量不是很大的微处理电路中则显得更加简易、方便、灵活,比如RS-232、RS-485、RS-422A、USB、以太网和I2C总线等。按时钟信号分为同步总线和异步总线,同步总线有I2C总线、SPI总线、PCI总线、CPCI总线;异步总线有SCI总线、IEEE 488和ANSI X3.131-1986 SCSI总线、VME总线等。
在这里解释一下SCI和UART、RS232之间的关系,在大学的时候不同的单片机datasheet对串口部分的描述不一样,有称作SCIF的,还有叫UART的,一直都没想过有什么区别。其实SCI(Serial Communication Interface)意为串行通信接口,是串行通信技术的总称。而UART(Universal Asynchronous Receiver & Transmitter)即通用异步收发器,是串行通信的一种协议,算是一个子集,它规定串行通信的波特率、起始/停止位、数据位、校验位等格式,以及各种异步握手信号。RS232是串行通信的一种物理接口电气标准,规定传输介质(电缆)、收发电平等。
对于串行通讯串行通信可以分为同步通信和异步通信两类。同步通信是按照软件识别同步字符来实现数据的发送和接收,同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。异步通信是一种利用字符的再同步技术的通信方式。在异步通行中有两个比较重要的指标:字符帧格式和波特率。数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。
在串行通信中,数据通常是在两个站(如终端和微机)之间进行传送,按照数据流的方向可分成三种基本的传送方式:全双工、半双工、和单工。但单工目前已很少采用,下面仅介绍前两种方式。当数据的发送和接收分流,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工制。若使用同一根传输线既作接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式就是半双工制。
以下内容为网络转载:
一、内部总线
1、I2C总线
I2C(Inter-IC)总线10多年前由PHILIPS公司推出,是近年来在微电子通信控制领域广泛采用的一种新型总线标准。它是同步通信的一种特殊形式,具有接口
线少,控制方式简化,器件封装形式小,通信速率较高等优点。在主从通信中,
可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。
2、SPI总线
串行外围设备接口SPI(serial peripheral interface)总线技术是MOTOROLA公司推出的一种同步串行接口。MOTOROLA公司生产的绝大多数MCU(微控制器)
都配有SPI硬件接口,如68系列MCU。SPI总线是一种三线同步总线,因其硬件功能很强,所以,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。
3、SCI总线
串行通信接口SCI(serial communication interface)也是由MOTOROLA公司
推出的。它是一种通用异步通信接口UART,与MCS-51的异步通信功能基本相同。
二、系统总线
1、ISA总线
ISA(industrial STANDARD architecture)总线标准是IBM 公司1984年为推出
PC/AT机而建立的系统总线标准,所以也叫AT总线。它是对XT总线的扩展,以适应8/16位数据总线要求。它在80286至80486时代应用非常广泛,以至于现在奔腾机中还保留有ISA总线插槽。ISA总线有98只引脚。
2、EISA总线
EISA总线是1988年由Compaq等9家公司联合推出的总线标准。它是在ISA总线的基础上使用双层插座,在原来ISA总线的98条信号线上又增加了98条信号线,也就是在两条ISA信号线之间添加一条EISA信号线。在实用中,EISA总线完全兼容ISA总线信号。
3、VESA总线
VESA(VIDEO ELECTRONICS STANDARD association)总线是1992年由60家附件卡制造商联合推出的一种局部总线,简称为VL(VESA local bus)总线。它的推出为微机系统总线体系结构的革新奠定了基础。该总线系统考虑到CPU与主存和Cache 的直接相连,通常把这部分总线称为CPU总线或主总线,其他设备通过VL总线与CPU总线相连,所以VL总线被称为局部总线。它定义了32位数据线,且可通过扩展槽扩展到64 位,使用33MHZ时钟频率,最大传输率达132MB/s,可与CPU同步工作。是一种高速、高效的局部总线,可支持386SX、386DX、486SX、486DX及奔腾微处理器。
4、PCI总线
PCI(peripheral component interconnect)总线是当前最流行的总线之一,它是由INTEL公司推出的一种局部总线。它定义了32位数据总线,且可扩展为64位。PCI总线主板插槽的体积比原ISA总线插槽还小,其功能比VESA、ISA有极大的改善,支持突发读写操作,最大传输速率可达132MB/s,可同时支持多组外围设备。PCI局部总线不能兼容现有的ISA、EISA、MCA(MICRO channel architecture)总线,但它不受制于处理器,是基于奔腾等新一代微处理器而发展的总线。
5、Compact PCI
以上所列举的几种系统总线一般都用于商用PC机中,在计算机系统总线中,还有另一大类为适应工业现场环境而设计的系统总线,比如STD总线、VME总线、PC/104总线等。这里仅介绍当前工业计算机的热门总线之一——Compact PCI。 Compact PCI的意思是“坚实的PCI”,是当今第一个采用无源总线底板结构的PCI系统,是PCI总线的电气和软件标准加欧式卡的工业组装标准,是当今最新
的一种工业计算机标准。Compact PCI是在原来PCI总线基础上改造而来,它利用PCI的优点,提供满足工业环境应用要求的高性能核心系统,同时还考虑充分利用传统的总线产品,如ISA、STD、VME或PC/104来扩充系统的I/O和其他功能。
三、外部总线
1、RS-232-C总线
RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可
实现,如一条发送线、一条接收线及一条地线。RS-232-C标准规定的数据传输
速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。
2、RS-485总线
在要求通信距离为几十米到上千米时,广泛采用RS-485 串行总线标准。RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS-485可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。
3、IEEE-488总线
上述两种外部总线是串行总线,而IEEE-488 总线是并行总线接口标准。IEEE-488总线用来连接系统,如微计算机、数字电压表、数码显示器等设备及其他仪器仪表均可用IEEE-488总线装配起来。它按照位并行、字节串行双向异步方式传输信号,连接方式为总线方式,仪器设备直接并联于总线上而不需中介单元,但总线上最多可连接15台设备。最大传输距离为20米,信号传输速度一般为500KB/s,最大传输速度为1MB/s。
4、USB总线
通用串行总线USB(universal serial bus)是由INTEL、Compaq、DIGITAL、IBM、Microsoft、NEC、Northern Telecom等7家世界著名的计算机和通信公司共同推出的一种新型接口标准。它基于通用连接技术,实现外设的简单快速连接,达到方便用户、降低成本、扩展PC连接外设范围的目的。它可以为外设提供电源,而不像普通的使用串、并口的设备需要单独的供电系统。另外,快速是USB技术的突出特点之一,USB的最高传输率可达12Mbps比串口快100倍,比并口快近10倍,而且USB还能支持多媒体。但是不能通过USB进行计算机的互连
5、IEEE1394
Apple 公司的FireWire基础上由IEEE制定的标准。与USB有很大的相似性。采
用树形或菊花链结构,以级连方式在一个接口上最多可连接63个不同种类的设备。传输速率高,最高可达3.2Gb/s;实时性好,总线提供电源,系统中各设备之间的关系是平等的,连接方便,允许热插拔和即插即用。
四、现场总线
1、LonWorks 总线
LonWorks 是由美国 Echelon 公司推出并由它与摩托罗拉、东芝公司共同倡导,于 1990 年正式公布而形成的。其通信协议 LonTalk 支持 ISO/OSI 的全部 7 层模型,这是 Lon 总线最杰出的特点。LonTalk 协议通过神经元芯片(Neuron Chip)上的硬件和固件实现,提供介质存取、事物确认和对等通信服务;还有一
些先进服务如接收认证、优先级传输、单一/广播/组播消息发送等。另外,它采用面向对象的设计方法,通过网络变量把网络通信设计简化为参数设置,其通信速率从 300bps 至1.5Mbps 不等,直接通信距离可达 2700m(78Kbps,双绞线);持双绞线、同轴电缆、光纤、射频、红外线、电力线等多种通信介质,并开发了相应的本质安全防爆产品。其编址方法提供了巨大的网络寻址能力(系统支持 32385 个网络设备)。
高可靠性、安全性、易于实现和互操作性,使得 LonWorks 产品应用非常广泛,如灌溉管理、电路板诊断、分散和过程控制、电梯控制、能源管理、环境监视、污水处理、火灾报警、采暖通风和家庭网络自动化等。
2、Profibus 总线
Profibus 是德国国家标准 DIN9245 和欧洲标准 EN50170 的现场总线标准。Profibus 在实际应用中成绩斐然,在众多总线中居于前列,广泛用于各种行业。目前的 Profibus 有 3 种系列:Profibus-DP、Profibus- FMS 和 Profibus-PA。Profibus-DP应用于现场级,是一种高速低成本通信,适用于设备级控制系统与分散式 I/O 的实时通信;Profibus-FMS 用于车间级监控网络,是一个令牌结构、实时多主网络;Profibus-PA 专为过程自动化设计,它采用了 IEC1158-2 传输技术,可实现总线供电和本质安全防爆。
Profibus 总线访问协议是一种混合的协议,包括主站之间的令牌传递方式(Token Ring)和主站与从站之间的主从方式。主站在一个限定的时间框内(令牌占有时间)有总线访问权。Profibus 应用于制造业、流程工业、交通、冶金、楼宇自动化等领域。
3、基金会现场总线
基金会现场总线(FF,Foundation Fieldbus)是在过程自动化领域得到了广泛支持和具有良好发展前景的技术。它是由以 Fisher-Rosement 公司为首,联合 Foxboro、横河、ABB、西门子等 80 家公司制定的 ISP 协议和以美国 Honeywell 公司为首,联合欧洲等地的 150 家公司制定的 WorldFIP 协议,于 1994 年合并统一而成的现场总线技术。它以 ISO/OSI 开放系统互联模型为基础,取其物理层、应用层为 FF 通信模型的相应层次,并在应用层上增加了用户层。用户层主要针对自动化测控应用的需要,定义了信息存取的统一规则,采用设备描述语言规定了通用的功能块集。
基金会现场总线分低速 H1 和高速 H2 两种通信速率。H1 的传输速率为
31.25Kbps,通信距离可达 1900m(可加中继器延长),可支持总线供电,支持本质安全防爆环境。H2 的传输速率可为 1Mbps 和 2.5Mbps 两种,其通信距离分别为750m 和 500m。
基金会现场总线的主要技术内容,包括 FF 通信协议,用于完成开放互联模型中的第 2~7 层通信协议的通信栈、用于描述设备特征、参数、属性及操作接口的DDL 设备描述语言、设备描述字典、控制工程量转化等应用的功能块、实现系统组态、调度、管理等功能的系统软件技术以及构筑集成自动化系统、网络系统的系统集成技术。
FF总线适用于石油、化工、钢铁、电站连续生产过程和部分批量生产,其相应的 FCS 产品适合连续的生产过程自动化。
4、CAN 总线
CAN 是控制器局域网络(Controller Area NetWork)的简称。它是德国 Bocsh 公司及几个半导体集成电路制造商开发出来的,起初是专门为汽车工业设计的,目的是为了节省接线的工作量,后来由于自身的特点被广泛地应用于各行各业。目前 CAN 已由 ISO 技术委员会批准为国际标准,在现场总线中,它是惟一被国际标准化组织批准的现场总线。CAN 协议也遵循 ISO/OSI 模型,采用了其中的物理层、数据链路层与应用层。CAN 采用多主工作方式,节点之间不分主从,但节点之间有优先级之分,通信方式灵活,可实现点对点、一点对多点及广播方式传输数据,无需调度。CAN 总线可采用双绞线,同轴电缆或光纤作力传输介质。通信速率可达 1Mbps/40m,直接通信距离最远可达 10km/5Kbps。可挂接设备数最多可达 110 个。
CAN 的信号传输采用短帧结构,每帧有效字节为 8 个,传输距离短,受干扰的概率低。当节点严重错误时,具有自动关闭功能,以切断该节点与总线的联系,使总线上的其它节点及通信不受影响。可见,CAN 是所有总线中最为可靠的。
5、HART 总线
HART是Highway Addressable Remote Transducer的缩写。最早由 Rosemount公司开发并得到 80 多家著名仪表公司的支持,于 1993 年成立了 HART 通信基金会。这种被称为可寻址远程传感器高速通道的开放通信协议,其特点是在现有模拟信号传输线上实现数字信号通信,属于模拟系统向数字系统转变过程中的过渡性产品,然而在当前的过渡时期具有较强的市场竞争能力,得到了较快发展。它规定了一系列命令,按命令方式工作。它有 3 类命令,第 1 类称为通用命令,这是所有设备都理解、执行的命令;第 2 类称为一般行为命令,所提供的功能可以在许多现场设备(尽管不是全部)中实现,这类命令包括最常用的现场设备的功能库;第 3 类称为特殊设备命令,以便在某些设备中实现特殊功能,这类命令既可以在基金会中开放使用,又可以为开发此命令的公司所独有。在一个现场设备中通常可发现同时存在这 3 类命令。
HART 采用统一的设备描述语言 DDL。现场设备开发商采用这种标准语言来描述设备特性,由 HART 基金会负责登记管理这些设备描述并把它们编为设备描述字典,主设备运用 DDL 技术来理解这些设备的特性参数而不必为这些设备开发专用接口。但这种模拟数字混合信号制导致难以开发出一种能满足各公司要求的通信接口芯片。HART 能利用总线供电,可满足本质安全防爆要求,并可组成由手
持编程器与管理系统主机作为主设备的双主设备系统。
从以上的比较可以看出,每一种现场总线都有其主应用领域,如:Profibus、FF 总线是从支持 PLC 控制发展起来的,它们更适合化工、钢铁、电站等连续生产过程和部分批量生产的过程控制领域。在智能建筑控制方面,由于国际标准化组织迟迟未定出关于楼宇自动化控制网络的标准规范,所以目前尚未有一个国际统一的标准。当前在该领域有两种技术应用最为广泛:一是美国供热、制冷与空调工程师协会(American Society of HeatingRefrigerating, and Air Conditioning Engineers, ASHRAE)制定的 BACnet 标准协议;二是 Echlon 公司提出的 LonWorks 总线技术。世界各大楼宇自控公司一致认为这两种技术是当前“最先进的”、“有非常大的潜在能力的”技术。