近年来,USB技能已经成为计算机范畴开展最快的技能之一,得到了广泛的使用。早在1998年,由于USB1.1标准的推出以及Windows98加强了对USB的支撑,USB就得到了飞速的开展和遍及,各种USB设备不断涌现。2000年,USB2.0标准推出之后,USB一扆只能适用于中低速设备的局势,在高速传输范畴也占据了许多的市场份额。2001年推出的USB-OTG处理了许多USB设备之间的直接互连问题,因而USB标准将得到愈加敏捷的开展。
依据USB标准,USB体系的拓扑结构呈金字塔状,集线器(HUB)是金字塔中不可或缺的部件,是主机与设备之间树立衔接的桥梁。依据USB2.0标准,全速USB HUB能够衔接低速、全速和高速下行设备(高速设备降为全速运转)。
本文提出一款依据6502 MCU的通用的带HUB的全速USB设备操控器的体系结构,并完结整个芯片的规划。这款芯片能够用来开发带HUB的全速USB设备、全速USB设备和全速USB HUB。
1 体系规划
常见的USB设备操控器的功用结构框图图1所示。收发器用于完结牧师层的USB标准,它包含一个接纳器和一个发送器,接纳器用于接纳和判定总线D+、D-的信号,发送器用于驱动D+、D-的信号。串行接口引擎(SIE)首要用于解析协议层的USB标准,如时钟提取、NRZI编码/解码、比特填充/抽取、CRC校验、PID检测/发生、串并/并串转化等。功用操控器首要用于处理功用层的USB标准。缓冲区是功用操控器与SIE相互通讯的桥梁,一般SIE把总线上接纳到的数据存放在缓冲区中,供功用操控器读取并解析;一起,功用操控器又会把需求发送的数据存放在缓冲区中,供SIE读取并发送。
集成HUB的USB设备操控器又称为复合设备操控器,它在本质上是两个USB设备,在体系中具有两个不同的设备地址。由于USB是分时复用的串行总线,在正常情况下,任何时分主机都只能与体系中的某一个设备进行通讯,所以复合设备操控器也能够把设备操控器和HUB操控器的许多部件合二为一,分时复用。
本文提出的集成HUB的全速USB设备操控器的规划方案如图2所示。该操控器支撑一个上行端口和四个下行端口,并完结了USB键盘的功用。SIE首要担任物理层和协议层的协议解析,MCU首要担任设备层的协议解析,缓冲区是SIE和MCU之间通讯的桥梁,SIE把接纳到的数据包存放在缓冲区中供MCU读取,MCU把需求发送的数据存放在缓冲区中供SIE读取。数据转发功用首要由HUB转发器完结。
2 SIE规划
在USB HUB内部需求有一个全速SIE用来处理USB标准第八章规则的大部分协议,它的首要功用包含:
·包的辨认与安排;
·时钟与数据别离;
·NRZI编码和解码;
·比特填充和提取;
·CRC校验码的辨认和发生;
·地址检测;
·PID检测和发生;
·串/并转化和并/串转化。
在规划SIE的时分,依据它的功用又将其分红几个不同的模块,如图3所示。PHY模块首要完结数据的串/并转化和并/串转化、比特填充和提取、NRZI编码和解码、时钟与数据的别离等功用,此模块内部数据首要以串行状况存在。PL模块担任数据包的解析与安排、PID检测和发生、CRC检验码的辨认和发生、地址检测等功用。FUNCTION模块完结SIE与MCU的接口逻辑功用。
3 转发器规划
转发器是HUB完结数据转发功用的中心模块。转发器完结的功用首要有:数据转发、帧同步、挂起唤醒处理、总线抵触检测与处理、往低速下行端口发送Keep-alive等。
在规划转发器的时分,依据数据的流向对转发器进行了进一步的模块细分,如图4所示。hub_up模块担任接纳来自上行端口的信号,并检测出SOP和EOP;一起转发来自内部端口和下行端口的信号。hub_up模块包含四个子模块,支撑四个下行端口,担任接纳来自下行端口的信号,并检测出SOP和EOP;一起往下行设备转发合法的下行数据。rpt_engine模块中有一个重要的衔接状况机,其状况转化如图5所示,它以数据包为单位操控上行端口和下行端口之间的衔接的树立和撤除,一起操控集线器正确地挂起和唤醒。
图6、7
在图5所示的衔接状况机中,状况跳转首要经过SOP(包开端)和EOP(包完毕)信号完结,所以SOP和EOP信号直接影响状况机的正确跳转,然后影响了转发器的安稳性。检测SOP信号时要考虑两个重要的要素:首要,SOP信号要发生得尽或许快,然后能够较快地翻开数据通道,减小数据流驶 SYNC的丢失;其次,检测与本地时钟异步的数据流而发生的SOP信号要与本地时钟同步,不然会使寄存器树立时刻和坚持时刻得不到满意。检测EOP信号时也要考虑两个要素:首要,要扫除长度不行的SEO的搅扰和SEO状况向J状况跳变的颤动搅扰;其次,EOP信号也要与本地时钟时步。
全速HUB的上行端口始终是一个全速衔接,可是它的下行端口或许是全速衔接也或许是低速衔接。低速数据经过上行端口时,尽管它的速率是低速的,可是它的极性却是全速的。全速数据的极性与低速数据的极性是相反的,所以转发低速数据时需求先对数据的极性进行转化。HUB在转发数据的时分需求遵从以下准则:来自上行端口的低速数据播送给一切处于答应状况的下行设备(包含全速设备和低速设备);来自上行端口的全速数据转发给一切处于答应状况的全速下行设备。
4 固件规划
本文提出的USB设备操控器是一个软硬件结合的体系,即整个体系由MCU、SIE、转发器等硬件和运转于MCU中的固件组成。
体系的规划准则是:但凡固件能够完结的使命尽量由固件来完结,硬件的首要作业是对协议层的解析,解析完之后会设置某些操控寄存器,有时会发生中止,固件经过查询这些寄存器履行相应的操作。
为了验证整个体系,经过编写固件完结集成HUB的USB键盘的功用。
5 关于异步信号的处理
USB归于异步总线,本地时钟和主机时钟是由两个不同的晶振发生的,所以SIE有必要选用恰当的办法完结位同步。一个典型的位同步办法便是选用一种特定结构的数字锁相环[1]。其原理是:分别用本地48MHz时钟的正负沿采样接纳到的12MHz的位接纳时钟(它的有用沿坐落12MHz数据流每个比特位的中心),然后用新发生的时钟去采样12MHz的数据流然后完结位同步。
整个体系中选用的是异步复位。异步复位的优点是能够确保体系在初始状况时处于已知的状况,关于有三态总线的体系来说,这是非常重要的[2]。异步复位的处理非常重要,关系到体系的安稳性。关于异步复位信号来说,重要的不是什么时分复位而是什么时分复位完毕,异步复位有两个要害的参数康复时刻和搬迁时刻,如图6所示[3]。假如以上两个参数不满意,就会发生亚稳态[4]。为了处理这个问题,规划了如图7所示复位电路。
在该电路中,复位的发生是不受时钟操控的,但复位完毕是受时钟操控的。之所以要用两个极联的触发器,是为了防止榜首级触发器有或许发生的亚稳态传给整个芯片的复位信号reset。在这个电路中不存在康复时刻的问题,由于复位完毕肯定在时钟沿的后边。搬迁时刻的问题,由于复位完毕肯定在时钟沿的后边。搬迁时刻的问题也能够处理,只需Tclk_q(clock to Q)+Tpd(复位信号的传输延时)>Trem(触发器的搬迁时刻)即可。关于上电复位来说还要进行进一步的处理,要确保复位时刻满意长,由于电源安稳需求必定的时刻。
6 设备的低功耗规划
关于USB设备来说,当总线上超越3ms没有总线活动时,设备就要主动进入休眠状况,此刻从总线上取得的电流不能超越500μA[5]。为了满意此要求,规划了如图8所示的设备唤醒和休眠电路。
图10
当设备需求休眠时,给出一个sleep信号操控晶体振动器(OSC)中止振动,整个设备进入节电形式。关于CMOS电路来说,时钟中止振动今后所耗费的功率极小,当有总线活动时,收发器会发生总线活动标志信号wakeup,wakeup信号首要操控振动器重新开端振动,然后和clkDelay信号一块操控设备的时钟(Clock),晶振安稳后则输出时钟信号。复位时不对时钟信号进行操控。
7 FPGA完结和体系验证
体系进行完结和验证时,串行接口引擎和转发器选用Verilog进行RTL描绘,然后选用Xilinx公司的XC2S200PQ208 FPGA完结。缓冲区和RAM由FPGA内部集成的RAM完结,收发器选用Philips公司的PDIUSBP11A,MCU选用M%&&&&&%ETEK公司的65C02仿真器。
整个体系经验证后,作业正常,内置键盘能够正常作业,在下行端口刺进低速USB设备和全速USB设备都能够作业。图9是用立肯科技公司的USBMobile测验仪对FPGA体系进行测验的成果的一部分。