FTDI通用转USB芯片简述
FTDI公司的FT2232系列芯片可实现USB与异步串行口RS232/RS485、同步串行总线IIC/SPI/JTAG相互通信,市场占有率,使用普遍。
FTDI芯片有两种类型的驱动:virtual COM port driver (VCP)和D2xx。VCP就是常用的U转串COM驱动,实现USB到虚拟串口功能,应用于异步RS232/RS485与USB间通信,linux设备文件为/dev/ttyUSBx;D2XX应用于同步串行总线IIC/SPI/JTAG与USB间通信,整个驱动框架都有FTDI公司提供。
COM驱动
linux支持FTDI公司的VCP驱动需配置内核:
Device Drivers --->
[*] USB support --->
<M> USB Serial Converter support --->
<M> USB Prolific Single Port Serial Driver
<M> USB FTDI Single Port Serial Driver
Prolific和FTDI是常用的USB转串口芯片厂商。通用模块usbserial.ko,prolific公司的模块pl2303.ko,ftdi公司的模块ftdi_sio.ko
[ 1.771996] usbcore: registered new interface driver usbfs [ 1.777600] usbcore: registered new interface driver hub [ 1.782975] usbcore: registered new device driver usb [ 3.227325] usbcore: registered new interface driver usb-storage [ 3.331190] usbcore: registered new interface driver bcm203x [ 3.336872] usbcore: registered new interface driver bfusb [ 3.342381] usbcore: registered new interface driver btusb [ 3.347893] usbcore: registered new interface driver ath3k [ 3.496381] usbcore: registered new interface driver usbhid [ 3.501958] usbhid: USB HID core driver [ 58.132670] usb -: new full-speed USB device number using xhci-hcd [ 58.314580] usbcore: registered new interface driver usbserial [ 58.316675] usbcore: registered new interface driver pl2303 [ 58.316707] usbserial: USB Serial support registered for pl2303 [ 58.317386] usb -: pl2303 converter now attached to ttyUSB0 [ 289.400405] usb -: USB disconnect, device number
或
[ 1.774779] usbcore: registered new interface driver usbfs [ 1.780377] usbcore: registered new interface driver hub [ 1.785752] usbcore: registered new device driver usb [ 3.230535] usbcore: registered new interface driver usb-storage [ 3.334244] usbcore: registered new interface driver bcm203x [ 3.339930] usbcore: registered new interface driver bfusb [ 3.345439] usbcore: registered new interface driver btusb [ 3.350951] usbcore: registered new interface driver ath3k [ 3.495753] usbcore: registered new interface driver usbhid [ 3.501362] usbhid: USB HID core driver [ 3.643788] usb -: new high-speed USB device number using xhci-hcd [ 7.070296] usbcore: registered new interface driver usbserial [ 7.099899] usbcore: registered new interface driver ftdi_sio [ 7.099925] usbserial: USB Serial support registered for FTDI USB Serial Device [ 7.100046] usb -: Detected FT2232H [ 7.100439] usb -: FTDI USB Serial Device converter now attached to ttyUSB0 [ 7.100539] usb -: Detected FT2232H [ 7.100667] usb -: FTDI USB Serial Device converter now attached to ttyUSB1 [ 86.423288] usb -: USB disconnect, device number
插入USB设备会在/dev/ttyUSBx文件出现,可像操作普通的串口文件/dev/ttySx一样操作,采用通用termios编程。
D2XX驱动
在linux中VCP和D2XX驱动是不兼容的,当D2XX驱动应用前应卸载VCP驱动模块:
sudo rmmod ftdi_sio
sudo rmmod usbserial
实际测试中采用D2XX驱动时系统会自动卸载VCP驱动。
D2XX驱动协议栈如下图,D2XX驱动libftd2xx.tar.gz可在如下页面下载:https://www.ftdichip.com/Drivers/D2XX.htm,或者直接在系统下apt安装(可能需要libusb-dev):
apt install libftdi-dev
在D2XX驱动之上是libmpsse,即MPSSE库。Multi Protocol Synchronous Serial Engine(MPSSE)是一个通用的同步总线如I2C、SPI或JTAG通信库,用于FT2232D、FT2232H、FT4232H和FT232H芯片通过USB与PC或ARM通信。MPSSE基于D2XX设计。


D2XX应用
lora gateway就应用了D2XX驱动,将SPI接口转化为U口与主服务器(X86或ARM)通信,开源库:https://github.com/yuxi-o/RAK833-LoRaGateway-RPi或https://github.com/Lora-net/lora_gateway.git。
参考:
1. https://www.ftdichip.com/Support/Documents/AppNotes.htm
4. FTDI Drivers Installation Guide for Linux
5. User Guide For LibMPSSE-SPI
FTDI通用转USB芯片简述的更多相关文章
- usb芯片调试经验
记录一下调试usb有关的芯片的一些经验. 1.有i2c的芯片.一般有i2c的地址选择. 检查地址选择是否正确,地址是多少.SCL和SDA上面是否有上拉电阻. 芯片的地址是几位的.I2c的时钟频率也是必 ...
- windows xp 连接USB网络打印机服务器(通用所有usb网络打印机服务器的安装)
usb网络打印机服务器是HP1101U 打印机是 hp1108 需要准备的其他东西:1.HP1108的驱动 首先,接好线,保证usb hp1101u能正常访问,这款USB一旦接入了网络,会分配一个ip ...
- CYPRESS USB芯片win10驱动
The ZIP file attached with this knowledge base article contains the CyUSB3.inf and CyUSB3.sys files ...
- USB2.0学习笔记连载(三):通用USB驱动程序解析
对于USB驱动的开发,读者可以使用Windows DDK.DriverStudio等多种开发工具来实现USB的驱动,但是驱动程序的开发过程都比较复杂,而且很容易致使USB主机内存泄露而死机.那么对于笔 ...
- USB Keyboard Recorder
catalogue . 引言 . Device Class Definition for Human Interface Devices (HID) . USB HID Report Descript ...
- USB入门
简述 USB(Universal Serial Bus)全称通用串口总线,USB为解决即插即用需求而诞生,支持热插拔.USB协议版本有USB1.0.USB1.1.USB2.0.USB3.1等,USB2 ...
- USB接口介绍
USB设备系统分为两个部分,USB Host端和USB Device端,以USB接口的U盘为例子,U盘自身是一个USB Device,PC机的USB接口以及相关的控制电路为USB Host部分 ...
- Linux usb子系统(一):子系统架构
一.USB协议基础知识 前序:USB概念概述 USB1.0版本速度1.5Mbps(低速USB) USB1.1版本速度12Mbps(全速USB) USB2.0版本速度480Mbps(高速USB). ...
- USB Mass Storage大容量存储的基本知识
http://www.crifan.com/files/doc/docbook/usb_disk_driver/release/htmls/ch02_msc_basic.html 目录 2.1. US ...
随机推荐
- Android自己定义view之measure、layout、draw三大流程
自己定义view之measure.layout.draw三大流程 一个view要显示出来.须要经过測量.布局和绘制这三个过程,本章就这三个流程具体探讨一下.View的三大流程具体分析起来比較复杂,本文 ...
- JavaWeb下载文件response
以下代码在 chrome.firefox,安卓自带手机浏览器上测试通过,但未经过完全测试,先记录下 public static void downLoadFile(HttpServletRequest ...
- MySQL的启动与停止
如果MySQL数据库是自己安装的,可以用如下方法分别启动和停止MySQL. 1. MySQL服务器的启动 $mysql_dir/bin/mysqld_safe & (其中&am ...
- win10 标注工具LabelImg 安装使用
安装步骤(默认已经安装了Python3.X ): pip 安装PyQt5 进入cmd(Win键 + R键,输入cmd,enter键入),输入: >>pip install PyQt5 如果 ...
- [转]学习笔记_springmvc注解形式的开发参数接收
springmvc基于注解的开发 注解第一个例子 1. 创建web项目 2. 在springmvc的配置文件中指定注解驱动,配置扫描器 <!-- sprimgmvc 注解驱动 --> &l ...
- 利用libsvm-mat建立分类模型model参数解密[zz from faruto]
本帖子主要就是讲解利用libsvm-mat工具箱建立分类(回归模型)后,得到的模型model里面参数的意义都是神马?以及如果通过model得到相应模型的表达式,这里主要以分类问题为例子. 测试数据使用 ...
- javascript 20个正则表达式
正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑.熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升. 正则表达式经常被用于 ...
- Tomcat7环境下面MySQL 56/Oracle数据库连接池的配置
环境: Tomcat7 MySQL56 mysql-connector-java-3.1.10-bin.jar 步骤: 1. 配置context.xml 此文件位于~\tomcat7\conf目录下面 ...
- 【iOS XMPP】使用XMPPFramewok(二):用户登录
转自:http://www.cnblogs.com/dyingbleed/archive/2013/05/10/3069397.html 用户登录 准备工作 比较知名的开源XMPP服务器:一个是Ope ...
- 深入理解Linux内核-I/O体系结构和设备驱动程序
系统总线:1.链接CPU.RAM.I/O设备之间的数据流动.例如:PCI.ISA.EISA.MCA.SCSI.USB2.任何I\O设备有且仅能链接一条总线. I\O端口:1.每个连接到I\O总线上的设 ...