usb固件程序指的什么

usb固件程序指的什么,第1张

通常来说USB设备(这里只分析USB设备,而不针对USB HOST,USB OTG和USB

HUB)内部都有一片USB的芯片和一个MCU,有些当然有些厂商提供的USB芯片已经集成了MCU在里边,如Cypress的CY68013就是这样的。这里考虑MCU和USB芯片分开的情况吧,集成的也类似,大家可以自己去分析。USB芯片完成USB底层的事物,接收的时候:将接收到的USB串行数据识别出来,解包后存放在内部的缓存中,然后通过中断的方式告知MCU收到数据包了,MCU通过和USB芯片的并行或串行接口读回接收到的数据并进行相应的分析和处理;发送数据的时候,MCU将需要发送的数据通过和USB芯片的接口写入到USB芯片内部的缓存,写入完成后,一般来说USB芯片会在接收到来自HOST的IN令牌包时,将缓存中的数据送到USB总线上去。当发送完成后,通常USB芯片也可以通过中巧虚纤断的方式告知MCU。从这里看出,USB芯片只是完成数据的解包和打包,并不对数据进行任何分析和处理,数据包的分析和处理都是由MCU完成的。具体来说是由运行在MCU中的程序,也就是通常所说的USB

Firmware或者说USB固件程序完成的。首先来分析一次简单的从HOST到Device的数据传输,即OUT型的传输,假设传输类型为BULK。USB传输只能由HOST发起,HOST需要向Device发送一个OUT令牌包。在这个包里指定了接受数据的设备地址、端点。然后将数据包发送到USB总线上。不是目的接收器件的USB设备不会响应该数据包,目的接收设备如果能接收该数据包,则以ACK握手包响应,如果不能接收该数据包,则以

NAK握手包响应。在上述过程中,USB芯片会在接收完数据包后中断MCU,然后MCU读取缓存在USB芯片中的数据包,再决定回复ACK,或者是NAK。以上只是一次简单的BULK OUT传输,对于BULK

IN传输,HOST先发送一个IN的令牌包,USB芯片接收到该令牌包后会中断MCU,MCU如果有数据发回HOST,则将数据写入USB芯片内对应断点的缓存,然后USB芯片会自动将数据发送至USB总线。并等待接收来自HOST的握手包。对于BLUK、Interrupt以及同步传输,传输过程都类似,整个传输过程由令牌包、数据包以及握手包组成。对于控制传输,一次传输由三个阶段组成,即Setup阶段、可选的数据阶段以及状态阶段。其中Setup阶段为一次OUT型的传输,HOST将8个字节的SETUP数据包发送给设备。这8个字节指定了这次控制传输的请求类型。Device会根据这8个字节做出相应的Action。第二个阶段为数据阶段,有些控制传输没有这个阶段,如Set Address请求。数据阶段,HOST将数据通过OUT型传输发送给Device,或者通过IN型传输向Device请求数据。第三个阶段为状态阶段,即得到这次控制传输的状态,确认这次传输是否正常完成。HOST或者Device以一个长度为0的空数据包表示肯定的应答。USB Firmware中大部分程序都在处理控制传输,具体来说是11种标准请求以及针对具体设备的类请求,如Mass

Storage 类的请求,还有些厂商自定义的请求。USB

Firmware的设计和调试首先应从一次基本的传输开始。要能正常的完成一次传输,尤其是控制传输,否则连设备的枚举都不能完成,也就是说设备不能被计算机正确识别。  

USB Firmware的流程(二)By topone 发表于 2008-7-21

20:59:00 USB设备上电以后,固件程序就开始运行,首先要做的第一件事情自然是初始化,包括设备自身逻辑的初始化和USB芯片的初始化。一般来说,USB固件均被设计成为前后台的方式,前台程序为一个大的死循环,誉兆后台则为中断处理函数。当USB芯片产生中断信号时,微处理器进入到中断处理程序,并读取USB芯片的中断标记,判断中断的类型(如传输错误、收到Setup包、收到令牌包、传输完成等),然后设置相应的标志位。存储该标志位的变量应该是一个全局变量。前台程序中,固件不断的检测标志位,判断是否有中断事件发生,如果有的话则进入到相孝仿应的时间处理函数中。前面已经说过,USB固件程序大部分都是在处理来自HOST的请求,也就是HOST发来的SETUP数据包。当前台程序检测到SETUP事件时,会先从USB芯片的缓存中读回8个字节的SETUP包,然后根据USB规范中定义的结构,对数据包尽心解析,然后进行到相应的请求处理函数。基本可以总结成为如下的结构。========后台============ =============前台==================中断处理函数(ISR)                                  循环{       读USB芯片的中断寄存器                               【设备事务】       清USB芯片中断                                               如果有USB中断标志被置位       判断中断类型                                                      {中断事件处理       置中断标志                                                                  读SETUP包=======================                                        解析SETUP包                                                                                              调用相应的请求处理函数                                                                                       }                                                                                   }                                                       ===================================在请求函数处理函数中,固件程序或将相应的描述符写入到USB芯片的断点缓冲,然后发送到HOST,或者通过从USB芯片的断点缓存中读回HOST发来的数据。下面来说明一次典型的getdescriptor请求。HOST发送SETUP令牌包--------->引起USB芯片中断MCU,中断事件为SETUP,MCU被中断,并设置中断标志HOST发送SETUP数据包--------->USB芯片接收数据包,并存放在断点缓存中,并自动以ACK响应主机                                                          固件中,MCU检测到中断事件,且类型为SETUP事件,进入到SETUP事件处理函数,读回SETUP数据包,并解析之,将设备描述符填入到USB芯片的缓存,等待数据发送完成。HOST发送IN令牌包----------------->如果此时MCU已经完成数据的填充,则USB芯片将数据发回HOST,否则以NAK响应。循环上一步骤,直至数据被发送完成。HOST收到描述符,并以ACK响应USB设备------->此时USB芯片中断MCU,MCU将从此中断得知传输完成。MCU设置USB芯片,在收到下一个IN令牌包时自动回复一个长度为0的数据包。HOST发送IN令牌包---------------->USB芯片自动回复一个长度为0的数据包。HOST收到数据包,并回ACK。 ----------------->USB请求完成                                                         上面【设备事务】指的是USB设备自身的事务,如AD采样数据的读取、处理等。以上即为USB固件程序的基本框架,完整的固件程序要处理的中断事务很多,但是基本的处理过程都是相似的。各USB子类设备,如大容量存储器、HID设备还有各自的请求类请需要处理。

固件程序就是给MP3或MP4那就是升级程序之类的

就心爱那个电脑的系统一样。。

固件升级功能已经越来越多的写在了各种播放器的规格表,对于这个即熟悉又陌生的功配册能,可能很多朋友都在磕磕碰碰一知半解中使用过,但却未了解其中技巧与细节。在本文里,我将带着大家探识固件的秘密。

固件(FrimWare)的词典里的解释是具有软件功能的硬件,在早期这种器件一般都是存有软件的EROM或EPROM等,并坦绝且通常这些硬件内所保存的程序是无法被用户直接读出或修改的,在那时,一般情况下是没有必要对固件进行升级 *** 作的,即使在固件内发现了严重的Bug也必须由专业人员带着写好培信宏程序的EPROM把原来机器上的EPROM更换下来。那固件到底是指硬件还是软件呢?在我们现在的理解,固件应当指的是软件了。但软件种类繁多,并不是所有软件都能叫做固件的,一般来说,担任着一个系统最基础、最底层工作的软件才可以称之为固件,比如我们常说的计算机主板上的BIOS,在以前其实更多的专业人士叫它固件(FirmWare)。

问题一:刷机时固件是什么意思? 你说的意思差不多,固件就是系统盘,也就是C盘(通俗的解释),专业店的解释就是ROM,手机的存储系统式由两大部分组成的,一部分是ram(可以理解成内存条),还有一部分是rom(是存放手机 *** 作系统和你的名片,短信等资料的),有些手机还有个一个外接的存储卡做扩展存储器,这样说你应该明白了把,刷固件就是把你的ROM抹掉重写固件,等于说你以前存在rom里的资料也都没了,不影响存储卡里的资料

问题二:刷固件是什么意思? 看看固件的定义。Firmware固件(firmware)是指设备内部保存的设备“驱动程序”,通过固件, *** 作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。Firmware是固化在了硬件中的软件,光存储的Firmware是运行在驱动器上的软件指令集,它存储着计算机系统中硬件设备最基本的参数,为系统提供最底层、最直接的硬件控制。Firmware功能上有点类似于主板上BIOS,同样在开机过程中,系统会先读取其内部的硬件设备初始化信息,使 *** 作系统能够正确识别硬件,并为其他软件的运行提供最基本的依据。部分厂商还会在Firmware内存储市面上各式光盘的资料数据,主要是刻录机的Firmware存储刻录盘的资料,在刻录时检测当前使用盘的信息,与存储的资料进行对比,进而采取相应的刻录方法。Firmware是存储在硬件中的,其存储介质主要有ROM、PROM、EPROM、EEPROM和Flash Rom,现在的光储产品基本都使用可顷旁擦写的存储介质存储Firmware,便于用户刷新。Flash Rom是一种在EEPROM基础上改进的非易失性的存储介质,它在擦写数据时是以“块”为单位进行的,块的大小由厂商自定,而EEPROM则是以字节为单位进山野行擦写的,因此Flash Rom的擦写速度较快,其技术的先进性和 *** 作的便捷性非常方便用户自行对固件进行升级。具体采用何种存储介质,设备制造商往往是根据制造成本、安全性能、是否需要升级、设备标准的发展变化等实际情况来综合考虑的。Firmware的重要性不言而喻,采用可擦写的介制是为了对其进行升级。厂家可以提供对Firmware的升级,以便为Firmware增加更多的功能或改进其性能,甚至修正其中的错误。虽然有些固件的问题可以通过软件补丁来弥补,但终归还是不如直接进行固件的升级来得可靠和方便。因此目前绝大多数的厂家在推出硬件产品时,都采用了可以升级的固件设计以提供更加灵活的适用性。一般光储厂商都会提供必要的Firmware升级程序,可以去其官方网站直接下载,此类程序容量都较小,一般在一二百KB以内。大部分的Firmware升级程序都需要在纯DOS环境下运行。

问题三:刷系统和刷固件有什么区别 固件和系统的区别不大,这样说吧,比如手机升级,安卓为例,系统推送从5.0到6.0这叫做固件升级,系统可以理解为安卓5.x,6.x之类的,包括第三方rom,固件是系统升级的一个平台,如安卓7.0需要6.0的固件升级,而不可以从5.0固件升级,这样子可以理解逗乎喊了吧,希望我的回答有助于你,望采纳,祝你生活愉快,谢谢

问题四:固件升级是什么意思? 就是对机子自身所携带的系统和硬件进行性能提升和漏洞修补。

通常情况下会解决一些小问题,同时带来一些功能上的改进,下载固件升级模块时会有相应指示。

建议:在机子顺手没有太大问题情况下,别升。

问题五:刷固件和刷rom有什么区别? 刷机就是刷进新的rom,所以说两者是完全一样的概念,哈哈!

问题六:刷固件是什么原理啊? 固件升级不是下载驱动:请看下文

固件升级功能已经越来越多的写在了各种播放器的规格表,对于这个即熟悉又陌生的功能,可能很多朋友都在磕磕碰碰一知半解中使用过,但却未了解其中技巧与细节。在本文里,我将带着大家探识固件的秘密。

[固件到底是什么]

固件(FrimWar户)的词典里的解释是具有软件功能的硬件,在早期这种器件一般都是存有软件的EROM或EPROM等,并且通常这些硬件内所保存的程序是无法被用户直接读出或修改的,在那时,一般情况下是没有必要对固件进行升级 *** 作的,即使在固件内发现了严重的Bug也必须由专业人员带着写好程序的EPROM把原来机器上的EPROM更换下来。那固件到底是指硬件还是软件呢?在我们现在的理解,固件应当指的是软件了。但软件种类繁多,并不是所有软件都能叫做固件的,一般来说,担任着一个系统最基础、最底层工作的软件才可以称之为固件,比如我们常说的计算机主板上的BIOS,在以前其实更多的专业人士叫它固件(FirmWare)。

[固件有多重要]

了解的固件的基本原理后,我们可以得出我们对于固件的认识“担任着一个系统最基础最底层工作的软件”,而在播放器中,固件就是播放器的灵魂,因为播放器除了固件以外没有其它软件组成。因此固件也就决定着播放器的功能及性能。由这一点来看,播放器的固件与它的硬件有着几乎相同的地位,而在某些程度上来说固件可能更重要一些。因为只有出编写出色的固件程序才可以更加充分、巧妙的发挥硬件的作用。最著名的一个例子是Hyunwon公司在2000年推出了一款名为“月亮宝盒”的播放器,但在投入市场没多久就发现由于PCB板的设计问题造成按键失灵,问题非常普遍。按惯例,很多厂商可能会采取招回的方式来处理这一问题,但Hyunwon公司在分析原理后对其固件进行了小小的修改,让固件来对这种硬件问题进行修补,结果很快就将这一事件平息。由此看来,在这里,优秀的固件还可以弥补一些硬件上的缺陷。

[为什么要升级固件]

虽然以“固件”为名,但不管怎么说,它还是应当被我们理解为软件,并且由于目前集成电路的进步,这种固件都以Flash为载体,升级固件也变得越来越简单,越来越没有危险,固件程序与我们通常所说的程序的区别已经越来越小。在早期,升级固件主要是为了解决一些Bug及兼容性问题。而随着信息时代的来临,厂商的设计很难全面的满足客户需求,更多的厂商把升级固件提供更多更新的功能做为附加值来提供给用户。因此,我们可以对固件升级做以下总结:

1. 解决已经存在的bug、兼容性问题。

2. 改善 *** 作方式,提供更加方便更加人性化的功能。

3. 提供更多的音乐格式支持。

[升级原理]

由于现在的播放器几乎都是将固件保存在Flash中,所以升级固件实际上就是用新的固件程序重写Flash,但根据不同的芯片及原理其实要分为两种方式。第一种方式是使用独立的USB芯片的产品,比较有代表的是Hyundai的GDS30c6001,对于这类播放器,升级比较简单,也比较安全,只需要通过USB芯片将新的固件程序传送到Flash中即可。第二种是USB是主芯片的一部分,工作也需要固件的支持,比较有代表的是目前热销的iRiver 180TC(使用的为Philips 的DSP芯片)。对于这类播放器,升级过程要比上一种复杂,并且也存在一定的危险性,因为一但更新失败可能会连最基本的USB传输功能都会丧失。当然对于这类播放器,也有比较灵活的方面,就是包括USB传输层都可以重新编程。这一类播放器在处理具体升级的过程与上一种情况也是一样的,......>>

问题七:无线路由 刷 固件 有什么用? 刷固件,是可以完善之前的功能。有一些还可能刷完之后多了一些功能,例如之前没有限速功能的现在刷完固件后就有了,不过这只是例子。这是用官方的方法升级固件的。不过如果是一些大虾的话可能有很大改变。一般我们一般的不会无缘无故去刷他得。。刷它可能是现在用的这个固件有问题才刷。就算我们一般的刷都是用官网给的固件

问题八:iphone4s什么叫做重刷固件?固件是什么意思?为什么刷固件? 手机固件相当于手机的系统,刷新固件就相当于刷系统。不同梗手机对应不同的固件,在刷固件前应该充分了解当前固件和所刷固件的优点缺点和兼容性, 并做好充分的准备。

问题九:安卓手机为例,刷固件和刷系统有什么区别? 没什么区别啊,据我所知固件就是指手机的系统!

问题十:刷机时固件是什么意思? 你说的意思差不多,固件就是系统盘,也就是C盘(通俗的解释),专业店的解释就是ROM,手机的存储系统式由两大部分组成的,一部分是ram(可以理解成内存条),还有一部分是rom(是存放手机 *** 作系统和你的名片,短信等资料的),有些手机还有个一个外接的存储卡做扩展存储器,这样说你应该明白了把,刷固件就是把你的ROM抹掉重写固件,等于说你以前存在rom里的资料也都没了,不影响存储卡里的资料


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12312696.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存