第1章 主要硬件芯片介绍
1.1系统总体设计
USB主机系统设计是一个软、硬件结合的整体,宏观上主要包括三个层次的设计:USB总线物理层接口设计、USB核心系统设计和USB客户系统设计。总线接口主要处理主机与设备之间的电气及协议层的互连,是信息包进出的物理桥梁;USB核心系统主要管理和协调主机与从机间的逻辑数据传输,解析双方联系的握手协议,是验证信息包的逻辑关卡;客户系统是最终用户直接和USB设备功能交互的逻辑平台,不同的USB设备归属于不同的类,是利用相关的类协议来实现的,所以客户系统驱动程序具有多变性,需要为专门的类定制专门的驱动程序。
在单片机上实现USB移动存储功能,具体包括USB主机接口的硬件设计和整机USB驱动固件的设计。其中驱动固件的设计具体又包含几个协议的实现:USB1.1控制传输协议、USB BULK传输协议、USB海量存储类协议、UFI磁盘操作命令和FAT文件系统标准等。
1.2硬件设计
1.2.1USB主控制器
USB主控制器主要是完成底层物理接口设计,是USB系统架构的必要部分,是USB数据包进出的必经通道。本系统采用的USB主机芯片是Cypress公司的SL811HS。Cypress公司是最早从事USB芯片开发的公司之一,其EZ-USB系列芯片在业界有非常好的口碑。SL811HS是当经第一个支持USB 主从机的接口芯片,性能稳定,资料全面。
(1)芯片特性
SL811HS是自动兼容USB全速或者低速的嵌入式USB主从机的接口芯片,它支持微处理器、微控制器或者DSP的USB接口设计,同时也可以直接连到ISA、PCMICA等其它总线[8],芯片使用标准的USB1.1协议。SL811HS通过内部集成的全/低速传输引擎产生USB串行接口功能,在全速时带宽为12Mbps,低速时为1.5Mbps。芯片支持8位并行数据端口或者I/O口的设计,同时也支持DMA,自动中断检测连接口,可以非常容易地在MCS-51系列微处理器、摩托罗拉微控制器或者其它控制芯片上完成设计。总的来说具有如下特性:
SL811HS内部电路结构见图1.1
(2)相关寄存器介绍
USB系统驱动的编程,实质上就是对SL811HS的寄存器和一些缓存区的读写,SL811HS内部一共有256个字节的缓存,高端240个字节作为通用内存,可以随意访问,低端16个字节是特殊功能寄存器,USB的一些规范就融合在里面。SL811HS有A、B两套并行的寄存器,功能和使用完全一样,见表1.1。
(3)接口电路
SL811HS既可以作为嵌入式的主机又可以作为设备,灵活性非常大。它可以直接连到处理器或者按内存映射的方式接到ARM处理器上。硬件设计时候主要注意几个关键引脚的处理:
常见8位嵌入式处理器和SL811HS的连接见图1.2。SL811HS读时序见图1.3,写时序见图1.4。
1.2.2 微处理器
本设计的主要目的是在普通单片机下能够使用USB移动存储,同时通过该系统的串口能够完成让外部的嵌入式设备也能使用USB移动存储。主机处理器芯片选用兼容MCS-51指令的AT89C52,并外扩一个32K的RAM。系统的功能设计见图1.5。
AT89C52控制器主要是通过SL811HS对USB移动存储进行操作,外部控制按钮(小键盘)输入不同的值可以实现不同的功能,比如写文件、读文件、建立目录或删除文件等。RS232接口,主要是留给外部系统使用,其它的嵌入式系统只要接上该系统的串口,按照一定的命令格式就可以通过串口使用USB移动存储。根据SL811HS容错报告所知,SL811HS的内部锁相环非常敏感,易受高频噪声干扰,从而导致时钟抖动,进而会使SOF不准确(标准周期为1毫秒)。解决这个问题有两种措施: