嵌入式系统及应用——总线
三、系统总线嵌入式系统总线可分为片内总线,片外并行总线,片外串行总线;片内总线的选择取决于CPU核,片外总线选择取决于应用片内总线是与嵌入式微处理器集成在一起,如AMBA,AVALON,OCP,WISHBONE片外并行总线:如PCI,ISA等片外串行总线:UART,SPI,I2C,USB 等3.1 片上总线AMBA(Advanced Microcontroller Bus Architectur
目录
一、总线概述
嵌入式系统总线可分为片内总线,片外并行总线,片外串行总线;片内总线的选择取决于CPU核,片外总线选择取决于应用
- 片内总线是与嵌入式微处理器集成在一起,如AMBA,AVALON,OCP,WISHBONE
- 片外并行总线:如PCI,ISA等
- 片外串行总线:UART,SPI,I2C,USB 等
二、片内总线
AMBA(Advanced Microcontroller Bus Architecture)是ARM公司研发的一种总线规范,在规范里定义了高速总线AHB、ASB和低速总线APB
AHB(Advanced High-performance Bus)用于高性能系统模块的连接,支持突发模式数据传输和事务分割;可以有效地连接处理器、片上和片外存储器、支持流水线操作
ASB(Advanced System Bus):也用于高性能系统模块的连接,现多由AHB总线替代
APB(advanced Peripheral Bus):用于较低性能外设的简单连接,一般是接在AHB或ASB系统总线上的第二级总线
APB由2部分组成,APB桥和APB从单元。APB桥是APB中唯一的主单元,是AHB/ASB的从单元。APB桥将总线AHB/APB连接起来并执行以下功能:
- 锁存地址并保持有效,直到数据传输完成(缓冲)
- 译码地址产生一个外部片选信号,在每次传送时只有一个片选信号有效
- 写传送时驱动数据到APB
- 读传送时驱动数据到系统总线AHB/ASB
- 传送时产生定时触发信号PENABLE
基于AMBA总线的典型系统:
三、片外并行总线
PCI系列总线包括PCI/CPCI/PCI Express。1991年Intel公司联合IBM、AST、DEC、HP等100多家公司成立了PCIIG(peripheral component Interconnect Special interest Group)协会,致力于促进PCI总线工业标准的发展。1992年Intel发布486处理器的时候提出了32bit PCI总线。
嵌入式系统已经开始逐步采用微机系统普遍采用的PCI总线,PCI Express以便子系统的扩展
PCI特点:
- 地址、数据多路复用的高性能32位和64位总线,32位总线120引脚,64位184引脚
- 与ISA总线不同,PCI总线的地址总线与数据总线是分时复用的,支持即插即用;分时复用可以节省管教数便于实现突发数据传输
- 数据传输时,由一个PCI设备做发起者master,另一个PCI设备做目标slave,所有时序产生与控制由master发起,同一时刻需要仲裁机构
PCI总线接口信号(32位):
为了将PCI总线规范应用在工业控制计算机系统上,1995年11月PCI工业计算机制造者联合会(PICMIG)颁布了compactPCI。目前嵌入式PC、工业控制计算机及高端嵌入式系统中已经开始大量采用CPCI接口。适合在可靠性要求较高的工业和军事设备上应用。
PCI Express总线是一种完全不同于PCI总线的一种全新总线规范,与PCI总线共享并行架构相比,PCIE是一种点对点串行连接的设备连接方式;意味着每个PCIE设备拥有独立的数据连接,设备之前的并发数据传输互不影响。
四、片外串行总线
串行总线包括UART(RS232),I2C,SPI,USB,CAN ,LIN。串行总线是按照位传送数据的通路。其连接线少、接口简单、成本低、传送距离远被广泛应用于嵌入式系统与外设连接和计算机网络。
串行通信分为两种类型:同步通信方式(SPI、IIC等)和异步通信方式(UART等)。
- 同步通信需要时钟信号保持收发双方时钟频率一致或允许误差小,通信复杂,硬件要求高,成本高;
- 异步通信无时钟信号,采用握手信号实现同步,通信简单,硬件要求低,成本低;
- 同步通信发送方发出数据后等待接收方回复响应后才发下一个数据包,属于阻塞模式;
- 异步通信发送数据后,不等待接收方发送回应,可以接着发下一个数据包,属于非阻塞模式;
- 同步通信把传送的数据以多字节(100字节以上)为单位,在其后添加信号标志,传输效率高;
- 异步通信在发送每个字符的开始和结束的地方加上标志,所传输的数据以字节为单位,传输效率低;
- 同步通信用于点对多点,一主多从;
- 异步通信适用于点对点通信,不需要片选的控制信号;
4.1 同步异步通信
同步通信示意图:
同步传输时,一个信息帧中包含许多字符,每个信息帧用同步字符作为开始,一般将同步字符和空字符用同一个代码。在整个系统中,由一个统一的时钟控制发送端的发送和空字符用同一个代码。接收端当然是应该能识别同步字符的,当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理。
并行数据转串行数据需要通过移位寄存器来转换。Data,Select 和R/W信号可以根据协议复用同一根线,因为它们的信号不会同时发生。Salve之间不能直接通信,只能由Master发起。
异步通信示意图:
全双工:指数据可以同时发送和接收数据
半双工:指可以接收也可以发送数据,但是不能同时进行
4.2 UART
UART是通用异步收发器(异步串行通信口)的英文缩写,它包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。RS232、RS422、RS485都是采用了这种通讯协议,其接口时序都是一致的,只是具体的物理层的电平不同。(RS232可以认为是UART的一种接口)
UART是一种通用异步串行收发器,可以实现全双工传输。在嵌入式设计中,UART用来与PC及其他设备进行通信,是TTL电平串口,常用于控制计算机与串行设备的芯片。UART一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
EIA RS-232是美国电子工业协会正式公布的串行总线标准,用来实现计算机与计算机之间,计算机与外设之间的数据通信(<15m)
在计算机世界中,大量的接口是串口或异步口,如RS-485/422/449等,虽然并不一定符合RS-232标准,但通常认为是RS-232口。
RS-232是一种负逻辑。即逻辑"1"(-15,-5)V;逻辑"0"(5,15)V。不同于数字电路0-3V或者0-5V,所以RS232需要电压转换。
RS-232的硬件握手:
软件握手只需要RXD连接TXD,TXD连接RXD。软件握手时,端口不再需要硬件流控的控制线,数据流的启停通过ASCII码来表示,19表示停止发送,17表示继续发送,只需要GND,TX,RX三根线。RS232有两种常用接口,9Pin和25Pin。
4.3 IIC
IIC总线(Inter-Integrated Circuit)产生于80年代,由PHILIPS公司开发,最初用于音频和视频设备开发。
特点:
- 接口简单,占有空间小,减少了电路板空间需求和芯片引脚数量,降低了互联成本。
- IIC总线连接到相同总线上的IC数量只受总线最大电容的限制,可达40组件
- 速率:8位双向数据传输位速率在标准模式下可达100kbps
- 支持多主控模式,具有完善的总线协议,其中任何支持收发的设备都可以成为主控
- 由数据线SDA和时钟线SCL构成同步串行总线,支持多向传送
CPU发送的控制信号分为地址码和控制码两部分,地址码用来选址。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变开始传输数据
结束信号:SCL为高电平时,SDA由低电平向高电平跳变结束传输数据
应答信号:接收数据的IC收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据
4.4 SPI
SPI总线(Serial Peripherala Interface)是一种同步串行外设接口,有Motorola开发。
SCLK表示串行时钟线,MISO主输入/从输出,MOSI主输出/从输入,SS低电平有效的从机选择线,中断信号线INT。
4.5 USB
USB总线(Universal Serial Bus通用串行总线),用于规范电脑与外部设备的连接和通讯,用于PC领域的接口技术。USB是在1994年底由Intel,康柏,IBM,Microsoft等多家公司联合提出,成为当前电脑标准扩展接口。
特点:
- 传输速度快,USB3.2 可达20Gbps,使用方便,支持热插拔,独立供电(供电功能),连接灵活
- 由差分数据线D+,D-和电源VCC、GND地四根信号线组成,D+和D-用于传送数据,VCC和GND用于向从机提供电源
- USB接口两端分别是A型Up-stream连接PC,B型Down-stream连接设备
- USB3.1引入type-C接口,面向更轻薄、更纤细,正反面盲查和快速充电


4.6 USB与UART
UART 通用异步收发器即非同步的接发信号机制。串口(Universal Asynchronous Receiver/Transmitter),UART是串口收发的逻辑电路,这部分可以独立成芯片,也可以作为模块嵌入到其他芯片里,单片机、SOC、PC里都会有UART模块。
USB 串行总线和串口完全是两个概念。虽然也是串行方式通信,但由于USB的通信时序和信号电平都和串口完全不同,因此和串口没有任何关系。USB是高速的通信接口,用于PC连接各种外设,U盘、键鼠、移动硬盘、当然也包括“USB转串口”的模块。(USB转串口模块,就是USB接口的UART模块)
参考:
总线的通信方式:https://blog.csdn.net/WUYAN889/article/details/105476941
更多推荐
所有评论(0)