基于SPI芯片MAX3420的USB控制器接口设计

发布者:忠正最新更新时间:2010-06-18 来源: 单片机及嵌入式系统应用关键字:MAX3420  SPI  USB 手机看文章 扫描二维码
随时随地手机看文章
    目前,USB接口的使用越来越广泛,许多设备上都提供了USB接口。传统的USB控制器需要使用包括数据线和控制线在内的十多根线,占用了大量的CPU资源。而现代设备正在向体积小、功能强的方向发展,CPU更是要求表贴封装,功耗低,其自身资源非常有限,所以在扩展接口方面必须要尽可能少地占用已有芯片资源。本文介绍了如何使用MAX3420进行USB接口扩展。MAX3420提供了SPI接口,只需3~4根线便可实现USB接口。

1 MAX3420简介

    MAX3420是Maxim公司推出的一款全速USB外设,包括必要的数字逻辑和模拟电路,支持USB2.O协议。MAX3420内建全速收发器,支持±15kV的ESD保护,可以编程控制USB总线的连接和断开;内含的串行接口引擎可以控制底层的USB协议细节,如错误校验和总线重连接。MAX3420通过SPI接口操作其内部寄存器,工作频率为26 MHz,任何支持SPI主模式的CPU只使用3~4根线便可增加USB功能。

2 MAX3420的外围电路

    作为一款全速USB外设,MAX3420的外围电路并不复杂,如图1所示,图中采用USB自身供电方式,右上角的3.3V稳压器表示产生3.3 V电压、为CPU供电的电压转换芯片,常用的有AS2830、LMlll7等。与CPU连接的引脚共有6个,其名称和功能如表l所列。其中,USB配置必需的引脚是SCLK、SS和MISO三个。芯片的供电电压为0~4 V,可以采用3.3 V供电;采用12 MHz晶振,内部锁相环进行4倍频;还提供了4个通用输出口和4个通用输入口,便于CPU的I/O口扩展。

    带有SPI接口的CPU,与MAX3420的接口十分方便;如果不带SPI接口,则也可用I/O口来实现SPI的功能。图2为CPU与MAX3420的接口原理图。

3 MAX3420的工作方式

    MAX3420的SPI接口可工作于以下两种工作方式:全双工方式(MOSI输入/MISO输出)和半双工方式(MOSI输入/输出)。

3.1 全双工方式

    全双工方式下的读操作:

    ①SS为高,MAX3420未选中,MISO为高阻态。
    ②当SCLK为静止态时,SS了,低,MAX3420选中;打开MISO输出缓冲,将要发送数据的最高位送到MISO输出。
    ③SPI主方式下,首先的8个时钟脉冲将命令由MOSI发送;MISO在SCLK上升沿输出USB状态位。
    ④8个时钟脉冲以后,SS为高,MAX3420停止工作,MISO输出高阻态。在SCLK下降沿,下一个输出数据的最高位在MISO顺序输出。

    全双工方式下的写操作:

    ①SPI主方式下设置时钟为静止态,SS为高。
    ②SS为低,将要写的数据的最高位放到MOSI输入。
    ③SPI主方式下.首先的8个时钟脉冲将命令由MOSI发送;MISO在SCLK上升沿输出USB状态位。
    ④8个时钟脉冲以后,SS为高,MAX3420停止工作。

    全双工方式下的读/写时序图如图3所示。

3.2 半双工方式

    半双工方式下MISO为高阻态,MOSI为双向。由于只有一根线,因此半双工方式下USB状态位不再有效。半双工方式下的读/写操作:

    ①SS为高,MAX3420未选中,MOSI可以为任意值。
    ②当SCLK为静止态时,SS为低,MAX3420选中;将要写的数据的最高位送到MOSI输入。
    ③SPI主控制器打开输出驱动,首先的8个时钟脉冲将命令在SCLK上升沿由MOSI发送;8个时钟脉冲后,SS为高。
    ④如果要写SPI数据,则SPI主控制器保持打开输出驱动,在SCLK脉冲下,顺序将数据位送到MOSI引脚;如果要读SPI数据,则在8个时钟脉冲后,SPI主控制器关闭输出驱动,开始从MOSI按时钟脉冲读入数据。
    ⑤SS为高.MAX3420停止工作。

    半双工方式下的读/写时序图如图4所示。

4 USB程序流程

    MAX3420共有4个端点,即EP0~EP3。其中:EP0为64字节的双向控制端点;EPl为2×64个字节的双缓冲、批处理/中断输出端点;EP2为2×64个字节的双缓冲、批处理/中断输入端点;EP3为64字节的批处理/中断输入端点。EPO主要用于枚举过程中发送命令,EP1和EP2主要用于完成大批量数据的收发。如图5所示,USB2.0协议由硬件接入层、中间层及上层应用3部分构成。其中:硬件接入层是与CPU紧密联系的,其他两层是与硬件无关的。硬件接入层主要实现了两个函数outport()和inport()。这两个函数是整个USB协议在硬件上运行的基础,只要在硬件接入层针对不同的CPU和MAX3420实现了这两个函数,便可以保证USB接口的正常工作。

    本文以PICl8F2520和MAX3420为例,在全双工方式下说明以上两个函数的示意性代码。
    void outport(unsigned char port,unsigned char value){
    使能CPU的SPI模式;

    设置CUP的SPI为主共和方式,MAX3420的SPI为从工作方式;

   

    使能CPU的SPI模式;

    设置CPU的SPI为主工作方式,MAX3420的SPI为从工作方式;

   

    USB2.0协议规定USB接口工作于被动工作方式,协议中间层主要包括总线重连接、EP0收发和中断处理等几部分,其工作流程如图6所示。协议上层应用程序由程序员按照规范根据具体需要编写。

5 总 结

    将MAX3420用于汽车车载故障诊断仪的USB接口设计,实际传输速率可达20 Mbps左右,完全可以满足对汽车总线上传输数据的实时采集要求;总共占用CPU的6个引脚,用于与MAX3420的控制、数据接口,实际使用效果良好。

关键字:MAX3420  SPI  USB 引用地址:基于SPI芯片MAX3420的USB控制器接口设计

上一篇:瑞萨电子加速USB 3.0布局,力推定制化SoC
下一篇:用CP2200实现MCU的简易型以太网接口

推荐阅读最新更新时间:2024-05-02 21:04

深度解析让人又爱又恨的USB Type-C接口
今天撞胆来谈谈USB。为啥说USB Type-C呢?因为近日风口浪尖的USB Type-C连爆隐患。最近新款MacBook曝出了充电线充电隐患,可能导致笔记本无法充电,苹果不得不发出声明为用户更换全新的USB-C充电线;无独有偶,2015年底谷歌工程师发现一款热卖的Type-C数据线会彻底损坏Chromebook……     理工男基地   不过话说回来USB联盟本来就是一个些许混乱的联盟组织,具体怎么混乱呢,听撞胆娓娓道来。但是,本人并不想唱衰USB,毕竟它还是个好东西,并且在电子设备的历史长河中(其实不过几十年)为数据接口统一做出了历史性的贡献。    
[嵌入式]
嵌入式家庭网关中SPI接口的软件模拟
摘要:介绍嵌入式家庭网关的基本框架和信息流程,及其CPU S3C4510B的体系结构和内部资源;说明在所选用uClinux操作系统下,添加SPI接口驱动程序的详细过程。 关键词:家庭网关 S3C4510B uClinux SPI 软件模拟 引言 随着信息社会的发展,网络和信息家电越来越地出现在人们的生活中。人们普通要求将家庭内的所有家用电器与Internet连接起来,实现主人在远方用计算机或电话通过Internet对象家庭电设施进行监控。家用电器制造商可以通过网络对其生产的设备进行售后跟踪服务;家用电器是故障时能自动按预设的邮件地址来发送电子邮件进行报警。这就需要有一个“家庭网络中央控制器”。它对外与Internet连接,对
[应用]
Littelfuse推出针对USB Type-C接头的setP温度指示器
中国,北京,2018年10月19日讯-Littelfuse公司,今日宣布推出了PolySwitch??setP?系列温度指示器。该产品可保护USB Type-C和USB供电充电线的用户避免过热危害。 Littelfuse在印度电子元器件及生产设备展的4厅ED45展位上公布了这一消息。该电子元件、系统和应用国际贸易博览会于2018年9月26–28日在印度班加罗尔的班加罗尔国际展览中心(BIEC)举行。 PolySwitch setP温度指示器 如果粉尘、尘土或其他污垢卡在USB Type-C电缆连接器内,会在电源线到地面间形成电阻故障,从而在电流未增加的情况下造成温度上升的风险。 独立于电源的setP会感应到温度升高,
[电源管理]
Littelfuse推出针对<font color='red'>USB</font> Type-C接头的setP温度指示器
STM32单片机/SPI通信
SPI 接口主要应用在 EEPROM, FLASH,实时时钟, AD 转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,这四根引脚分别是: SS(Slave Select)从设备片选信号,由主设备控制。 SCK(Serial Clock)时钟信号,由主设备产生。 MISO(Master Output,Slave Input) 主设备数据输入,从设备数据输出。 MOSI(Master Input,Slave Output) 主设备数据输出,从设备数据输入。 硬件连线如上图,从设备的SCK,MOSI,MISO线均并联到主机MCU上,但片选信号线要直接
[单片机]
串行显示驱动器PS7219及单片机的SPI接口设计
   0 引 言   在单片机的应用系统中,为了便于人们观察和监视单片机的运行情况,常常需要用显示器显示运行的中间结果及状态等等。因此显示器往往是单片机系统必不可少的外部设备之一。常用的显示器有很多种,其中LED(发光二极管显示器)是应用较多的一种,它特别适用于强光和光线极弱的场合。   要使LED显示,必须提供段选码和位选码。传统的硬件译码显示接口广泛采用由中央处理器CPU(如:Intel 8031)扩展I/O口(如:8255),然后再使用逻辑门驱动芯片(如7407等)驱动相应的位码和段码。这种设计,芯片间连线十分复杂,系统工作可靠性不高,已越来越不适应单片机系统集成化、小型化的发展要求。特别是系统并行扩展I/O,其缺点十分明
[单片机]
串行显示驱动器PS7219及单片机的<font color='red'>SPI</font>接口设计
I2C接口与SPI和UART接口的区别
一、SPI I2C UART通信速率比较: SPI I2C UART 1、同步通信 异步通信; 2、同步通信时必须有一根时钟线连接传输的两端; 3、都是串行通信方式,并行通信用于内部存储间的通信,如flash; 4、适合传输的距离和通信速率成反比关系; 3-SPI:两条合一的数据线、1时钟线、1CS(设备片选线) SPI:2数据线、1时钟线、1CS(设备片选线)/串行 同步 通信全双工 I2C:1数据线、1时钟线/串行 同步 通信半双工 传输距离比UART短 UART:2数据线、 1地线/串行 异步 通信全双工 传输距离比I2C长些 (I2C接口是“器件间”接口,是在一块板子之内传输数据) (UART是 “
[单片机]
S3C2440 USB 设备控制器
s3c2440 soc集成了一个usb1.1设备控制器,可以进行全速/低速的控制,中断与批量传输。除了端点0,具有四个端点,每个端点都可以作为中断与批量的端点,每个端点具有128 byte的FIFO,所以端点最大packet可以设置成128byte。并且支持DMA传输。任何一种设备控制器对于软件来说都是一组寄存器:数据,状态,控制。usb 设备控制器也不例外。设置好相应的控制寄存器,并且在数据来时读取数据寄存器,需要发送数据的时候将数据写入输出寄存器。而这种数据的通信建立在对状态寄存器的读取上,往往还会有中断与DMA的操作。s3c2440 usb设备控制器的寄存器分为以下几组: (1):电源管理寄存器 PWR_REG
[单片机]
基于OHCI协议的S3C2440 USB Host Driver之协议介绍(四)
HCCA HCCA是256字节的内存结构,系统软件用来与HC发送或接受特殊控制和状态信息。256字节对齐。HC寄存器中的HcHCCA指向HCCA。 HccaInterruptTable为32个周期表的头指针数组。每帧HC仅访问该表一次。当前帧号的低5位用来索引。 HccaFramNumber HC每帧会更新该16位的值。在新帧,HC发SOF后,HC读一个ED开始处理之前,该值写为HcFmNumber的StartingFrame域。在SOF和更新该值之间,HC不在USB上传输任何数据。 HccaDoneHead周期性地,HC将HcDoneHead的值写到HccaDoneHead中,那么主机软件就可以处理完成的TD了。
[单片机]
基于OHCI协议的S3C2440 <font color='red'>USB</font> Host Driver之协议介绍(四)
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved