《飞思卡尔8位单片机MC984USB接口ppt课件》由会员分享,可在线阅读,更多相关《飞思卡尔8位单片机MC984USB接口ppt课件(31页珍藏版)》请在金锄头文库上搜索。
1、第十四章第十四章 USB接口接口主要内容v USB通信基本知识概要 v USB的通讯协议 v USB模块的编程方法 14.1 USB通信基本知识概要通信基本知识概要14.1.1 有关基本概念有关基本概念(1)差分信号技术)差分信号技术 差分信号技术的特点:使用两条线路表达一个比特位,即用两条差分信号技术的特点:使用两条线路表达一个比特位,即用两条线路传输信号的压差作为判断线路传输信号的压差作为判断1还是还是0的依据。其优点是具有极强的抗的依据。其优点是具有极强的抗干扰性。倘若遭受外界强烈干扰,两条线路对应的电平同样会出现大干扰性。倘若遭受外界强烈干扰,两条线路对应的电平同样会出现大幅度提升或降
2、低的情况,但二者的电平改变方向和幅度几乎相同,电幅度提升或降低的情况,但二者的电平改变方向和幅度几乎相同,电压差值就可始终保持相对稳定,因此数据的准确性并不会因干扰噪声压差值就可始终保持相对稳定,因此数据的准确性并不会因干扰噪声而有所降低。而有所降低。14.1 USB通信基本知识概要(2)USB通信的格式通信的格式在在USB电缆上传输信号的步骤电缆上传输信号的步骤双向不归双向不归零编码零编码差动接收器差动接收器差动驱动差动驱动双向不归双向不归零解码零解码在在USB电缆上使用双向不归零编码和差动信号的传输电缆上使用双向不归零编码和差动信号的传输00011111111011数据数据空闲空闲双向不归
3、零码双向不归零码填充数据填充数据填充位填充位14.1 USB通信基本知识概要(3)USB总线接口总线接口总线接口的功能除了传送和接收数据信号以外,逻辑上还包括识总线接口的功能除了传送和接收数据信号以外,逻辑上还包括识别设备的当前惟一地址。设备的地址是在设备插入到总线上时,由别设备的当前惟一地址。设备的地址是在设备插入到总线上时,由USB主机分配的,范围从主机分配的,范围从0127,其中,其中0为所有的设备在没有分配惟为所有的设备在没有分配惟一地址时使用的默认地址。当总线上有包传输时,设备的总线接口收一地址时使用的默认地址。当总线上有包传输时,设备的总线接口收到此包,通过解析其中的设备地址判断此
4、包是否发送给自己的,如果到此包,通过解析其中的设备地址判断此包是否发送给自己的,如果不是则忽略此包,否则判断此包是发送给哪个端点的,并将整理后的不是则忽略此包,否则判断此包是发送给哪个端点的,并将整理后的包传送到上面的协议层的相应端点。包传送到上面的协议层的相应端点。14.1 USB通信基本知识概要(4)USB设备的端点设备的端点所有的传输都是传送到一个设备端点(所有的传输都是传送到一个设备端点(device endpoint),或),或是由一个设备端点发出。通常设备端点是内存的一个区块,或是控制是由一个设备端点发出。通常设备端点是内存的一个区块,或是控制器芯片内的一个缓存器,用来作为数据的缓
5、冲区。存储在设备端点的器芯片内的一个缓存器,用来作为数据的缓冲区。存储在设备端点的可能是接收到的数据,或是等待要送出的数据。主机也有接收与传送可能是接收到的数据,或是等待要送出的数据。主机也有接收与传送数据的缓冲区,不过主机并没有端点,而是当作与设备端点通信的出数据的缓冲区,不过主机并没有端点,而是当作与设备端点通信的出发点(发点(starting point)。)。每一个设备的惟一地址,有一个端点号码以及方向。端点号码可每一个设备的惟一地址,有一个端点号码以及方向。端点号码可以是以是015。方向如果是输入(。方向如果是输入(IN),表示流向主机,如果是输出),表示流向主机,如果是输出(OUT
6、),表示流出主机。如果是作为控制传输的端点,必须设置成),表示流出主机。如果是作为控制传输的端点,必须设置成双向传输,所以每个端点会有一对输入与输出端点,来分享同一个端双向传输,所以每个端点会有一对输入与输出端点,来分享同一个端点号码。每个设备都必须将端点点号码。每个设备都必须将端点0设置成控制端点。除此之外,很少设置成控制端点。除此之外,很少需要额外的控制端点。需要额外的控制端点。 14.1 USB通信基本知识概要(5)USB接口(功能接口)接口(功能接口) 由由一一组组端端点点组组成成,用用来来完完成成特特定定的的功功能能。每每个个设设备备可可以以同同时时提提供供多多个个功功能能接接口口,
7、如如打打印印机机和和扫扫描描仪仪等等。USB主主机机端端为为每每个个接接口口提提供供了了一一个个客客户户端端驱驱动动程程序序,驱驱动动程程序序和和接接口口之之间间通通过过交交互互完完成成了了有有特特定定意义的数据传输。意义的数据传输。14.1 USB通信基本知识概要14.1.2 USB总线标准总线标准USB连接头有两种类型:连接头有两种类型:A型型连接头、连接头、B型连接头。具体形状如型连接头。具体形状如右图。每个连接头内拥有右图。每个连接头内拥有4个引脚:个引脚:其中其中2个用作传递差动数据,其余个用作传递差动数据,其余2个为个为USB设备提供电源。这设备提供电源。这4条内条内含于含于USB
8、缆线的电线的线规以及颜缆线的电线的线规以及颜色如下表。色如下表。 12341243A型连接头型连接头B型连接头型连接头USB连接头连接头引脚引脚编编号号信号名称信号名称缆线颜缆线颜色色1Vcc红红2Data-(D-)白白3Data+(D+)绿绿4Ground黑黑返回返回14.1 USB通信基本知识概要14.2 USB的通讯协议的通讯协议14.2.1 包包 包(包(Packet)是)是USB系统中信息传输的基本单元,所有数据都是系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。经过打包后在总线上传输的。USB包由五部分组成,即同步字段包由五部分组成,即同步字段(SYNC)、包标识符
9、字段()、包标识符字段(PID)、数据字段、循环冗余校验字段)、数据字段、循环冗余校验字段(CRC)和包结尾字段()和包结尾字段(EOP),包的基本格式如下图:),包的基本格式如下图:同步字段(同步字段(SYNC)PID字段字段数据字段数据字段CRC字段字段包包结结尾字段(尾字段(EOP) 1、SYNC字段字段由由8位组成,作为每个数据封包的前导,用来产生位组成,作为每个数据封包的前导,用来产生同步作用,使同步作用,使USB设备与总线的包传输率同步,它的数值固定为设备与总线的包传输率同步,它的数值固定为00000001。 2、PID字段字段用来表示数据封包的类型。用来表示数据封包的类型。PID
10、字段如下图所示:字段如下图所示:PID0PID1PID2PID3PID0PID1PID2PID314.2 USB的通讯协议各种封包的类型与规范各种封包的类型与规范 封包封包类类型型PID名称名称PID编码编码意意义义令牌令牌OUT0001B从主机到从主机到设备设备的数据的数据传输传输IN1001B从从设备设备到主机的数据到主机的数据传输传输SOF0101B帧帧的起始的起始标记标记与与帧码帧码SETUP1101B从主机到从主机到设备设备。表示要。表示要进进行控制行控制传输传输数据数据DATA00011B偶数数据封包偶数数据封包DATA11011B奇数数据封包奇数数据封包握手握手ACK0010B接
11、收器收到无接收器收到无错误错误的数据封包的数据封包NAK1010B接收器无法接收数据或接收器无法接收数据或发发射器无法送出数据射器无法送出数据STALL1110B端点端点产产生停滞的状况生停滞的状况特殊特殊PRE1100B使能下游端口的使能下游端口的USB总线总线的数据的数据传输传输切切换换到到低速的低速的设备设备14.2 USB的通讯协议14.2.1 包包3、数据字段数据字段是用来携带主机与设备之间要传递的信息,其内容和是用来携带主机与设备之间要传递的信息,其内容和长度根据包标识符、传输类型的不同而各不相同。并非所有的长度根据包标识符、传输类型的不同而各不相同。并非所有的USB包包都必须有数
12、据字段,例如握手包、专用包和都必须有数据字段,例如握手包、专用包和SOF令牌包就没有数据字令牌包就没有数据字段。在段。在USB包中,数据字段可以包含设备地址、端点号、帧序列号以包中,数据字段可以包含设备地址、端点号、帧序列号以及数据等内容。在总线传输中,总是首先传输字节的最低位,最后传及数据等内容。在总线传输中,总是首先传输字节的最低位,最后传输字节的最高位。输字节的最高位。4、CRC字段字段由不同数目的位所组成。其中重要的数据封包采用由不同数目的位所组成。其中重要的数据封包采用CRC16的数据域(的数据域(16个位),而其余的封包类型则采用个位),而其余的封包类型则采用CRC5的数据的数据域
13、(域(5个位)。个位)。5、包结尾字段即包结尾字段即发送方在包的结尾发出包结尾信号。它表现为差发送方在包的结尾发出包结尾信号。它表现为差分线路的两根数据线保持分线路的两根数据线保持2比特低位时间和比特低位时间和1比特空闲位时间。比特空闲位时间。USB主主机根据机根据EOP判断数据包的结束。判断数据包的结束。14.2 USB的通讯协议14.2.2 封包格式封包格式起始(起始(SOF)封包)封包SOF封包属于令牌封包的一种,但具有独自的封包属于令牌封包的一种,但具有独自的PID类型名:类型名:SOF。这个封包常用于等时传输,并不应用于低速设备。格式如下:这个封包常用于等时传输,并不应用于低速设备。
14、格式如下:8位位8位位11位位5位位SYNCPIDPID帧帧序列号(序列号(FRAME#)CRC5令牌(令牌(token)封包)封包由于由于USB的数据交换是由的数据交换是由PC主机端所激活的,所以在每一个数据主机端所激活的,所以在每一个数据交换中必须以交换中必须以SYNC、PID、ADDR、ENDP与与CRC5这这5个数据域组合个数据域组合而成的令牌封包为起始。格式如下:而成的令牌封包为起始。格式如下:8位位8位位7位位4位位5位位SYNCPIDPIDADDRENDPCRC514.2 USB的通讯协议数据(数据(data)封包)封包数据封包含有数据封包含有4个域:个域:SYNC、PID、DA
15、TA与与CRC16。DATA数据数据域的位值是根据域的位值是根据USB设备的传输速度及传输类型而定,且须以设备的传输速度及传输类型而定,且须以8字节为字节为基本单位。也就是,若传输的数据不足基本单位。也就是,若传输的数据不足8字节,或传输到最后所剩余的字节,或传输到最后所剩余的也不足也不足8字节,仍须传输字节,仍须传输8字节的数据域。格式如下:字节的数据域。格式如下: 8位位8位位01023位位16位位SYNCPIDPIDDATACRC16握手(握手(Handshake)封包)封包握手封包仅包含握手封包仅包含SYNC和一和一个个PID数据域,格式如下:数据域,格式如下: 特殊(特殊(speci
16、al)封包)封包PRE是主机从高速传输变成是主机从高速传输变成低速传输时送来的封包。格式如低速传输时送来的封包。格式如下:下:8位位8位位SYNCPIDPID8位位8位位SYNCPRE14.2 USB的通讯协议事务处理(事务处理(Transaction):):在在USB上数据信息的一次接收上数据信息的一次接收或发送的处理过程。或发送的处理过程。(1)输入()输入(IN)事务处理)事务处理输入事务处理表示输入事务处理表示USB主机从总线上的某个主机从总线上的某个USB设备接收一个数设备接收一个数据包的过程。据包的过程。正常的输入事务处理正常的输入事务处理设备忙时的输入事务处理设备忙时的输入事务处
17、理 设备出错时的输入事务处理设备出错时的输入事务处理14.2.3 事务事务IN(ADDR,EP)DATA0(D1D8)ACK主机主机设备设备主机主机IN(ADDR,EP)NAK主机主机设备设备IN(ADDR,EP)STALL主机主机设备设备14.2 USB的通讯协议正常的输出事务处理正常的输出事务处理(2)输出()输出(OUT)事务处理)事务处理OUT (ADDR,EP)DATA(D1D8)ACK主机主机主机主机设备设备设备忙时的输出事务处理设备忙时的输出事务处理设备出错时的输入事务处理设备出错时的输入事务处理OUT (ADDR,EP)DATA(D1D8)NAK主机主机主机主机设备设备OUT
18、(ADDR,EP)DATA(D1D8)STALL主机主机主机主机设备设备14.2 USB的通讯协议正常的设置事务处理正常的设置事务处理 (3)设置()设置(SETUP)事务处理)事务处理SETUP (ADDR,EP)DATA(D1D8)ACK主机主机主机主机设备设备设备忙时的设置事务处理设备忙时的设置事务处理设备出错时的设置事务处理设备出错时的设置事务处理SETUP(ADDR,EP)DATA(D1D8)NAK主机主机主机主机设备设备SETUP(ADDR,EP)DATA(D1D8)STALL主机主机主机主机设备设备(4)帧起始()帧起始(SOF)事务处理)事务处理(5)帧结束()帧结束(EOF)
19、事务处理)事务处理 14.2 USB的通讯协议在在USB的传输中,制定了的传输中,制定了4种传输类型:种传输类型:控制传输控制传输、中断传输中断传输、批批量传输量传输以及以及等时传输等时传输。控制传输是控制传输是USB传输中最重要的传输。它包含传输中最重要的传输。它包含3种类型:控制读取、种类型:控制读取、控制写入以及无数据控制。这控制写入以及无数据控制。这3种控制传输类型又分为种控制传输类型又分为23个阶段:设个阶段:设置阶段、数据阶段(无数据控制没有此阶段)以及状态阶段。置阶段、数据阶段(无数据控制没有此阶段)以及状态阶段。阶段一:设置阶段阶段一:设置阶段主机从主机从USB设备获取配置信息
20、,并设置设备的配置值。设备获取配置信息,并设置设备的配置值。设置阶段的数据交换包含了设置阶段的数据交换包含了SETUP令牌封包、紧随其后的令牌封包、紧随其后的DATA0数据封包以及数据封包以及ACK握手封包。它的作用是执行一个设置(概念含糊)的握手封包。它的作用是执行一个设置(概念含糊)的数据交换,并定义此控制传输的内容。数据交换,并定义此控制传输的内容。 14.2.4 控制传输控制传输14.2 USB的通讯协议数据传输阶段用来传输主机与设备之间的数据。控制读取数据传输阶段用来传输主机与设备之间的数据。控制读取将数将数据从设备移到主机上;控制写入据从设备移到主机上;控制写入将数据从主机传到设备
21、上。将数据从主机传到设备上。 阶段二:数据传输阶段阶段二:数据传输阶段主机主机设备设备1. IN1. IN令牌封包令牌封包2. DATA12. DATA1数据封包数据封包3. ACK3. ACK握手封包握手封包控制读取的控制读取的ININ数据交换的过程示意图数据交换的过程示意图主机主机设备设备1.OUT1.OUT令牌封包令牌封包2. DATA12. DATA1数据封包数据封包3. ACK3. ACK握手封包握手封包控制写入的控制写入的OUTOUT数据交换的过程示意图数据交换的过程示意图14.2 USB的通讯协议状态阶段用来表示整个传输的过程已完全结束。状态阶段用来表示整个传输的过程已完全结束。
22、状态阶段传输的方向必须与数据阶段的方向相反,即原来是状态阶段传输的方向必须与数据阶段的方向相反,即原来是IN令牌令牌封包,这个阶段应为封包,这个阶段应为OUT令牌封包;反之,原来是令牌封包;反之,原来是OUT令牌封包,这个令牌封包,这个阶段应为阶段应为IN令牌封包。对于控制读取而言,主机会送出令牌封包。对于控制读取而言,主机会送出OUT令牌封包,令牌封包,其后再跟着其后再跟着0长度的长度的DATA1封包。而此时,设备也会做出相对应的动作,封包。而此时,设备也会做出相对应的动作,送送ACK握手封包、握手封包、NAK握手封包或握手封包或STALL握手封包。相对地对于控制握手封包。相对地对于控制写入
23、传输,主机会送出写入传输,主机会送出IN令牌封包,然后设备送出表示完成状态阶段的令牌封包,然后设备送出表示完成状态阶段的0长度的长度的DATA1封包,主机再做出相对应的动作:送封包,主机再做出相对应的动作:送ACK握手封包、握手封包、NAK握手封包或握手封包或STALL握手封包。握手封包。阶段三:状态阶段阶段三:状态阶段14.2 USB的通讯协议(1)设备描述符)设备描述符USB描述符就好像是描述符就好像是USB外围设备的外围设备的“身份证身份证”一样,详细地记一样,详细地记录着外围设备相关的一切信息。为了描述不同的数据,就需以不同类型录着外围设备相关的一切信息。为了描述不同的数据,就需以不同
24、类型的的USB描述符来加以描述,它共有以下几种类型:描述符来加以描述,它共有以下几种类型: 设备描述符设备描述符 配置描述符配置描述符接口描述符接口描述符 端点描述符端点描述符(2)USB设备请求设备请求在在USB接口的通信协议中,由于主机是取得绝对的主控权,因此,接口的通信协议中,由于主机是取得绝对的主控权,因此,主机与设备之间就必须遵循某种已沟通的特定命令格式,以达到通信的主机与设备之间就必须遵循某种已沟通的特定命令格式,以达到通信的目的。而这个命令格式就是目的。而这个命令格式就是USB规范书中所制定的规范书中所制定的“设备请求设备请求”。 14.2.5 设备列举设备列举14.2 USB的
25、通讯协议数据请求的数据格式内容数据请求的数据格式内容 位移量位移量字段字段值值大小大小(字字节节)描述描述0BmRequest Type1D7-数据数据传输传输方向:方向:0主机至主机至设备设备,1设备设备至主机至主机D6:5-类类型:型:0标标准,准,1群群组组,2供供应应商商 3保留保留D4:0-接收端:接收端:0设备设备,1接口,接口,2端点,端点, 3其他,其他,431保留保留1bRequest1特定特定请请求求2wValue2字大小字段,根据字大小字段,根据请请求的不同而不同求的不同而不同4wIndex2字大小字段,根据字大小字段,根据请请求的不同而不同,通常是求的不同而不同,通常是
26、传递传递索索引和位移量引和位移量6wLength2如果有数据如果有数据阶阶段,段,该该域表示所要域表示所要传输传输的字的字节节大小大小14.2 USB的通讯协议Clear Feature Get DescriptorSet Address Set Configuration(3)设备列举)设备列举设备列举可以简单地概括为这样的一个过程:主机通过设备列举可以简单地概括为这样的一个过程:主机通过USB设备请设备请求来取得设备描述符并对该设备进行配置。该过程可以简化为如下求来取得设备描述符并对该设备进行配置。该过程可以简化为如下5个个步骤:步骤:第一步,使用预设的地址第一步,使用预设的地址0取得设备
27、描述符。取得设备描述符。第二步,设置设备的新地址。第二步,设置设备的新地址。第三步,使用新地址取得设备描述符。第三步,使用新地址取得设备描述符。第四步,取得配置描述符。第四步,取得配置描述符。第五步,设置配置描述符。第五步,设置配置描述符。设备列举使用的是控制传输。上述的设备列举使用的是控制传输。上述的5个步骤必须符合控制传输的个步骤必须符合控制传输的基本架构,第一步、第三步和第四步使用的是控制读取,第二步和第五基本架构,第一步、第三步和第四步使用的是控制读取,第二步和第五步使用的是无数据控制。步使用的是无数据控制。几个主要的设备请求几个主要的设备请求返回返回14.2 USB的通讯协议14.3
28、 USB模块的编程方法模块的编程方法14.3.1 USB功能模块功能模块 USB功能模块可以内嵌在芯片功能模块可以内嵌在芯片中,也可以外扩。中,也可以外扩。MC68HC908JB8使用了内嵌的使用了内嵌的USB功能模块,如右功能模块,如右图所示。图所示。(1)USB收发器收发器:USB的的D+和和D-数据提供了接口。数据提供了接口。(2)USB控制逻辑控制逻辑 :处理:处理CPU和收发器之间的数据移动。和收发器之间的数据移动。(3)USB寄存器寄存器:USB寄存器是用来控制和监控寄存器是用来控制和监控USB操作。操作。USB控制控制逻辑逻辑收收 发发 器器USB寄存器寄存器D+D-USB接口接
29、口CPU总线总线USB功能模块图功能模块图14.3 USB模块的编程方法14.3.2 USB复位信号复位信号 当当D+和和D-上的电压小于上的电压小于0.8V时就表示进入了时就表示进入了SE0(single-ended 0)状态,如果)状态,如果MCU检测到检测到USB设备的数据线处于设备的数据线处于SE0状态,并且这种状状态,并且这种状态持续的时间大于态持续的时间大于8S,MCU就将它看作是一个就将它看作是一个USB复位信号。一般在复位信号。一般在插上插上USB接口时,会发生接口时,会发生USB复位信号。复位信号。USB复位结束后,复位结束后,USB设备将设备将进入默认状态,但还没进入设置地
30、址和配置状态。如果将配置寄存器中的进入默认状态,但还没进入设置地址和配置状态。如果将配置寄存器中的URSTD位置为位置为1,那么一旦检测到,那么一旦检测到USB复位信号,复位信号,CPU将产生将产生USB中断,中断,而不是对芯片复位。而不是对芯片复位。14.3 USB模块的编程方法14.3.3 USB悬挂悬挂 为了节省功耗,为了节省功耗,JB8支持悬挂模式。当支持悬挂模式。当USB数据线连续处于空闲数据线连续处于空闲状态状态3ms后,后,MCU将进入悬挂模式,进入悬挂模式是由将进入悬挂模式,进入悬挂模式是由USB中断寄存器中断寄存器中的中的SUSPND位控制的。任何对总线的操作,例如复位信号或
31、是从位控制的。任何对总线的操作,例如复位信号或是从MCU产生的一个强制的唤醒驱动,都可以将产生的一个强制的唤醒驱动,都可以将MCU从悬挂中唤醒。从悬挂中唤醒。 14.3 USB模块的编程方法14.3.4 USB低速设备低速设备 通过把通过把USB的的D-引脚上拉一个电阻,可以将引脚上拉一个电阻,可以将USB设备设置成低速设备设置成低速设备。下图也是设备。下图也是USB的外部电路。的外部电路。MCUVREG(3.3V)1.5KD+D-USB低速电缆低速电缆外部低速设备设备14.3 USB模块的编程方法14.3.5 USB寄存器寄存器1)USB地址寄存器(地址寄存器(UADDR) 2)USB中断寄
32、存器中断寄存器0(UIR0)3)USB中断寄存器中断寄存器1(UIR1) 4)USB中断寄存器中断寄存器2(UIR2)5)USB控制寄存器控制寄存器0(UCR0) 6)USB控制寄存器控制寄存器1(UCR1)7)USB控制寄存器控制寄存器2(UCR2) 8)USB控制寄存器控制寄存器3(UCR3)9)USB控制寄存器控制寄存器4(UCR4) 10)USB状态寄存器状态寄存器0(USR0)11)USB状态寄存器状态寄存器1(USR1) 12)USB端点端点0数据寄存器(数据寄存器(UE0D0-UE0D7)13)USB端点端点1数据寄存器(数据寄存器(UE1D0-UE1D7)14)USB端点端点2
33、数据寄存器(数据寄存器(UE2D0-UE2D7)14.3 USB模块的编程方法14.3.6 USB中断中断USB模块中断有三种类型:模块中断有三种类型: 当接收或发送事务完成时,产生事务结束中断;当接收或发送事务完成时,产生事务结束中断; 当当USB总线悬挂后被激活时,产生唤醒中断;总线悬挂后被激活时,产生唤醒中断; 当检测到一个低速的包结束信号时,产生结束中断。当检测到一个低速的包结束信号时,产生结束中断。所有的中断共享同一个中断向量,由中断程序区分产生的是什么所有的中断共享同一个中断向量,由中断程序区分产生的是什么中断。中断。14.3 USB模块的编程方法14.3.7 USB口初始化与数据
34、的收发编程口初始化与数据的收发编程USB中断处理流程图中断处理流程图端点端点0接收数接收数据产生的中断据产生的中断USB初始化初始化开始开始YSETUP事务事务?NN端点端点0接收数接收数据产生的中断据产生的中断YN复位产生的中断?复位产生的中断?调用处理端点调用处理端点0OUT事务处理事务处理YN退出中断退出中断调用处理端点调用处理端点0IN事务处理事务处理调用调用SETUP事事务处理务处理Y14.3 USB模块的编程方法USB中断服务程序中断服务程序端点端点1和端点和端点2利用查询方式发送和接收数据的编程方法,包括:利用查询方式发送和接收数据的编程方法,包括:USB初始化、发送字节和接收字
35、节。初始化、发送字节和接收字节。 (1)USB初始化初始化(2)发送数据子程序)发送数据子程序(3)接收数据子程序)接收数据子程序(4)PC机方机方VB程序程序14.3 USB模块的编程方法端点端点1发送、接受数据的流程图发送、接受数据的流程图Y查询方式接收数据查询方式接收数据UIR1 的的BM_RXD2F位为位为1禁止端点禁止端点2输入(将输入(将UCR2 的的BM_RX2E位置位置0)清清RXD2F位(将位(将UIR2 的的 BM_RXD2FR位置位置0)从端点从端点2的接收缓冲区中读取数据的接收缓冲区中读取数据允许端点允许端点2输入(将输入(将UCR2 的的BM_RX2E位置位置1)N开
36、始开始查询方式发送数据查询方式发送数据UIR1 的的BM_TXD1F位为位为1禁止端点禁止端点1输出(将输出(将UCR1 的的BM_TX1E位置位置0)清清TXD1F位(将位(将UIR2 的的 BM_TXD1FR位置位置0)向端点向端点1的数据缓冲区中写入数据的数据缓冲区中写入数据设置发送数据的个数和设置发送数据的个数和TES1Q位位,允许端点允许端点1输输出(将出(将UCR2 的的BM_RX2E位置位置1)开始开始NY返回返回14.3 USB模块的编程方法USB接口是接口是MCU与外界进行数据通信的一种方式,由于其速度与外界进行数据通信的一种方式,由于其速度快,抗干扰能力强,在现在的嵌入式应用中被广泛使用。本章首先快,抗干扰能力强,在现在的嵌入式应用中被广泛使用。本章首先介绍了介绍了USB接口的基本知识,让读者对接口的基本知识,让读者对USB接口的通信方式有一个接口的通信方式有一个深入的了解,然后讲述了深入的了解,然后讲述了USB的通信协议,读者应仔细体会协议所的通信协议,读者应仔细体会协议所规定的通信过程,最后介绍了规定的通信过程,最后介绍了MC68HC908JB8所包含的所包含的USB模块的模块的使用方法,并给出了关键的编程流程和代码。使用方法,并给出了关键的编程流程和代码。本章小结本章小结返回返回