PAGE1
PAGE1
LPC1768USB接口
引言
LPC1768是一款高性能的32位ARMCortex-M3处理器,广泛应用于各种嵌入式系统中。USB接口是LPC1768的一个重要功能,支持USB2.0全速和高速通信,可以方便地与PC或其他USB设备进行数据交换。本节将详细介绍LPC1768的USB接口原理和使用方法,包括USB设备初始化、数据传输和常见的USB设备类型配置。
USB接口概述
USB(UniversalSerialBus)是一种通用串行总线,用于连接计算机和外部设备。LPC1768的USB接口支持全速(12Mbps)和高速(480Mbps)通信,可以配置为USB设备或USB主机。在复杂娱乐设备中,USB接口通常用于与PC进行数据传输、固件更新、音频传输等多种功能。
USB设备模式
在USB设备模式下,LPC1768作为USB设备,与USB主机(通常是PC)进行通信。常见的USB设备类型包括:
HID(HumanInterfaceDevice)设备:用于键盘、鼠标等输入设备。
CDC(CommunicationDeviceClass)设备:用于虚拟串口通信。
MassStorage设备:用于存储设备,如U盘。
Audio设备:用于音频传输设备。
USB主机模式
在USB主机模式下,LPC1768作为USB主机,可以控制和管理USB设备。主机模式适用于需要连接多个USB设备的复杂娱乐设备,如USB集线器、USB键盘、USB鼠标等。
USB设备初始化
要使用LPC1768的USB接口,首先需要进行设备初始化。初始化过程包括配置USB控制器、设置设备描述符、配置端点等步骤。
配置USB控制器
LPC1768的USB控制器初始化需要设置相关的寄存器。以下是初始化USB设备的基本步骤:
使能USB时钟:
//使能USB时钟
LPC_SC-PCONP|=(110);//使能USB时钟
LPC_SC-PCLKSEL1|=(0x0220);//设置USB时钟为PCLK/2
初始化USB控制器:
//初始化USB控制器
USB_Init();
配置USB设备描述符:
//配置USB设备描述符
USB_DeviceDescriptor_tDeviceDescriptor={
.bLength=sizeof(USB_DeviceDescriptor_t),
.bDescriptorType=USB_DEVICE_DESCRIPTOR_TYPE,
.bcdUSB=USB_BCD_VERSION(2,0),
.bDeviceClass=USB_DEVICE_CLASS(0),//0表示使用接口描述符
.bDeviceSubClass=0,
.bDeviceProtocol=0,
.bMaxPacketSize0=64,
.idVendor=USB_VID(0x1FC9),//厂商ID
.idProduct=USB_PID(0x0040),//产品ID
.bcdDevice=USB_BCD_VERSION(1,0,0),
.iManufacturer=1,//制造商字符串索引
.iProduct=2,//产品字符串索引
.iSerialNumber=3,//序列号字符串索引
.bNumConfigurations=1//配置数
};
配置端点
USB设备通信通过端点进行。LPC1768支持多个端点,每个端点可以配置为不同的传输类型,如控制传输、批量传输、中断传输等。
配置控制端点:
//配置控制端点
USB_EndPoint_Config(USB_EP0,USB_EP_CTRL,USB_EP_DIR_IN,64);
USB_EndPoint_Config(USB_EP0,USB_EP_CTRL,USB_EP_DIR_OUT,64);
配置批量端点:
//配置批量端点
USB_EndPoint_Config(USB_EP1,USB_EP_BULK,USB_EP_DIR_IN,64);
USB_EndPoint_Config(USB_EP2,USB_EP_BULK,USB_EP_DIR_OUT,64);
配置中断端点:
//配置中断端点
USB_EndPoint_Config(USB_EP3,USB_EP_INT,USB_EP_DIR_IN,8);
USB数据传输
US