自学内容网 自学内容网

驱动设计硬件基础

 一、处理器

1.1.按指令集分

处理器架构指令集功耗授权难度厂商
ARMRISC高通、三星、英伟达、联发科、海思
X86CISCIntel、AMD
MIPSRISC龙芯

1.2.按体系架构分

二、存储器

 

三、接口与总线 

3.1.串口

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

RS-232是单机发送、多机接收的单向、平衡传输规范。

RS-422 改进了 RS-232 通信距离短、速率低的缺点。

RS-485 标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性。

RS-232C 标准接口有 25条线(4 条数据线、11 条控制线、3 条定时线、7 条备用和未定义线),常用的只有 9 根,它们是 RTS/CTS(请求发送 / 清除发送流控制)、RxD/TxD(数据收发)、DSR/DTR(数据终端就绪 / 数据设置就绪流控制)、DCD(数据载波检测,也称 RLSD,即接收线信号检出)、Ringing-RI(振铃指示)、SG(信号地)信号。

3.2.I2C

组成 I2C 总线的两个信号为数据线 SDA 和时钟 SCL。为了避免总线信号的混乱,要求各设备连接到总线的输出端必须是开漏输出或集电极开路输出的结构。总线空闲时,上拉电阻使 SDA 和 SCL 线都保持高电平。根据开漏输出或集电极开路(OC门)输出信号的“线与”逻辑,I2C总线上任意器件输出低电平都会使相应总线上的信号线变低。

当 SCL 稳定在高电平时,SDA 由高到低的变化将产生一个开始位,而由低到高的变化则产生一个停止位,如图 2.10 所示。

3.3.SPI

 如果 CPOL= 0,串行同步时钟的空闲状态为低电平;如果 CPOL= 1,串行同步时钟的空闲状态为高电平。如果 CPHA= 0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA = 1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。

3.4.USB

USB 1.1 包含全速和低速两种模式,低速方式的速率为 1.5Mbit/s,全速模式为 12Mbit/s。

USB 2.0 中,增加了一种半双工高速方式,数据传输率达到 480Mbit/s。

USB 3.0(也被认为是 Super Speed USB)的最大传输带宽高达 5.0Gbit/s(即 640MB/s),全双工。

USB 2.0 采用 4 芯的屏蔽线,一对差分线(D+、D-)传送信号,另一对(VBUS、电源地)传送 +5V 的直流电。

USB 3.0 线缆则设计了 8 条内部线路,除VBUS、电源地之外,其余 3 对均为数据传输线路。其中保留了 D+ 与 D- 这两条兼容 USB 2.0 的线路,新增了 SSRX 与 SSTX 专为 USB 3.0 所设的线路。

在嵌入式系统中,电路板若需要挂接 USB 设备,则需提供 USB 主机(Host)控制器和连接器;若电路板需要作为 USB 设备,则需提供 USB 设备适配器和连接器。

端点(endpoint):端点是USB设备的唯一可识别部分,其是主机和设备之间的通信流的终点。它是一个USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据。每个USB逻辑设备由一组独立的端点组成。设备上的每个端点在设计时都会得到一个唯一的设备确定的标识符,称为端点号。每个端点都有一个设备确定的数据流方向。设备地址,端点号和方向的组合允许唯一地引用每个端点。每个端点都是一个单一连接,支持一个方向的数据流:输入(in)(从设备到主机)或输出(out)(从主机到设备)。每个端点都有一定的属性,包括传输方式、总线访问频率、带宽、端点号和数据包的最大容量。

端点0要求:所有的USB设备都要拥有端点0,该端点用于对一个逻辑设备进行初始化和进行一般的操作(对逻辑设备进行配置)。端点0提供了对设备配置信息的访问权限,通过它还允许访问一般的USB状态和控制操作。端点0支持控制传输,并且总是在设备接入和上电时就进行配置

3.5.以太网接口

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

MAC 和 PHY 之间采用 MII(媒体独立接口)/RMII连接,包括 1 个数据接口与 MAC 和 PHY 之间的 1 个管理接口。数据接口的每条信道都有数据、时钟和控制信号。 管理接口包含两个信号,一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制 PHY。

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

3.6.PCI和PCIE

3.6.1.PCI

PCI(外围部件互连)是由 Intel 于 1991 年推出的一种局部总线,作为一种通用的总线接
口标准,它在目前的计算机系统中得到了非常广泛应用。PCI 总线具有如下特点
        ● 数据总线为 32 位,可扩充到 64 位。
        ● 可进行突发(Burst)模式传输。与突发方式对应的是单周期方式,它在 1 个总线周期只传送 1 个数据。
        ● 采用中央集中式总线仲裁。
        ● 支持全自动配置、资源分配,PCI 卡内有设备信息寄存器组为系统提供卡的信息,可
        实现即插即用。
        ● PCI 总线规范独立于微处理器,通用性好。
        ● PCI 设备可以完全作为主控设备控制总线。

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

如图 2.17 所示,PCI 配置空间共为256 字节,主要包括如下信息。
        ● 制造商标识(Vendor ID):由 PCI 组织分配给厂家。
        ● 设备标识(Device ID):按产品分类给本卡的编号。
        ● 分类码(Class Code):本卡功能的分类码,如图卡、显示卡、解压卡等。
        ● 申请存储器空间:PCI 卡内有存储器或以存储器编址的寄存器和 I/O 空间,为使驱动
        程序和应用程序能访问它们,需申请 CPU 的一段存储区域以进行定位。配置空间的
        基地址寄存器用于此目的。
        ● 申请 I/O 空间:配置空间中的基地址寄存器用来进行系统 I/O 空间的申请。
        ● 中断资源申请:配置空间中的中断引脚和中断线用来向系统申请中断资源。偏移
        3Dh 处为中断引脚寄存器,其值表明 PCI 设备使用了哪一个中断引脚,对应关系为
        1—INTA#、2—INTB#、3—INTC#、4—INTD#。

PCI引脚定义图

按照类型将上述引脚分类,逐个进行介绍。

(1)、系统信号线

CLK:时钟信号线,系统在时钟信号上升沿是有效,才能进行传输。

RST:复位信号线,在低电平时信号才能进行传输。

(2)、地址及数据线

  AD0-AD31:地址和数据多路复用的输入输出信号。在FRAME有效时是地址周期,在IRDY和TRDY同时有效时是数据周期。在执行地址周期时,地址周期为一个时钟周期,在该周期中AD0~AD31线上含有一个32位的物理地址,对于I/O操作,它是一个字节地址;若是存储器操作和配置操作,则是双字地址。在执行数据周期时,IRDY有效表示写数据稳定,TRDY有效表示读数据有效。

C/BE0~3:总线命令和字节使能多路复用信号线。在地址周期内,这四条线上传输的是总线命令;在数据周期内,传输的是字节使能信号,用来表示在整个数据期中, AD0~AD31上哪些字节为有效数据。

   PAR:奇偶校验信号。它通过AD[31::00]和C/BE[3::0]进行奇偶校验。主设备为地址周期和写数据周期驱动PAR,从设备为读数据周期驱动PAR。

(3)接口控制信号线

   FRAME:帧周期信号。由当前主设备驱动,表示一次访问的开始和持续时间。当其 无效时,表示传输的最后一个数据周期。

   RDY:主设备准备好信号。该信号有效表明发起本次传输的设备(主设备)能够完成一个数据期。它要与TRDY配合使用,当这两者同时有效时,才能进行完整的数据传输,否则即为等待周期。在写周期,该信号有效时,表示有效的数据信号已在AD0~AD31中建立;在读周期,该信号有效时,表示主设备已做好接收数据的准备。

  TDRY:从设备准备好信号。该信号有效表示从设备已做好完成当前数据传输的准备工作,此时可进行相应的数据传输。同样,该信号要与IRDY配合使用,这两者同时有效数据才能进行完整传输。在写周期内该信号有效表示从设备已做好了接收数据的准备。在读周期内,该信号有效表示有效数据已被送入AD0~AD31中,同理, TRDY和IRDY中的任何一个无效时都为等待周期,此时不能进行数据的传输。

  STOP:停止数据传输信号。从设备发出的信号,表示请求主设备停止发送数据的信号。

 LOCK:锁定信号。有PCI总线上发起数据传输的设备控制发出的信号,多个设备在使用PCI总线,但是LOCK指令的控制者只有一个主设备(由GNT信号标识)。当LOCK信号有效时,表示驱动它的设备所进行的操作可能需要多个传输才能完成,如果对某一设备具有可执行的存储器,那么它必须能实现锁定,以便实现主设备对该存储器的完全独占性访问。对于支持锁定的目标设备,必须能提供一个互斥访问块,且该块不能小于16 个字节。连接系统存储器的主桥路也必须使用LOCK信号。

   IDSEL:初始化设备选择信号。在参数配置读写传输期间,用作片选信号。

   DEVSEL:设备选择信号。由从设备驱动,该信号有效时,表示驱动它的设备已成为当前访问的从设备。它有效表明总线上的某一设备已被选中。

(4)、仲裁信号线

   REQ:总线请求信号。该信号一旦有效即表示驱动它的设备要求使用总线。它是一个点到点的信号线,任何主设备都应有自己的REQ信号。

   GNT:总线允许信号。用来向申请占用总线的设备表示其请求已获批准。这也是一 个点到点的信号线,任何主设备都应有自己的GNT信号。

(5)、错误报告信号线

   PERR:数据奇偶校验错误报告信号。但是该信号不报告特殊周期中的数据奇偶错误。一个设备只有在响应设备选择信号DEVSEL和完成数据期之后,才能报告一个PERR。对于每个数据接收设备,如果发现数据有错误,就应在数据收到后的两个时钟周期将PERR激活。该信号的持续时间与数据期的多少有关,如果是一个数据期,则最小持续时间为一 个时钟周期;若是一连串的数据期并且每个数据期都有错,那么PERR的持续时间将多于一个时钟周期。由于该信号是持续的三态信号,所以该信号在释放前必须先驱动为高电平。另外,对数据奇偶错的报告不能丢失也不能推迟,需要实时进行响应。

   SERR:系统错误报告信号。该信号用于报告地址奇偶错,特殊命令序列中的数据奇偶错,以及其他可能引起灾难性后果的系统错误。 SERR是漏极开路信号,由返遣错误的单元驱动,在一个PCI时钟内有效。SERR信号的发出和时钟同步,因而满足总线上所有其他信号的建立时间和保持时间的要求。

(6)、中断信号线

   中断在PCI总线上是可选用的,低电平有效,用漏极开路方式驱动。同时,此类信号的建立和撤销是与时钟不同步的。PCI为每一个单功能设备定义一根中断线。对于多功能设备或连接器,最多可有4条中断线。对于单功能设备,只能使用INTA,其余3条中断线无意义。PCI局部总线有四条中断线,定义如下:

   INTA o/d:中断A,用于请求一次中断。  

   INTB o/d:中断B,用于请求一次中断并只在多功能设备上有意义。     

   INTC o/d:中断C,功能同中断B。   

   INTD o/d:中断D,功能同中断B。     

多功能设备上的任何一种功能都能连到任何一条中断线上。中断寄存器决定该功能用哪一条中断线去请求中断。如果一个设备只用一条中断线,则这条中断线就称为INTA,如果该设备用了两条中断线,那么它们就称为INTA和INTB,依此类推。对于多功能设备,可以是所有功能用一条中断线,也可以是每种功能有自己的一条中断线,还可以是上两种情况的综合。  

   系统供应商在对PCI连接器的各个中断信号和中断控制器进行连接时,其方法是随意的,可以是线或方式、程控电子开关方式,或者是二者的组合,这就是说,设备驱动程序对于中断共享事先无法作出任何假定,即它必须能够给任何逻辑设备提供中断。

(7)、高速缓存(Cache)支持信号线

   为了使具有可缓存功能的PCI存储器能够和贯穿写(Write-Through)或回写(Write- Back)的Cache相配合工作,可缓存的PCI存储器应该能实现两条高速缓存支持信号作为输入。如果可缓存的存储器位于PCI总线上,那么连接回写式Cache和PCI的桥路必须要利用两条引脚,且作为输出,而连接贯穿写式Cache的桥只需要实现一个信号。上述两个信号的定义如下:

   SBO in/out:双向试探返回信号(Snoop Backoff)。当其有效时,说明对某修改行的一次命中,所访问的数据为无效数据。当SBO无效而SDONE有效时,说明PCI发起方正在访问存储器的有效性并可进行高速缓存的操作。  

(8)、64位总线扩展信号线

   AD32~AD63 t/s:扩展的32位地址和数据多路复用线。在地址周期(如果使用了双地址周期DAC命令且REQ64信号有效时)这32条线上含有64位地址的高32位,否则它们是保留的;在数据周期,当REQ64和ACK64同时有效时,这32条线上含有高32位数据。

C/BE 4~7 t/s:总线命令和字节使能多路复用信号线。在数据周期,若REQ64和ACK64同时有效时,该4条线上传输的是表示数据线上哪些字节是有意义的字节使能信号。如C/BE4对应第4个字节,C/BE5对应第5个字节。在地址周期内,如果使用了DAC命令且REQ64信号有效,则表明C/BE 4~7上传输的是总线命令,否则这些位是保留的且不确定。

   REQ64:64位传输请求。该信号由当前主设备驱动,表示本设备要求采用64位通路传输数据。它FRAME与有相同的时序。

   ACK64:64位传输认可。表明从设备将用64位传输。此信号由从设备驱动,并且和DEVSEL具有相同的时序。

   PAR64 t/s:奇偶双字节校验。是AD32~AD63和C/BE 4~7的校验位。当REQ64有效且C/BE 0~3上是DAC命令时,PAR64将在初始地址周期之后一个时钟周期有效,并在DAC命令的第二个地址周期后的一个时钟周期失效。当REQ64和ACK64同时有效时,PAR64在备数据期内稳定有效,并且在IRDY或TRDY发出后的第一个时钟处失效。PAR64信号一旦有效,将保持到数据周期完成之后的一个时钟周期。该信号与AD32~AD63的时序相同,但延迟一个时钟周期。该信号线在任何给定的总线周期内应保证连同AD32~AD63和C/BE 4~7在内的所有信号线上的“1”的个数为偶数(偶校验)或者为奇数(奇校验)。在发送时产生而在接收时进行校验。   SDONE in/out:监听完成信号(Snoop Done),表明对处理器Cache对主存的监听状态。当其无效时,说明监听仍在进行,否则表示监听已经完成。

PCI时序图举例

PCI经典数据传输时序如上图所示:

1、在第一个时钟上升沿,FRAME#和IRDY#都为inactive,表明总线当前处于空闲状态。与此同时,某个设备的GNT#信号处于active,表明总线总裁器已经选定当前设备为下一个initiator(可以理解为主机)。

2、在第二个时钟上升沿,FRAME#被initiator拉低,表明新的事务(Transaction)已经开始。与此同时,地址和命令被依次发送到AD上,总线上面的所有其他设备(从机)都会锁存这些信息,并检查地址和命令是否与自己匹配。

3、在第三个时钟上升沿,IRDY#处于active状态,表明主机准备就绪,可以接收数据了。AD信号上的旋转的箭头表示AD信号目前处于三态状态(处于输出和输入的转换状态),即Turn‐around cycle。需要注意的是,此时的TRDY#应当处于inactive状态,以保证Turn‐around cycle顺利进行。

4、在第四个时钟上升沿,PCI总线上的某个从机确认身份,并依次将DEVSEL#信号和TRDY#拉低,并将相应的数据输出到AD上。此时,FRAME#信号为active状态,表明这并不是最后一个数据。

5、在第五个时钟上升沿,TRDY#处于inactive状态,表明从机尚未就绪,因此所有的操作暂缓一个时钟周期(或者说插入了一个Wait State)。PCI总线最多允许8个这样的Wait State。

6、在第六个时钟上升沿,从机向主机发送第二个数据。此时,FRAME#信号依旧为active状态,表明这并不是最后一个数据。

7、在第七个时钟上升沿,IRDY#处于inactive状态,表明主机尚未就绪,再次插入一个Wait State。但是此时从机依旧可以向AD上发送数据。

8、在第八个时钟上升沿,AD上的第三个数据被发送至主机,由于此时FRAME#信号被拉高,即inactive,表明这是本次事务(Transaction)的最后一个数据。此后,所有的控制信号均被拉高,处于inactive状态,AD、FRAME#和C/BE#处于三态状态。

 3.6.2.PCIE

差模(差分)信号

GT/S解释

PCIE引脚功能

3.7. SD和SDIO

SD(Secure Digital)是一种关于 Flash 存储卡的标准,在设计上与 MMC(Multi-Media Card)保持了兼容。

SDHC(SD High Capacity)是大容量 SD 卡,支持的最大容量为 32GB。

2009 年发布的 SDXC(SD eXtended Capacity)则支持最大 2TB 大小的容量。


SDIO(Secure Digital Input and Output Card,安全数字输入输出卡)在 SD 标准的基础上,定义了除存储卡以外的外设接口。


一般情况下,芯片内部集成的 SD 控制器同时支持 MMC、SD 卡,又支持 SDIO 卡,但是 SD 和 SDIO 的协议还是有不一样的地方,支持的命令也会有不同。SD/SDIO 的传输模式有:SPI 模式、 1 位模式、4 位模式。以下时SDIO不同模式下的引脚定义。

图 2.18 给出了一个 SDIO 单模块读、写的典型时序。

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


原文地址:https://blog.csdn.net/weixin_44178960/article/details/140626685

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!