基本信息
文件名称:NXP 系列:LPC1700 系列_(14).USB设备与主机模式.docx
文件大小:30.92 KB
总页数:43 页
更新时间:2025-06-18
总字数:约2.25万字
文档摘要

PAGE1

PAGE1

USB设备与主机模式

USB概述

USB(UniversalSerialBus,通用串行总线)是一种标准的接口技术,用于连接计算机和其他设备。USB接口支持热插拔、即插即用和多设备连接,最大支持127个设备同时连接。LPC1700系列单片机集成了一个全速USB设备/主机控制器,支持USB2.0标准。该控制器可以配置为设备模式或主机模式,分别用于连接到USB主机或控制其他USB设备。

USB设备模式

在设备模式下,LPC1700单片机可以作为USB设备连接到USB主机(通常是计算机)。这种模式下,单片机需要响应主机的请求,并按照USB协议进行数据传输。LPC1700支持多种USB设备类,如HID(人机接口设备)、CDC(通信设备类)、MassStorage(大容量存储设备)等。

设备模式配置

硬件配置:

确保USB接口的硬件连接正确,包括D+和D-线的连接。

配置USB引脚为功能引脚。

软件配置:

初始化USB设备控制器。

配置USB设备描述符。

处理USB事件和请求。

代码示例:USB设备模式初始化

#includeLPC17xx.h

#includeusb.h

#includeusbdevice.h

#includeusbcdc.h

//USB设备描述符

USB_DEVICE_DESCRIPTORdevice_descriptor={

.bLength=sizeof(USB_DEVICE_DESCRIPTOR),

.bDescriptorType=USB_DEVICE_DESCRIPTOR_TYPE,

.bcdUSB=0x0200,//USB2.0

.bDeviceClass=USB_CLASS_CDC,

.bDeviceSubClass=0,

.bDeviceProtocol=0,

.bMaxPacketSize0=64,

.idVendor=0x1234,//厂商ID

.idProduct=0x5678,//产品ID

.bcdDevice=0x0001,//设备版本

.iManufacturer=1,//制造商字符串索引

.iProduct=2,//产品字符串索引

.iSerialNumber=3,//序列号字符串索引

.bNumConfigurations=1//配置数量

};

//初始化USB设备

voidUSB_InitDevice(void){

//使能USB时钟

LPC_SC-PCONP|=(113);

LPC_SC-PCLKSEL1=~(0x318);

LPC_SC-PCLKSEL1|=(0x218);//选择PCLK为USB时钟

//使能USB控制器

LPC_USB-USBCTRL=(115);//使能USB控制器

LPC_USB-USBINTSTEN=0xFFFFFFFF;//使能所有USB中断

//配置USB引脚

LPC_PINCON-PINSEL1=~0xF0000000;//清除USB引脚配置

LPC_PINCON-PINSEL1|=0//配置USB引脚

//初始化USB设备

USB_DeviceInit();

USB_DeviceConnect();

}

//USB设备事件处理

voidUSB_DeviceHandler(void){

USB_DEVICE_EVENTevent;

USB_DeviceGetEvent(event);

switch(event.event){

caseUSB_EVENT_RESET:

USB_DeviceReset();

break;

caseUSB_EVENT_CONNECT:

USB_DeviceConnect();

break;

caseUSB_EVENT_DISCONNECT:

USB_DeviceDisconnect();

break;