USB状态错误及其原因

The most significant 4 bits of USB status values are defined in the following table.

ValueMeaning

00 (USBD_STATUS_SUCCESS)

Request was completed with success.

01 (USBD_STATUS_PENDING)

Request is pending.

10 or 11 (USBD_STATUS_ERROR)

Request was completed with an error.

The least significant 28 bits of USB status values are defined in the following table.

ValueCodeMeaning

USBD_STATUS_CRC

0xC0000001

CRC error (defined for backward compatibility with the USB 1.0).

USBD_STATUS_BTSTUFF

0xC0000002

BTS error (defined for backward compatibility with the USB 1.0).

USBD_STATUS_DATA_TOGGLE_MISMATCH

0xC0000003

Data toggle mismatch.

USBD_STATUS_STALL_PID

0xC0000004

The device returned a stall packet identifier (defined for backward compatibility with the USB 1.0)

USBD_STATUS_DEV_NOT_RESPONDING

0xC0000005

The device is not responding (defined for backward compatibility with the USB 1.0).

USBD_STATUS_PID_CHECK_FAILURE

0xC0000006

The device returned a packet identifier check failure (defined for backward compatibility with the USB 1.0).

USBD_STATUS_UNEXPECTED_PID

0xC0000007

The device returned an unexpected packet identifier error (defined for backward compatibility with the USB 1.0).

USBD_STATUS_DATA_OVERRUN

0xC0000008

The device returned a data overrun error (defined for backward compatibility with the USB 1.0).

USBD_STATUS_DATA_UNDERRUN

0xC0000009

The device returned a data underrun error (defined for backward compatibility with the USB 1.0).

USBD_STATUS_RESERVED1

0xC000000A

Reserved.

USBD_STATUS_RESERVED2

0xC000000B

Reserved.

USBD_STATUS_BUFFER_OVERRUN

0xC000000C

The device returned a buffer overrun error (defined for backward compatibility with the USB 1.0).

USBD_STATUS_BUFFER_UNDERRUN

0xC000000D

The device returned a buffer underrun error (defined for backward compatibility with the USB 1.0).

USBD_STATUS_NOT_ACCESSED

0xC000000F

The USB stack could not access the device (defined for backward compatibility with the USB 1.0).

USBD_STATUS_FIFO

0xC0000010

The device returned a FIFO error (defined for backward compatibility with the USB 1.0).

USBD_STATUS_XACT_ERROR

0xC0000011

The device returned a transaction error (defined for backward compatibility with the USB 1.0).

USBD_STATUS_BABBLE_DETECTED

0xC0000012

The device returned a babble detected error (defined for backward compatibility with the USB 1.0).

USBD_STATUS_DATA_BUFFER_ERROR

0xC0000013

Hardware status codes that range from 0x00000001 to 0x000000FF (defined for backward compatibility with the USB 1.0 stack).

USBD_STATUS_NO_PING_RESPONSE

0xC0000014No response was received from the device for a ping packet sent by the host.

USBD_STATUS_INVALID_STREAM_TYPE

0xC0000015The stream type is invalid for the endpoint.

USBD_STATUS_INVALID_STREAM_ID

0xC0000016The stream identifier is invalid.

USBD_STATUS_ENDPOINT_HALTED

0xC0000030

A transfer was submitted to an endpoint that is stalled.

USBD_STATUS_INVALID_URB_FUNCTION

0x80000200

Invalid URB function.

USBD_STATUS_INVALID_PARAMETER

0x80000300

Invalid parameter.

USBD_STATUS_ERROR_BUSY

0x80000400

The client driver caused an error by attempting to close an endpoint, interface, or configuration handle with outstanding transfers.

USBD_STATUS_REQUEST_FAILED

0x80000500

The hub driver cannot complete a URB request.

USBD_STATUS_INVALID_PIPE_HANDLE

0x80000600

Invalid pipe handle.

USBD_STATUS_NO_BANDWIDTH

0x80000700

There was not enough bandwidth to open a requested endpoint.

USBD_STATUS_INTERNAL_HC_ERROR

0x80000900

Unspecified host controller error.

USBD_STATUS_ERROR_SHORT_TRANSFER

0x80000900

The transfer ended with a short packet, but the USBD_SHORT_TRANSFER_OK bit is not set for the pipe.

USBD_STATUS_BAD_START_FRAME

0xC0000A00

The requested start frame is not within a range of USBD_ISO_START_FRAME_RANGE frames of the current USB frame. Whenever this error occurs, the system sets the stall bit on the pipe.

USBD_STATUS_ISOCH_REQUEST_FAILED

0xC0000B00

The host controller returns this error whenever all packets in an isochronous transfer complete with an error.

USBD_STATUS_FRAME_CONTROL_OWNED

0xC0000C00

The hub driver returns this error whenever the frame length control for the host controller is being used by a driver other than the host controller driver.

USBD_STATUS_FRAME_CONTROL_NOT_OWNED

0xC0000D00

The hub driver returns this error if the caller does not own frame length control and attempts to release or modify the host controller frame length.

USBD_STATUS_NOT_SUPPORTED

0xC0000E00

The request was not supported.

USBD_STATUS_INAVLID_CONFIGURATION_DESCRIPTOR

0xC0000F00

Invalid configuration descriptor.

USBD_STATUS_INSUFFICIENT_RESOURCES

0xC0001000

Insufficient resources.

USBD_STATUS_SET_CONFIG_FAILED

0xC0002000

An attempt to change the device configuration failed.

USBD_STATUS_BUFFER_TOO_SMALL

0xC0003000

The buffer is too small.

USBD_STATUS_INTERFACE_NOT_FOUND

0xC0004000

The interface was not found.

USBD_STATUS_INAVLID_PIPE_FLAGS

0xC0005000

Invalid pipe flags.

USBD_STATUS_TIMEOUT

0xC0006000

The request timed out.

USBD_STATUS_DEVICE_GONE

0xC0007000

The device is no longer present in the system.

USBD_STATUS_STATUS_NOT_MAPPED

0xC0008000

The device bus address is not mapped to system memory.

USBD_STATUS_HUB_INTERNAL_ERROR

0xC0009000

The hub driver returns this error whenever it intercepted a URB that was targeted at some other device.

USBD_STATUS_CANCELED

0xC0010000

The USB stack reports this error whenever it completed a transfer because of an AbortPipe request from the client driver.

USBD_STATUS_ISO_NOT_ACCESSED_BY_HW

0xC0020000

The host controller did not access the transfer descriptor (TD) that is associated with this packet. The USB stack reports this error in the packet status field of an isochronous transfer packet.

USBD_STATUS_ISO_TD_ERROR

0xC0030000

The host controller reported an error in the transfer descriptor (TD). The USB stack reports this error in the packet status field of an isochronous transfer packet.

USBD_STATUS_ISO_NA_LATE_USBPORT

0xC0040000

The client driver submitted the packet on time, but the packet failed to reach the miniport driver on time. The USB stack reports this error in the packet status field of an isochronous transfer packet.

USBD_STATUS_ISO_NOT_ACCESSED_LATE

0xC0050000

The client driver did not submit the packet on time. The USB stack reports this error in the packet status field of an isochronous transfer packet.

USBD_STATUS_BAD_DESCRIPTOR

0xC0100000

Invalid descriptor.

USBD_STATUS_BAD_DESCRIPTOR_BLEN

0xC0100001

Invalid descriptor length.

USBD_STATUS_BAD_DESCRIPTOR_TYPE

0xC0100002

Invalid descriptor type.

USBD_STATUS_BAD_INTERFACE_DESCRIPTOR

0xC0100003

Invalid interface descriptor.

USBD_STATUS_BAD_ENDPOINT_DESCRIPTOR

0xC0100004

Invalid endpoint descriptor.

USBD_STATUS_BAD_INTERFACE_ASSOC_DESCRIPTOR

0xC0100005

Invalid interface association descriptor.

USBD_STATUS_BAD_CONFIG_DESC_LENGTH

0xC0100006

Invalid configuration descriptor length.

USBD_STATUS_BAD_NUMBER_OF_INTERFACES

0xC0100007

Invalid number of interfaces.

USBD_STATUS_BAD_NUMBER_OF_ENDPOINTS

0xC0100008

Invalid number of endpoints.

USBD_STATUS_BAD_ENDPOINT_ADDRESS

0xC0100009

Invalid endpoint address.


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 1. 第一章蓝牙概述和金瓯蓝牙开发平台介绍......... PAGEREF _TOC120615555 \H 12 1.1 蓝牙概述................. PAGEREF _TOC120615556 \H 12 1.1.1 蓝牙技术的诞生与发展................. PAGEREF _Toc120615557 \h 12 1.1.2 蓝牙技术介绍................. PAGEREF _Toc120615558 \h 12 1.1.3 蓝牙协议体系结构........ PAGEREF _Toc120615559 \h 14 1.1.4 蓝牙应用模型及协议栈................. PAGEREF _Toc120615560 \h 17 1.1.5 蓝牙技术的应用............ PAGEREF _Toc120615561 \h 19 1.2 金瓯蓝牙开发平台介绍......... PAGEREF _TOC120615562 \H 20 1.2.1 平台简介....... PAGEREF _Toc120615563 \h 20 1.2.2 功能说明....... PAGEREF _Toc120615564 \h 20 1.2.3 使用说明....... PAGEREF _Toc120615565 \h 21 2 1.2.4 HCI.... PAGEREF _Toc120615566 \h 22 1.2.5 SDP... PAGEREF _Toc120615567 \h 26 1.2.6 RFCOMM........... PAGEREF _Toc120615568 \h 27 1.2.7 开发................ PAGEREF _Toc120615569 \h 27 1.2.8 硬件说明....... PAGEREF _Toc120615570 \h 27 2. 第二章无线技术协议............... PAGEREF _TOC120615571 \H 27 2.1 概述........ PAGEREF _TOC120615572 \H 27 2.2 频段及信道分配.... PAGEREF _TOC120615573 \H 27 2.3 发射机特性............. PAGEREF _TOC120615574 \H 27 2.3.1 基本数据速率................. PAGEREF _Toc120615575 \h 27 2.3.2 增强数据速率................. PAGEREF _Toc120615576 \h 27 2.4 接收机特性............. PAGEREF _TOC120615577 \H 27 2.4.1 基本速率....... PAGEREF _Toc120615578 \h 27 2.4.2 增强数据速率................. PAGEREF _Toc120615579 \h 27 3. 第三章基带协议...... PAGEREF _TOC120615580 \H 27 3.1 概述........ PAGEREF _TOC120615581 \H 27 3.1.1 蓝牙时钟....... PAGEREF _Toc120615582 \h 27 3.1.2 蓝牙设备编址................. PAGEREF _Toc120615583 \h 27 3.1.3 接入码............ PAGEREF _Toc120615584 \h 27 3.2 物理信道................. PAGEREF _TOC120615585 \H 27 3.2.1 物理信道定义................. PAGEREF _Toc120615586 \h 27 3.2.2 基本匹克网物理信道.... PAGEREF _Toc120615587 \h 27 3.2.3 自适应匹克网物理信道................. PAGEREF _Toc120615588 \h 27 3.2.4 寻呼扫描物理信道........ PAGEREF _Toc120615589 \h 27 3.2.5 查询扫描物理信道........ PAGEREF _Toc120615590 \h 27 3.2.6 频率选择....... PAGEREF _Toc120615591 \h 27 3.3 物理链路................. PAGEREF _TOC120615592 \H 27 3.3.1 链路管理....... PAGEREF _Toc120615593 \h 27 3.4 逻辑传输................. PAGEREF _TOC120615594 \H 27 3.4.1 概述................ PAGEREF _Toc120615595 \h 27 3.4.2 逻辑传输地址(LT_ADDR)........ PAGEREF _Toc120615596 \h 27 3.4.3 同步逻辑传输................. PAGEREF _Toc120615597 \h 27 3.4.4 异步逻辑传输................. PAGEREF _Toc120615598 \h 27 3.4.5 收发过程....... PAGEREF _Toc120615599 \h 27 3.4.6 活动状态下的从设备广播传输.... PAGEREF _Toc120615600 \h 27 3.4.7 休眠模式下从设备广播传输......... PAGEREF _Toc120615601 \h 27 3.5 逻辑链路................. PAGEREF _TOC120615602 \H 27 3.5.1 链路控制逻辑链路(LC)............ PAGEREF _Toc120615603 \h 27 3.5.2 ACL 控制逻辑链路(ACL-C)......... PAGEREF _Toc120615604 \h 27 3.5.3 用户异步/同步逻辑链路(ACL-U)............. PAGEREF _Toc120615605 \h 27 3.5.4 用户同步数据逻辑链路(SCO-S)............... PAGEREF _Toc120615606 \h 27 3.5.5 用户扩展同步数据逻辑链路(eSCO-S).... PAGEREF _Toc120615607 \h 27 3.5.6 逻辑链路优先级............ PAGEREF _Toc120615608 \h 27 3 3.6 分组........ PAGEREF _TOC120615609 \H 27 3.6.1 通用格式....... PAGEREF _Toc120615610 \h 27 3.6.2 位顺序............ PAGEREF _Toc120615611 \h 27 3.6.3 接入码............ PAGEREF _Toc120615612 \h 27 3.6.4 分组头............ PAGEREF _Toc120615613 \h 27 3.6.5 分组类型....... PAGEREF _Toc120615614 \h 27 3.6.6 净荷格式....... PAGEREF _Toc120615615 \h 27 3.6.7 分组概要....... PAGEREF _Toc120615616 \h 27 3.7 比特流流程............. PAGEREF _TOC120615617 \H 27 3.7.1 差错检验....... PAGEREF _Toc120615618 \h 27 3.7.2 数据白化....... PAGEREF _Toc120615619 \h 27 3.7.3 纠错................ PAGEREF _Toc120615620 \h 27 3.7.4 1/3 比例前向纠错码.......... PAGEREF _Toc120615621 \h 27 3.7.5 2/3 比例前向纠错码.......... PAGEREF _Toc120615622 \h 27 3.7.6 ARQ 方案........... PAGEREF _Toc120615623 \h 27 3.8 链路控制操作......... PAGEREF _TOC120615624 \H 27 3.8.1 状态概述....... PAGEREF _Toc120615625 \h 27 3.8.2 待机状态....... PAGEREF _Toc120615626 \h 27 3.8.3 连接建立子状态............ PAGEREF _Toc120615627 \h 27 3.8.4 设备发现子状态............ PAGEREF _Toc120615628 \h 27 3.8.5 连接状态....... PAGEREF _Toc120615629 \h 27 3.8.6 活动模式....... PAGEREF _Toc120615630 \h 27 3.8.7 呼吸模式....... PAGEREF _Toc120615631 \h 27 3.8.8 保持模式....... PAGEREF _Toc120615632 \h 27 3.8.9 休眠状态....... PAGEREF _Toc120615633 \h 27 3.9 音频........ PAGEREF _TOC120615634 \H 27 3.9.1 对数PCM 编译码器(LOG PCM CODEC)............... PAGEREF _Toc120615635 \h 27 3.9.2 连续变化斜率增量调制编译码器(CVSD CODEC)............... PAGEREF _Toc120615636 \h 27 3.9.3 错误处理....... PAGEREF _Toc120615637 \h 27 3.9.4 一般音频要求................. PAGEREF _Toc120615638 \h 27 4. 第四章链路管理协议............... PAGEREF _TOC120615639 \H 27 4.1 概述........ PAGEREF _TOC120615640 \H 27 4.2 一般规则................. PAGEREF _TOC120615641 \H 27 4.2.1 消息传输....... PAGEREF _Toc120615642 \h 27 4.2.2 同步................ PAGEREF _Toc120615643 \h 27 4.2.3 分组格式....... PAGEREF _Toc120615644 \h 27 4.2.4 事务................ PAGEREF _Toc120615645 \h 27 4.2.5 差错处理....... PAGEREF _Toc120615646 \h 27 4.2.6 过程规则....... PAGEREF _Toc120615647 \h 27 4.2.7 通用应答消息................. PAGEREF _Toc120615648 \h 27 4.2.8 LMP 消息限制条件............ PAGEREF _Toc120615649 \h 27 4.3 设备特征................. PAGEREF _TOC120615650 \H 27 4 4.3.1 概述................ PAGEREF _Toc120615651 \h 27 4.3.2 特征定义....... PAGEREF _Toc120615652 \h 27 4.3.3 特征掩码定义................. PAGEREF _Toc120615653 \h 27 4.3.4 链路管理相互对策........ PAGEREF _Toc120615654 \h 27 4.4 过程规则................. PAGEREF _TOC120615655 \H 27 4.4.1 连接控制....... PAGEREF _Toc120615656 \h 27 4.4.2 安全................ PAGEREF _Toc120615657 \h 27 4.4.3 信息请求....... PAGEREF _Toc120615658 \h 27 4.4.4 主从角色转换................. PAGEREF _Toc120615659 \h 27 4.4.5 操作模式....... PAGEREF _Toc120615660 \h 27 4.4.6 逻辑链路....... PAGEREF _Toc120615661 \h 27 4.4.7 测试模式....... PAGEREF _Toc120615662 \h 27 5. 第五章主机控制器接口协议. PAGEREF _TOC120615663 \H 27 5.1 主机控制接口协议概述......... PAGEREF _TOC120615664 \H 27 5.1.1 底层蓝牙软件栈............ PAGEREF _Toc120615665 \h 27 5.2 主机控制传输层概述.............. PAGEREF _TOC120615666 \H 27 5.2.1 USB 传输层....... PAGEREF _Toc120615667 \h 27 5.2.2 RS232 传输层... PAGEREF _Toc120615668 \h 27 5.2.3 HCI UART 传输层............. PAGEREF _Toc120615669 \h 27 5.2.4 HCI SD 传输层. PAGEREF _Toc120615670 \h 27 5.3 HCI 流控制.............. PAGEREF _TOC120615671 \H 27 5.4 HCI 数据格式......... PAGEREF _TOC120615672 \H 27 5.4.1 介绍................ PAGEREF _Toc120615673 \h 27 5.4.2 数据和参数格式............ PAGEREF _Toc120615674 \h 27 5.4.3 HCI 信息交换.... PAGEREF _Toc120615675 \h 27 5.5 开发平台上的命令和事件及其详细分析............... PAGEREF _TOC120615676 \H 27 5.5.1 开发平台在执行HCI 初始化本地蓝牙设备命令后所产生的一些命令和事件:....... PAGEREF _Toc120615677 \h 27 5.5.2 开发平台在执行HCI 搜索蓝牙设备命令后所产生的命令和事件。........... PAGEREF _Toc120615678 \h 27 5.5.3 建立连接....... PAGEREF _Toc120615679 \h 27 5.5.4 传输ACL 数据1............ PAGEREF _Toc120615680 \h 27 5.5.5 传输ACL 数据2............ PAGEREF _Toc120615681 \h 27 5.5.6 断开连接....... PAGEREF _Toc120615682 \h 27 5.6 HCI 分组中数据的详细解释说明........... PAGEREF _TOC120615683 \H 27 5.6.1 HCI 链路控制命令............. PAGEREF _Toc120615684 \h 27 5.6.2 HCI 链路策略命令............. PAGEREF _Toc120615685 \h 27 5.6.3 主机控制器和基带命令................. PAGEREF _Toc120615686 \h 27 5.6.4 信息参数....... PAGEREF _Toc120615687 \h 27 5.6.5 状态参数....... PAGEREF _Toc120615688 \h 27 5.6.6 测试命令....... PAGEREF _Toc120615689 \h 27 5.6.7 事件................ PAGEREF _Toc120615690 \h 27 5.7 实现HCI 的部分源代码及其分析.......... PAGEREF _TOC120615691 \H 27 5.7.1 HCI 对上行数据流的处理过程......... PAGEREF _Toc120615692 \h 27 5 5.7.2 HCI 对下行数据流的处理过程......... PAGEREF _Toc120615693 \h 27 6. 第六章逻辑链路控制和适配协议......... PAGEREF _TOC120615694 \H 27 6.1 L2CAP 概述............ PAGEREF _TOC120615695 \H 27 6.1.1 L2CAP 特征....... PAGEREF _Toc120615696 \h 27 6.1.2 L2CAP 的设计.. PAGEREF _Toc120615697 \h 27 6.1.3 适用范围....... PAGEREF _Toc120615698 \h 27 6.2 主要操作................. PAGEREF _TOC120615699 \H 27 6.2.1 信道标识符... PAGEREF _Toc120615700 \h 27 6.2.2 设备间操作... PAGEREF _Toc120615701 \h 27 6.2.3 层间操作....... PAGEREF _Toc120615702 \h 27 6.2.4 操作方式....... PAGEREF _Toc120615703 \h 27 6.3 数据分组格式......... PAGEREF _TOC120615704 \H 27 6.3.1 面向连接信道................. PAGEREF _Toc120615705 \h 27 6.3.2 无连接数据信道............ PAGEREF _Toc120615706 \h 27 6.3.3 在重传/流控制模式下的面向连接信道........ PAGEREF _Toc120615707 \h 27 6.4 信令分组格式......... PAGEREF _TOC120615708 \H 27 6.4.1 命令拒绝(代码0x01 ). PAGEREF _Toc120615709 \h 27 6.4.2 连接请求(代码0x02) PAGEREF _Toc120615710 \h 27 6.4.3 连接应答(代码0x03 ). PAGEREF _Toc120615711 \h 27 6.4.4 配置请求(代码0x04 ). PAGEREF _Toc120615712 \h 27 6.4.5 配置应答(代码0X05 ).............. PAGEREF _Toc120615713 \h 27 6.4.6 断开请求(代码0x06)... PAGEREF _Toc120615714 \h 27 6.4.7 连接断开应答(代码0x07)............ PAGEREF _Toc120615715 \h 27 6.4.8 回应请求(代码0x08).. PAGEREF _Toc120615716 \h 27 6.4.9 回应应答(代码0x09).. PAGEREF _Toc120615717 \h 27 6.4.10 信息请求(代码0X0A)............... PAGEREF _Toc120615718 \h 27 6.4.11 信息应答(代码0X0B)................ PAGEREF _Toc120615719 \h 27 6.4.12 扩展特征掩码................. PAGEREF _Toc120615720 \h 27 6.5 配置参数选项......... PAGEREF _TOC120615721 \H 27 6.5.1 最大传输单位................. PAGEREF _Toc120615722 \h 27 6.5.2 刷新超时选项................. PAGEREF _Toc120615723 \h 27 6.5.3 服务质量选项................. PAGEREF _Toc120615724 \h 27 6.5.4 重传和流控制选项........ PAGEREF _Toc120615725 \h 27 6.6 状态机.... PAGEREF _TOC120615726 \H 27 6.6.1 状态机的常规规则........ PAGEREF _Toc120615727 \h 27 6.6.2 定时器事件... PAGEREF _Toc120615728 \h 27 6.7 常规操作过程......... PAGEREF _TOC120615729 \H 27 6.7.1 配置过程....... PAGEREF _Toc120615730 \h 27 6.7.2 分段和重组... PAGEREF _Toc120615731 \h 27 6.7.3 服务数据单元的封装.... PAGEREF _Toc120615732 \h 27 6.7.4 错误的L2CAP SDU 的传输.......... PAGEREF _Toc120615733 \h 27 6.7.5 刷新超时的操作............ PAGEREF _Toc120615734 \h 27 6.7.6 无连接数据信道............ PAGEREF _Toc120615735 \h 27 6.8 流控制和重传过程PAGEREF _TOC120615736 \H 27 6 6.8.1 信息恢复....... PAGEREF _Toc120615737 \h 27 6.8.2 流控制和重传PDU 类型的功能.. PAGEREF _Toc120615738 \h 27 6.8.3 变量和序列号码............ PAGEREF _Toc120615739 \h 27 6.8.4 重传模式....... PAGEREF _Toc120615740 \h 27 6.8.5 流控制模式... PAGEREF _Toc120615741 \h 27 6.9 L2CAP 层数据分析................. PAGEREF _TOC120615742 \H 27 6.9.1 L2CAP_PDU..... PAGEREF _Toc120615743 \h 27 6.9.2 信令信道的L2CAP_PDU 分析.... PAGEREF _Toc120615744 \h 27 6.9.3 L2CAP 层通过0x40 通道发送Hello World..... PAGEREF _Toc120615745 \h 27 6.10 L2CAP 层源代码分析............. PAGEREF _TOC120615746 \H 27 6.10.1 L2CAP 层重要数据结构定义........ PAGEREF _Toc120615747 \h 27 6.10.2 L2CAP 发送接收数据流程............ PAGEREF _Toc120615748 \h 27 6.10.3 一般的连接建立过程、配置过程和断开连接过程...... PAGEREF _Toc120615749 \h 27 7. 第七章串口仿真协议............... PAGEREF _TOC120615750 \H 27 7.1 介绍........ PAGEREF _TOC120615751 \H 27 7.1.1 概述................ PAGEREF _Toc120615752 \h 27 7.1.2 设备类型....... PAGEREF _Toc120615753 \h 27 7.1.3 字节序列....... PAGEREF _Toc120615754 \h 27 7.2 RFCOMM 服务概述................ PAGEREF _TOC120615755 \H 27 7.2.1 RS-232 控制信令............... PAGEREF _Toc120615756 \h 27 7.2.2 空MODEM 仿真............ PAGEREF _Toc120615757 \h 27 7.2.3 多串口仿真... PAGEREF _Toc120615758 \h 27 7.3 服务接口描述......... PAGEREF _TOC120615759 \H 27 7.3.1 服务定义模型................. PAGEREF _Toc120615760 \h 27 7.4 采用TS07.10 子集和对TS07.10 的修正后的RFCOMM....... PAGEREF _TOC120615761 \H 27 7.4.1 RFCOMM 的帧结构.......... PAGEREF _Toc120615762 \h 27 7.4.2 多路控制信道................. PAGEREF _Toc120615763 \h 27 7.4.3 汇聚层............ PAGEREF _Toc120615764 \h 27 7.5 流控制.... PAGEREF _TOC120615765 \H 27 7.5.1 L2CAP 流控制概述............ PAGEREF _Toc120615766 \h 27 7.5.2 有线端口的流控制........ PAGEREF _Toc120615767 \h 27 7.5.3 RFCOMM 流控制............... PAGEREF _Toc120615768 \h 27 7.5.4 端口仿真实体串行流控制............. PAGEREF _Toc120615769 \h 27 7.6 与其它实体的互操作.............. PAGEREF _TOC120615770 \H 27 7.6.1 端口仿真和端口代理实体............. PAGEREF _Toc120615771 \h 27 7.6.2 服务注册和搜索............ PAGEREF _Toc120615772 \h 27 7.6.3 低层约束....... PAGEREF _Toc120615773 \h 27 7.7 RFCOMM 层数据分析部分... PAGEREF _TOC120615774 \H 27 7.7.1 建立连接....... PAGEREF _Toc120615775 \h 27 7.7.2 收发数据....... PAGEREF _Toc120615776 \h 27 7.7.3 断开连接....... PAGEREF _Toc120615777 \h 27 7.8 RFCOMM 层源代码分析部分................ PAGEREF _TOC120615778 \H 27 7 7.8.1 传输过程和重要数据结构............. PAGEREF _Toc120615779 \h 27 7.8.2 建立连接、断开、数据传输分析PAGEREF _Toc120615780 \h 27 8. 第八章对象交换协议............... PAGEREF _TOC120615781 \H 27 8.1 OBEX 协议概述..... PAGEREF _TOC120615782 \H 27 8.2 OBEX 对象模型..... PAGEREF _TOC120615783 \H 27 8.2.1 OBEX 可选分组头.............. PAGEREF _Toc120615784 \h 27 8.2.2 头指示器(HI)详细描述............. PAGEREF _Toc120615785 \h 27 8.3 会话协议................. PAGEREF _TOC120615786 \H 27 8.3.1 会话协议概述................. PAGEREF _Toc120615787 \h 27 8.3.2 连接操作....... PAGEREF _Toc120615788 \h 27 8.3.3 连接断开操作................. PAGEREF _Toc120615789 \h 27 8.3.4 推(PUT)操作............. PAGEREF _Toc120615790 \h 27 8.3.5 拉(GET)操作............. PAGEREF _Toc120615791 \h 27 8.3.6 取消(Abort)操作...... PAGEREF _Toc120615792 \h 27 8.3.7 设置路径(Set Path)操作........... PAGEREF _Toc120615793 \h 27 8.4 蓝牙下的OBEX 协议.............. PAGEREF _TOC120615794 \H 27 8.4.1 OBEX OVER RFCOMM..... PAGEREF _Toc120615795 \h 27 8.4.2 OBEX over TCP/IP............. PAGEREF _Toc120615796 \h 27 9. 第九章服务发现协议............... PAGEREF _TOC120615797 \H 27 9.1 介绍........ PAGEREF _TOC120615798 \H 27 9.1.1 概述................ PAGEREF _Toc120615799 \h 27 9.1.2 SDP 能够提供的服务能力................. PAGEREF _Toc120615800 \h 27 9.2 概述........ PAGEREF _TOC120615801 \H 27 9.2.1 客户服务器交互............ PAGEREF _Toc120615802 \h 27 9.2.2 服务记录....... PAGEREF _Toc120615803 \h 27 9.2.3 服务属性....... PAGEREF _Toc120615804 \h 27 9.2.4 属性ID.......... PAGEREF _Toc120615805 \h 27 9.2.5 属性值............ PAGEREF _Toc120615806 \h 27 9.2.6 服务类............ PAGEREF _Toc120615807 \h 27 9.2.7 服务搜索....... PAGEREF _Toc120615808 \h 27 9.2.8 服务浏览....... PAGEREF _Toc120615809 \h 27 9.3 数据表示................. PAGEREF _TOC120615810 \H 27 9.3.1 数据元............ PAGEREF _Toc120615811 \h 27 9.3.2 数据元素类型描述符.... PAGEREF _Toc120615812 \h 27 9.3.3 数据元尺寸描述符........ PAGEREF _Toc120615813 \h 27 9.3.4 数据元举例... PAGEREF _Toc120615814 \h 27 9.4 协议说明................. PAGEREF _TOC120615815 \H 27 9.4.1 字节传输顺序................. PAGEREF _Toc120615816 \h 27 9.4.2 协议数据单元格式........ PAGEREF _Toc120615817 \h 27 9.4.3 局部应答和延续状态.... PAGEREF _Toc120615818 \h 27 9.4.4 出错处理....... PAGEREF _Toc120615819 \h 27 9.4.5 服务搜索处理................. PAGEREF _Toc120615820 \h 27 9.4.6 服务属性事务................. PAGEREF _Toc120615821 \h 27 8 9.4.7 服务搜索属性事务........ PAGEREF _Toc120615822 \h 27 9.5 服务属性定义......... PAGEREF _TOC120615823 \H 27 9.5.1 通用属性定义................. PAGEREF _Toc120615824 \h 27 9.5.2 “服务搜索服务器”服务类属性定义.............. PAGEREF _Toc120615825 \h 27 9.5.3 “浏览组描述符”服务类属性定义PAGEREF _Toc120615826 \h 27 9.6 SDP 层数据分析部分.............. PAGEREF _TOC120615827 \H 27 9.6.1 服务搜索请求................. PAGEREF _Toc120615828 \h 27 9.6.2 服务搜索响应................. PAGEREF _Toc120615829 \h 27 9.6.3 服务属性请求................. PAGEREF _Toc120615830 \h 27 9.6.4 服务属性应答................. PAGEREF _Toc120615831 \h 27 9.6.5 服务搜索属性请求........ PAGEREF _Toc120615832 \h 27 9.6.6 服务请求属性应答........ PAGEREF _Toc120615833 \h 27 9.7 SDP 层源代码分析部分......... PAGEREF _TOC120615834 \H 27 9.7.1 重要数据元和结构体.... PAGEREF _Toc120615835 \h 27 9.7.2 数据流程和几个重要的接口函数PAGEREF _Toc120615836 \h 27 10. 第十章电话控制协议控制. PAGEREF _TOC120615837 \H 27 10.1 概述..... PAGEREF _TOC120615838 \H 27 10.1.1 介绍................ PAGEREF _Toc120615839 \h 27 10.1.2 设备间操作... PAGEREF _Toc120615840 \h 27 10.1.3 层间操作....... PAGEREF _Toc120615841 \h 27 10.2 呼叫控制(CC)... PAGEREF _TOC120615842 \H 27 10.2.1 呼叫状态....... PAGEREF _Toc120615843 \h 27 10.2.2 建立呼叫....... PAGEREF _Toc120615844 \h 27 10.2.3 呼叫清除....... PAGEREF _Toc120615845 \h 27 10.3 组管理(GM)...... PAGEREF _TOC120615846 \H 27 10.3.1 概述................ PAGEREF _Toc120615847 \h 27 10.3.2 无线用户组(WUG)... PAGEREF _Toc120615848 \h 27 10.3.3 获取访问权限................. PAGEREF _Toc120615849 \h 27 10.3.4 配置分布....... PAGEREF _Toc120615850 \h 27 10.3.5 成员间快速访问............ PAGEREF _Toc120615851 \h 27 10.4 无连接TCS(CL)................. PAGEREF _TOC120615852 \H 27 10.5 补充服务(SS).... PAGEREF _TOC120615853 \H 27 10.5.1 呼叫线路识别................. PAGEREF _Toc120615854 \h 27 10.5.2 DTMF 启动和终止....... PAGEREF _Toc120615855 \h 27 10.5.3 注册重呼....... PAGEREF _Toc120615856 \h 27 10.6 报文格式................. PAGEREF _TOC120615857 \H 27 10.6.1 呼叫控制报文格式........ PAGEREF _Toc120615858 \h 27 10.6.2 组管理报文格式............ PAGEREF _Toc120615859 \h 27 10.6.3 TCS 无连接报文格式... PAGEREF _Toc120615860 \h 27 10.7 报文编码................. PAGEREF _TOC120615861 \H 27 10.7.1 概述................ PAGEREF _Toc120615862 \h 27 10.7.2 协议标识....... PAGEREF _Toc120615863 \h 27 10.7.3 报文类型....... PAGEREF _Toc120615864 \h 27 10.7.4 其它信息元... PAGEREF _Toc120615865 \h 27 9 10.8 报文出错处理......... PAGEREF _TOC120615866 \H 27 10.8.1 协议标识出错................. PAGEREF _Toc120615867 \h 27 10.8.2 报文太短或未被识别.... PAGEREF _Toc120615868 \h 27 10.8.3 报文类别或报文顺序出错............. PAGEREF _Toc120615869 \h 27 10.8.4 信息元出错... PAGEREF _Toc120615870 \h 27 10.9 协议参数................. PAGEREF _TOC120615871 \H 27 10.9.1 协议时钟....... PAGEREF _Toc120615872 \h 27 11. 第十一章蓝牙操作模式..... PAGEREF _TOC120615873 \H 27 11.1 概述........ PAGEREF _TOC120615874 \H 27 11.2 蓝牙串口操作模式PAGEREF _TOC120615875 \H 27 11.2.1 SPP 概述....... PAGEREF _Toc120615876 \h 27 11.2.2 SPP 链路....... PAGEREF _Toc120615877 \h 27 11.2.3 SPP 与各层协同工作性能要求.... PAGEREF _Toc120615878 \h 27 11.3 蓝牙头戴式设备操作模式..... PAGEREF _TOC120615879 \H 27 11.3.1 HSP 概述....... PAGEREF _Toc120615880 \h 27 11.3.2 HSP 功能描述................ PAGEREF _Toc120615881
章 1 M258 系统变量. . . . . . . . . . . . . . . . . . . 9 1.1 系统变量:定义和使用. . . . . . . . . . . . . . . . . . . . . . 10 了解系统变量. . . . . . . . . . . . . . . . . . . . . . . . . . 11 使用系统变量. . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.2 PLC_R 和 PLC_W 结构 . . . . . . . . . . . . . . . . . . . . . 14 PLC_R:控制器只读系统变量. . . . . . . . . . . . . . . . . . . 15 PLC_W:控制器读/ 写系统变量. . . . . . . . . . . . . . . . . . 19 1.3 SERIAL_R 和 SERIAL_W 结构 . . . . . . . . . . . . . . . . . . 20 SERIAL_R[0..1]:串行线路只读系统变量. . . . . . . . . . . . . . 21 SERIAL_W[0..1]:串行线路读/ 写系统变量. . . . . . . . . . . . . 22 1.4 ETH_R 和 ETH_W 结构 . . . . . . . . . . . . . . . . . . . . . 23 ETH_R:以太网端口只读系统变量. . . . . . . . . . . . . . . . . 24 ETH_W:以太网端口读/ 写系统变量. . . . . . . . . . . . . . . . 27 1.5 TM5_MODULE_R 结构. . . . . . . . . . . . . . . . . . . . . . 28 TM5_MODULE_R[1..254]:TM5 模块只读系统变量 . . . . . . . . . 28 章 2 M258 系统功能. . . . . . . . . . . . . . . . . . . 29 2.1 M258 读取功能 . . . . . . . . . . . . . . . . . . . . . . . . . 30 DM72FGetImmediateInput:读取嵌入式专用 I/O 的输入 . . . . . . . 31 getTM5Delay:没有有效交换的 TM5 总线循环数 . . . . . . . . . . 32 IsFirstMastColdCycle:指示循环是否为第一个 Mast 冷启动循环. . . . 34 IsFirstMastCycle:指示循环是否为第一个主循环. . . . . . . . . . . 35 IsFirstMastWarmCycle:指示循环是否为第一个主热启动循环 . . . . . 37 2.2 M258 写入功能 . . . . . . . . . . . . . . . . . . . . . . . . . 38 DM72FSetImmediateOutput:写入嵌入式专用 I/O 的输出. . . . . . . 39 SetLEDBehaviour:决定 LED 的行为. . . . . . . . . . . . . . . . 41 SetRTCDrift:每周调整实时时钟. . . . . . . . . . . . . . . . . . 43 4 EIO0000000589 05/2010 章 3 M258 PLCSystem 库数据类型 . . . . . . . . . . . . 45 3.1 PLC_R/W 系统变量数据类型 . . . . . . . . . . . . . . . . . . 46 PLC_R_APPLICATION_ERROR:检测到的应用程序错误状态代码 . 47 PLC_R_BOOT_PROJECT_STATUS:引导项目状态代码. . . . . . 48 PLC_R_IO_STATUS:I/O 状态代码 . . . . . . . . . . . . . . . 49 PLC_R_STATUS:控制器状态代码 . . . . . . . . . . . . . . . 50 PLC_R_STOP_CAUSE:从“ 运行” 向其他状态转换的原因代码. . . 51 PLC_R_TERMINAL_PORT_STATUS:编程端口连接状态代码 . . . 52 PLC_R_USB_HOST_STATUS:USB 主机端口连接状态代码 . . . . 53
### 回答1: STM32 USB例程是一种用于STM32单片机的USB通信协议示例,它提供了一种可靠而稳定的方式,可以在STM32单片机和其他USB设备之间进行通信和数据传输。 在STM32 USB例程中,STM32单片机作为USB设备,可以与PC、手机、音频设备、键盘、鼠标等USB主机进行通信,支持常见的USB协议,如HID、CDC、MSC等。 使用STM32 USB例程可以快速实现STM32单片机与外界USB设备的通信和数据传输。该例程提供了各种API和函数,可用于配置USB外设、数据收发、状态判断和错误处理等操作,使得开发者可以方便地实现各种USB应用。 同时,STM32 USB例程还提供了丰富的开发工具和示例代码,使得开发者可以快速上手,迅速开发出符合自身需求的USB应用。 总之,STM32 USB例程是一种非常实用的USB通信协议示例,它为STM32单片机提供了可靠和高效的USB通信功能,为各种USB应用的开发提供了强有力的支持。 ### 回答2: STM32 USB例程是指一种用于STM32系列单片机USB通信的程序模板。STM32是意法半导体(STMicroelectronics)公司推出的一款微控制器,拥有广泛的应用领域,包括通信、物联网、工业控制、电子设备等多个领域。而USB则是一种通用的、用于连接计算机和外部设备的接口。使用STM32 USB例程,可以让STM32单片机通过USB接口与计算机进行数据传输、固件升级等操作。 STM32 USB例程一般包含USB 器件驱动和应用程序两部分。其中,USB器件驱动是指实现USB通信的底层软件支持,它实质上是USB协议栈的一种实现,可以与操作系统进行交互,提供底层的USB通讯接口。而应用程序则包括具体的业务逻辑代码,例如数据收发、升级等,它需要在USB器件驱动的基础上实现。 STM32 USB例程的实现需要掌握一定的硬件、软件知识和开发技巧。具体来说,需要了解STM32单片机硬件结构、外设功能及使用方法;掌握USB协议栈的实现原理和相关API函数;熟悉C语言编程、调试、版本控制等基本开发技巧。 总之,STM32 USB例程为STM32单片机提供了一种高效、可靠、快速的USB通信方式,对于工业控制、智能家居、医疗设备等多个领域的应用都具有广泛的意义。通过学习和实践,我们可以深入了解STM32的硬件、软件特性,熟悉嵌入式系统开发流程,提高自己的编程技巧和项目实践能力。 ### 回答3: STM32是一款非常流行的嵌入式系统芯片,它也支持USB接口,用户可以通过USB数据传输接口将STM32与其他设备进行连接,实现数据的输入、输出等功能。 STM32 USB例程是一种通常由STM32芯片厂家或者第三方开发者提供的USB应用程序演示程序。这种USB例程可以帮助用户更快、更容易地开发STM32与其他USB设备之间的交互功能。 例如,STM32 USB例程可以让开发者更快地了解如何与USB设备进行连接、如何实现USB数据传输、如何进行USB设备的控制等等。同时,STM32 USB例程还提供了一些基础的USB驱动程序,方便开发者快速开始项目开发。 当然,对于STM32 USB例程,用户还需要具备相关的编程知识和经验。在使用STM32 USB例程时,用户需要先了解USB协议、USB数据传输等基础知识,然后再根据需要进行修改和拓展,以实现自己的项目需求。 总之,STM32 USB例程是一种非常实用的开发工具,它可以帮助开发者更快、更方便地进行USB相关开发。同时,通过学习和使用STM32 USB例程,用户也可以更深入地了解STM32芯片的特性和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值