嵌入式知识框架之六-接口与总线(SPI\I2C\ USB\PCI\PCI-E\SD\SDIO\以太网接口)

接口是外设和主设备连接的方式/规则/协议的名称;XX总线是主设备连接某一类接口的名称

1.串口

串行数据接口标准(根据时间发展顺序介绍):

RS-232;命名为EIA-232-E标准;通信距离短、速率低

RS-232C;嵌入式系统中应用最广泛的串行接口

RS-422;命名为TIA/EIA-422-A标准;单机发送、多机接收的单向、平衡传输规范

RS-485;命名为TIA/EIA-485-A标准;增加了多点、双向通信能力

  • RS-232C

RS-232修改版RS-232C是嵌入式系统中应用最广泛的串行接口,它为连接DTE(数据终端设备)与DCE(数据通信设备)而制定。RS-232C标准接口有25条线(4条数据线、11条控制线、3条定时线、7条备用和未定义线),常用的只有9根,它们是RTS/CTS(请求发送/清除发送流控制)、RxD/TxD(数据收发)、DSR/DTR(数据终端就绪/数据设置就绪流控制)、DCD(数据载波检测,也称RLSD,即接收线信号检出)、Ringing-RI(振铃指示)、SG(信号地)信号。RTS/CTS、RxD/TxD、DSR/DTR等信号的定义如下。

  • RTS:用来表示DTE请求DCE发送数据,当终端要发送数据时,使该信号有效。
  • CTS:用来表示DCE准备好接收DTE发来的数据,是对RTS的响应信号。
  • RxD:DTE通过RxD接收从DCE发来的串行数据。
  • TxD:DTE通过TxD将串行数据发送到DCE。
  • DSR:有效(ON状态)表明DCE可以使用。
  • DTR:有效(ON状态)表明DTE可以使用。
  • DCD:当本地DCE设备收到对方DCE设备送来的载波信号时,使DCD有效,通知DTE准备接收,并且由DCE将接收到的载波信号解调为数字信号,经RxD线送给DTE。
  • Ringing-RI:当调制解调器收到交换台送来的振铃呼叫信号时,使该信号有效(ON状态),通知终端,已被呼叫。

最简单的RS-232C串口只需要连接RxD、TxD、SG这3个信号,并使用XON/XOFF软件流控。

嵌入式知识框架之六-接口与总线(SPI\I2C\ USB\PCI\PCI-E\SD\SDIO\以太网接口)_第1张图片 ARM设备与PC链接示意图

串口协议:

波特率:双方约定波特率,常用的比如115200
数据内容:开始位,数据位,[校验位],停止位

发送1Byte字节的数据:

1.发送方先发送一个开始信号,拉低TXD电平1bit时间
2.发送方根据数据驱动TXD电平的高低每一位保持的时间相同,接受方每间隔一定时间读取数据。
3.每8位数据传输后,如果设置有检验位则读取检验位,没有则不读取
4.发送方发送停止位,拉高TXFD电平,接收方读取停止位。

 2.IIC

IIC总线支持多主控(Multi-Mastering)模式,任何能够进行发送和接收的设备都可以成为主设备。主控能够控制数据传输时钟频率,在任意时刻只能有一个主控

构成:只有两条线分别为数据线(SDA)和时钟线(SCL),各设备连接到总线的输出端必须是开漏输出或集电极开路输出(OC门)的结构,设置上拉电阻使SDA和SCL线在空闲时都保持高电平。这样时的任意一端输出低电平,另一端得到低电平。

开漏输出开集输出:这两种输出的原理和特性基本是类似的,区别在于一个是使用MOS管,其中的"漏"指的就是MOS管的漏极;另一个使用三极管,其中的"集"指的就是MOS三极管的集电极。MOS管的情况较多。

嵌入式知识框架之六-接口与总线(SPI\I2C\ USB\PCI\PCI-E\SD\SDIO\以太网接口)_第2张图片

嵌入式知识框架之六-接口与总线(SPI\I2C\ USB\PCI\PCI-E\SD\SDIO\以太网接口)_第3张图片

 I2C的上拉电阻

特点:半双工 

IIC协议:

  1. 开始信号:主设备产生
  2. 8位数据  :地址/数据:地址包括7位地址+W/R,数据为1个字节
  3. ACK       :从设备产生,产生中断,来确定是继续传输数据还是产生结束信号
  4. 结束信号:主设备产生

发送1Byte数据:

1. 发送START信号
2.发送地址+W/R,获得确认信号,中断
3.发送8数据,获得确认信号,中断
4.继续发送数据或者发送STOP位

3. SPI

主控SoC作为SPI的“主”,而外设作为SPI的“从”。

构成:3/4线制。时钟、数据线【输入/输出】、片选。

特点:全双工。

SPI协议:不需要发送地址,只需拉低片选引脚即可选中对应设备。通信的始终频率、采样、触发的边沿都是以从设备为准。四种模式

如何发送1Byte数据:

1.片选引脚拉低
2.发送数据

4.USB

 USB(通用串行总线)是Intel、Microsoft等厂商为解决计算机外设种类的日益增加与有限的主板插槽和端口之间的矛盾而于1995年提出的,它具有数据传输率高、易扩展、支持即插即用热插拔的优点,目前已得到广泛应用。

发展史:

USB 1.1包含全速和低速两种模式,低速方式的速率为1.5Mbit/s,鼠标;全速模式为12Mbit/s 
USB 2.0增加了一种高速方式,数据传输率达到480Mbit/s,半双工。4条线
USB 3.0的最大传输带宽高达5.0Gbit/s(即640MB/s),全双工。8条线

USB 2.0 4接线:

5V电源线,地线,(差分线)D+,D-。电路板若需要挂接USB设备,则需提供USB主机(Host)控制器和连接器;若电路板需要作为USB设备,则需提供USB设备适配器和连接器

嵌入式知识框架之六-接口与总线(SPI\I2C\ USB\PCI\PCI-E\SD\SDIO\以太网接口)_第4张图片 主机设备拓扑结构

工作模式:

批量(Bulk)传输方式:扫描仪,打印机
中断(Interrupt)传输方式:键盘、鼠标
同步(实时)(Isochronous)传输方式:语音、共享屏幕
控制(Control)传输方式:用于填加USB、删除USB等命令

发送数据需要操作系统1.识别设备;2.找到对应的驱动;3.提供USB读写函数。

5. 以太网接口

历史发展:

以太网MAC:由IEEE 802.3以太网标准定义,实现了数据链路层。常用的MAC支持10Mbit/s或100Mbit/s两种速率。
吉比特以太网(也称为千兆位以太网):是快速以太网的下一代技术,将网速提高到1000Mbit/s。以IEEE 802.3z和802.3ab发布,作为IEEE 802.3标准的补充。

嵌入式知识框架之六-接口与总线(SPI\I2C\ USB\PCI\PCI-E\SD\SDIO\以太网接口)_第5张图片

以太网接口的硬件电路原理 

6 PCI和PCI-E

PCI

PCI(外围部件互连)是由Intel于1991年推出的一种局部总线,作为一种通用的总线接口标准,它在目前的计算机系统中得到了非常广泛应用。

图给出了一个典型的基于PCI总线的计算机系统逻辑示意图,系统的各个部分通过PCI总线和PCI-PCI桥连接在一起。CPU和RAM通过PCI桥连接到PCI总线0(即主PCI总线),而具有PCI接口的显卡则可以直接连接到主PCI总线上。PCI-PCI桥是一个特殊的PCI设备,它负责将PCI总线0和PCI总线1(即从PCI主线)连接在一起,通常PCI总线1称为PCI-PCI桥的下(Downstream),而PCI总线0则称为PCI-PCI桥的上游(Upstream)。为了兼容旧的ISA总线标准,PCI总线还可以通过PCI-ISA桥来连接ISA总线,从而支持以前的ISA设备。

嵌入式知识框架之六-接口与总线(SPI\I2C\ USB\PCI\PCI-E\SD\SDIO\以太网接口)_第6张图片

基于PCI总线的计算机系统逻辑示意图 

  • 数据总线为32位,可扩充到64位。
  • 可进行突发(Burst)模式传输。突发方式传输是指取得总线控制权后连续进行多个数据的传输。突发传输时,
  • 只需要给出目的地的首地址,访问第1个数据后,第2~n个数据会在首地址的基础上按一定规则自动寻址和传
  • 输。与突发方式对应的是单周期方式,它在1个总线周期只传送1个数据。
  • 总线操作与处理器—存储器子系统操作并行。
  • 采用中央集中式总线仲裁。
  • 支持全自动配置、资源分配,PCI卡内有设备信息寄存器组为系统提供卡的信息,可实现即插即用。
  • PCI总线规范独立于微处理器,通用性好。
  • PCI设备可以完全作为主控设备控制总线。 

 设置和使用:

当PCI卡刚加电时,卡上配置空间即可以被访问。PCI配置空间保存着该卡工作时所需的所有信息,如厂家、卡功能、资源要求、处理能力、功能模块数量、主控卡能力等。通过对这个空间信息的读取与编程,可完成对PCI卡的配置。

PCI-E

        PCI-E(PCI Express)是Intel公司提出的新一代的总线接口,PCI Express采用了目前业内流行的点对点串行连接,比起PCI以及更早的计算机总线的共享并行架构,每个设备都有自己的专用连接,采用串行方式传输数据,不需要向整个总线请求带宽,并可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。
        PCI Express在软件层面上兼容目前的PCI技术和设备,支持PCI设备和内存模组的初始化,也就是说无须推倒目前的驱动程序、操作系统,就可以支持PCI Express设备。 

7.SD和SDIO 

SD(Secure Digital)是一种关于Flash存储卡的标准,也就是一般常见的SD记忆卡,在设计上与MMC(Multi-Media Card)保持了兼容。SDHC(SD High Capacity)是大容量SD卡,支持的最大容量为32GB。2009年发布的SDXC(SD eXtended Capacity)则支持最大2TB大小的容量。

SDIO(Secure Digital Input and Output Card,安全数字输入输出卡)在SD标准的基础上,定义了除存储卡以外的外设接口。SDIO主要有两类应用——可移动和不可移动。不可移动设备遵循相同的电气标准,但不要求符合物理标准。现在已经有非常多的手机或者手持装置都支持SDIO的功能,以连接WiFi、蓝牙、GPS等模块。 

一般情况下,芯片内部集成的SD控制器同时支持MMC、SD卡,又支持SDIO卡,但是SD和SDIO的协议还是有不一样的地方,支持的命令也会有不同。 

 SD/SDIO的传输模式有:

  • SPI模式
  • 1位模式
  • 4位模式

eMMC

eMMC(Embedded Multi Media Card)是当前移动设备本地存储的主流解决方案,目的在于简化手机存储器的设计。eMMC就是NANDFlash、闪存控制芯片和标准接口封装的集合,它把NAND和控制芯片直接封装在一起成为一个多芯片封装(Multi-Chip Package,MCP)芯片。eMMC支持DAT[0]~DAT[7]8位的数据线。上电或者复位后,默认处于1位模式,只使用DAT[0],后续可以配置为4位或者8位模式。 

你可能感兴趣的:(c语言)