一种usb读卡控制器的制作方法

文档序号:6444823阅读:134来源:国知局
专利名称:一种usb读卡控制器的制作方法
技术领域
本发明涉及一种USB读卡控制器。
背景技术
目前,USB读卡器正得到广泛应用,其控制芯片实现USB主机和各存储卡之间传输数据的功能。USB读卡控制芯片的常见结构是以片上微控制器MCU(Micrc) Control Unit) 为核心,MCU执行固件程序来控制片上的其他部件。如图1所示,USB设备接口负责和USB 主机之间收发数据,实现USB协议要求的主要功能。卡接口则实现存储卡的协议规定的功能和存储卡之间交换数据。片上MCU则控制这些接口,完成数据的传送过程。USB设备接口如图2所示。串行接口引擎SIE(Serial Interface Engine)实现USB 协议要求的主要功能,如同步字段的识别、数据位填充、地址识别、数据包标识符识别、CRC 校验、硬件握手等功能。USB收发器进行数据的差分转换。接收数据时,数据先存放在数据包缓冲区中,SIE对该数据进行分析处理,解包,去包头包尾,检查CRC,识别包类型、地址等信息,把与不同功能模块相关的数据送到功能模块数据缓冲区中;同时SIE给相关的功能模块发送控制命令,通知其在自己的数据缓冲区中取出数据并执行相应的操作。发送数据时,SIE对各功能模块要求发送的数据进行打包,产生CRC校验码和包头,再通过UTMI总线送到收发器发送出去。卡接口控制模块要能够识别连接的存储卡类型,采用相应的数据格式来收发数据,对其读写并校验数据,并通知MCU处理异常和错误。当USB主机尝试通过发送命令启动一个数据传输时,一个批传输过程就开始了。 读卡芯片作为一个USB设备,接收到这个USB命令后,对该封包进行检查、译码,根据解析出的命令类型及其参数,对存储卡进行读写,读写操作正常完成或出错退出后,然后通过数据包给USB主机返回该命令执行的状态。通常片上MCU有两种一种通用微控制器,在其基础上扩展了 USB功能。通用微控制器易于进行开发;另一种是有特定指令集的微控制器,具有专门为USB应用优化的指令集,实现USB通信非常方便。但是,由于MCU需要有完整的取指、译码及执行电路,还需要配置相应的程序存储器和数据存储器,其实现规模相对较大。另外MCU通过执行指令序列和中断响应来进行过程的控制,对外部事件进行处理时,耗费时间也比较长。

发明内容
本发明的技术解决问题是针对现有技术的不足,提供了一种USB读卡控制器。采用本发明减小了 USB读卡控制器的电路规模,并且提高了数据的传输速率。本发明的技术解决方案是一种USB读卡控制器,包括数据缓冲区管理模块、实现设备的端点层的USB设备接口模块、对存储卡操作流程进行控制的存储卡接口模块、对数据进行读写控制的数据读写控制模块。
在USB读卡控制器接入USB主机时,所述USB设备接口模块利用端点层中的设备配置端点完成USB主机对读卡控制器的配置;所述存储卡接口模块完成对存储卡的初始化和配置;在进行数据读写操作时,所述USB设备接口模块利用端点层中数据读写端点接收 USB主机输入的命令,并发送给数据读写控制模块;所述数据读写控制模块根据接收的命令进行操作或对数据缓冲区管理模块、USB设备接口模块和存储卡接口模块进行控制完成 USB主机对存储卡的读写。所述USB设备接口模块包括设备配置状态和数据传输状态;所述存储卡接口模块包括卡检测状态、初始化状态、识别状态和数据读写状态;所述数据读写控制模块包括收命令状态、解析命令状态、传送数据块状态和返回执行结果状态。在USB读卡控制器接入USB主机时,USB设备接口模块进入设备配置状态,利用所述设备配置端点接受USB主机对USB读卡控制器的识别,实现USB主机对USB读卡控制器的配置;数据读写控制模块进入收命令状态;当存储卡接入时,存储卡接口模块从卡检测状态转入初始化状态然后转入识别状态,完成对存储卡工作模式的设定;当USB主机通过USB读卡控制器对存储卡进行数据读写时,所述数据读写控制模块在收命令状态完成对命令的接收后,转入命令解析状态;在命令解析状状态中,根据对命令的解析结果,进入传送数据块状态,使USB设备接口模块进入数据传输状态,使存储卡接口模块进入数据读写状态,由USB设备接口模块和存储卡接口模块完成对数据的读写操作,或者,根据对命令的解析结果进入返回执行结果状态;所述数据读写控制模块在完成传送数据块状态后转入返回执行结果状态,由执行结果状态返回收命令状态。本发明与现有技术相比具有如下优点现有读卡控制器的常见结构是以片上微控制器MCU为核心,MCU执行固件程序来控制片上的其他部件,完成读写存储卡的功能。由于MCU需要有完整的取指、译码及执行电路,还需要配置相应的程序存储器和数据存储器,其实现规模相对较大。另外MCU通过执行指令序列和中断响应来进行过程的控制,对USB主机的命令进行处理时,耗费时间也比较长。采用本发明的技术方案使读卡控制器结构紧凑,包括USB设备接口模块、存储卡接口模块和数据读写控制模块和数据缓冲区管理模块。此结构不需要集成片上MCU,采用硬连逻辑实现工作流程控制。在连接USB主机时,USB设备接口模块进入设备配置状态,完成设备配置过程;在连接存储卡时,存储卡接口模块进入初始化状态,完成存储卡初始化和配置过程;在USB主机发出数据传送命令时,USB设备接口模块进入数据传输状态,存储卡接口模块进入数据传送状态,数据读写控制模块控制完成数据传送过程。所以,此结构对USB 主机的命令响应及时。而MCU执行USB主机的命令时必须采用多次中断处理,中断的进入和退出都要耗费系统时间。此结构减少了数据传送的系统耗费,提高了数据传送效率。此结构不需要附加的程序存储器和数据存储器,状态机中的各种状态都针对控制过程需要设计,和MCU为核心的架构相比,其针对性更强,规模缩小明显,控制方式简化,提高USB主机命令执行效率。


图1为USB读卡控制芯片常见结构图;图2为USB设备接口结构示意图;图3为本发明USB读卡器结构示意图;图4为SIE_PR0C的工作状态切换图;图5为CARD_PR0C的工作状态切换图;图6为RW_PR0C的工作状态切换图。
具体实施例方式下面就结合附图对本发明做进一步介绍。USB读卡控制器实现USB主机和存储卡之间传输数据的功能。本发明设计了一种 USB读卡控制器结构,此结构不含主控MCU,工作流程控制全部使用硬连逻辑来实现。多个工作流程控制状态机分散管理工作流程,实现读卡器的各项功能。如图3所示,USB读卡控制器按功能划分为4个部分1) USB 设备接口 SIE_B0X2)存储卡接口模块CARD_B0X3)数据读写控制模块RW_PR0C4)数据缓冲区管理MMUUSB设备接口 SIE_B0X是和USB主机进行通信的接口,和USB主机交换命令和数据。存储卡接口 CARD_B0X是和存储卡通信的接口,和存储卡交换命令和数据。数据读写控制模块RW_PR0C则建立从USB主机到存储卡的数据通路,控制数据传送过程。数据缓冲区管理MMU在数据读写控制模块的控制下,暂存并管理数据缓冲区。在USB设备接口 SIE_B0X这部分中,SIE实现USB协议的主要功能,对USB总线上传输的数据包进行打包和解包。SIE_PR0C则实现设备的端点层功能。端点是位于USB设备中与USB主机进行通信的基本单元,是有特定功能的数据接收端或者数据发送端。USB设备中的所有端点组成了逻辑意义上的端点层。端点O(EPO)被USB规范保留用做设备枚举和配置,作为设备配置端点。在读卡器中,除了端点0以外,至少还需要一组数据读端点和数据写端点。在下面的描述中用端点I(EPl)表示数据读写端点。端点层功能通常是由MCU及固件实现的,但在本发明中采用有限状态机来实现。端点控制模块SIE_PR0C实现的功能分为两个状态。1)设备配置状态,完成设备枚举和配置过程。2)数据传输状态,实现数据传送。SIE_PR0C的工作状态切换如图4所示。复位后USB设备还不能使用,需要USB主机对其进行设备的枚举和配置,这部分功能是通过USB主机对设备配置端点发命令实现的。所以复位后SIE_PR0C状态机首先进入设备配置状态。接收并执行主机发给端点0的命令。这些命令包括总线枚举和设备配置类。 USB设备配置完成后,就可以用于传输数据了。USB主机需要传输数据时,给数据传送端点发送命令。端点控制模块在接收到命令后,进入数据传输状态。
在此阶段,数据读写的过程控制由RW_PR0C的状态机来执行,Rff.PROC建立起从 USB主机到存储卡的数据通路,控制USB接口、存储卡接口和数据缓冲区管理单元一起来执行数据传送过程。在数据传输出错的时候,需要SIE_PR0C状态机来控制清除数据传送端点的错误标志,完成错误恢复。当在数据传输出错的情况下,USB主机会再次向设备配置端点发送命令来恢复错误,SIE_PR0C状态机回到设备配置状态。在CARD_B0X这部分中,存储卡主机控制器CARD_HC实现存储卡的协议部分,而 CARD_PR0C则实现存储卡接口的流程控制。存储卡的流程控制包括检测卡、识别卡和读/写卡。CARD_PR0C实现的功能可以分为两类。1)卡检测和初始化。检测卡是否连接,对已经连接的卡进行初始化和配置。幻数据读写。从存储卡中读出数据包或参数,或将数据包写入存储卡。CARD_PR0C的工作状态切换如图5所示。分成初始化阶段和数据读写阶段。初始化阶段又可以分成卡检测状态、初始化状态、识别状态。复位后进入卡检测状态检测插卡信号。在卡检测状态中检测到卡插入后转入初始化状态,执行初始化的命令序列。如果初始化命令序列出现执行错误,则初始化失败,返回卡检测状态重新检测插卡信号。初始化成功则转入识别状态,通过配置命令完成对存储卡工作模式的设定。识别状态结束,则初始化阶段完成。等待对存储卡进行数据读写。在数据读写阶段,数据读写的过程控制由RW_PR0C状态机来执行。对数据进行读写的同时检测拔卡信号,如果检测到卡已拔出,就回到初始化阶段的卡检测状态。Rff_PR0C模块是用硬件电路来实现对数据读写端点和CARD_B0X中数据读写阶段的命令执行过程控制,实现对存储卡中数据的读写操作。当SIE_B0X收到数据读写端点的命令后,开始数据的批传输过程。RW_PR0C模块对数据读写端点接收到的数据包进行检查、译码,根据解析出的命令类型及其参数,通过 CARD_B0X对存储卡进行读写,读写操作正常完成或出错退出后,通过SIE_B0X给USB主机返回该命令执行的状态。Rff_PR0C的工作状态切换如图6所示,包括收命令、解析命令、传送数据块和返回执行结果。USB读卡器接入USB主机后,Rff_PR0C进入收命令状态,等待数据读写端点接收USB 主机命令。数据读写端点收到USB主机命令后,RW_PR0C从数据读写端点取出此命令,转到解析命令状态,对命令进行检查和解析。命令可以分成两类有数据的命令和无数据命令。 对于有数据的命令,RW.PROC进入传送数据块状态,并启动SIE_B0X的数据传输状态。有数据的命令分为读命令和写命令。执行读命令时,CARD_B0X从存储卡中读出命令指定的数据块,暂存到CARD_B0X的数据缓冲区中,再通过DMA通道传送到SIE_B0X的数据缓冲区中,再通过SIE_B0X发送给USB主机。执行写命令时,SIE_B0X将USB主机发来的数据块暂存到 SIE_B0X的数据缓冲区中,再通过DMA通道传送到CARD_B0X的数据缓冲区,再通过CARD_ BOX写入存储卡。全部数据传送完成后,RW_PR0C转到返回执行结果状态,将命令执行后的状态标志通过SIE_B0X发送给USB主机,告诉主机命令执行的结果。对于无数据命令,Rff.PROC执行命令要求的操作。执行完后,RW.PROC转到返回执
6行结果状态,将命令执行后的状态标志通过SIE_B0X发送给USB主机,告诉主机命令执行的结果。命令执行完成后,Rff.PROC就转到收命令状态,等待下一个命令。本发明未详细说明部分属本领域技术人员公知常识。
权利要求
1.一种USB读卡控制器,包括数据缓冲区管理模块,其特征在于还包括实现设备的端点层的USB设备接口模块;对存储卡操作流程进行控制的存储卡接口模块;对数据进行读写控制的数据读写控制模块;在USB读卡控制器接入USB主机时,所述USB设备接口模块利用端点层中的设备配置端点完成USB主机对读卡控制器的配置;所述存储卡接口模块完成对存储卡的初始化和配置;在进行数据读写操作时,所述USB设备接口模块利用端点层中数据读写端点接收USB 主机输入的命令,并发送给数据读写控制模块;所述数据读写控制模块根据接收的命令进行操作或对数据缓冲区管理模块、USB设备接口模块和存储卡接口模块进行控制完成USB 主机对存储卡的读写。
2.如权利要求1所述的一种USB读卡控制器,其特征在于所述USB设备接口模块包括设备配置状态和数据传输状态;所述存储卡接口模块包括卡检测状态、初始化状态、 识别状态和数据读写状态;所述数据读写控制模块包括收命令状态、解析命令状态、传送数据块状态和返回执行结果状态,在USB读卡控制器接入USB主机时,USB设备接口模块进入设备配置状态,利用所述设备配置端点接受USB主机对USB读卡控制器的识别,实现USB主机对USB读卡控制器的配置;数据读写控制模块进入收命令状态;当存储卡接入时,存储卡接口模块从卡检测状态转入初始化状态然后转入识别状态, 完成对存储卡工作模式的设定;当USB主机通过USB读卡控制器对存储卡进行数据读写时,所述数据读写控制模块在收命令状态完成对命令的接收后,转入命令解析状态;在命令解析状状态中,根据对命令的解析结果,进入传送数据块状态,使USB设备接口模块进入数据传输状态,使存储卡接口模块进入数据读写状态,由USB设备接口模块和存储卡接口模块完成对数据的读写操作,或者,根据对命令的解析结果进入返回执行结果状态;所述数据读写控制模块在完成传送数据块状态后转入返回执行结果状态,由执行结果状态返回收命令状态。
全文摘要
本发明公开了一种USB读卡控制器,包括数据缓冲区管理模块、实现设备的端点层的USB设备接口模块、对存储卡操作流程进行控制的存储卡接口模块、对数据进行读写控制的数据读写控制模块。采用本发明减小了USB读卡控制器的电路规模,并且提高了数据的传输速率。
文档编号G06F3/06GK102541474SQ201110459238
公开日2012年7月4日 申请日期2011年12月29日 优先权日2011年12月29日
发明者宋晶峰, 宗宇, 张志永, 王莉, 褚晓滨, 谢俊玲, 谷羽 申请人:中国航天科技集团公司第九研究院第七七二研究所, 北京时代民芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1