pcie基本概念及其工作原理介绍:PCI Express®(或称PCIe®),是一项高性能、高带宽,此标准由互连外围设备专业组(PCI-SIG)制 订,用于替代PCI、PCI Extended (PCI-X)等基于总线的通讯体系架构以及图形加速端口(AGP)。 转向PCIe主要是为了实现显著增强系统吞吐量、扩容性和灵活性的目标,同时还要降低制造成本,而这 些都是基于总线的传统互连标准所达不到的。PCI Express标准在设计时着眼于未来,并且能够继续演 进,从而为系统提供更大的吞吐量。第一代PCIe规定的吞吐量是每秒2.5千兆比特(Gbps),第二代规 定的吞吐量是5.0 Gbps,而最近公布PCIe 3.0标准已经支持8.0 Gbps的吞吐量。在PCIe标准继续充分利 用最新技术来提供不断加大的吞吐量的同时,采用分层协议也便于PCI向PCIe的演进,并保持了与现有 PCI应用的驱动程序软件兼容性。 虽然最初的目标是计算机扩展卡以及图形卡,但PCIe目前也广泛适用于涵盖更广的应用门类,包括网络 组建、通信、存储、工业电子设备和消费类电子产品。 本白皮书的目的在于帮助读者进一步了解PCI Express以及成功PCIe成功应用。 PCI Express基本工作原理 拓扑结构 本节介绍了PCIe协议的基本工作原理以及当今系统中实现和支持PCIe协议所需要的各个组成部分。本节 的目标在于提供PCIe的相关工作知识,并未涉及到PCIe协议的具体复杂性。 PCIe的优势就在于降低了复杂度所带来的成本。PCIe属于一种基于数据包的串行连接协议,它的复杂度 估计在PCI并行总线的10倍以上。之所以有这样的复杂度,部分是由于对以千兆级的速度进行并行至串 行的数据转换的需要,部分是由于向基于数据包实现方案的转移。 PCIe保留了PCI的基本载入-存储体系架构,包括支持以前由PCI-X标准加入的分割事务处理特性。此 外,PCIe引入了一系列低阶消息传递基元来管理链路(例如链路级流量控制),以仿真传统并行总线的 边带信号,并用于提供更高水平的健壮性和功能性。此规格定义了许多既支持当今需要又支持未来扩展 的特性,同时还保持了与PCI软件驱动程序的兼容性。PCI Express的先进特性包括:自主功率管理; 先进错误报告;通过端对端循环冗余校验(ECRC)实现的端对端可靠性,支持热插拔;以及服务质量(QoS)流量分级。
上传时间: 2013-11-29
上传用户:zw380105939
已通过CE认证。(为什么要选择经过CE认证的编程器?) 程速度无与伦比,逼近芯片理论极限。 基本配置48脚流行驱动电路。所选购的适配器都是通用的(插在DIP48锁紧座上),即支持同封装所有类型器件,48脚及以下DIP器件无需适配器直接支持。通用适配器保证快速新器件支持。I/O电平由DAC控制,直接支持低达1.5V的低压器件。 更先进的波形驱动电路极大抑制工作噪声,配合IC厂家认证的算法,无论是低电压器件、二手器件还是低品质器件均能保证极高的编程良品率。编程结果可选择高低双电压校验,保证结果持久稳固。 支持FLASH、EPROM、EEPROM、MCU、PLD等器件。支持新器件仅需升级软件(免费)。可测试SRAM、标准TTL/COMS电路,并能自动判断型号。 自动检测芯片错插和管脚接触不良,避免损坏器件。 完善的过流保护功能,避免损坏编程器。 逻辑测试功能。可测试和自动识别标准TTL/CMOS逻辑电路和用户自定义测试向量的非标准逻辑电路。 丰富的软件功能简化操作,提高效率,避免出错,对用户关怀备至。工程(Project)将用户关于对象器件的各种操作、设置,包括器件型号设定、烧写文件的调入、配置位的设定、批处理命令等保存在工程文件中,每次运行时一步进入写片操作。器件型号选择和文件载入均有历史(History)记录,方便再次选择。批处理(Auto)命令允许用户将擦除、查空、编程、校验、加密等常用命令序列随心所欲地组织成一步完成的单一命令。量产模式下一旦芯片正确插入CPU即自动启动批处理命令,无须人工按键。自动序列号功能按用户要求自动生成并写入序列号。借助于开放的API用户可以在线动态修改数据BUFFER,使每片芯片内容均不同。器件型号选错,软件按照实际读出的ID提示相近的候选型号。自动识别文件格式, 自动提示文件地址溢出。 软件支持WINDOWS98/ME/NT/2000/XP操作系统(中英文)。 器件型号 编程(秒) 校验(秒) P+V (s) Type 28F320W18 9 4.5 13.5 32Mb FLASH 28F640W30 18 9 27 64Mb FLASH AM29DL640E 38.3 10.6 48.9 64Mb FLASH MB84VD21182DA 9.6 2.9 12.5 16Mb FLASH MB84VD23280FA 38.3 10.6 48.9 64Mb FLASH LRS1381 13.3 4.6 19.9 32Mb FLASH M36W432TG 11.8 4.6 16.4 32Mb FLASH MBM29DL323TE 17.5 5.5 23.3 32Mb FLASH AT89C55WD 2.1 1 3.1 20KB MCU P89C51RD2B 4.6 0.9 5.5 64KB MCU
上传时间: 2013-11-21
上传用户:xiaoyuer
注:1.这篇文章断断续续写了很久,画图技术也不精,难免错漏,大家凑合看.有问题可以留言. 2.论坛排版把我的代码缩进全弄没了,大家将代码粘贴到arduino编译器,然后按ctrl+T重新格式化代码格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脉宽调制波,通过调整输出信号占空比,从而达到改 变输出平均电压的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 个8 位精度PWM 引脚,分别是3, 5, 6, 9, 10, 11 脚。我们可以使用analogWrite()控 制PWM 脚输出频率大概在500Hz 的左右的PWM 调制波。分辨率8 位即2 的8 次方等于 256 级精度。但是有时候我们会觉得6 个PWM 引脚不够用。比如我们做一个10 路灯调光, 就需要有10 个PWM 脚。Arduino Duemilanove 2009 有13 个数字输出脚,如果它们都可以 PWM 的话,就能满足条件了。于是本文介绍用软件模拟PWM。 二、Arduino 软件模拟PWM Arduino PWM 调压原理:PWM 有好几种方法。而Arduino 因为电源和实现难度限制,一般 使用周期恒定,占空比变化的单极性PWM。 通过调整一个周期里面输出脚高/低电平的时间比(即是占空比)去获得给一个用电器不同 的平均功率。 如图所示,假设PWM 波形周期1ms(即1kHz),分辨率1000 级。那么需要一个信号时间 精度1ms/1000=1us 的信号源,即1MHz。所以说,PWM 的实现难点在于需要使用很高频的 信号源,才能获得快速与高精度。下面先由一个简单的PWM 程序开始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 这是一个软件PWM 控制Arduino D13 引脚的例子。只需要一块Arduino 即可测试此代码。 程序解析:由for 循环可以看出,完成一个PWM 周期,共循环255 次。 假设bright=100 时候,在第0~100 次循环中,i 等于1 到99 均小于bright,于是输出PWMPin 高电平; 然后第100 到255 次循环里面,i 等于100~255 大于bright,于是输出PWMPin 低电平。无 论输出高低电平都保持30us。 那么说,如果bright=100 的话,就有100 次循环是高电平,155 次循环是低电平。 如果忽略指令执行时间的话,这次的PWM 波形占空比为100/255,如果调整bright 的值, 就能改变接在D13 的LED 的亮度。 这里设置了每次for 循环之后,将bright 加一,并且当bright 加到255 时归0。所以,我们 看到的最终效果就是LED 慢慢变亮,到顶之后然后突然暗回去重新变亮。 这是最基本的PWM 方法,也应该是大家想的比较多的想法。 然后介绍一个简单一点的。思维风格完全不同。不过对于驱动一个LED 来说,效果与上面 的程序一样。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,这段代码少了一个For 循环。它先输出一个高电平,然后维持(bright*30)us。然 后输出一个低电平,维持时间((255-bright)*30)us。这样两次高低就能完成一个PWM 周期。 分辨率也是255。 三、多引脚PWM Arduino 本身已有PWM 引脚并且运行起来不占CPU 时间,所以软件模拟一个引脚的PWM 完全没有实用意义。我们软件模拟的价值在于:他能将任意的数字IO 口变成PWM 引脚。 当一片Arduino 要同时控制多个PWM,并且没有其他重任务的时候,就要用软件PWM 了。 多引脚PWM 有一种下面的方式: int brights[14] = {0}; //定义14个引脚的初始亮度,可以随意设置 int StartPWMPin = 0, EndPWMPin = 13; //设置D0~D13为PWM 引脚 int PWMResolution = 255; //设置PWM 占空比分辨率 void setup() { //定义所有IO 端输出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //随便定义个初始亮度,便于观察 brights[ i ] = random(0, 255); } } void loop() { //这for 循环是为14盏灯做渐亮的。每次Arduino loop()循环, //brights 自增一次。直到brights=255时候,将brights 置零重新计数。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是计数一个PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每个PWM 周期均遍历所有引脚 { if(i < brights[j])\ 所以我们要更改PWM 周期的话,我们将精度(代码里面的变量:PWMResolution)降低就行,比如一般调整LED 亮度的话,我们用64 级精度就行。这样速度就是2x32x64=4ms。就不会闪了。
上传时间: 2013-10-23
上传用户:mqien
阿房投票问卷管理系统 1)管理员登陆帐号和密码都是admin。 2)数据库连接方式是使用JDBC For SQL Server驱动。用户使用时要修改opendata.jsp文件,修改SQL Server登陆用户名和密码。 3)目前的数据库连接、访问、修改都是通过页面完成,效率不是太高,在新版本中将使用JavaBeans实现。 4)新版本将添加如下功能:管理员权限设置、投票主题发布可选择单选或多选、投票者留言反馈等。
标签: opendata Server admin JDBC
上传时间: 2013-12-15
上传用户:yangbo69
[文件名] Touch.c [功 能] 8051单片机驱动ADS7846/ADS7843芯片 [简 介] ADS7846/7843芯片 适合用在4线制触摸屏,它通过标准SPI协议和CPU通信,操作简单,精度高,当触摸屏被按下时(即有触摸事件发生)则ADS7846向CPU发中断请求,CPU接到请求后,应延时一下再响应其请求,目的是为了消除抖动使得采样更准确。如果一次采样不准确,可以尝试多次采样取最后一次结果为准,目的也是为了消除抖动。
上传时间: 2014-01-03
上传用户:talenthn
功率谱估计的应用范围很广,在各学科和应用领域中受到了极大的重视。在《现代信号处理》课程中讲述了经典谱估计和现代谱估计这两大类谱估计方法;经典谱估计是基于傅立叶变换的,虽然具有运算效率高的优点,但是频谱分辨率低同时旁瓣泄漏严重,对长序列有着良好的估计。为了克服经典谱估计的缺点,人们开展了对现代谱估计方法的研究。现代谱估计是以随机过程的参数模型为基础的,有最大似然估计法、最大熵法、AR模型法、预测滤波器法。现代谱估计对短序列的估计精度高,同经典谱估计互为补充。在认真学习了现 代谱估计方法后,我选择了现代谱估计中的AR模型法的仿真作为题目。下面给出AR模型的相关理论和仿真实现。
标签: 功率谱估计
上传时间: 2013-12-25
上传用户:yepeng139
UArmJtag2.0仿真软件 功能强大、超“硬”的软件仿真器! 博创科技最新发布的ARM调试驱动程序UArmJtag2.0是UArmJtag1.5的升级版本,是继能够成功支持ADS1.2的UArmJtag1.5后的又一重大贡献,UArmJtag2.0可以独立实现FLASH烧写功能,完全替代一般意义上的硬件仿真器,使广大高校师生和科研爱好者从高成本的ARM开发工具中解脱出来! UArmJtag是博创科技自主研发的,超低成本,高性能的ARM仿真调试工具,支持目前市场普遍采用的并口模拟简易仿真器,使简易仿真器速度和功能达到并超过一般通用ARM硬件仿真器的水平。UArmJtag完全支持RDI 1.5.1调试协议,可以和ARM公司的SDT2.51、ADS1.2仿真开发环境配合使用。 最新的UArmJtag2.0版本保持了UArmJtag 1.5的原有功能,并增加了以下独到功能: 1、FLASH编程功能:把硬件仿真器的算法加入到了UArmJtag2.0版中,实现了对FLASH的稳定编程,编程速度达到甚至超过部分硬件仿真器的水平。使用户彻底解决了丢失BIOS数据的困扰。 2、支持ARM9在线调试:UArmJtag2.0版支持ARM7/ARM9系列嵌入式微处理器的调试,在ADS1.2开发环境下仿真调试速度达到甚至超过部分硬件仿真器的水平,稳定可靠。
上传时间: 2015-04-03
上传用户:熊少锋
基于AVR系列单片机MEGA8的PS2键盘驱动程序,代码中加了去抖动处理,识别率高。
上传时间: 2013-12-12
上传用户:邶刖
本书是讲述VxD和设备驱动程序的权威指南。主要分为两部分。第一部分(第2到第12章)讲述Windows执行环境和VxD。第二部分(第13到第19章)讲述基于DLL的驱动程序。本书几乎涵盖了设备驱动程序开发的各个层面,内容全面翔实,可读性较高。
上传时间: 2015-04-16
上传用户:hullow
这是一个市场上常见电视卡的驱动程序源代码,对做电视卡驱动程序开发的朋友有很高的参考价值。
上传时间: 2014-06-04
上传用户:rocketrevenge