USB芯片选型

从 USB 芯片的使用角度来说,USB 系列芯片可以划分为 USB 接口芯片与内置 USB 功能的微控制器。前者对于跨平台和易用性方面比较有优势,无需了解芯片内部工作机制,按照芯片的手册以及官方例程来操作就可以了,而使用平台也比较开放,只要具有可以操作芯片的总线接口就可以了。而后者在使用时,需要了解微控制器的工作原理,寄存器操作说明使用步骤等,需要对芯片本身进行编程,虽然限制了使用条件,但是微控制器上功能比较丰富,可以实现很多其他功能,虽然不像前者那样专用,但是功能却很强大,在具体选型时需要根据自己的项目和应用需求进行选择。

对于 USB 接口芯片,还可以从功能上详细划分为 USB 控制类芯片,USB 转接类芯片,USB 延长类芯片,USB 信号保护等辅助类芯片等。这几类也是在 USB 产品中最为常见的应用,下面就简述下详细的芯片型号以及功能。首先给出一个选型的逻辑框图:

控制类芯片

CH378: 易用高速U盘和SD卡的文件管理芯片,支持FAT32/16/12,SPI/并口/串口控制接口,USB支持高速Host/Device 模式
CH376: 易用U盘和SD卡的文件管理控制芯片,支持FAT32/16/12,SPI/并口/串口控制接口,USB支持主/从模式,MCU资源少
CH375: 通用USB接口芯片,串口/并口控制接口,支持USB Host/Device,动态切换,内置通讯协议固件,提供U盘文件系统库
CH374: 通用USB接口芯片,SPI/并口控制接口,支持USB Host/Device,内置3端口RootHub,及所有类型传输,Hub操作等
CH372: 通用USB接口芯片,并口控制接口,支持USB Device 模式,内置USB通讯固件,支持控制/批量/中断传输
CH370: 通用USB接口芯片,并口/SPI控制接口,支持USB Host 模式,支持所有类型传输,HUB操作,提供U盘文件系统库
CH9343: 全速USB Android HOST芯片,免ROOT的Android接口库,可扩展UART、SPI、I2C、PWM、GPIO等接口

转接类芯片

CH341: USB总线转接芯片,用于USB转串口,打印口,EPP和MEM并口、I2C、SPI、GPIO等,接口丰富,平台驱动齐全
CH340: USB总线转接芯片,用于USB转串口、打印口、IrDA红外等,内置晶振,内置固件,平台驱动齐全,芯片信息可自定义
CH9326: USB HID转串口芯片,内置晶振,使用系统内置HID驱动,可实现PC等平台扩展串口或串口设备升级成USB 口
CH9328: 串口转HID类键盘芯片,实现串口数据转成USB键盘数据上传至PC等平台,可用于串口扫描枪等升级为USB口
CH345: USB转MIDI芯片,支持MIDI输入与输出,用于制作USB MIDI键盘,以及将MIDI乐器转为USB接口等
CH331: 小容量U盘控制芯片,外加SPI存储芯片可实现自定义容量U盘,支持U盘厂商名称、容量、序列号等信息,自定义

延长及辅助类芯片

CH317: USB2.0延长器控制芯片,支持高速/全速/低速,用于USB高速百米延长,支持HUB扩展,纯硬件方案,无需安装驱动
CH315: CH315G为USB1.1延长控制芯片,支持网线最大300米延长距离,CH315H为USB信号隔离控制芯片,支持光隔离
CH9350: USB键盘鼠标通讯控制芯片,将键鼠与PC的USB连接转为UART连接,可与其他信号整合,或实现键鼠远距离延长
CH412: ESD保护芯片,用于USB信号防静电,可以用于USB低速、全速、高速信号保护

以上这些芯片的应用环境和功能可以满足我们大部分的需求了,如果需要自定义 USB 传输数据格式或者整合 USB 与其他功能(如 SPI、IIC、UART、CAN等),那么此时选用内置 USB 功能的微控制器是再合适不过了,如 CH55X 系列芯片,官方在推广时还配套了一些应用较普遍的项目与方案。

 

以上就是USB芯片的选型与分类了,如果有什么疑问或者问题,可以给我邮件或者评论哦~:-D

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403086.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML5 文件域+FileReader 分段读取文件(四)

一、分段读取txt文本 HTML&#xff1a; <div class"container"><div class"panel panel-default"><div class"panel-heading">分段读取文件&#xff1a;</div><div class"panel-body"><input type&q…

CH340安卓驱动使用教程

使用 CH340/CH341 可以很容易在 Android 平台下实现 USB 转串口的功能&#xff0c;由于 CH340/CH341 是 USB 设备&#xff0c;如果使用手机或者平板来操作该芯片的话&#xff0c;就需要满足以下需求&#xff1a; 1. 需要基于 Android 3.1 及以上的系统 2. Android 设备具有 U…

undefined reference to

关于undefined reference这样的问题&#xff0c;大家其实经常会遇到&#xff0c;在此&#xff0c;我以详细地示例给出常见错误的各种原因以及解决方法&#xff0c;希望对初学者有所帮助。 1. 链接时缺失了相关目标文件&#xff08;.o&#xff09; 测试代码如下&#xff1a; 然…

epoll为什么比select和poll效率更高

基于 select 和 poll 方法的程序中&#xff0c;因为大量操作的消耗与当前连接数 n 成线性相关&#xff0c;从而导致单个任务的资源消耗和当前任务的关系是 O(n)。所以随着连接数目增大&#xff0c;积累起来的资源消耗很大&#xff0c;结果就是系统吞吐量和机器性能不匹配。为了…

Android 系统使用USB OTG功能/打开USB Host API功能

步骤一&#xff1a;确定 Android 设备是否支持 USB Host 功能&#xff0c;具体可以通过以下步骤进行确认&#xff1a; 1. 查看手机或平板设备参数&#xff0c;或者直接联系厂家咨询&#xff1b; 2. 使用 UsbHostDiagnostics.APK 安卓应用软件直接进行检测&#xff0c;汉化版软件…

Android开发之Handler

Handler 定义与作用 主要接受子线程发送的数据&#xff0c; 并用此数据配合主线程更新UI。 解释&#xff1a;当应用程序启动时&#xff0c;Android 首先会开启一个主线程&#xff08;也就是UI线程&#xff09;&#xff0c;主线程为管理界面中的UI控件&#xff0c;进行事件分…

Android日志Log使用

Android开发中日志工具的使用是十分重要的&#xff0c;可以帮助我们定位和查找程序执行的问题&#xff0c;了解程序执行过程等。这里以 Eclipse 下的的安卓开发为例进行说明。 打开 LogCat 功能 首先&#xff0c;确保 Eclipse 软件中已经打开了日志工具 LogCat 功能&#xff…

Android项目目录结构

在 Eclipse 中新建或者打开一个 Android 项目&#xff0c;可以看到目录视图如下所示&#xff1a; 其实项目开发中&#xff0c;使用频率较高的并不多&#xff0c;我们只要了解清楚不同类型的文件和不同目录的对应关系就可以了。 1. src src 目录用于存放 Java 代码&#xff0…

Libusb开发教程二 API介绍与使用

背景介绍 上一篇博文主要介绍了 Libusb 在 Linux 系统下的详细安装过程&#xff0c;除了 libusb-1.0.9.tar.bz2 离线包之外&#xff0c;还安装了 libusb-compat-0.1.4.tar.bz2。顾名思义&#xff0c;第二个是先前版本的兼容包&#xff0c;因此在使用过程中&#xff0c;开发者就…

tty,串口,控制台与驱动程序

tty 设备的名称是从过去的电传打字机缩写而来&#xff0c;最初是指链接到 Unix 系统上的物理或者虚拟终端。随着时间的推移&#xff0c;当通过串行口能够建立起终端连接后&#xff0c;这个名字也用来指任何的串口设备。物理 tty 设备的例子有串口、USB 到串口的转换器&#xff…

Linux 串口编程一 一些背景

在大部分讲解 Linux 编程书籍的时候会发现没有单独的串口编程章节&#xff0c;实际上串口编程已经被概括在了“终端”或者“终端IO”章节里面。在上一篇博客中对经常出现的几个容易混淆的概念进行简单描述&#xff1a;tty&#xff0c;串口&#xff0c;控制台与驱动程序。后面会…

Linux 终端概述与分类

该博文已经迁移到其他博客&#xff0c;参见&#xff1a; Linux 终端IO概念与背景介绍

Linux tty驱动程序一 架构

tty 核心概览如下图所示&#xff1a; 可以看到&#xff0c;tty 架构的划分层次&#xff0c;由下至上的逻辑关系为&#xff1a;硬件 -> tty 驱动 -> tty 线路规程&#xff08;也译为行规程&#xff09;-> tty 核心 -> 用户层。 内核负责控制 tty 设备的数据流&…

Linux 串口编程二 深入了解 termios

前言 这一系列串口编程重点在应用层编程&#xff0c;但是在讲解原理与相关概念时需要对驱动框架有个基础的认识。如果只是浅尝辄止&#xff0c;以后在遇到串口驱动与应用层程序调试难免遇到瓶颈。关于 tty驱动架构参见我的其他博客&#xff1a;Linux tty驱动程序架构。有时了解…

Libusb开发教程三 USB设备程序开发

首先&#xff0c;需要指出本篇博客的基础仍然是基于 libusb V1.0 以下。主要考虑到保持与之前博客的连贯性&#xff0c;在上一篇博客中介绍了老版本中可以被调用的 API 以及功能介绍&#xff0c;对于库中 API 接口函数的使用相信读者会一目了然&#xff0c;不需要刻意记忆&…

Linux 串口编程三 使用termios与API进行串口程序开发

在 termios 结构体以及内部终端控制标志中&#xff0c;并非所有的参数对于实际的物理串口都是有效的&#xff0c;在使用过程中也不需要对于所有标志的作用都有所理解。事实上&#xff0c;快速掌握一项技术的核心点也是一种学习能力。对于使用&#xff0c;熟悉并掌握操作框架十分…

Linux 串口编程四 串口设备程序开发

Linux 串口编程和程序相对来说是很简单的&#xff0c;之所以用博客连载来展示&#xff0c;主要是想在学会使用的基础上掌握相关背景&#xff0c;原理以及注意事项。相信在遇到问题的时候&#xff0c;我们就不会对于技术的概念和 API 的使用浅尝辄止了。下面进入具体应用案例&am…

POSIX 串口编程指南

介绍 POSIX 串口编程指南将教会你在你的 UNIX 工作站或者 PC 上面如何成功、有效以及可移植性的对串口编程。每一章提供了使用 POSIX 终端控制函数的编程例程&#xff0c;可以基本不经修改地工作在 IRIX, HP-UX, SunOS, Solaris, Digital UNIX, Linux 以及其他大多数 UNIX 操作…

串口流控

流控作用 这里讲到的“流”&#xff0c;指的是数据流。数据在两个串口之间传输时&#xff0c;当通讯双方速率不匹配时&#xff0c;常常会出现丢失数据的现象。如台式机与单片机之间的通讯&#xff0c;若接收端数据缓冲区已满&#xff0c;继续发送来的数据就会丢失。在早期网络…

电容的分类及作用

旁路 旁路电容是为本地器件提供能量的储能器件&#xff0c;它能使稳压器的输出均匀化&#xff0c;降低负载需求。就像小型可充电电池一样&#xff0c;旁路电容能够被充电&#xff0c;并向器件进行放电。为尽量减少阻抗&#xff0c;旁路电容要尽量靠近负载器件的供电电源管脚和…