网站导航: 首页 > 设计参考 > 正文 文章搜索
CYPRESS FX2(USB2.0 单片机)读书笔记
 
文章编号:
081126135156
文章分类: 接口技术 USB
点 击:
...
关 键 词: CYPRESS,FX2,读书笔记
文章来源:
网络
摘 要:
以下是我看CYPRESS 公司的FX2(USB2.0的单片机)一英文书的心得,也可说是“读书笔记”吧...

5.  在“FULL SPEED(12MBITS/SEC)”和在“HIGHT SPEED(480MBITS/SEC)”上传送“OUT PACKET”有不同。
   A.  在“FULL SPEED”,主机重复送“OUT DATA”。
   B.  在“HIGHT SPEED”,首先,主机送“PING ”指令到“OUT(输出)”终端,询问在外围设备中,这儿是否有空间为“OUT DATA(输出数据)”。仅仅当主机收到回答,既收到“ACK”,主机才会送“OUT TOKEN  AND DATA(输出指令和数据)。
(我想就是因为这个改进,一部份提高了传输速度,这就是“HIGHT SPEED”和“FULL SPEED”的差别)

 6.  这儿有两个重复的DATA  PIDS (数据包IDS),这是由于USB严格的查错机制。其查错过程如下:A,设备的ACK握手信号,表明设备接受数据无误,(而且我认为它的CRC循环冗余,也是其数据严格的表现)B,如果设备不回复,表示数据可能丢失,主机自然会重发的。(那你说,发了两个重复数据,如没丢,不多了吗?这不多,设备自然会处理多的那个)

 7.  接下来我会讲解各PIDS。
   A.   SETUP TOKEN(SETUP领牌)是唯一的用来“控制”传输的。
   B.  SOF TOKEN(START OF FRAME,开始帧)。在FULL SPEED(12MBITS/SEC)下,SOF TOKEN 每MS(毫秒)发生。在HIGH SPEED下,125MS一帧,而每帧包含一个SOF TOKEN。
   C.  ACK (ACKONWLEDGE)表示数据接收成功。
   D.  NAK(NEGATIVE ACKONWLEDGE)是设备表示自己很忙,请主机再传。注意它不是“ERROR(出错)”,当USB设备发现传输有错时,它会选择不“回答”。
   E.  STALL 表示出现主机不可预知的错误。
   F.  NYET(NOT YET)它只出现在HIGH SPEED模式下,表示设备数据传输成功,但还没准备好接受下个设备。
   G.  PRE 这个出现在LOW SPEED(1。5MBITS/SEC)下,FX2不支持。

1.5.1 RECEIEING DATA FROM THE HOST(接受来自主机的数据)。

 1.  以下我将写这的过程。
   A.  首先主机送给设备,数据和“OUT”(记住OUT在数据后哦)。
   B.  接下就是设备回复主机了,这儿分三种情况1,设备有接受数据的空间,设备回复“ACK”。2,如果这儿没多空,它会送“NACK”到主机。3,如果设备发现主机传来的数据有误,它会什么也不发(我想这也是加快其运行速度的好方法),主机在规定时间内没收到任何来自设备的信号,它会重发数据。

1.6.2 SENDING DATA TO THE HOST(送数据到主机)

  1.   USB设备不会传数据到主机,(这是我自己翻译的,我不知道是否理解正确,我把原文写下“A USB DEVICE NEVER SPONTANEOUSLY SENDS DATA TO THE HOST”)。
  2.   当主机送一个“IN”请求到FX2,数据将被外围设备通过端口送到主机。

1.7 USB FRAMES(USB 帧)
 1.  USB 主机每毫秒(MILLISECOND)传输一个SOF(START OF FRAME,开始帧)给 所有USB设备。
 2.  SOF包中 每帧由11位组成。其当前帧(其帧号[0-2047])可在任意时间从FX2内部寄存器读出。
 3.  在HIGH SPEED(480MBIT/S)每一秒毫秒(ONE MILLISECOND)帧被分成8个125微秒(MICROSECOND),每个包含1个SOF包。而帧号以毫秒(MILLISECOND)计数,既一秒一个,因此这8个帧有相同的帧号。为跟踪当前的微秒帧(MICROFRAME[0-7]),FX2提供了一个可读的微秒帧计数器(MICROFRAME COUNT)。
 4,当FX2收到一个SOF,它将产生一个中断请求。
A在FULL SPEED 情况下,每毫秒一次(ONCE EVERY MILLISECOND),
B在HIGH SPEED情况下,每125微秒一次(ONCE EVERY 125 MICROSECOND)。
这个SOF中断应用于,比如服务同步数据时使用。

1.8 USB FRANSFER TYPES(USB传输类型)
它有四个类型,以在总线上传输方式而定。
1.8.1 BULK TRANSFERS (块传输)

输入IN
ADDR
ENDP
CRC5
 
DATA1
有效数据PAYLOAD DATA
循环冗余
CRC16
 
应答ACK
令牌包
TOKEN PACKET
数据包
DATA PACKET
握手包H/S PKT
 

输出OUT
ADDR
ENDP
CRC5
 
DATA1
有效数据PAYLOAD DATA
循环冗余
CRC16
 
ACK
TOKEN PACKET
DATA PACKET
H/S PKT

它的特性,

  1.  突发性(BURSTY)。
  2. A在FULL SPEED (12Mbits/Sec)情况下 每数据包包含8,16,32,64个字节。
    B在HIGH SPEED (480Mbits/Sec)情况下 每数据包包含512个字节。
  3.  精确性。
  4.  可用于打印机,扫描仪等。

1.8.2 INTERRUPT TRANSFER (中断传输)

1 中断数据与块传输数据格式相同,如下图

输入IN
ADDR
ENDP
CRC5
 
DATA1
有效数据PAYLOAD DATA
循环冗余
CRC16
 
应答ACK
令牌包
TOKEN PACKET
数据包
DATA PACKET
握手包H/S PKT

1 .8. 2 INTERRUPT TRANSFERS (中断传输)

IN(输入)
ADDR(地址)
ENDP
CRC5(循环冗余)
 
DATA1(数据)
PAYLOAD DATA(有效数据)
CRC16(循环冗余)
 
ACK(应答)
TOKEN PACKET(令牌)
DATA PACKET(数据包)
H/S PKT(握手)

 1.  中断数据传输的数据与块传输的数据类似。

 2.  中断传输 在FULL SPEED (12Mbits/Sec)情况下,它的传输字节可在1之64个字节间。在HIGH SPEED (480Mbits/Sec)情况下,它的传输字节可高达1024个字节。

 3.  它使用了IN 令牌(TOKEN)。

1.8.3 ISOCHRONOUS TRANSFERS(同步传输) 

IN(输入)
ADDR(地址)
ENDP
CRC5(循环冗余)
 
DATA1(数据)
PAYLOAD DATA(有效数据)
CRC16(循环冗余)
 
ACK(应答)
TOKEN PACKET(令牌)
DATA PACKET(数据包)
H/S PKT(握手)

 1.  同步传输适用于音响或视频。

 2.  同步传输 在FULL SPEED (12Mbits/Sec)情况下,它的传输字节每包可在1之1023个字节间。在HIGH SPEED (480Mbits/Sec)情况下,它的传输字节每包可在1之1024个字节间。

 3.   A.同步传输中,时间非常重要。
  B.在USB帧中,分配了一定的USB带宽给同步传输。
  C.同步传输没有握手(NO HANDSHAKE ,SUCH AS ACK/NAK/STALL/NYET),没有重发(NO RETRIES)。而查错被限制在16-bit CRC。 
  D.同步传输不使用数据轮换机制(DATA-TROGGLE MECHANISM),在FULL SPEED (12Mbits/Sec)情况下,仅仅有DATA0。在HIGH SPEED (480Mbits/Sec)情况下,有DATA0,DATA1,DATA2,MDATA,
  E.同步传输每帧每个端点传输的包量。在FULL SPEED (12Mbits/Sec)情况下,每帧每个端点传输可传输一个同步数据包;在HIGH SPEED (480Mbits/Sec)情况下,每帧每个端点可传输高达3个同步数据包。 

1.8.4 CONTROL TRANSFERS (控制传输)
以下将介绍控制传输的三个阶段:SETUP STAGE(SETUP 阶段),DATA STAGE(DATA 阶段,此阶段可根据需要缺省),STATUS STAGE(STATUS 阶段)。
如下图:

 1.  A.CONTROL TRANSFERS (控制传输)配置和送控制命令到主机。
  B.CONTROL TRANSFERS (控制传输)非常重要,它使用最广泛的USB错误检测。
  C.主机为控制传输在USB帧中保留了一部分空间。

 2.控制传输由二或三个阶段构成(DATA 阶段,此阶段可根据需要缺省)。
  A.SETUP STAGE(SETUP 阶段)包含了8字节的USB控制数据。
  B.DATA STAGE(DATA 阶段)如果需要可缺省。
  C.STATUS STAGE(STATUS 阶段)也可称(HANDSHAKE,握手)在这个阶段,允许设备直接显示CONTROL传输成功。

1.9 ENUMERQTION(枚举)

 1.USB设备的即插即入(PLUG AND PLAY),这是大家都知道的USB的一个很大的特点。但这就导出下面一个问题:"这一切如何发生?"在每个USB 设备中,这儿有个描述符表,这表包含了设备所有特性和要求。

 当插入USB设备后,主机将进行以下步骤:

  1. 主机发出Get-Descriptor/Device(获取描述符表/设备)的请求到地址0(设备第一个连接时必须响应地址0)。
  2. 设备响应回答送ID data到主机。
  3. 主机送Set  Address请求为设备安排唯一地址。
  4. 主机送更多Get  Descriptor请求要求设备送更多设备信息,以便了解设备端点数,电源要求,总线带宽要求,驱动程序的装载。

温馨提示:

  百合电子工作室有一个关于USB开发方面的开源项目-Easy USB 51 Programer,整个开发过程写得非常详细,不防参考一下,您还可以进入她的论坛参与此项目的讨论。

 
相关文章:

上一页 12
 
最新开源项目
 
 
  查看更多...  
 
本站相关产品   淘宝网店
 




 
  查看更多...  

 

本站程序由百合电子工作室开发和维护
Copyright @ baihe electric studio
渝ICP备09006681号-4