FT2232HL:UART到USB转换器的数据手册

需积分: 15 1 下载量 197 浏览量 更新于2024-07-23 1 收藏 1.56MB PDF 举报
"FT2232HL是一款由Future Technology Devices International Limited(FTDI)公司生产的USB到UART/FIFO接口芯片,常用于实现串口到USB的转换。该芯片支持多种配置,可作为行业标准的串行或并行接口。FT2232HL具有高速USB2.0(480Mbps)和全速USB(12Mbps)兼容性,并且在单芯片上处理完整的USB协议,无需特定的USB固件编程。此外,它还内置了双通道多协议同步串行引擎(MPSSE),简化了同步串行协议的设计,如USB到JTAG、I2C、SPI或bit-bang等。该芯片提供两个独立的UART或FIFO或MPSSE端口,每个端口都有独立的波特率发生器,支持高达12Mbps的RS232/RS422/RS485 UART数据传输速率(RS232速率受限于外部电平)。" FT2232HL芯片是FTDI公司的第五代USB设备,其主要功能是将串行通信(UART)或并行接口转换为USB接口,使得传统串行设备能够通过USB接口与现代计算机进行通信。这个芯片的一大优点在于其高度的灵活性,可以配置为各种行业标准的接口,适应不同应用的需求。 芯片内置的USB2.0 High Speed接口支持最高480Mbps的数据传输速度,同时向下兼容USB Full Speed(12Mbps)模式,确保了与广泛使用的USB设备的兼容性。FT2232HL的单芯片解决方案意味着它能处理整个USB协议栈,这减轻了设计者的负担,因为不需要编写特定的USB固件程序。 FT2232HL的独特之处在于其集成的MPSSE功能。MPSSE是Multi-Protocol Synchronous Serial Engine的缩写,可以方便地实现与各种同步串行协议(如JTAG、I2C、SPI)的连接,甚至支持自定义的bit-bang模式,极大地简化了设计复杂度,适用于多种嵌入式系统和测试环境。 此外,FT2232HL提供了两个独立的UART或FIFO端口,每个端口都拥有独立的波特率发生器,这意味着用户可以独立设置两个端口的通信速率,以适应不同的设备和应用。对于RS232通信,FT2232HL支持高达12Mbps的数据传输速率,虽然实际RS232的速率受到外部电路电平的影响。 FT2232HL芯片是一个功能强大的USB到UART/FIFO转换器,适用于需要高速、灵活、多协议串行通信的场合,如嵌入式开发、设备调试、工业自动化等领域。其易于配置和丰富的功能使得它成为许多系统设计者首选的接口解决方案。
2018-03-02 上传
STM32F103C8 Serial(UART) to USB HID Keyboard Mouse 串口 转 USB键盘鼠标 (1) 使用Composite Device 组合(复合)设备 (1.1) 1个Device -> 1个 Configuation -> 2个Interfance (Keyboard & Mouse) (1.2) Keyboard Interfance -> HID (boot mode) -> 2个Endpoint(IN_0x81 & OUT_0x01) -> KeyboardReportDescriptor(不使用Report ID) (1.3) Mouse Interfance -> HID (boot mode) -> 1个Endpoint(IN_0x82) -> MouseReportDescriptor(不使用Report ID) (1.4) 使用HID boot模式, 不使用Report ID, 以便兼容在 计算器设定BIOS模式 中的操作 (2) 串口接收 命令 (2.1) UART协议: 115200, n, 8, 1 (2.2) 1帧发送字符串格式, 以 '{'开始; '}'结束; ','分隔. 共9个10进制数字 例如: {1,2,3,4,5,6,7,8,9} (2.3) 第9位 区分 Keyboard(64) 或是 Mouse(128) 命令 例如: {0,0,0,0,0,0,0,0,64} --- 发送Keyboard命令 {0,0,0,0,0,0,0,0,128} --- 发送Keyboard命令 (3) 发送Keyboard键盘命令时 : 第1~8位 分别如下 (3.1) 第1位 : Key_Release = 0x00, Left_Control = 0x01, Left_Shift = 0x02, Left_Alt = 0x04, Left_GUI = 0x08, Right_Control = 0x10, Right_Shift = 0x20, Right_Alt = 0x40, Right_GUI = 0x80, 例如: {8,0,0,0,0,0,0,0,64} --- 发送 Win_Key键 {128,0,0,0,0,0,0,0,64} --- 发送 WinApp_Key键 {32,0,0,0,0,0,0,0,64} --- 发送 右Shift键 (3.2) 第2位 : 保留,不使用,一律填0 (3.3) 第3~8位 : 可以同时发送6个Keyboard按键 例如: {0,0,4,5,6,7,8,9,64} --- 发送 'abcdef'键 {2,0,4,5,6,7,8,9,64} --- 按住 左Shift 发送 'abcdef'键 => 'ABCDEF' {0,0,0,5,0,7,0,9,64} --- 发送 'bdf'键 (0表示 无按键) 按键码 可参阅: (HID Usage ID) http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/translate.pdf https://www.hiemalis.org/~keiji/PC/scancode-translate.pdf https://gist.github.com/MightyPork/6da26e382a7ad91b5496ee55fdc73db2 http://www.usb.org/developers/hidpage/Hut1_12v2.pdf (4) 发送Mouse鼠标命令时 : 第1~8位 分别如下 (4.1) 第1位 : Button_Release = 0x00, Left_Button = 0x01, Right_Button = 0x02, Mid_Button = 0x04, 例如: {1,0,0,0,0,0,0,0,128} --- 点击 左键 {2,0,0,0,0,0,0,0,128} --- 点击 右键 {4,0,0,0,0,0,0,0,128} --- 点击 中键 (4.2) 第2~4位 : 移动(X,Y), 滚轮(Wheel) X: -127~127:左右移动鼠标 Y: -127~127:上下移动鼠标 Wheel: -127~127:上下转动滚轮 例如: {0,20,-10,0,0,0,0,0,128} --- 鼠标 右移20,上移10 {0,0,0,-30,0,0,0,0,128} --- 滚轮-30 (4.2) 第5~8位 : 保留,不使用,一律填0