USB接口类单片机特点及应用
USB接口已经在无线接入设备、电子商务、安全钥匙、PDA及计算机便携式外设上有了广泛的应用。
MC9S12UF32 单片机
MC9S12UF32是16位单片机中低价位、高性能HC/S12家族中的一员。由S12内核(Star Core CPU),加其它标准的片上模块组成,包括32K字节FLASH EEPROM,3.5K字节RAM,1.5K队列QRAM,高速USB2.0(480Mb/s)接口,给USB批量数据传输使用的集成队列控制器(IQUE),ATA5接口(PCI总线接口),U盘类FLASH接口(Compact FLASH),SD/MMC接口,智能多媒体接口,**棒接口,一个16位8通道定时器,串行通讯接口,73个独立的数字I/O通道和2个输入通道。系统集成模块(SIM)负责管理系统资源的映射、时钟产生、中断控制和总线接口。MC9S12UF32系统总线为16位宽。外部总线可以在8位窄模式下工作,这使得在低成本系统中可以使用单个8位宽存储器。特别地,IQUE模块控制了一条专门的内部总线,这条总线使得从存储接口到USB模块可以保持每秒60M字节的传输率。
可以说这款单片机是专门为高速USB存储设备接口设计的。使用这款芯片的主要模块是集成队列控制器(IQUE)、USB2.0接口和众多存储控制器接口(如ATA5)中的一个或多个。CPU本身起到了对系统的配置和控制作用,真正的数据传输通过IQUE作为中介完成,不需要CPU的干预,这是利用这款芯片进行产品设计时的思路。
集成队列模块IQUE由三个主要部分组成:QUE控制器、QUE集成模块(QIM)和1.5K字节,宽度可定义为16位的静态队列RAM(QRAM)。QUE控制器有四个通道,它们可以在单个IQUE时钟周期内移动一个字节或者一个16位字。QIM内部的复用和控制逻辑允许QRAM在QUE控制器和CPU之间共享。模块有三个总线接口:外设(IP)总线接口,IP 先进先出缓冲接口(FIFO)和S12的CPU接口(EEPROM总线)。
集成队列模块IQUE可以在不需CPU干预的情况下进行自动数据块传输,并且由于队列数据传输发生在CPU不使用QRAM的时间段内,因此不需要借用CPU总线周期。一个快速通道专门供高数据速率的外围设备使用。即使CPU在使用QRAM,该通道也能保证数据传输的带宽。不同于DMA控制器,IQUE是专门面向高速数据传输的单片机设计的,传输队列的一端是单片机内的外围设备,另一端是QRAM。这种设计大大减少了地址指针,计数器和其它控制逻辑的数目,降低了系统设计的复杂程度。
在数据队列的自动传输过程中,数据以FIFO的方式写入或传出QRAM。CPU可以通过对QUE控制器寄存器的操作实现对QRAM的写入或者读出,这些寄存器作为FIFO数据端口工作。特别地,CPU可以用普通的读或写方式对QRAM进行随机访问。当从FIFO数据端口访问QRAM中的信息时,指针会自动更新,此时QRAM缓冲区以环形或线性FIFO方式工作。FIFO的起始指针和末尾指针也可以直接修改。
QUE控制器中的四个队列通道可以以接收队列或者发送队列方式工作。转移方式只是把一个接收通道和发送通道联系到同一块QRAM FIFO缓冲区上,这样数据就可以在没有CPU的干预下自动从一个外设传送到另一个外设。当某一个队列通道关闭时,与该通道相联系的FIFO缓冲区可以作为软件缓冲区使用。
USB2.0模块依靠片上USB设备控制器(UDC20)和USB物理层接口(UPHY),支持USB全速和高速协议。USB2.0模块的示意框图如图1所示。
UDC20模块通过IP总线处在S12内核的编程控制中。有6个独立的端点,它们可以配置为控制、中断、批量或者同步传输的IN/OUT端点。两个64字节的端点缓冲区分配给了物理端点1,该端点默认为控制端点。另外三个64字节缓冲区分配给了物理端点2,3和6。
对于物理端点4和5,端点缓冲区位于模块之外。端点数据通过IP FIFO总线保存在上述的IQUE模块中,这种结构使得实现片内其它模块与USB2.0模块之间持续的数据传输变得很容易。 配合上述的IQUE模块和USB2.0模块,再加上存储设备接口,如ATA5主机控制器,就可以实现从USB接口到存储器接口的高速数据通道,例如实现USB2.0移动硬盘盒控制等。其中IQUE模块起到了桥梁的作用。
MC9S12UF32单片机有100和64两种封装形式,采用4.25V~5.5V供电,经片内电压调整器产生2.5V供给CPU,3.3V供片内I/O模块使用。
图1 USB2.0模块方块图
图2 MC68HC908JB8的USB模块结构
MC68HC908JB8/16单片机
MC68HC908JB8/16是8位单片机MC68HC08家族中一款低价位、高性能的单片机,其主要特点是内嵌了低速USB模块,支持1.5Mbps的传输速率。MC68HC 908JB16与MC68HC908JB8功能基本相同,主要区别在于最高总线频率、RAM和FLASH空间大小等。MC68HC908JB8单片机内部包含了许多功能模块,这里只介绍其USB模块的相关功能特性。
USB模块管理USB主机与MC68HC908JB8之间的数据通信。其结构如图2所示。
可以看出,其USB模块由3部分组成,即USB控制逻辑、USB收发器和USB寄存器。各部分的功能特性如下:
USB收发器(USB Transceiver),支持USB的低速(Low Speed)模式,因此简称为LS收发器。它提供了USB的D+和D-信号线的物理接口,由输出驱动电路和输入接收器2部分组成。这部分就是实现USB物理层的特性,包括USB电气特性,如差模信号的实现。LS收发器像一个打包了的黑匣子一样,与控制逻辑一端交换的是串行信号,而与USB总线通讯的则是USB差模信号。
USB控制逻辑(USB Control Logic),是整个USB模块的核心,负责管理CPU和USB收发器之间的数据交换。USB寄存器(USB Register),包括中断寄存器、控制寄存器、状态寄存器和数据寄存器。它是用户编程、控制USB以及进行数据交换的最直接的载体。合理、有效地利用寄存器是编写好应用程序的关键。
USB键盘之类低速USB-HID设备是MC68HC908JB8芯片很适合的应用,键盘扫描电路与单片机I/O引脚相连,按键信息通过键盘行列扫描进入单片机,再通过USB接口被主机获取。同时,按键状态可以通过单片机其余的I/O引脚用LED显示,这样就可以很方便的实现USB键盘设计。
68HC908JB8/JB16单片机有20、28、32、44引脚的封装形式,68HC908JB8有256字节的RAM,8K字节片内FLASH,除传统的定时器、键盘中断、串行口、13路A/D等I/O设备外,还集成了通讯速率为1.5Mbps的低速USB模块。HC908JB16为384字节的片内RAM,16K字节的FLASH。
|