zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Linux设备驱动——接口与总线

2023-09-11 14:18:26 时间


串口

RS-232、RS-422、RS-485都是串行数据接口标准,最初是由电子工业协会(EIA)制定并发布的。

如今,RS-232的修改版RS-232C是嵌入式系统中应用最广泛的串行接口,其硬件原理图如下:
在这里插入图片描述

IIC

IIC(内置集成电路)总线是由Philips公司开发的两线式串行总线,用于连接微控制器机器外围设备。
IIC总线简单而有效,占用PCB(印制电路板)空间很小,芯片引脚数量少,设计成本低。IIC总线支持多主控模式,任何能够进行发送和接收的设备都可以称为主设备。主控能够控制数据的传输和时钟频率,在任意时刻只能有一个主控。

组成IIC总线的两个信号为数据SDA和时钟SCL。IIC设备上的串行数据线SDA是双向的,输出电路用于向总线上发送数据,输入电路用于从总线上接收数据。同样的,串行时钟线SCL也是双向的,作为控制总线数据传动的主机要通过SCL输出电路发送时钟信号,并检测总线上SCL上的电平以决定什么时候发送下一个时钟脉冲电平;作为接收主机命令的从设备需按总线上SCL的信号发送或接收SDA上的信号,它也可以向SCL线发出低电平信号以延长总线时钟信号周期。

当SCL稳定在高电平时,SDA由高到底的变化将产生一个开始位,而由低到高的变化则差生一个结束位
开始位和停止位都由IIC主设备产生。在选择从设备时,如果从设备采用7位地址,则主设备在发起传输过程前,需先发送1字节的地址信息,前7位表示设备地址,最后一位表示读写标志。之后每次传输的数据也是1字节,从MSB开始传输。每个字节传完后,在SCL的第9个上升沿到来之前,接收方应该发出一个ACK位。 SCL上的时钟脉冲由IIC主空方发出,在第8个时钟周期之后,主控方应该释放SDA。

在这里插入图片描述

SPI

SPI(串行外设接口)总线系统是一种同步串行外设接口,它可以使CPU与各种外围设备以串行的方式进行通信以交换信息。一般主控SoC作为SPI的“主”,而外设作为SPI的“从”。

SPI一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)和低电平有效的从机选择线SS。如下图:
在这里插入图片描述
如下图
在这里插入图片描述

在SPI总线的传输中,SS信号是低电平有效的,当我们要与某外设通信的时候,需要将该外设上的SS线置低(片选的意思)。此外,特别需要注意SPI从设备支持的SPI总线最高时钟频率(决定了SCK的频率)以及外设的CPHA、CPOL模式,这决定了数据与时钟之间的偏移、采样的时刻以及触发的边沿是上升沿还是下降沿

SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性(CPOL)和相位(CPHA)可以及逆行配置
CPHA=0:表示在串行同步时钟的第一个跳变沿(上升或下降)数据被采集;
CPHA=1:表示串行同步时钟的第二个跳变沿(上升或下降)数据采集;
CPOL=0:表示串行同步时钟的空闲状态为低电平;
CPOL=1:表示串行同步时钟的空闲状态为高电平;

USB

为了解决计算机外设种类的日益增加与有限主板插槽和端口之间的矛盾,Intel、Microsoft等公司提出了USB(通用串行总线)。
具有数据传输率高、易扩展、支持即插即用和热插拔的优点。

USB1.1 具备低速和全速两种模式。低速用于鼠标,全速用于外设。
USB2.0 熟速度达到480M,是一个半双工。
USB3.0 全双工,速度高达5.0G

在嵌入式系统中,电路板若需要挂载USB设备,则需提供USB(Host)控制器和连接器,若电路板需要作为USB设备,则需要提供USB设备适配器和连接器。由USB主机、设备和Hub组成的USB系统的物理拓扑结构如下图:
在这里插入图片描述

每一个USB设备会有一个或多个逻辑连接点在里面,每个连接点叫端点。USB提供了多种传输方式以适应各种设备的需要,一个端点可以选择如下一种传输方式。

控制传输方式:
控制传输是双向传输,数据量通常较小,主要用来进行查询、配置和给USB设备发送通用命令。所有USB设备必须支持标准请求,控制传输方式和端点0.
同步传输方式:
同步传输提供了确定的带宽和间隔时间,它用于时间要求严格并具有较强容错性的流数据传输,或者用于要求恒定的数据传送率的即时应用。
中断传输模式:
中断方式传送是单向的,对于USB而言,只有输入。中断传输方式主要用于定时查询设备是否有中断数据要传送,该传输方式应用在少量分散的,不可预测的数据传输场合,键盘,游戏杆和鼠标这一类型。
批量传输方式:
批量传输主要应用在没有带宽、间隔时间要求的批量数据传送和接收中,它要求保证传输。打印机和扫描仪属于这种。

在USB架构中,集线器负责检测设备的连接和断开,利用其中断IN端点来向主机报告。一旦获悉有新设备连接上来,主机就会发送一系列请求给设备所挂载的集线器,再由集线器建立起一条连接主机和设备之间的通信通道。然后主机以控制传输的方式,通过端点0对设备发出各种请求,设备收到主机发来的请求后回复相应的信息,进行枚举操作。因此USB总线具备热插拔的能力。

以太网接口

以太网接口由MAC(以太网媒体接入控制器)和PHY(物理接口收发器)组成,实现了数据链路层。

MAC和PHY之间采用了MII(媒体独立接口)连接,包括一个数据接口与MAC和PHY之间的1个管理接口。数据接口包括分别用于发送和接受的两条独立信道,每条信道都有自己的数据、一个是时钟信号,另一个是数据信号,MII数据接口总共需要16个信号。MII管理接口包含两个信号,一个时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。

一个以太网接口的硬件电路如下
在这里插入图片描述

以太网隔离变压器是以太网收发芯片与连接器之间的磁性组件,在其两者之间起着信号传输、阻抗匹配,波形修复、信号杂波一直和高电压隔离作用。