基于FPGA的USB设备端控制器的设计

来源 :数字化用户 | 被引量 : 0次 | 上传用户:zbt_25
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】将USB设备端控制器作为一个IP核研究,详细阐述了一种基于FPGA 的USB设备端控制器的设计流程。对复杂的IP核设计进行分块构思,从硬件上进行模块划分。划分的模块包括PHY、UTMI接口、PL协议层、CTRL控制传输、FIFO、ROM配置文件等6个功能模块。在此基础上,完成了各模块的设计。
  【关键词】FPGA USB 设备端控制器 IP核 功能模块
  一、引言
  USB(Universal Serial Bus,通用串行总线)是一种点到点的电缆总线,具有连接容易、便捷易用、速度快、适应不同外设要求、即插即用、扩展方便等优点[1]。对比RS232串行口,USB接口方案大大提高了嵌入式系统的数据吞吐能力,与以太网接口相比有即插即用特性、有块和同步等多种数据传输模式[2]。这使得USB设备在嵌入式系统中得到广泛使用。
  考虑到基于Verilog HDL语言在FPGA上来实现USB设备端控制器IP核是可行的且占用的FPGA资源较少[3]。因此,近年来基于SOPC技术开发嵌入式系统,通常将USB设备端控制器作为一个IP核从而进入到SOPC里面去。目前,对USB控制器IP核的研究不少,但大多是针对USB2.0设备端控制器的设计[4]。由于USB2.0的传输速度最高达480Mbps,要求数据缓存比较大,一般在实现上采用片外SRAM;同时高速率的收发器在低端的FPGA中实现也不可行,一般只能采用ASIC型式的USB总线收发器。因此,整个IP核显的十分零乱,可重用性很差。
  值得一提的是,尽管USB协议包括1.0、1.1和2.0以及USB OTG等版本,但目前的USB设备普遍都兼容USB1.1协议,12Mbps的传输速率也足以满足嵌入式系统中的绝大部分应用。为此,从实用性角度出发,基于FPGA开发USB1.1设备端控制器IP核具有实际意义。同时,该设备端控制器开发的主要目的是扩展SOPC系统性能,满足日益变化的设计需求。
  二、USB设备端控制器的总体设计方案
  本设计将整个IP核划分为6个功能模块,如图1所示,分别为PHY模块、UTMI接口模块、PL协议层模块、CTRL控制传输模块、FIFO模块、ROM配置文件模块。
  三、各模块的具体实现
  (一)PHY模块的实现
  图2 PHY实现的框图
  PHY模块由发送和接收两个子模块组成的。模块框图如图2所示。发送模块完成UTMI功能模块传送过来的8位并行数据转换成串行数据,并发送给主机。
  (二)UTMI接口模块的实现
  UTMI接口模块的功能相当于USB1.1协议里的串行接口引擎(SIE)部分。主要功能根据协议层模块发出控制信号对PHY模块的发送/接收子模块进行控制;同时要将数据送到发送
  图3 UTMI接口模块结构图
  总线/接收总线上。其模块结构图如图3所示。
  (三) PL协议层模块的实现
  控制器的核心逻辑是PL(Protocol Layer)模块,负责管理所有USB数据I/O。其中协议引擎(Protocol Engine)处理所有标准的USB握手信号。其模块结构图如图4所示。
  图4 协议层模块结构图
  1. 包组装器的实现
  包组装器组装包并送入输出FIFO。先组装包头,插入相应的包标识(PID)和CRC校验码,然后加入数据域。包标识符分为标记(Token)、数据(Data)、握手(Handshake)和专用(Special)四种类型,每种包含有不同的事务格式。每种事务格式有唯一对应的编码,同种类型包不同事务格式有两位是相同的。由于同种类型包不同事务格式有两位是相同的,根据不同的两位就可以分辨出事务格式。
  USB里有两种类型的CRC 校验:5位CRC校验和16位CRC校验。根据USB1.1协议,5位CRC作用于标记包,生产多项式为G(X)=X5 + X2+ 1。这个多项式的二进制位组合是00101B。如果所有的标记位都被准确无误的收到,接收器的5位余数应该是01100B。16位CRC作用于数据包,生成多项式为G(X)=X16 + X15+ X2 +1。这个多项式的二进制位组合是1000,0000,0000,0101B。如果所有的数据和CRC位被准确无误的收到,16位的余数应该是1000,0000,0000,1101B。
  USB中CRC产生器与校验器具有相同的构造。故包组装器和包拆装器都有这两种检测。组装器中的crc5和crc16模块是用来CRC校验的;包拆装器中的crc5和crc16模块是用来产生CRC码的。
  2.包拆装器的实现
  包拆装器先解码出PID 和序列号以及校验和,再从8位PID取低4位(或高4位取反)得到PID[3:0],通过USB1.1协议的PID类型定义译码出PID名,判斷是Token分组(OUT、IN、SOF和SETUP)还是DATA分组(DATA0、DATA1、DATA2和MDATA)。
  拆包流程是由一个状态机来控制的,首先根据解析出来的PID来确定包的类型,然后对数据包和标识包两种包再进一步处理。ACTIVE状态确定包的类型并对握手包进行处理。DATA是当收到数据包的状态。TOKEN是收到标识包的状态。各个状态的转换图如图5所示。
  3.协议引擎的实现
  协议引擎处理所有标准的USB握手信号和数据传输过程的控制。主要是对数据传输分为同步和非同步两种,根据主机发送过来的握手信号以及自身的状态,进行流程控制。流程控制是由一个状态机来实现的。该状态机含有的状态分别是:TOKEN标识状态,等待一个clk。UPDATEW将IDMA的数据写入到存储区里。IN输入操作状态。IN2第2次输入操作状态。OUT输出操作状态。OUT2A发送ACK/NACK/NYET信号。OUT2B延时一个clk,发送NACK。从控制状态寄存器里读取信息,解析出主机要进行通信的端点号(传输类型)、事务类型、数据量的大小。   4. 内部DMA的实现
  内部DMA在块传输时启动,它的内部例化了一个小容量的FIFO,完成设备端点和发送/接收数据总线之间数据快速搬运。块传输的传输由标记,数据和握手包构成三相位传输组成,当设备准备好进行块传输的输入或输出事务时,启动DMA将数据送入或输出FIFO。
  (四)CTRL控制传输模块的实现
  控制传输模块配合主机完成设备的枚举过程。所有的USB设备都是通过缺省控制通道对主机的请求发出響应。每个控制传输至少有2个事务阶段:建立和状态,中间可能有数据阶段。在建立阶段里,建立事务向功能部件的控制端口发送信息。控制传输有一个主状态机,含有的状态分别是:IDLE空闲;GET_HDR开始响应主机的设备请求状态;GET_STATUS_S响应主机的GET_STATUS状态;CLEAR_FEATURE_S响应主机的CLEAR_FEATURE状态;WAIT_IN_DATA等待输入的数据;STATUS_IN数据输入状态;STATUS_OUT数据输出状态等8个状态。
  (五)FIFO模块的实现
  fifoRTL模块是通过利用FPGA内部存储器,开辟一个连续的存储区,配合相应的读、写逻辑来完成的。由于FifoRTL的读、写操作是在各自的时钟驱动下进行的,即是异步FIFO。fifoRTL模块实现的原理框图如图6所示。
  (六)ROM配置文件模块的实现
  该USB设备端控制器,对主机的所有标准请求都支持。将有关该功能设备的有关信息预先存放存储区里。在clk的上升沿,根据输入的地址将相应地址里的数据输出到dataout口。其原理图如图7所示。
  四、结论
  本文基于FPGA设计了USB1.1设备端控制器IP核。主要包括USB体系结构和USB通信原理两个部分。阐述了基于FPGA的USB设备端控制器的实现方案,进行功能模块划分。最后,对每个功能模块的具体实现进行了详细的设计。
  图7 配置文件模块原理图
  参考文献:
  [1]肖楠编译.跟上USB前进的步伐[J].电子技术, 2008, 8:18-20
  [2]张国云,马文玲.USB技术分析与应用[J].现代电子技术, 2005, 18: 68-70
  [3]廖坚,于海勋. USB中的CRC校验原理及其Verilog HDL语言实现[J].计算机工程与设计,2010,26(11): 3127-3129
  [4]阮利华,王祥,黄全平等.USB2.0接口IP核的开发与设计[J].复旦学报(自然科学版), 2005, 44(1): 173-177
  作者简介:
  卢卓浩,男,1987年出生,本科,学士,助教。研究方向:嵌入式系统。联系电话:15921727781
  基金项目:
  上海市教委科研创新项目(12YZ156),上海市大学生创新活动计划项目 (cs1224004)资助。
其他文献
【摘 要】广告创意是《广告设计与制作》课程的核心内容,对于职业技术学院的学生而言,“创意”是一个瓶颈,不是他们没有创意思维,而是他们把“创意”当做离他们很远,很高深、很顶尖的东西。其实,好的创意是“意料之外”与“情理之中”的契合点,这个点往往存在于容易被大众忽略的身边。而“头脑风暴法”的思维方式恰好能突破学生的惯性思维,让学生在自由、放松、不怕出错的状态下发散思考,从而得出意想不到的结果,通过教学
期刊
【摘 要】《初中英语课程标准》明确指出,义务教育阶段写作达到“能独立起草短文、短信等,并在教师的指导下进行修改;能使用常见的连接词表示顺序和逻辑关系;能简单描述人物或事件”。“写是书面表达和传递信息的交际能力,培养初步写的能力是英语教学的目的之一”。可见培养学生的英语笔头交际能力是整个初中阶段英语教学的目的之一。  【关键词】初中英语 写作能力 教学 能力提高  近几年来,随着英语课堂教学改革的不
期刊
在实际教学过程中对学生创新能力的培养,已引起广大数学教师的高度重视,如何培养学生创新能力,找到培养和发展学生创新能力的有效途径,在数学教学中愈来愈显得重要。本人在具体的数学教学过程中,注重了学生创新能力的培养,该文就“学生创新精神的培养和创新能力的发展”的几点做法和体会表述如下:  一、数学教师的创新意识是培养学生创新能力的首要条件  教育本身就是一个创新的过程,教师必须具有创新意识,改变以知识传
期刊
【摘 要】中等职业学校的开设《职业生涯规划》课,以帮助学生提高职业生涯发展与决策能力为原则,在综合运用有关职业生涯发展理论和心理学团体辅导方法的基础上,设计出为期一学期十五周的中职生职业生涯规划课的团体心理辅导方案,一方面通过心理学的团体辅导方法增强教学效果,帮助学生订立在校职业准备规划;另一方面培养学生运用心理学基本知识认识自我、悦纳自我、管理自我和设计自我,帮助学生更好地规划生涯。  【关键词
期刊
【摘 要】木里藏族自治县是全国最稳定的藏区之一,该县着力将扶贫开发与藏区社会经济发展、民生改善、藏区民族和谐、藏民幸福安康等有机结合起来,通过实施藏区“三四五工程”,即:“三大民生工程”、“四项关怀”、“五项帮扶”,为促进藏区和谐发展、人民幸福走出了一条符合木里藏区实际的科学发展之路。  【关键词】木里 扶贫开发 民生改善 人民幸福  扶贫开发是实现贫困地区人民幸福的重要路径,本文以木里藏族自治县
期刊
【摘 要】梭罗不仅通过自己的文字,也通过自己的言行,向世人展示了他独特的自由思想:当个人的行为没有涉及他人的利害时,个人就有完全的行动自由,而不必向社会负责;而当个人遭遇到一个独裁或无能的政府时,个人就有权采取非暴力的方式拒绝对它效忠并抵抗它的权力。梭罗认为:国家无权侵犯公民的道德自由,国家不能强迫公民支持暴政,人的良知应是每个人的最高精神主宰。梭罗把“不服从”称为一场和平革命,通过此种方式,向世
期刊
【摘 要】随着信息技术的快速发展,地理信息系统(GIS)在各领域中得到广泛应用。本文介绍了引滦信息系统是在GIS平台的基础上建立起来的,以基础地理信息(包括数字高程模型、数字线划图、数字栅格图、数字正射影像图等)、引水工程技术信息、水文水质信息、水雨情信息、社会经济信息等信息为基础信息平台,将输水优化调度系统、输水安全预警系统、于桥水库雨洪利用与防汛减灾系统、综合信息服务系统有效结合起来,建立一个
期刊
【摘 要】城市规划动态监测是一个实时性强的巨大、复杂的系统工程,随着我国城镇化进程加快,以及数字规划概念的提出,遥感对地观测技术逐步实现了从定性到定量,从数据到信息的转换,为获取和更新城市地理信息以及城市扩展监测提供了重要技术手段。本论文主要论述与探讨了遥感技术在城乡规划建设中的监管业务、技术流程、数据获取、遥感信息模型和发展趋势展望等。  【关键词】城市规划 建设监测 遥感技术  一、引言  我
期刊
【摘 要】对二元函數极值存在的充分条件给出了一种新的证明方法,并对此充分条件的结论做了适当补充.  【关键词】二元函数 极值 充分条件  一、二元函数极值存在充分条件及其证明  则函数在处是否取得极值的条件如下:  (1)当时,具有极值.且当时,有极大值;当时有极小值;  (2)当时,没有极值;  (3)当时,若,则除了在的邻域内满足的点之外,有极小值;若,则除了在的邻域内满足的点之外,有极大值;
期刊
【摘 要】文章通过对矢量曲线的点、线要素在其自动制图综合中的特点进行理论分析,给出一种曲线化简算法的分类体系,并对现有的几种经典算法进行分类,通过比较分析各种算法的优缺点,发现以单一尺度的曲线化简算法容易忽略一些特征点。针对这一问题,提出一种基于逐点判断的以角度、距离共同作为尺度的曲线抽样算法,通过实验验证,该算法在保留各种曲线特征点的处理上具有较好的效果。  【关键词】逐点 转角 距离 双尺度 
期刊