led流水灯的工作原理:usb host技术

来源:百度文库 编辑:中财网 时间:2024/04/29 17:21:25
1 usb host技术信息介绍usb通信能用图1表达。图1中,左半部分为usb主机端,能看出,usb主机端由两部分构成,即软件体与硬件体。实际上是三个软件组件结合了usb host实现方案,即usb客户软件驱动程序,usb软件驱动程序与usb主机控制器软件驱动程序。应用程序软件事务处理是由usb客户软件驱动程序设备软件驱动程序运行时,客户软件驱动程序把usb设备当作一个能被访问端点集合,它能被控制并及它功能单元进行通信。usb系统软件包括usb软件驱动程序与usb主控制器软件驱动程序,usb软件驱动程序负责设置管理,用户管理,总线管理与数据输出管理;对及数据位编码,封包,循环校验,发送,错误处理等。2 isp1161控制器usb host解决方案原理知识usb控制器大致分为三类:第一类是支持1.0协议,这类已经很少见了;第二类是支持1.1协议控制器;第三类是支持2.0协议控制器。根据不同场合,后两种使用相比较广泛,2.0接口主要用在计算机上,依靠操作方法系统解决方案数据高速输出。支持1.1协议IC除了应用计算机上,还有少数是为嵌入式系统中解决方案usb host而设计方案。如cypresssl811,philipsisp1160,isp1161等。usb主机端硬件部分是由处理器,usb-host控制器与根集线器结合,图2是由微控制器msp430f149与usb控制器isp1161解决方案usb host电路原理知识。图2分为4个部分:微处理器,usb控制器,电源管理模块与usb接口电路。从理念上还应有一个usb根集线器usb hub,实际根集线器被电子集成在usb host控制器中。isp1161是philips设计方案usb主机/设备控制器。内部有1个usb主机控制器与1个设备控制器,适合usb2.0协议,支持全速与低速输出。主机与设备控制器共享相同接口总线,带有2个usb下行端口与1个usb上行端口。图2中运用接口1作为host下行端口。每个下行端口有各自过流检验电路,图2中运用php109检验端口供电电流,高于500ma将停止对总线供电。msp430与isp1161数据输出能通过pio程控输入输出方法或dma直接存储器访问方法进行输出,在isp1161进入工作状态前,要进行一一系列初始化,包括检验器,复位控制器,初始化硬件设置,设置中断,设置buffer(缓冲区)大小等。使isp1161主机控制器处于工作状态,真正应用发送到总线数据被放置于isp1161内部缓冲区内。这时值得一提是“输出详解符”这个理念,它是isp1161工作核心理念。在缓冲区内放置数据是对输出详解符为单位,输出详解符用处是详解了本次输出需完成任务。详解符分为详解符头与详解符负载数据。详解符头表征了这个详解符输出种类,封包最大宽度,输出速度,输出对象,输出端点,负载数据长度等。输出详解符另一个用处体现在输出后。每次输出执行完毕后,输出详解符内容会有相应改变,体现在输出详解符头中,表征了本次输出结果,包括输出了多少字节,输出中发生了哪些错误等。3 usb主机端对设备枚举从usb设备插入接口开始到客户软件驱动程序能够运用该设备还有一段路径,这一段就被称作为设备鉴别过程,又成为枚举过程。枚举过程是任何usb设备运用前必经过程。usb主机端需知道这是一个低速设备还是全速设备,需知道这个设备具有能力,对便载入相应设备软件驱动程序,下面具体说明一下解决方案步骤。首先,捕捉设备插入。usb设备是即插即用设备,系统在设备插入瞬间要捕捉到这一资料,isp1161是通过内部hub完成这一任务。hub端口两根信号线d+与d-每一根都有一个子15kω下拉电阻,而一个设备在d+全速设备或d-低速设备上有一个1.5kω上拉电阻。当设备插入到一个端口时,设备上位电阻信号为高。hub对此检验到一个设备已连接上了,并报告给主机控制器,然后,在及处理器接口上产生中断。主机知道后,通过读取hub关联寄存器来了解诸如设备速度等更多资料。而后,hub从新设置该设备。当主机知道有一新设备时,主机给hub关联寄存器写命令,能让hub来从新设置端口。hub使设备usb数据线处在重启状态d+与d-均为逻辑低到少10ms,当hub释放了重启状态,设备就处在默认状态了d+与d-均为逻辑低到少10ms,当hub释放了重启状态,设备就处在默认状态了设备usb寄存器已经处在它们默认状态。此时,设备已准备发通过endpoint 0默认过程来响应控制过程。最后,主机通过控制输出通道完成设备枚举。主机端先送一个get_descriptor(提取详解符)请求来知道默认过程最大包大小,主机发送请求给设备地址0,端点0。然后通过发送一个set_address(设定地址)请求来分配一个单独地址给设备。设备读取这个请求,返回一个确认且保存新地址。知道设备能力主机给新地址发送一个get_descriptor请求来读取这个设备完整详解符,包括endpoint 0最大包大小,设备支持设置号,对及该设备其它资料,主机将这些资料应用往后通信中。而后发出set_configuration设定设置请求,对该设置号设置设备。设备就完全正确处于可操作方法状态。主机此时就能加载相应客户软件驱动程序,对设备进行操作方法了。4 数据在存储设备与主机的间输出下面将对嵌入式系统读写优盘为例说明usb host使用。首先将说明一下数据在存储设备与主机的间输出。除了上面提到控制control输出外,还有三种输出方法:同步isochronous输出,中断interrupt输出,批次bulk输出,主机将根据设备特性决定使用哪些输出方法。usb存储设备与usb主机的间输出方法是批次输出。为了能够更详细说明难题,先简要说明一下bulk-only输出协议。usb存储设备运用输出方法都是批次输出方法,一则它不受时间限制;二则能保证数据完整性。在这种输出方法下,有三种种类数据在usb与设备的间传送,cbw,csw与一般数据。图3详解了主机端数据输出顺序,cbw命令块封包是从usb主机发送到设备命令,usb主机发送到设备命令,usb设备需将命令从cbw中提取出来,执行相应操作方法。完成对后,向host端发出回答,即当前命令执行状态csw命令状态封包。主机根据csw来决定是否继续发送下一个cbw或是数据。从图3中能看到数据段被一分的二,一个是数据出,这表达主机发送数据给设备;另一个为数据入,表达主机从设备处得到数据。典型诮就是读取存储设备数据与写入设备数据。下面说明一下该过程怎么在isp1161嵌入式系统中解决方案。主机发送cbw,这个cbw本身作为输出详解符负载数据输出到设备。cbw封包也包括两个部分,封包头与命令块。封包头表征了数据输出方向输出逻辑单元与命令块长度;命令块是真正需解决方案命令。根据设备不同,命令块运用命令簇也不一样,基本上分为两类,一类是ufi指令集,另一种使用scsi指令集。一般数据阶段,数据将占据整个输出详解负载数据长度,需送出数据在发送前要装入缓冲区。读入时,数据在输出详解符执行完会自动放入负载数据部分。csw阶段反映该命令完成情况,包括csw标志,还需输出数据长度,正确返回标志等。5 单片机对存储设备读写对usb存储设备读写需对存储体格式有一定了解。当前usb存储体多数为fat16与fat32格式,还有极少数运用fat12格式。fat16多见于优盘,而fat32多见于移动硬盘。这里简价说明优盘普遍使用一种文件格式:fat16。对于仅仅有一个分区fat16格式优盘,它构造依次是主引导区boot sector,隐藏扇区,逻辑盘引导区boot sector,fat区,根目录区,数据区。主引导区由mbrmaster boot record,dpt(disk partition table)与boot record id三部结合。mbr又称作主引导记录区,存放系统主引导程序;dpt即主分区表,记录了磁盘基本分区资料;boot record id为引导区标志。逻辑分区boot sector由已跳转指令,硬盘分区种类文本字符名,分区型号参数块,扩展分区型号参数块与运行指令块结合。fatfile allocation table,文件分配表,记录簇运用情况。根据目录区中存放目录项,每个目录项为32个字节,记录一个文件或目录资料长文件名例外。数据区记录了文件与目录数据区,位于目录项所占最后一个扇区的后,最真正存放文件数据或是子目录位置。文件读写实际上是usb bulk-only protocol(usb批次输出协议)与文件系统协议具体解决方案,下面临文件系统为fat16设备为例,讲述怎么读取一个位于根目录下名为“read.txt”文件与在该目录下写入一个名为“write.txt”文件。读取与写入数据的前,需了解该存储设备全部资料。包括扇区大小,fat表长度,簇大小等。该部分资料能通过读取主引导区与逻辑引导区获得。读取文件时候,大致按如下顺序,读根目录→读fat1→读数据区,具体步骤如下。首先找到文件名所在位置,根目录下文件与目录均在根目录区,每一个目录或文件项占用32个字节,每次读取一个扇区,相比较数据,没有则继续读下一个扇区,直到找到该文件。在这32个字节中,第26~27字节表征了文件开始簇号,28~31字节表征了文件大小。根据开始簇号,搜索fat区,找到文件簇链,依次读取对应簇,就能完整得到文件数据。写“write.txt”稍有不同,大致能按这样顺序号,写fat1→写fat2→写根目录区→写数据区。具体来说,先读取fat区,搜索可用簇,标记为文件开始簇号,继续搜索,找到下一可用簇,并在上一可用簇标示00 00处写入该簇号,依次下去,直到写完簇链,并将最后一个簇标志为文件结束簇。这里需注意是:fat区有两份,是同样内容,写完了fat1,将fat2相应位置写入同样数据。下一步就是写文件名,在根目标区搜索可用根目录项,将文件名,时间,起始扇区,文件大小等写入该目录项。这时优盘上已经有了一个名为“write.txt”文件,但是文件内部还未写入,下一步根据文件开始簇号,将文件内容写入簇链中对应簇。到此,整个文件写入就大功告成。6 小结一个usb host要完成功能因为需求不同,所运用协议也不尽相同,有使用中断输出,有使用同步输出。usb主机技术信息在单片机上使用主要是针对某一种usb设备或多种设备,因而单片机上能仅仅固化某多种协议。该技术信息使用能使得小型化仪器上轻松接入usb外设,扩展系统功能,提升仪器运用灵活性。usb主机技术信息在单片机上使用会有更广泛更美好前景。