为了实现USB主机功能的统一,提高系统的可靠性与可移植性,上游芯片生产厂家在确定USB标准的同时,也确定了相应的主机规范。现在用得比较广泛的有三种,其中的用于USB2.0高速设备的EHCI(Enhanced Host Control Interface增强主机控制接口)规范是INTEL用于USB2.0高速主机的。而同是INTEL推出的UHCI(Universal Host Control Interface 通用主机)与前Compaq 、Microsoft等推出的OHCI(Open Host Control Interface开放主机控制接口)可用于全速与低速USB系统中,硬件的要求与系统性能、软件复杂的要求相对较低,也能够满足大部分的具有USB接口嵌入式系统的要求。而在UHCI与OHCI的对比中,UHCI对硬件的要求相对较少,但对系统的处理能力与软件的开发要求相对要高(PC机就较多地采用了UHCI);OHCI则把较多的功能定义在硬件中,软件需要处理的内容就相对容易,对系统的处理能力和系统资源的要求就低。因此,在嵌入式的USB HOST功能中,较多地选用了遵循OHCI的规范的硬件,从而简化了系统的设计。
主控器
主控器(HC)控制总线上包的传输。使用1毫秒的帧。在每帧开始时,主控器产生一个帧开始(SOF, Start of Frame)包。
SOF包用于同步帧的开始和跟踪帧的数目。包在帧中被传输,或由host 到设备(out),或由设备到host(in)。传输总是由host发起(轮询传输)。因此每条USB总线只能有一个host。每个包的传输都有一个状态阶段,数据接收者可以在其中返回ACK(应答接收),NAK(重试),STALL(错误条件)或什么也没有(混乱数据阶段,设备不可用或已断开)。USB规范 USB specification的第8.5节更详细地解释了包的细节。USB总线上可以出现四中不同类型的传输:控制(control),大块(bulk),中断 (interrupt)和同步(isochronous)。传输的类型和他们的特性在下面描述(`管道'子节中)。
USB总线上的设备和设备驱动程序间的大型传输被主控器或HC 驱动程序分割为多个包。
到默认端点的设备请求(控制传输)有些特殊。它们由两或三个阶段组成:启动(SETUP),数据(DATA,可选)和状态(STATUS)。设置(set-up)包被发送到设备。如果存在数据阶段,数据包的方向在设置包中给出。状态阶段中的方向与数据阶段期间的方向相反,或者当没有数据阶段时为IN。主控器硬件也提供寄存器,用于保存根端口的当前状态和自从状态改变寄存器最后一次复位以来所发生的改变。USB规范[2]建议使用一个虚拟hub来提供对这些寄存器的访问。虚拟hub必须符合规范第11章中给出的 hub设备类。它必须提供一个默认管道使得设备请求可以发送给它。它返回标准和hub类特定的一组描述符。它也应当提供一个中断管道用来报告其端口发生的变化。当前可用的主控器规范有两个: 通用主控器接口(UHCI;英特尔)和 开放主控器接口(OHCI;康柏,微软,国家半导体)。 UHCI规范的设计通过要求主控器驱动程序为每帧的传输提供完整的调度,从而减少了硬件复杂性。OHCI类型的控制器自身提供一个更抽象的接口来完成很多工作,从而更加独立。
13.2.1 UHCI
UHCI主控器维护着带有1024个指向每帧数据结构的帧列表。它理解两种不同的数据类型:传输描述符(TD)和队列头(QH)。每个 TD表示表示与设备端点进行通信的一个包。QH是将一些TD(和QH)划分成组的一种方法。
每个传输由一个或多个包组成。UHCI驱动程序将大的传输分割成多个包。除同步传输外,每个传输都会分配一个QH。对于每种类型的传输,都有一个与此类型对应的QH,所有这些QH都会被集中到这个QH上。由于有固定的时延需求,同步传输必须首先执行,它是通过帧列表中的指针直接引用的。最后的同步TD传输引用那一帧的中断传输的QH。中断传输的所有QH指向控制传输的QH,控制传输的QH又指向大块传输的QH。下面的图表给出了一个图形概览:
这导致下面的调度会在每帧中运行。控制器从帧列表中取得当前帧的指针后,首先为那一帧中的所有的同步(isochronous)包执行TD。这些TD的最后一个引用那一帧的中断传输的QH。然后主控器将从那个QH下行到各个中断传输的QH。完成那一队列后,中断传输的QH会将控制器指向到所有控制传输的QH。它将执行在那儿等待调度的所有子队列,然后是在大块QH中排队的所有传输。为了方便处理已完成或失败的传输,硬件会在每帧末尾产生不同类型的中断。在传输的最后一个TD中,HC驱动程序设置 Interrupt-On-Completion位来标记传输完成时的一个中断。如果TD达到了其最大错误数,就标记错误中断。如果在TD中设置短包侦测位,且传输了小于所设置的包长度(的包),就会标记此中断以通知控制器驱动程序传输已完成。找出哪个传输已完成或产生错误是主控器驱动程序的任务。当中断服务例程被调用时,它将定位所有已完成的传输并调用它们的回调。
更详尽的描述请看 UHCI specification。
13.2.2 OHCI
对OHCI主控器进行编程要容易得多。控制器假设有一组端点(endpoint)可用,并知道帧中不同传输类型的调度优先级和排序。主控器使用的主要数据结构是端点描述符(ED),它上面连接着一个传输描述符(TD)的队列。 ED包含端点所允许的最大的包大小,控制器硬件完成包的分割。每次传输后都会更新指向数据缓冲区的指针,当起始和终止指针相等时,TD就退归到完成队列(done-queue)。四种类型的端点各有其自己的队列。控制和大块(bulk)端点分别在它们自己的队列排队。中断ED在树中排队,在树中的深度定义了它们运行的频度。
帧列表 中断 同步(isochronous) 控制大块(bulk)
主控器在每帧中运行的调度看起来如下。控制器首先运行非周期性控制和大块队列,最长可到HC驱动程序设置的一个时间限制。然后以帧编号低5位作为中断ED树上深度为0的那一层中的索引,运行那个帧编号的中断传输。在这个树的末尾,同步ED被连接,并随后被遍历。同步TD包含了传输应当运行其中的第一个帧的帧编号。所有周期性的传输运行过以后,控制和大块队列再次被遍历。中断服务例程会被周期性地调用,来处理完成的队列,为每个传输调用回调,并重新调度中断和同步端点。
更详尽的描述请看 OHCI specification。服务层,即中间层,提供了以可控的方式对设备进行访问,并维护着由不同驱动程序和服务层所使用的资源。此层处理下面几方面:
设备配置信息
与设备进行通信的管道
探测和连接设备,以及从设备分离(detach)。
导致目前这种状态,是因为你计算机(或辅助设备)一开始就处于亚健康状态,这种状态的出现是必然的;原来你没有出现这种病态是属于万幸中的偶然;这种现象产生的原因很多(用户配置固然十分重要),你的问题要“全面彻底”的查找,这里特别强调“全面、彻底”这四个字;任何一方面的原因都是产生这种现象产生的根源,问题是你被动的结果,要主动出击,尽早减少问题的存在;我这里像中医一样:对你实行标本兼治;你不妨按下面几个方面去仔细的完全、彻底的进行检查;这样就=疏通(畅通你的筋络)各个设备的道路,道路疏通了=你的问题不就解决了吗(完全脱离亚健康状态)。★版权申明:本答案为和谐原创,任何人不得盗用!★1:检查电源 1.1用万用表检查电源是否稳定?1.2交流电压波动是否在允许范围内? 1.3A/D变换电源后的纹波系数(用毫伏表检查)是否合格?1.4电源的温升是否异常? 1.5稳压特性是否符合技术指标?1.6额定负载下稳压特性和纹波系数是否符合技术指标?1.7更换大的风扇时,你的电源容量是否满足要求?1.8一般辅助设备(路由器、网络交换机、猫等)的电源都是整流电源,没有稳压功能,纹波系数较大(可能是滤波电容干枯所致),负载能力也较差;应特别注意。1.9由于设备过电压(像给孩子喂食一样,多了能撑死)、低电压(像给孩子喂食一样,少了会营养不良)、电压波动过大(如同给孩子吃饭,饥一顿、饱一顿的不定量)、过电流、发热,导致过热保护动作切出故障并将设备退出运行(即:会产生慢、延迟、重复启动、延迟、掉线、中断、断线、自动关机、死机等显现像)等;1.10电源的过流保护和过热保护是否正确动作?动作是否灵敏?是否拒动或误动?2:检查网络线和水晶头(R45):2.1水晶头与座是否插好(松动吗)?2.2接触是否良好?接触电阻是多少?2.3是否有积灰?是否氧化?2.4水晶头与座机械闭锁是否已经闭锁?2.5闭锁是否牢固?2.6网络线与水晶头是否压紧并接触良好?2.7网络线的线间绝缘电阻(采用100V的摇表),应大于20兆欧。 ★版权申明:本答案为和谐原创,任何人不得盗用!★3:接地:接地主要是保障人身和设备的安全!多点接地、重复接地、就近接地是原则;接地分为保护接地、屏蔽接地、工作接地等;静电是造成死机蓝屏的罪魁祸首!我用杂音计测试不接地时的杂音电压大于信号6000多倍,你不接地,这样高的杂音你设备能工作吗?接地是做IT的最基本的要求,模拟设备是这样,数字电路更是这样,来自各方面的干扰都可以通过接地予以消减或消除,外来干扰和本地、本机间布线的线间耦合都可以消减和消除,做好设备的接地屏蔽工作,很多干扰来自于屏蔽不好、接地不良,很多人都是只在软件上做工作,许多干扰都是由接地不良或没有接地所引起的,这种故障十分容易产生,也容易被很多人忽视,很多设备损坏与接地有直接关系,没有接地或接地不良都会导致码间干扰、误码、延迟、丢包、断续、掉线(断线、中断)、死机、卡、自动关机、反复启动、重复启动、频繁重启(或反复用连接)等现象。接地必须有两个以上的接地极,每个接地极之间最少间隔10米以上,接地极至机房的接地线不得有任何接头,分别用截面不小于25平方毫米的软铜线引入到机房的汇流排(中间不允许有任何接头),接地线与法拉第网对称连接以利于分流散流,与汇流排连接点要涂覆银粉导电膏,每个设备至汇流排(独立)的接地线截面不得小于4平方米多股软铜线,汇流排对每个接地极的接地电阻小于5欧姆(越小越好)。每年最少使用接地仪(2.5级以上的接地仪测量,且仪表在检验合格期范围内)检查两次以上。检查接地极时,严禁在雷雨天气下进行。严禁用自来水管和电力线的N零线作为接地使用;也就是独立的接地装置。每台设备的线独立的连接于机房的汇流排,严禁串接后再接汇流排。我可以很主观的说:无论你是个人用户还是大型机房的集体用户,你根本就没有接地(或接地不合格)。★版权申明:本答案为和谐原创,任何人不得盗用!★4:带宽:自运营商到用户的带宽十分重要,没有足够的带宽,就不能保证足够的数据流量;计算机上网就不可能流畅;上述所说的带宽是指全程的带宽,像高速公路上一样,有那么宽的带宽,全程不能有起伏现象;全程有一点起伏就会影响网络速度;用户有权要求运营商(用扫频仪测试)给予保障;5:信杂比:(信号与杂音之比,可以理解成信号的纯净度)较小时,有用的信号被嘈杂的杂散信号所掩盖没(特别是码元间的码间干扰),使收信之路不能在嘈杂的信号里正确提取到有用的信号,判断电路就无法对码元进行正确的判断,就会产生误码、严重的误码就是丢包,严重的丢包就是延迟产生的原因,严重的延迟就会就是掉线(会产生慢、延迟、重复启动、掉线、延迟、掉线、中断、断线、自动关机、死机等显现像等),使用杂音计或电平表测量杂音电平是否在允许范围内,或者用示波器观察是否存在杂散信号?是否在码间存在码间干扰?采取措施,予以消除。信杂比也要大于60dB以上。用扫频仪和示波器测试(观察)。这项指标是保障道路平坦无障碍。有那么宽的道路,还要全程无障碍。6:匹配:匹配包括电平皮配和阻抗匹配(用电平表及信号发生器测试)6.1电平匹配:接收信号不能太低,太低时,达不到接收之路需要的门槛电平幅度,设备不能正常工作;电平太高会使接收之路前置电路饱和或烧坏前置电路。接收电平在接收门槛附近波动,就会使计算机频繁重复的重启现象;因此,接收电平调整十分重要。运行中要经常使用电平表或示波器,监视、调整连接处的接收电平在合适的幅度范围内。根据说明书,用电平表监视调整。6.2:阻抗匹配:连接点必须做到阻抗相对的匹配,输入输出阻抗不匹配就会导致反射衰耗,信号再强也不能正常工作。7:优化网络结构 人们打开计算机上网就会产生垃圾如同吃饭,不收拾餐桌、不刷洗餐具、不清理灶具一样会产生计算机垃圾,计算机就会逐渐表现为慢、卡、延迟、重复启动、掉线等故障;因此,个人推荐使用一些小工具:比如超级兔子、优化大师、鲁大师或360等;养成下线前予以清理垃圾的好习惯。7.1:及时清除上网产生的垃圾碎片和IE缓存:只要你使用计算机就会产生垃圾,不及时清理,就会越积累越多,长时间不清理就会使运行C盘空间越来越小及杂乱无章,最后就逐渐的慢下来,直至死机;因此,定期整理运行C盘,可以保持计算机运行速度。7.2:先让ADSL设备同步:把设备断电后重启。8:软件设置和配置 8.1:常用软件下载软件尽量到大的官方网站下载,做到3不装,非正规软件不装,P2P(占用资源)类软件不装,不常用软件不装.关掉所有不必要的网络连接和启动项,比如迅雷、 BT、驴子等;非运行的软件不要放在运行c盘里面;实时更新补丁。游戏软件要倒正规的大型网站下载,注意软件是否稳定,不成熟、不稳定的软件会导致慢、卡、死机等故障,特别是一些大众喜欢的游戏软件,一些网友对此反映很强烈,这样的软件特别注意或立即删除;下载软件时,要注意流氓软件借机插入危急计算机的安全,随时给予清除。有些游戏软件开始之后,游戏就会直接被T掉,上来之后会无限掉线、重启等故障。协议:网络中的协议也要与之匹配,不匹配也会造成设备一些故障。软件的冲突同样会造成延迟、卡、慢、死机、掉线、中断等问题的产生。8.2:杀毒软件和防火墙 至少一款有效正版的杀毒软件并经常升级病毒库:防火墙设置适当(不要过多、过高、过低),会造成一些网页打不开;病毒可使计算机变慢、死机、掉线、卡、重复启动和开关机故障。9:温度、湿度、温升 (开机后温度在逐渐升高)随着开机时间的延长,主设备及其辅助(猫、路由器、网络交换机等)设备的温度,就会逐渐的升高,如果不能快速散发出去,就会由延迟---慢---掉线----死机。9.1:湿度:下雨季节或多雨天及其高湿度地区,线路及器件间的绝缘降低,信号电平下跌,导致计算机码间干扰、误码、延迟、丢包、断续、掉线(短线或中断)、死机、自动关机、反复启动(重复连接)等现象、或不稳定工作。湿度加速氧化,导致传输中断。
9.2:温度(近期随着气温的逐渐升高,由温度引起的故障会逐渐增加):从开机始,温度在逐渐的升高,温升至一定时,就会稳定在这个数值,这个数值与环境温度之差不应该大于25度;由于计算机属于半导体器件,因此要求器件的实际温度不得高于85度;芯片温度接近80度时要采取措施降低猫、路由器、网络交换机和计算机设备工作环境温度。如果超出这个范围计算机就会产生码间干扰、误码、延迟、丢包、断续、掉线(断线或中断)、死机、自动关机、反复启动(频繁连接)等现象。9.3:温升(设备的实际温度与环境温度的差值叫做温升)小于25摄氏度 温度对设备的正常运行影响很大特别是网络交换机、路由器、计算机主板芯片、网卡等温升较大时,设备就会无法运行;特别是手提(也叫笔记本)计算机,由于设计优先考虑体积而致使温升的散热困难,最容易发生温升所导致的码间干扰、误码、延迟、丢包、断续、掉线(短线或中断)、死机、自动关机、反复启动(重复连接)等现象。措施如下:a:将设备(系指:哈勃、猫、路由器或者网络交换机、计算机等)置于对人较安全地方,首先断开电源,再打开设备的盒盖,利用空气对流加强与空气接触,进行自然散热;
b:给设备加装微型风扇,增大空气的对流,进行强制散热;
c:如果你是做IT的,我建议你:断开电源后,给设备的发热部件加装散热片。
d:设备断开电源后,用3毫米钻头在设备上下钻多多的孔,加强空气的对流量,改善散热条件;e:将设备至于通风干燥处,最好做个(市面上也有用于笔记本的)绝缘散热支架,把设备支起来,进行自然散热;f:计算机使用时间较长后,CPU与散热片之间的硅胶干枯时,CPU会严重的发热,会产生丢包、延迟、慢、重复启动、掉线、中断、断线、自动关机、死机等现像。重新涂覆硅胶,即可恢复正常使用。
g:及时清除上网产生的垃圾碎片和IE缓存:只要你使用计算机就会产生垃圾,不及时清理,就会越积累越多,长时间不清理就会使运行C盘空间越来越小及杂乱无章,最后就逐渐的慢下来,直至死机;因此,定期整理运行C盘,可以保持计算机运行速度。
h:先让ADSL设备同步:把设备断电后重启。经常上网的用户最多半年,要断电后打开设备的外壳(顺便检查设备内部连接是否良好,内存条是否松动,内存条与卡槽接触是否良好?各插件是否松动?插紧了没有?个连接点是否牢固并接触良好),清理设备里面的灰尘。十:布线:布线工艺以最小干扰为原则;要求布线整齐美观,强弱信号分开走,高低频信号分开走,布线不合理就会产生线间耦合、串扰所造成的干扰,线间不能互相缠绕,最好使用屏蔽(屏蔽层可靠且接地)线,这些寄生干扰会使计算机信杂比降低而无法识别有用的信号,使其产生码间干扰、误码、延迟、丢包、断续、掉线(短线或中断)、死机、自动关机、反复启动(重复连接)等现象。★版权申明:本答案为和谐原创,任何人不得盗用!★十一:主板的纽扣电池电池容量不够或无电量,也会不能开机或产生其他故障。十二:ADSL用户:与电话线一起复用计算机信号,注意取机、挂机、振铃三种状态下对计算机的的影响;由于计算机与电话信号都在电话线上(复用)传输,两者之间必须提供一定的隔离度(大于60dB)、防卫度要大于60dbB越大越好),特别是一些非正规的话机会影响计算机的使用。十三:定时故障:设备在固定的时间出现故障时,要仔细周围及其传输路径之间是否有大的工厂或固定时间大的电气设备启动,电焊等启动设备。十四:win7速度慢的解决方法比较好的方法应该是这样:进入Windows7控制面板,找到并打开颜色管理。在打开的颜色管理对话框中,切换到高级选项卡,然后单击左下角的更改系统默认值。随后,系统将会再次d出一个对话框颜色管理-系统默认值。在此对话框中同样切换到高级选项,然后取消系统默认勾选的使用Windows显示器校准?修改完毕后,保存设置退出。★版权申明:本答案为和谐原创,任何人不得盗用!★只要你仔细的按照上面所说的做到、并保持经常做到,一般(我计算机128M内存,CPU主频1.6G,ADSL/512Kbit的宽带,硬盘20G)的配置,玩中档游戏都相当的流畅;否则:配置再高的计算机,也一样会频发故障;像人穿衣服(小品:好人和坏人中的陈佩斯:你给他再好的衣服,他都上不了档次!)一样,衣服不在档次高低,洁净利索就是好。有一句话叫:事在人为!别做:窝囊废!★版权申明:本答案为和谐原创,任何人不得盗用!★
别忘采纳我的答案!
半导体器件中包含p型和n型两种半导体。P型半导体指本征半导体(纯净未掺杂的半导体)中掺入三价元素杂质,如硅中掺入杂质硼,这样的半导体中多数载流子是空穴;N型半导体指本征半导体中掺入五价元素杂质,如硅中掺入杂质磷,这样的半导体中多数载流子是电子。当p型半导体与n型半导体接触时会在接触面上形成pn结,即是PN结二极管。双极结型晶体管也就是BJT、三极管,其原理都是以PN结为基础的。元素周期表中,C和Si同族,故在金刚石中掺入少量的硼或者氮,它就会变成半导体。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)