简而言之,这种端点即是用来存储多个字节的缓冲区。基本上,每一个设备实际上就是一个USB专用微处理器或RISC芯片。而相对地,这个端点就是其所内含的多组内存、RAM或FIFO。当然,也可看成多个内存区块所组成的各个不同的缓冲区。但不论是PC主机传送数据或命令给设各,或从设备取得数据,都会先放置于个别所属的不同的缓冲区中,也即是不同的端点上。
例如,目前广泛应用于鼠标制造上的Cypress低速的USB专用芯片CYTC63XXX系列中,端点0所占用的FIFO为Ox70~Ox77 RAM地址,端点1则占用Ox78~Ox7FRAM地址。而在个别传输的过程中,都会先将数据或命令放置于端点1(中断传输)或端点0(控制传输)上,然后再加以传输出去。关于这一部分的内容,可参阅《USB外围设备的设计与应用——使用CY7C63系列》(台湾全华科技图书股份有限公司出版)。因此,端点可以视为数据流中基本,同时也是重要的硬件通信单元。
而在规范中,将这种端点下了一个定义:设备中可独立寻址的部分,其是介于主机与设备之间的通信流程中,作为信息的来源处或传出处。也即是建议将这种端点仅以单一方向来携带或传输数据。只不过,其中仅有控制端点是例外的。对于每一个端点所需的独立地址中,包含了端点的数目与方向。这个数值的范围是0~15之间。而方向则是以主机为主的,IN代表设各至主机的方向,OUT则是主机传输至设各。若是用控制传输的控制端点,则必须以双方向来传输数据或送出命令。因此,控制端点实际上是包含了一对IN与OUT端点,并分享同一个端点数值。每一个设各必须具备配置为端点0的控制端点,也即是预设端点。这在每一个USB单片机中,都包含此控制端点即端点0。
其他的传输形态仅以单一方向来传输数据。而单一端点数值能够同时支持IN与OUT端点地址。所以说,除了端点0外,全速的设各能够支持高达30个额外的端点(1~15端点数,IN/OUT方向)。但对低速的设各来说,是受限于仅能具有整合方向的2个额外的端点。例如,端点1—OUT与端点1—IN,或端点1—IN与端点2—IN。
此外,端点的数值可以在设置封包的端点字段中设置,而IN/OUT方向则是在端点描述符中加以设置。再者,每一个端点的使用通常都须配合一种特定的传输类型。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。