加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > 技术文章

CYPRESS FX2(USB2.0 单片机)读书笔记

时间:2012-11-24  来源:123485.com  作者:9stone

    我是四川理工学院 电信系2001级 自动化 的一名学生。我正在做关于USB的一个毕业设计,我有幸借到一本关于CYPRESS芯片的英文书。我想把它翻译出与大家共享。由于时间,我不会字字翻译,我把我认为重要的且我有能力翻译的献给大家。以下只是一部分,我有空再继续贴在网上。如有不足,请指教。
以下是我看CYPRESS 公司的FX2(USB2.0的单片机)一英文书的心得,也可说是“读书笔记”吧?请各位多多包涵。

EX——USB FX2
TECHNICAL   REFERENCE   MANNAL
CYPRESS 

CHAPTER 1 INTRODUCING EZ-USB FX2
1.1 INTRODUCION
USB 2.0 的功能

  1. 具有480Mbits/sec的信号速度
  2. 对USB1。1设备和电缆完全兼容
  3.  新的集线器结构能向USB1。1设备端口提供复杂的12Mbits/sec数据流。

THE CYPRESS SEMICONDUCTOR EZ——USB FX2 除了具有USB 2。0 的功能外与不同情况CYPRESS SEMICONDUCTOR USB FX 系列无区别 

1.2  AN INTRODUCTION OF USB
USB

  1.  即插即入
  2.  USB不使用电源,跳线,开关,配置程序等,不与I/O,DMA, MEMORY(,IRQ等发生冲突。
  3.  USB集线器能接多个设备。
  4.  USB能满足打印机,硬盘驱动器等的需要。
  5. USB 的各速度的应用场合

 A. LOW SPEED(1.5Mbit/sec)鼠标,键盘等
 B. FULL SPEED (12Mbit/sec) 扬声器,扫描仪等
 C. HIGH SPEED (480Mbit/sec) 硬盘驱动器等

FX2的功能

  1. 有8051
  2. 有RAM的软件结构
  3. 使用EZ——USB芯片的USB设备不被端口数,大小,传输速度限制
  4. 代码简单,易学易用。

1.3  THE USB SPECIFICATION
THE USB SPECIFICATION VERSION 2.0 可在WWW.USB.ORG 找到

1.4   HOST IS MASTER (主机是大脑)

  1. 一切数据传输要听主机的。除了当主机把设备设置为“SUSPEND(挂起)”模式时设备能发出“REMOTE WAKE UP”信号,例外。
  2.  采用这种“HOST——CENTRIC MODE”的原因是减低成本。

1.5   USB DIRECTIONG(传输方向)

  1. OUT 指 HOST到DEVICE。
  2. IN   指DEVICE 到HOST。

1.6 TOKENS AND PIDS

1. 这节将提出以下几个问题?A,什么时候这个主机将送“IN”TOKEN。B,这些“TERMS”(我看书猜是指令,如TOKEN,DATA,HANDSHAKE,SPECIAL)是什么意思?

 2.接下来我要说的是,USB PIDS(IT IS SPECIAL CODES CALLED PACKET IDS)既USB的数据包代码。

PID TYPE类型
PID NAME名字
TOKEN
IN,OUT,SOF,SETUP
DATA数据
DATA0,DATA1, DATA 2,MDATA
HANDSHAKE握手
ACK,NAK,STALL,NYET
SPECIAL特殊
PRE,ERR,SPLIT,PING

 3. 以下是数据传输格式DATA1,DATA0,这两个是重复数据,确保在1数据丢失时,0可补上。不至于数据丢失。

TOKEN PACKET
DATA PACKET(数据包)
H/S PACKET
OUT
ADDR
ENDP
CRC5循环冗余
DATA1
PAYLOAD DATA
CRC16循环冗余
ACK

TOKEN PACKET
DATA PACKET(数据包)
H/S PACKET
OUT
ADDR
ENDP
CRC5循环冗余
DATA0
PAYLOAD DATA
CRC16循环冗余
ACK

 4.  USB “OUT” PACKET的传输过程。(不是USB 有两个数据指令吗?“IN”AND“OUT”这儿讲的是“OUT”它是有主机到USB设备的传输。
   A.  主机送数据到总线上。
   B.  数据传输到设备。
   C.  USB设备送“ACK”到主机表明接受成功。

 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请求要求设备送更多设备信息,以便了解设备端点数,电源要求,总线带宽要求,驱动程序的装载。

分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->技术文章
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门