精华内容
下载资源
问答
  • 为了能够和外部设备通信,PC机上提供了外置的USB、串口、并口及内置的ISA、PCI接口PCI总线接口速度快,系统占用率低,有完备的即插即用(PnP)管理体制,是目前计算机插卡式外设总线的事实标准。笔者设计了一块...
  • Trimedia集成电路是Philips公司新近推出的针对多媒体应用的一种高性能DSP,它能够进行高质量的视频和音频处理。... TM1300有别于一般的通用DSP,它有专门的视频接口、音频接口PCI、SSI(同步串行
  • 通过在FPGA中将PCI软核、FIFO以及设计的接口电路等相结合,在FPGA上实现了 PCI、I2C、I2S等多种总线,并且结合音频解码器实现了不同采样频率语音数据的传输以及播放功能。系统充分利用FPGA的片上资源及其可编程特性...
  • 接口是外设和主设备连接的方式/规则/协议的名称;XX总线是主设备连接某一类接口的名称 1.串口 串行数据接口标准(根据时间发展顺序介绍): RS-232;命名为EIA-232-E标准;通信距离短、速率低 RS-232C;嵌入式...

    接口是外设和主设备连接的方式/规则/协议的名称;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软件流控。

     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管的情况较多。

     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设备适配器和连接器

     主机设备拓扑结构

    工作模式:

    批量(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标准的补充。

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

    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设备。

    基于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位模式。 

    展开全文
  • PC机可供选择的总线接口基本上有ISA、PCIUSB三种。其中,ISA总线传输率很低,只有8MB/s,基本上已被淘汰;USB接口虽然对用户来说使用很方便,但它的数据传输率也不够高,USB1.1版的数据传输率只有12MB/s。由于...
  • 分析了USB主机端的层次结构,采用PowerPC8270处理器设计了一种基于PCI总线的USB主机端设备,简化了主处理器与USB控制器的交互。在VxWorks操作系统下进行了USB主机端驱动的设计和实现,并通过试验对USB主机端的功能和...
  • []PCI与PCIe

    千次阅读 2019-09-23 21:24:49
    最近在学习驱动开发过程中涉及到PCI相关知识,在网上看了很多文章,良莠不齐,我总结一下比较好的文章分享给...虽然Intel为了方便各种IP的接入而提出IOSF总线,但是其主体接口(primary interface)还依然是PCIe形式。...

     最近在学习驱动开发过程中涉及到PCI相关知识,在网上看了很多文章,良莠不齐,我总结一下比较好的文章分享给大家,那就从源头开始说起。

     

    PCI总线和设备树是X86硬件体系内很重要的组成部分,几乎所有的外围硬件都以这样或那样的形式连接到PCI设备树上。虽然Intel为了方便各种IP的接入而提出IOSF总线,但是其主体接口(primary interface)还依然是PCIe形式。我们下面分成两部分介绍PCI和他的继承者PCIe(PCI express):第一部分是历史沿革和硬件架构;第二部分是软件界面和UEFI中的PCI/PCe。

    自PC在1981年被IBM发明以来,主板上都有扩展槽用于扩充计算机功能。现在最常见的扩展槽是PCIe插槽,实际上在你看不见的计算机主板芯片内部,各种硬件控制模块大部分也是以PCIe设备的形式挂载到了一颗或者几颗PCI/PCIe设备树上。固件和操作系统正是通过枚举设备树们才能发现绝大多数即插即用(PNP)设备的。那究竟什么是PCI呢?

    PCI/PCIe的历史

    在我们看PCIe是什么之前,我们应该要了解一下PCIe的祖先们,这样我们才能对PCIe的一些设计有了更深刻的理解,并感叹计算机技术的飞速发展和工程师们的不懈努力。

    1. ISA (Industry Standard Architecture)

    2. MCA (Micro Channel Architecture)

    3. EISA (Extended Industry Standard Architecture)

    4. VLB (VESA Local Bus)

    5. PCI (Peripheral Component Interconnect)

    6. PCI-X (Peripheral Component Interconnect eXtended)

    7. AGP (Accelerated Graphics Port)

    8. PCI Express (Peripheral Component Interconnect Express)

    科技的每一步前进都是为了解决前一代中出现的问题,这里的问题就是速度。作为扩展接口,它主要用于外围设备的连接和扩展,而外围设备吞吐速度的提高,往往会倒推接口速度的提升。第一代ISA插槽出现在第一代IBM PC XT机型上(1981),作为现代PC的盘古之作,8位的ISA提供了4.77MB/s的带宽(或传输率)。到了1984年,IBM就在PC AT上将带宽提高了几乎一倍,16位ISA第二代提供了8MB/s的传输率。但其对传输像图像这种数据来说还是杯水车薪。

    IBM自作聪明在PS/2产品线上引入了MCA总线,迫使其他几家PC兼容机厂商联合起来捣鼓出来EISA。因为两者都期待兼容ISA,导致速度没有多大提升。真正的高速总线始于VLB,它绑定自己的频率到了当时486 CPU内部总线频率:33MHz。而到了奔腾时代,内部总线提高到了66MHz,给VLB带来了严重的兼容问题,造成致命一击。

    Intel在1992年提出PCI(Peripheral Component Interconnect)总线协议,并召集其它的小伙伴组成了名为 PCI-SIG (PCI Special Interest Group)(PCI 特殊兴趣组J)的企业联盟。从那以后这个组织就负责PCI和其继承者们(PCI-X和PCIe的标准制定和推广。

    不得不点赞下这种开放的行为,相对IBM当时的封闭,合作共赢的心态使得PCI标准得以广泛推广和使用。有似天雷勾动地火,统一的标准撩拨起了外围设备制造商的创新,从那以后各种各样的PCI设备应运而生,丰富了PC的整个生态环境。

    PCI总线标准初试啼声就提供了133MB/s的带宽(33MHz时钟,每时钟传送32bit)。这对当时一般的台式机已经是超高速了,但对于服务器或者视频来说还是不够。于是AGP被发明出来专门连接北桥与显卡,而为服务器则提出PCI-X来连接高速设备。

    2004年,Intel再一次带领小伙伴革了PCI的命。PCI express(PCIe,注意官方写法是这样,而不是PCIE或者PCI-E)诞生了,其后又经历了两代,现在是第三代(gen3,3.0),gen4有望在2017年公布,而gen5已经开始起草中。

    下面这个大表列出所有的速度比较。其中一些x8,x16的概念后面细节部分有介绍。

    从下面的主频变化图中,大家可能注意到更新速度越来越快。

    PCI和PCIe架构

    1。PCI架构

    一个典型的桌面系统PCI架构如下图:

    如图,桌面系统一般只有一个Host Bridge用于隔离处理器系统的存储器域与PCI总线域,并完成处理器与PCI设备间的数据交换。每个Host Bridge单独管理独立的总线空间,包括PCI Bus, PCI I/O, PCI Memory, and PCI
    Prefetchable Memory Space。桌面系统也一般只有一个Root Bridge,每个Root Bridge管理一个Local Bus空间,它下面挂载了一颗PCI总线树,在同一颗PCI总线树上的所有PCI设备属于同一个PCI总线域。一颗典型的PCI总线树如图:

    从图中我们可以看出 PCI 总线主要被分成三部分:

    1. PCI 设备。符合 PCI 总线标准的设备就被称为 PCI 设备,PCI 总线架构中可以包含多个 PCI 设备。图中的 Audio、LAN 都是一个 PCI 设备。PCI 设备同时也分为主设备和目标设备两种,主设备是一次访问操作的发起者,而目标设备则是被访问者。

    2. PCI 总线。PCI 总线在系统中可以有多条,类似于树状结构进行扩展,每条 PCI 总线都可以连接多个 PCI 设备/桥。上图中有两条 PCI 总线。

    3. PCI 桥。当一条 PCI 总线的承载量不够时,可以用新的 PCI 总线进行扩展,而 PCI 桥则是连接 PCI 总线之间的纽带。

    服务器的情况要复杂一点,举个例子,如Intel志强第三代四路服务器,共四颗CPU,每个CPU都被划分了共享但区隔的Bus, PCI I/O, PCI Memory范围,其构成可以表示成如下图:

    可以看出,只有一个Host Bridge,但有四个Root Bridge,管理了四颗单独的PCI树,树之间共享Bus等等PCI空间。

    在某些时候,当服务器连接入大量的PCI bridge或者PCIe设备后,Bus数目很快就入不敷出了,这时就需要引入Segment的概念,扩展PCI Bus的数目。如下例:

    如图,我们就有了两个Segment,每个Segment有自己的bus空间,这样我们就有了512个Bus数可以分配,但其他PCI空间因为只有一个Host Bridge所以是共享的。会不会有更复杂的情况呢? 在某些大型服务器上,会有多个Host bridge的情况出现,这里我们就不展开了。

    PCI标准有什么特点吗?

    1. 它是个并行总线。在一个时钟周期内32个bit(后扩展到64)同时被传输。引脚定义如下:

    地址和数据在一个时钟周期内按照协议,分别一次被传输。

    2. PCI空间与处理器空间隔离。PCI设备具有独立的地址空间,即PCI总线地址空间,该空间与存储器地址空间通过Host bridge隔离。处理器需要通过Host bridge才能访问PCI设备,而PCI设备需要通过Host bridge才能主存储器。在Host bridge中含有许多缓冲,这些缓冲使得处理器总线与PCI总线工作在各自的时钟频率中,彼此互不干扰。Host bridge的存在也使得PCI设备和处理器可以方便地共享主存储器资源。处理器访问PCI设备时,必须通过Host bridge进行地址转换;而PCI设备访问主存储器时,也需要通过Host bridge进行地址转换。

    深入理解PCI空间与处理器空间的不同是理解和使用PCI的基础。

    3.扩展性强。PCI总线具有很强的扩展性。在PCI总线中,Root Bridge可以直接连出一条PCI总线,这条总线也是该Root bridge所管理的第一条PCI总线,该总线还可以通过PCI桥扩展出一系列PCI总线,并以Root bridge为根节点,形成1颗PCI总线树。在同一条PCI总线上的设备间可以直接通信,并不会影响其他PCI总线上设备间的数据通信。隶属于同一颗PCI总线树上的PCI设备,也可以直接通信,但是需要通过PCI桥进行数据转发。

    2。PCIe架构

    PCI后期越来越不能适应高速发展的数据传输需求,PCI-X和AGP走了两条略有不同的路径,PCI-x不断提高时钟频率,而AGP通过在一个时钟周期内传输多次数据来提速。随着频率的提高,PCI并行传输遇到了干扰的问题:高速传输的时候,并行的连线直接干扰异常严重,而且随着频率的提高,干扰(EMI)越来越不可跨越。

    乱入一个话题,经常有朋友问我为什么现在越来越多的通讯协议改成串行了,SATA/SAS,PCIe,USB,QPI等等,经典理论不是并行快吗?一次传输多个bit不是效率更高吗?从PCI到PCIe的历程我们可以一窥原因。

    PCIe和PCI最大的改变是由并行改为串行,通过使用差分信号传输(differential transmission),如图

    相同内容通过一正一反镜像传输,干扰可以很快被发现和纠正,从而可以将传输频率大幅提升。加上PCI原来基本是半双工的(地址/数据线太多,不得不复用线路),而串行可以全双工。综合下来,如果如果我们从频率提高下来得到的收益大于一次传输多个bit的收益,这个选择就是合理的。我们做个简单的计算:

    PCI传输: 33MHz x 4B = 133MB/s

    PCIe 1.0 x1: 2.5GHz x 1b = 250MB/s (知道为什么不是2500M / 8=312.5MB吗?)

    速度快了一倍!我们还得到了另外的好处,例如布线简单,线路可以加长(甚至变成线缆连出机箱!),多个lane还可以整合成为更高带宽的线路等等。

    PCIe还在很多方面和PCI有很大不同:

    1. PCI是总线结构,而PCIe是点对点结构。一个典型的PCIe系统框图如下:

    一个典型的结构是一个root port和一个endpoint直接组成一个点对点连接对,而Switch可以同时连接几个endpoint。一个root port和一个endpoint对就需要一个单独的PCI bus。而PCI是在同一个总线上的设备共享同一个bus number。过去主板上的PCI插槽都公用一个PCI bus,而现在的PCIe插槽却连在芯片组不同的root port上。

    2. PCIe的连线是由不同的lane来连接的,这些lane可以合在一起提供更高的带宽。譬如两个1lane可以合成2lane的连接,写作x2。两个x2可以变成x4,最大直到x16,往往给带宽需求最大的显卡使用。

    3. PCI配置空间从256B扩展为4k,同时提供了PCIe memory map访问方式,我们在软件部分会详细介绍。

    4.PCIe提供了很多特殊功能,如Complete Timeout(CTO),MaxPayload等等几十个特性,而且还在随着PCIe版本的进化不断增加中,对电源管理也提出了单独的State(L0/L0s/L1等等)。这些请参见PCIe 3.0 spec,本文不再详述。

    5. 其他VC的内容,和固件理解无关,本文不再提及。INT到MSI的部分会在将来介绍PC中断系统时详细讲解。

     

    PCIe 1.0和2.0采用了8b/10b编码方式,这意味着每个字节(8b)都用10bit传输,这就是为什么2.5GHz和5GHz时钟,每时钟1b数据,结果不是312.5MB/s和625MB/s而是250MB/s和500MB/s。PCIe 3.0和4.0采用128b/130b编码,减小了浪费(overhead),所以才能在8GHz时钟下带宽达到1000MB/s(而不是800MB/s)。即将于今年发布的PCIe 4.0还会将频率提高一倍,达到16GHz,带宽达到2GB/s每Lane。

    后记

    对于一般用户来说,PCIe对用户可见的部分就是主板上大大小小的PCIe插槽了,有时还和PCI插槽混在一起,造成了一定的混乱,其实也很好区分:

    如图,PCI插槽都是等长的,防呆口位置靠上,大部分都是纯白色。PCIe插槽大大小小,最小的x1,最大的x16,防呆口靠下。各种PCIe插槽大小如下:

    常见问题:

    Q:我主板上没有x1的插槽,我x1的串口卡能不能插在x4的插槽里。

    A: 可以,完全没有问题。除了有点浪费外,串口卡也将已x1的方式工作。

    Q:我主板上只有一个x16的插槽,被我的显卡占据了。我还有个x16的RAID卡可以插在x8的插槽内吗?

    A: 你也许会惊讶,但我的答案同样是:可以!你的RAID卡将以x8的方式工作。实际上来说,你可以将任何PCIe卡插入任何PCIe插槽中! PCIe在链接training的时候会动态调整出双方都可以接受的宽度。最后还有个小问题,你根本插不进去!呵呵,有些主板厂商会把PCIe插槽尾部开口,方便这种行为,不过很多情况下没有。这时怎么办?你懂的。。。。

    Q: 我的显卡是PCIe 3.0的,主板是PCIe2.0的,能工作吗?

    A: 可以,会以2.0工作。反之,亦然。

    Q: 我把x16的显卡插在主板上最长的x16插槽中,可是benchmark下来却说跑在x8下,怎么回事?!

    A: 主板插槽x16不见得就连在支持x16的root port上,最好详细看看主板说明书,有些主板实际上是x8。有个主板原理图就更方便了。

    Q: 我新买的SSD是Mini PCIe的,Mini PCIe是什么鬼?

    A: Mini PCIe接口常见于笔记本中,为54pin的插槽。多用于连接wifi网卡和SSD,注意不要和mSATA弄混了,两者完全可以互插,但大多数情况下不能混用(除了少数主板做了特殊处理),主板设计中的防呆设计到哪里去了!请仔细阅读主板说明书。另外也要小心不要和m.2(NGFF)搞混了,好在卡槽大小不一样。

    转载于:https://www.cnblogs.com/tubujia/p/11009721.html

    展开全文
  • 单片机采集到的数据通过CH341T芯片的USB转串口的功能,实现了只用一条USB线就可以把数据传输到LabVIEW中进行显示和分析。从下位机和上位机两个部分阐述了系统的设计。实验证明,系统能实时精确的再现单片机采集的...
  • LPCI-252通用型PCI接口CAN卡,具有2路 CAN通道和一路PCI接口,插到电脑的PCI卡槽上,快速扩展出2路CAN通道。CAN接口采用金升阳电源模块和信号隔离芯片实现2500V DC电气隔离,USB接口ESD静电防护;具有优秀的EMC性能...

    LPCI-252通用型PCI接口CAN卡,具有2路 CAN通道和一路PCI接口,插到电脑的PCI卡槽上,快速扩展出2路CAN通道。CAN接口采用金升阳电源模块和信号隔离芯片实现2500V DC电气隔离,USB接口ESD静电防护;具有优秀的EMC性能,可靠性测试项目:ESD接触放电8KV、浪涌±1KV、脉冲群±2KV。
    在这里插入图片描述
    配套测试软件LCANTest使用,接收、发送、分析、记录、回放CAN报文;配套丰富驱动;配套包含库函数、库函数调用说明和丰富例程的二次开发资料包;提供全程专家指导服务。
    产品特性
    ﹂ 33M PCI数据总线,符合PCI 2.2 标准
    ﹂ 2路CAN通道
    ﹂ CAN波特率支持5Kbps~1Mbps
    ﹂ 符合CAN 2.0A/2.0B规范
    ﹂ 符合ISO/DIS 11898-1/2/3标准
    ﹂ 单通道最高帧流量高达14000帧/s
    ﹂ CAN接口电气隔离高达2500VDC,每路CAN通道独立隔离
    ﹂ 提供Windows、Linux/Ubuntu等的驱动和二次开发资料包
    ﹂ 提供支持主流开发环境的丰富例程
    ﹂ 工作温度:-40℃至+85℃
    ﹂ 接口防浪涌、防脉冲群、ESD保护设计
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 而在早期的计算机系统上通常使用串口或并口来发送数据,每个接口都需要占用计算机内部很多的资源,传统的接口一般采用PCI总线或RS-232串行总线。PCI总线有较高的传输速率,可达132 Mbit/s,也可以即插即用,但是...
  • 随着USB总线的发展和应用以及USB接口芯片出现,现在USB接口卡应该是一个即实用又方便的选择了。这项设计实现的是一个动态采集和存储系统的计算机通信接口卡,基本上可分为CY7C68013 USB接口芯片、CPLD芯片扩展控制...
  • pciusb3.0扩展卡驱动可以让没有USB3.0接口的主板升级至USB3.0高速接口,让您享受大容量与高效能储存能力,适用于多媒体影音剪辑、服务器数据库、DVR数据储存、2D/3D动画制作、美工绘图及系统数据备份等的呢,支持...
  • 这种接入方式需要计算机主板上有闲置的ISA或者PCI插槽,还需要上级网络设备有足够的接口支持。当上级网络设备的下行接口数量不够时,必须在这个网络设备下面添加集线器(HUB)或者交换机(Switcher)。 针对这种...
  • 目前市面上存在的主流传输接口标准有Thunderbolt、USB以及eSATA,本文试图理清这些令人眼花缭乱的名词,加深读者对数码知识的了解。  Thunderbolt2与Thunderbolt1的差异何在?  第二代...
  • 基于USB接口

    2020-11-18 05:20:25
     现代以计算机为核心的总线技术发展迅速,各种基于USBPCI以及ISA等总线的系统已非常普遍,但对于用户的特殊要求却不能很好的满足,往往需要单独设计。单独设计开发无论从成本还是从时间上都是很大的浪费...
  • PCI接口开发笔记

    千次阅读 2017-06-19 17:21:07
    PCI 总线标准是一种将系统外部设备连接起来的总线标准,是 PC 中最重要的总线,实际上是系统的各个部分如何交互的接口。传输速率可达到 133MB/s。在当前的 PC 体系结构中,几乎所有的外部设备采用的各种各样的接口...
    1. PCI 简介
    

    PCI 总线标准是一种将系统外部设备连接起来的总线标准,是 PC 中最重要的总线,实际上是系统的各个部分如何交互的接口。传输速率可达到 133MB/s。在当前的 PC 体系结构中,几乎所有的外部设备采用的各种各样的接口总线,均是通过桥接电路挂接到 PCI 系统上。在这种 PCI 系统中, Host/PCI 桥称为北桥,连接主处理器总线到基础 PCI 局部总线。 PCI 与其他总线的接口称为南桥,其中南桥还通常含有中断控制器、IDE 控制器、USB 控制器和 DMA 控制器等。南桥和北桥组成主板的芯片组。

    2. PCI配置空间
    每个PCI设备都有自己的配置空间,用于支持即插即用,使之满足现行的系统配置结构。下面对PCI配置空间做一下简要介绍。

    配置空间是一容量为256字节并具有特定结构的地址空间。这个空间又分为头标区和设备有关区两部分。头标区的长度是64字节,每个设备都必须配置该区的寄存 器。该区中的各个字段用来唯一地识别设备。其余的192字节因设备而异。

    为了实现即插即用,系统可根据硬件资源的使用情况,为PCI设备分配新的资源。因此编写设备驱动程序重点是获得基址寄存器(Base Address)中断干线寄存器的内容。配置空间共有六个基址寄存器和一个中断干线寄存器,具体用法如下:

    PCI Base Address 0 寄存器:系统利用此寄存器为PCI接口芯片的配置寄存器分配一段PCI地址空间,通过这段地址我们可以以内存映射的形式访问PCI接口芯片的配置寄存器。

    PCI Base Address 1寄存器:系统利用此寄存器为 PCI 接口芯片的配置寄存器分配一段PCI地址空间,通过这段地址我们可以以I/O的形式访问PCI接口芯片的配置寄存器。

    PCI Base Address 2、3、4、5寄存器:系统BIOS利用这些寄存器分配PCI地址空间以支持PCI接口芯片的局部配置寄存器0、1、2、3的访问。

    在所有基址寄存器中,第0位均为只读位,表示这段地址映射到存储器空间还是I/O空间,如果是“1”表示映射到I/O空间,如果是“0”则表示映射到存储器空间。

    中断干线寄存器(Interrupt Line):用于说明中断线的连接情况,这个寄存器的值与标准8259的IRQ编号(0~15)对应。


    3. I/O端口访问
    在 PC机上,I/O寻址方式与内存寻址方式不同,所以处理方法也不同。I/O空间是一个64K字节的寻址空间,I/O寻址没有实模式与保护模式之分,在各种 模式下寻址方式相同。在Windows NT下,系统不允许处于Ring3级的用户程序和用户模式驱动程序直接使用I/O指令,对I/O端口进行访问,任何对I/O的操作都需要借助内核模式驱动 来完成。在访问I/O端口时,使用READ_PORT_XXX与WRITE_PORT_XXX函数来进行读写。I/O端口基地址使用从配置空间基址寄存器 PCI Base Address 1中返回的I/O端口基地址。

    示例代码如下:
    RegValue = READ_PORT_ULONG(pBaseAddr+RegOffSet);
    WRITE_PORT_ULONG(pBaseAddr+ RegOffset, RegValue);


    4. 设备内存访问
    Winsows 工作在32位保护模式下,保护模式与实模式的根本区别在于CPU寻址方式上的不同,这也是Windows驱动程序设计中需要着重解决的问题。 Windows采用了分段、分页机制,使得一个程序可以很容易地在物理内存容量不一样的、配置范围差别很大的计算机上运行,编程人员使用虚拟存储器可以写 出比任何实际配置的物理存储器都大得多的程序。每个虚拟地址由16位的段选择字和32位段偏移量组成。通过分段机制,系统由虚拟地址产生线性地址。再通过 分页机制,由线性地址产生物理地址。线性地址被分割成页目录(Page Directory)、页表(Page Table)和页偏移(Offset)三个部分。当建立一个新的Win32进程时,操作系统会为它分配一块内存,并建立它自己的页目录、页表,页目录的地 址也同时放入进程的现场信息中。当计算一个地址时,系统首先从CPU控制器CR3中读出页目录所在的地址,然后根据页目录得到页表所在的地址,再根据页表 得到实际代码/数据页的页帧,最后再根据页偏移访问特定的单元。硬件设备读写的是物理内存,但应用程序读写的是虚拟地址,所以存在着将物理内存地址映射到 用户程序线性地址的问题。

    从物理内存到线性地址的转换是驱动程序需要完成的工作,可以在初始化驱动程序的进行。在已经获得设备的存 储器基地址后,首先调用HalTranslateBusAddress()函数将总线相关的内存地址转换成系统的物理地址,然后调用 MmMapIoSpace()函数将系统的物理地址映射到线性地址空间。在需要访问设备内存时,调用READ_REGISTER_XXX()与 WRITE_REGISTER_XXX ()函数来进行,基地址使用前面映射后的线性地址。在设备卸载时,调用MmUnmapIoSpace()断开设备内存与线性地址空间的映射。

    示例代码如下:
    HalTranslateBusAddress(InterfaceType,
    BusNumber,
    BaseAddress->RangeStart,
    &addressSpace, 
    &cardAddress)

    BaseAddress->MappedRangeStart = MmMapIoSpace(cardAddress,
    BaseAddress->RangeLength,
    MmCached );
    ……
    RegValue = READ_REGISTER_ULONG(pRegister);
    WRITE_REGISTER_ULONG(pRegister, pInBuf->RegValue);
    ……
    MmUnmapIoSpace(pBaseAddress->MappedRangeStart, pBaseAddress->RangeLength );


    5. 中断处理
    中 断的设置、响应与调用在驱动程序中完成。设置中断应该在设备创建时完成,使用从CmResourceTypeInterrupt描述符中提取的参数,先调 用HalGetInterruptVector()将与总线有关的中断向量参数转换为系统的中断向量,然后调用IoConnectInterrupt() 指定中断服务,注册中断服务函数ISR(Interrupt Service Routine)的函数指针。

    当硬件设备产生中断时,系统 会自动调用ISR函数来响应中断。ISR函数运行的中断请求级较高,主要完成对硬件设备中断的清除,不适合执行过多的代码。在传输大块数据时,需要使用延 迟过程调用(Delay Process Call,DPC)机制。例如,使用PCI设备进行DMA通信时,在ISR函数中完成对指定设备中断的判断以及清除中断,在退出ISR前,调用DPC函 数;在DPC函数中,完成DMA通信的过程,并将数据返回给用户程序。


    6.DMA通信过程
    DMA通信在驱动程序中实现,需要多个例程才能完成一次DMA通信。

    1) DriverEntry例程
    构造DEVICE_DESCRIPTION结构,并调用HalGetAdapter,找到与设备关联的Adapter对象,并将返回的Adapter对象的地址和映射寄存器的数目保存在设备扩展的数据结构中。

    示例代码:
    // 申请DMA的适配器对象
    deviceDescription.Version = DEVICE_DESCRIPTION_VERSION;
    deviceDescription.Master = TRUE;
    deviceDescription.ScatterGather = pDevExt->ScatterGather;
    deviceDescription.DemandMode = FALSE;
    deviceDescription.AutoInitialize = FALSE;
    deviceDescription.Dma32BitAddresses = TRUE;
    deviceDescription.BusNumber = pDevExt->BusNumber;
    deviceDescription.InterfaceType = pDevExt->InterfaceType;
    deviceDescription.MaximumLength = pDevExt->MaxTransferLength;
    pDevExt->AdapterObject = HalGetAdapter(&deviceDescription,
    &numberOfMapRegisters
    );
    ……

    2)Start I/O例程

    该例程请求Adapter对象的拥有权,然后把其余的工作留给AdapterControl回调例程。

    a) 调用KeFlushIoBuffers从CPU的Cache把数据清到物理内存,然后计算映射寄存器的数目和用户缓冲区的大小,及在第一次设备操作中传输的字节数。
    b) 调用MmGetMdlVirtualAddress,从MDL中恢复用户缓冲区的虚地址,并存入设备扩展数据结构中。
    c) 调用IoAllocateAdapterChannel请求Adapter对象的拥有权。如果调用成功,其余的设置工作由AdapterControl例程去做;如果失败了,则完成本次IRP包处理,开始处理下一个IRP。

    3) AdapterControl例程
    该例程完成初始化DMA控制器,并启动设备的工作。
    a) 调用IoMapTransfer,装入Adapter对象的映射寄存器。
    b) 向设备发送合适的命令开始传输操作。
    c) 返回值KeepObject保留Adapter对象的拥有权。

    4)中断服务(ISR)例程
    在设备中断时,由系统调用。
    a) 向硬件设备发出中断响应的指令。
    b) 调用IoRequestDpc在驱动程序的DpcForIsr中继续处理该请求。
    c) 返回TRUE,表示已经服务了本次中断。

    5)DpcForIsr例程
    由ISR在每个部分数据传输操作的结束时触发,完成当前IRP请求。
    a) 调用IoFlushAdapterBuffers,清除Adapter对象的Cache中的任何剩余数据。
    b) 调用IoFreeMapRegisters,释放所使用的映射寄存器。
    c) 检查有未传完的剩余数据,如果有,则计算下次设备操作中需要传输的字节数,调用IoMapTransfer重设映射寄存器,并启动设备;如果没有剩余数据,则完成当前IRP请求,并开始下一个请求。


    以上转自:http://blog.csdn.net/augusdi/article/details/6120014

    7. PCI端地址和Local地址的转换重映射

    例如Local端地址空间大小为1MB,即0xFFFFFh。在写入31-4位时应该是它的反码即0x0000h,其中的低4比特位由0:3来表示,即0x00000h。设置完了地址空间范围之后,就需要指定Local地址与PCI地址转换时涉及到的比特位,PCI9054手册上设高12位为两者的转换位。即高12位为0xFFF,那么整个Local Space0的范围寄存器设置为0xFFF00000h。

    在设置Local Space0 基址寄存器,手册上设置为0x12300000h,如此,在PCI地址与Local端地址转换的时候,用Local Space0基址寄存器的高12位即0x123h替换PCI地址的高12位。

    在PCI端的寄存器,由PCI上的主机来设置,在系统上电之后,PC机会给PCI端分配一个基地址0x78900000h,而PCI基址寄存器中存放的是空间偏移地址的。或者是这样理解,0x78900000h是存放在PCI基址寄存器2中,在系统进行写入1到PCI基址寄存器中时,PCI9054通过这个写入信息,结合Local Space0 Range寄存器的值来返回一个值,而实际上PCI基址寄存器的0x78900000h值没有变,所以在后面的寻址时这个PCI基址0x78900000h依然存在:)再或者,在系统写入1到PCI基址寄存器的时候,已经把PCI基址寄存器的值读取出来并保存,在查询完Local端的地址空间大小的时候,重新写入0x78900000h到PCI基址寄存器,这后面一种假设情况似乎更符合PCI9054手册中的:PCI software writes all ones to PCI Base Address,then return the value of 0xFFF00000h,and then PCI software writes to the PCI Base Address Registers。Please Note:the PCI Base Address were written twice!

    在应用程序开发操作硬件的时候,例如:PCI基址寄存器+offset ,通过PCI驱动底层的地址转换得到PCI基址寄存器(0x78900000h)+offset,这个地址可以找到PCI9054芯片的内部,然后,PCI9054芯片再把这个PCI地址进行重映射到Local端的内存空间地址,这一步根据Local Space0 Range 寄存器的设置,其高12位由Local端基址寄存器的高12位替换即所谓的重映射,而Local端基地址的高12位是0x123h,所以,PCI端的地址” PCI基址寄存器(0x78900000h)+offset”----àLocal端地址“0x12300000h +offset”,如此完成地址的重映射。

    在驱动程序的开发中,我们所操作的Local端内存的偏移地址就是offset。而在操作PCI9054芯片的内部寄存器时,其基地址由主机进行分配进PCI Base0(Mem映射)和PCI Base1(I/O映射)中。实际操作的地址就是“PCI Base0 基址寄存器 + offset”,通过offset来寻找芯片内部寄存器。

    以上转自:http://blog.csdn.net/augusdi/article/details/6119782


    8. PCI配置空间和PCI存储空间

    CPU对PCI 设备的配置,是为了完成PCI 设备存储空间的地址分配、PCI 设备功能设置等工作。配置操作时,CPU通过北桥芯片实现设备片选。
        配置寄存器组内保留了对PCI 设备的基本特性进行详尽说明的可读信息,CPU读取这些信息后,就可以为PCI 设备设定符合需要的配置内容,从而实现自动配置。这些可读信息包括:
        Vendor ID :设备供应商编号,由PCI   SIG 国际组织分配。
        Device ID :特定设备编号,由设备供应商分配。
        Revision ID :设备的特定版本号,由设备供应商分配。
        Class Code :设备的功能类别编号。
        Header Type :指示Header 中从地址10H到3FH区域的内容格式,同时指示该设备是否为多功能设备。
        PCI 存储空间不同于PCI 配置空间。PCI 存储空间可以存放PCI 设备的特殊功能寄存器,也可以用做数据缓冲和存储区域。
        PCI 存储空间分为MEMORY空间和I/O空间两类,它们独立寻址,并使用不同的总线操作命令进行访问。MEMORY空间适用于设备功能寄存器较多或数据流量较大的场合,例如网口芯片、PCI-PCI 桥等。I/O 空间适用于设备功能寄存器较少或数据流量较小的场合,例如串口芯片、LED控制寄存器等。但在地址空间比较充裕的条件下,也有把范围较小的存储区放入MEMORY空间的做法。
        操作响应者根据操作发起者发出的总线操作命令类型,来识别当前操作是指向MEMORY空间还是I/O空间
        配置寄存器组中会有一个或多个基址寄存器BAR(Base Address Register),用于保存指向PCI 存储空间的指针,同时BAR中可读不可写的位数决定了该存储空间的大小。BAR的最低位是只读位,它定义了BAR的空间属性。当BAR指向PCI   MEMORY存储空间时,该位读回为0;当BAR指向PCI   I/O存储空间时,该位读回为1。 由于BAR的这一属性,使得PCI 设备占用的存储区域是放在MEMORY空间,还是放在I/O空间,完全由设备制造商决定,用户无法修改。
        单个设备/功能的PCI   MEMROY空间的容量可选取16byte~2Gbyte。但为了减少参与地址译码的地址线数量,PCI 规范建议MEMORY空间分配不小于4Kbyte。
        单个设备/功能的 PCI   I/O空间的容量可选取4byte~256byte ,不允许超过256byte。

         访问PCI 存储空间时,都使用“BAR指针+地址偏移量”作为存储空间的访问地址。因此,为每个PCI 设备/功能分配合理的地址空间,保证设备/功能间的存储空间不发生重叠,是PCI 设备配置操作的一项重要内容。

    以上转自:http://blog.csdn.net/augusdi/article/details/6201493


    9. echo PCI EEPROM VALUES

    eep 00 905410b5 echo PCIIDR; Device ID, Vendor ID
    eep 04 06800001 echo PCICCR; Class Code
    eep 08 00000100 echo Maximum Latency, Minimum Grant, Int Pin, Int
    Routing
    eep 0c 00000000 echo MBOX0; Mail Box 0
    eep 10 00000000 echo MBOX1; Mail Box 1
    eep 14 ffc00000 echo LAS0RR; Local Address Space 0 Range
    eep 18 02000001 echo LAS0BA; Local Address Space 0 Base Address
    (Re-Map)
    eep 1c 00000000 echo MARBR; Mode/DMA Arbitration Register
    eep 20 00000400 echo PROT_AREA; Serial EEPROM Write-Protected
    eep 24 00000000 echo EROMRR; Expansion ROM Range
    eep 28 00000000 echo EROMBA; Expansion ROM Base Address (Re-Map)
    eep 2c 40400022 echo LBRD0; Bus Region Descriptors for PCI-to-Local
    Accesses
    eep 30 00000000 echo DMRR; Range for PCI Initiator-to-PCI
    eep 34 00000000 echo DMLBAM; Local Base Address for PCI
    Initiator-to-PCI Memory
    eep 38 00000000 echo DMLBAI; Local Bus Address for PCI Initiator-to-PCI
    I/O Configuration
    eep 3c 00000000 echo DMPBAM; PCI Base Address (Re-map) for PCI
    Initiator-to-PCI
    eep 40 00000000 echo DMCFGA; PCI Configuration Address Register for PCI
    Initiator-to-PCI I/O Configuration
    eep 44 905410b5 echo Subsystem ID, Subsystem Vendor ID
    eep 48 ffffff01 echo LAS1RR; Local Address Space 1 Range
    eep 4c 03000001 echo LAS1BA; Local Address Space 1 Base Address
    (Re-Map)
    eep 50 40000022 echo LBRD1; Bus Region Descriptors (Space 1) for
    PCI-to-Local Accesses
    eep 54 00000000 echo Hot Swap control


    10. 硬件设计的注意事项

    在C模式下,PCI9054的143脚LHOLD和144脚LHOLDA是总线仲裁输入输出信号控制引脚,从公开发表的论文来看,有人将这两个引脚直接与设计电路相连进行总线仲裁逻辑设计。笔者在设计时也曾采用过这种方式,结果计算机运行很不稳定,经常莫名其妙地死机。仔细分析这种方式设计的电路会发现,该设计电路其实是利用器件的引脚传输延时配合总线仲裁电路的时序关系的。一般情况下,当环境温度、工作电压等外界因素变化时,大多数据逻辑器件的引脚延时会有相应的变化,因此用器件引脚延时设计出的总线仲裁逻辑电路运行不稳定应该是预料之中的事。
    利用D触发器只在触发时钟有效边沿对信号敏感的特性进行设计,提高电路运行的稳定性,是可编程逻辑器件设计中的一种常用技巧。

    ADS#、BLAST#和READY#信号的时序配合很重要,如果配合不好,计算机同样会死机。要提高电路稳定性,其设计思想与图2中的总线仲裁逻辑电路的设计思想相似。从多次实验情况来看,无论使用哪种工作模式,在该设计思想下设计出的本地总线控制逻辑电路运行非常稳定,没有死机的情况发生。


    11. 存储器和I/O操作
    通常PCI扩展板应该有配置空间、存储器空间和I/O空间三类资源。空间配置是必须的,根据设计需要,后两种资源可以只包含其中之一。PCI9054有S0和S1两个配置空间,两个配置空间都可以配置成存储器空间和I/O空间,存储器空间和I/O空间的配置既有相同之处,也有很大的区别。其相同点为两者都以字节为单位进行空间配置。不同之处有以下几点:
    (1)存储器空间支持0~4GB的空间配置和映射,而I/O空间只支持0~256字节的空间配置和映射;
    (2)存储器空间支持8位、16位和32位总线位宽配置和操作,而I/O空间只支持32位总线位宽配置和操作;
    (3)存储器空间支持单一周期和突发模式读写操作,而I/O空间只支持单一周期读写操作;
    (4)在编写设备驱动程序时,存储器空间用程序指针进行访问,I/O空间则用专用的函数进行访问。
    如果不清楚存储器空间和I/O空间的异同步,有可能配错相应的寄存器。当计算机重新启动时,很有可能会启动不起来。除此之外,值得注意的是:在配置存储器空间和I/O空间时,不要将两种硬件资源配置到相同的空间,导致空间重叠,使驱动程序产生误操作


    12. Target时序图   DMA时序图 (暂时不使用burst模式进行发送)


    13. 编写FPGA时需要用的参考,该参考使用VC编写的上位机发送程序

    http://www.cnblogs.com/bude/p/6304573.html


    14. 驱动开发相关

    http://www.voidcn.com/blog/shejiannan/article/p-1475184.html

    http://blog.csdn.net/augusdi/article/details/6202531

    15. 在线烧录的注意事项

    烧录EEPROM有两种方式,一是比较传统的方法,即采用烧录机进行烧录。采用这种方式时,在调试过程中EEPROM需采用插件式封装的芯片(DIP),因为每烧录一次,就需要拔出芯片到烧录机上进行烧写。这样频繁插拔,很明显会对芯片造成一定损害。当然对于最终的产品来讲,也可以采用贴片封装的EEPROM,因为在调试过程中已经把EEPROM的值调好了,把贴片的EEPROM在烧录机上烧好值再焊接在板子上。比较常见的烧写头是针对DIP封装的芯片,如果你采用贴片的封装,则可以买一个SOP封装的烧写头(最常用的贴片EEPROM的封装为SOP-8)。

           二就是进行在线烧录,这也是我极力推荐大家使用的方式。采用这种方式时,直接采用贴片封装的EEPROM即可。可以预先把空白的EEPROM芯片焊接在板子上,然后把PCI卡插在计算机的PCI插槽上,开机进入windows系统,运行PLXMON进行在线烧写,这种方式既省时又省力,而且方便快捷。

          但是采用在线烧录时,有几点务必要注意,否则将会费很多周折。在设计时,你就应该把PCI芯片(比如9054)的TEST引脚以及EEDI/O引脚同时设计成上下拉。这里有几种情况:

    1 板上没有焊接EEPROM。 这时如果你还想调试PCI卡的话,就需要把TEST引脚下拉,EEDI/O引脚下拉。但在开机的时候要把TEST引脚上拉一下才能进入系统,这时PCI卡采用默认的配置数据。

    2 板上焊接空白的EEPROM,这也是我们进行在线烧录时的情况。这时需要把TEST引脚下拉,EEDI/O引脚上拉。但在开机时需要把TEST引脚上拉一下才能进入系统,如果卡硬件没问题,系统会提示找到新硬件,并提示安装驱动程序。安装好驱动程序之后,打开PLXMON,这时EEPROM的标志会呈现黑色,即可访问状态,点击该标志,会打开EEPROM的内容。当然EEPROM空白的话,打开的内容是全‘F’的值,这时点击“浏览”打开配置数据文件(格式为xxx.eep),再点击write即可成功烧录EEPROM。如果你打开PLXMON时,EEPROM的标志呈现灰白色,即无法访问的状态,则有两种可能,一是驱动程序没有安装好,二是因为你硬件有问题,比如晶振或者是EEPROM或者是9054芯片没有焊好。

    另外,如果焊接空白的EEPROM,你把TEST引脚下拉,EEDI/O也下拉时,这时不需要上拉一下TEST便可以直接进入操作系统。但此时没有办法进行在线烧录,你打开PLXMON的EEPROM的页面时,会发现内容是全‘0’的值,这时对EEPROM进行write时,会提示出现错误。所以这种配置也只能是为了调试卡之用,并不能进行在线烧录。

    3 按照第二步的步骤烧录好EEPROM之后,你下次再进入系统便可直接进入了,这也是正常操作的模式。这时的配置也是TEST下拉,EEDI/O上拉。

    以上转自:http://blog.csdn.net/augusdi/article/details/6118167











    展开全文
  • 2)CAN-PCI接口卡;3)CAN-USB接口卡。CAN-RS232接口卡速度太慢,且不支持热插拔;CAN-PCI接口卡虽然速度快,但不支持热插拔。而采用CAN-USB接口卡,不但速度快,而且支持热插拔,并且可以从系统中直接汲取电流而不...
  • PCIe实践之路:PCIe转USB Host驱动

    万次阅读 2018-05-18 23:26:22
    RC平台为ARM-A7,运行裸机环境,EP为一款PCIe转USB3.0芯片,提供PCIe gen2 1X物理接口,接到4X插槽上。 一、芯片选型 PCIe转USB3.0芯片为vl805,网上没有找到datasheet,驱动只有windows下的,但是通过官网信息...
  • PIPE协议,PHY Interface For the PCI Express, SATA, USB 3.1, DisplayPort, and Converged I0 Architectures Version 5.2.1
  • USB接口和雷电接口有什么关系?

    千次阅读 2019-11-30 22:00:00
    关注、星标公众号,不错过精彩内容作者:strongerHuang公众号:strongerHuang随着USB 3.2和Tpye-C的普及,可能在一些地方会说雷电接口,但是很多人还是模糊不...
  • 1 引言虚拟示波器,是将计算机强大的计算处理能力和一般硬件仪器的信号采集,控制能力结合在一起,从而...所以,我们需要一种更方便,更有效,更灵活的总线通讯方式来实现虚拟仪器,现代计算机一般都具有USB接口,且US
  • hisi3559平台PCIE转USB调试(

    千次阅读 2019-03-25 15:47:01
    hisi3559平台PCIE转USB调试() 版权声明:转载请注明出处。... 第1章 PCIE驱动框架介绍 pci驱动分为总线驱动和设备驱动。总线驱动是linux内核完成,主要完成...设备驱动是针对PCI接口具体设备需要实现的功能 hi...
  • 摘要:讨论基于USB接口的高速数据采集卡的设计与实现。详细讲述数据采集卡的硬件部分设计,并简要介绍固件程序、驱动程序和应用软件的设计。 关键词:USB2.0 FPFO FPGA 固件程序 主从系统引言数据采集在现代工业生产...
  • GPIB 我们研究的第一个总线是IEEE 488总线,较为熟悉的称谓是GPIB(通用接口总线)。GPIB是一种在业界已经得到证明的专为仪器控制应用设计的总线。GPIB在过去30年来一直是鲁棒的、可靠的通信总线,由于其低时延和可...
  • 这种接入方式需要计算机主板上有闲置的ISA或者PCI插槽,还需要上级网络设备有足够的接口支持。当上级网络设备的下行接口数量不够时,必须在这个网络设备下面添加集线器(HUB)或者交换机(Switcher)。 针对这种...
  • ISA、PCI、AGP、PCI-E接口

    千次阅读 2017-02-17 17:20:00
    目前PCI接口的显卡已经不多见了,只有较老的PC上才有,厂商也很少推出此类接口的产品。当然,很多服务器不需要显卡性能好,因此使用古老的PCI显卡。通常只有一些完全不带有显卡专用插槽(例如AGP或者PCI Express)的...
  • 引言  工程师在设计基于PC的数据采集系统时都认为...另外,相比于PCI卡,USB接口对系统的开发与升级更加方便。  QuickUSB[1]是基于CY7C68013A[2]开发的一款针对USB2.0的高速USB模块。Bitwise公司为这款模块提供嵌入
  • RS485 CAN USB VGA LVDS RS232 HDMI VGA 以太网接口电路电子产品接口EMC硬件设计标准电路资料合集: 485接口EMC设计标准电路.pdf CAN总线.pdf CAN接口EMC设计标准电路.pdf CPCI DRAFT.pdf DVI接口EMC设计标准电路.pdf...
  • 摘要:讨论了基于USB接口的高速数据采集卡的实现。该系统采用TI公司的TUSB3210芯片作为USB通信及主控芯片,完全符合USB1.1协议,是一种新型的数据采集卡。 关键词:USB A/D FIFO 固件现代工业生产和科学研究对数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,715
精华内容 7,886
关键字:

usb转pci接口