CPLD在USB协议分析仪中的作用

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:blyd831104
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在USB协议分析仪中,CPLD利用自身硬件的优点,快速处理USB信号,把USB数据流转换成MCU数据包以供单片机接收,进行下一步的工作。
  关键词:CPLD;信号;数据包
  中图分类号:TP212文献标识码:A 文章编号:1009-3044(2008)34-1853-02
  
  CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产之中。
  CPLD是整个系统中非常关键的一个部件,它直接决定系统实现的成功与失败。如果CPLD设计有任何缺陷,就有可能导致整个系统性能变差,甚至完全失败。所以,CPLD这一部分必须认真分析需求,周密设计代码,合理仿真功能,力求最大限度地有效利用CPLD的功能。
  CPLD的工作流程如下:打开集成开发软件(Xilinx的ISE)→画原理图、写硬件描述语言(Verilog)→编译→给出逻辑电路的输入激励信号,进行仿真,查看逻辑输出结果是否正确→进行管脚输入、输出锁定→生成代码→通过下载电缆将代码传送并存储在CPLD芯片中。
  1 功能分析
  CPLD接收从USB收发器收到的数据流,构建MCU数据包,然后输出MCU数据包至FIFO存储器,可以说CPLD就是一个成帧器。
  为了能够准确地接收USB的数据流,CPLD中设置了一套去噪声模块。即使接收的数据中混入了一定的噪声,接收器也能正常工作。
  要正确获得数据,首先要正确恢复时钟。低速USB的发送时钟为1.5MHz,全速USB的发送时钟为12MHz,CPLD也必须生成相应的接收时钟信号。为此,CPLD中设置了一个数字锁相环电路(DPLL),该电路监视输入信号的变化,一旦发现信号出现了边沿,立即调整接收时钟的相位,确保与发送时钟同步,这实际上也就是保证了读取数据的准确性。
  DPLL电路还输出一个数据抽样点,这个抽样点总是处于一个数据位的中心,在这个抽样点获得的数据是最准确的。
  在抽样点处获得的数据送至串并转换器,当接收8个数据位后形成一个字节。这个字节将被保存在输出队列中准备发送到外部FIFO缓存。为了消除“位插入”产生的额外数据,CPLD中有一个“位计数器”,如果发现6个连续的“1”,自动消除其后的数据位。
  在CPLD中,有一个有限状态机FSM,它指示用户USB总线的当前状态。该状态机共有4个状态,分别对应初始状态、SE0、空闲状态和接收状态。通过状态机,可以得知一个USB数据包的开始与结束,也可以得知USB数据包的传输速率,还可以知道每一个状态出现的绝对时间,通过换算,能够知道数据包的持续时间,还能够知道SE0是处于EOP中还是复位中。当发现USB数据包的开始(SOP),立即把STX送入输出队列。STX是MCU数据包的开始,与SOP对应。一旦发现USB数据包结束,则把ETX 送入输出队列。ETX是MCU数据包的结束,与EOP对应。
  在输出USB数据包的数据时,如果某一字节的数值正好等于STX、ETX或者Byte_Stuff,则在它们前面插入一个Byte Stuff。这也是一种插入技术,但它是面向字节的。
  输出队列按照顺序保存要输出的数据,输出电路从输出队列中一个字节一个字节地读出数据,然后向外输出,每输出一个字节,就产生一个写入信号。
  以上所有这些电路在复位信号有效时(Rst=0)都停止工作,设置为预置的值,如WR=1、 FSM=0。
  对于输出电路来说,还有一个输出使能信号(OE)。当OE=0时,输出信号正常输出;当OE=1时,输出信号呈现高阻态。
  CPLD中的所有电路都是同步的,都按照48MHz主振荡器的节拍工作。
  2 功能实现
  2.1 相位跟踪电路(DPLL)
  DPLL(Digit Phase Lock Loop)是一种使得输出信号相位与输入信号相位保持一致的电路,也就是相位跟踪电路。当输入信号的相位发生变化时,输出信号的相位也跟着变化。DPLL根据用户USB总线的速率产生1.5MHz或12MHz数据接收时钟,接收时钟的相位跟踪输入信号的相位,二者始终保持一致,这就是数据时钟的恢复。根据数据接收时钟的相位,CPLD产生一个数据抽样信号,该信号指示在何处抽样,才能读取到正确的数据。
  2.2 有限状态机(FSM)
  FSM(Finite State Machine)称为有限状态机,是CPLD中最常用的部件之一。通常,用FSM实现各种各样的状态转换图。在USB协议分析仪中,FSM有四个状态,用来表示用户USB总线的活动。这四个状态覆盖了所有用户USB总线状态和用户USB总线事件,低速和全速也都支持。
  1) 初始状态:复位结束后的状态
  2) SE0状态:用户USB总线处于SE0
  3) 空闲状态:用户USB总线处于空闲状态
  4) 接收状态:用户USB总线正在传输数据包
  2.3 MCU数据包装配
  CPLD的输入信号是获取的USB总线信号,输出的则是单片机应接收的MCU数据包。在说明CPLD的这部分功能以前,先简单说明一下MCU数据包的构成形式。
  2.3.1 数据包的格式
  MCU数据包是对USB数据包的再次封装,其一般格式为:STX USB数据包 ETX
  STX是MCU数据包的开始,其值为0F;ETX是MCU数据包的结束,其值为04。为了避免USB数据包中的STX、ETX被误认为MCU数据包的开始结束,特别增加了“字节插入”。 “字节插入”符为ByteStuff,其值为05 。当USB数据包中出现了STX,ETX或ByteStuff时,在其前面都要插入一个ByteStuff。例如:
  USB数据包为:80 C3 03 04 05 06
  对应的MCU数据包为:0F 80 C3 03 05 04 05 05 06 04
  2.3.2 输出STX
  STX是MCU数据包的开始,应该在USB数据包的开始处(SOP)输出,即一旦发现SOP,就要立即输出STX。
  那么,在CPLD中如何识别SOP?在FSM中,如果当前状态为空闲状态,同时输入信号K有效,此时就是SOP,应该立即输出STX。
  2.3.3 输出ETX
  ETX是MCU数据包的结束,应该在USB数据包的结束处(EOP)输出,即一旦发现EOP,就要立即输出ETX。
  当FSM的当前状态为接收状态,同时输入信号SE0有效,则认为此时就是EOP,应该立即输出ETX。
  2.3.4 “字节插入”
  当FSM为接收状态时,如果从用户USB总线接收到了一个字节,首先要判断其值是否为STX、ETX或Byte_Stuff。如果是其中之一,要先输出Byte_Stuff,然后再输出该字节。
  经过“字节插入”处理过的MCU数据包在应用程序中要做相反的字节消除,以恢复原始USB数据包。
  2.4 数据输出
  数据输出部分包括输出队列的管理、输出总线和写入信号管理两部分。输出队列的管理包括取数据和指针移动。由于选择的CPLD容量有限,原来设计的4字节输出队列无法实现综合,最后只好放弃原来的设计思想,改为输出队列只存放标志位,这实际上也是4字节的输出队列,但需要的存储空间大大减少。
  之所以采用4字节输出队列,是基于这样的情况:在USB数据包结束处,如果最后一个数据正好是STX、ETX或Byte_Stuff之一,则输出顺序应该是Byte_Stuff、数据、ETX。这三个字节在同一时钟周期出现,但输出一个字节要用两个时钟周期,并且输出时一次只能输出一个字节。这时,把同时出现的数据按照既定的Byte_Stuff、数据、ETX的顺序把标志位存放在输出队列中等待输出。
  3 仿真
  CPLD设计离不开仿真,因为仿真是CPLD功能和性能的验证工具,也是CPLD的排错工具。没有仿真,就无法了解CPLD的工作情况,设计中的错误也无法找到根源。
  在USB协议分析仪设计过程中,仿真一直发挥着重要作用。有两点特别需要说明:
  1) 仿真为CPLD提供激励信号。
  CPLD只是一个模块,它的正常工作依赖正确的输入信号,为此,设计了一个TESTBENCH文件,用于生成激励信号。而激励信号则由一个信号定义文件决定。
  2) 仿真自动判断CPLD的输出信号是否正确。
  要知道CPLD是否正常工作,必须有一套判断逻辑以鉴别输出结果正确与否。在TESTBENCH文件中,在生成激励信号的同时,也把预期的输出结果保存到判断队列,当接收到CPLD的输出以后,仿真自动对比二者并得出正确与否的结论。如果存在错误,则错误计数器进行计数。
  仿真的内容包括不同速率的仿真、固定数据包的仿真、随机数据包的仿真、抗干扰能力的仿真、各种时间延迟仿真。
  4 小结
  本文介绍了CPLD的特点和工作流程,详细说明了CPLD在USB协议分析仪中的功能,最后说明了CPLD的功能仿真。在本文中,完成了USB协议分析仪最重要的工作,就是把从USB收发器收到的数据流转换成MCU数据包,等待单片机转发给分析软件进行分析。
  参考文献:
  [1] Compaq,Intel,Microsoft,NEC.Universal Serial Bus Specification 1.1[S].USB-IF,1998.
  [2] Janet L.Axelson.USB Complete[S].Lakeview Research LLC, 5310 Chinook Ln,Madison WI 53704,2005.
  [3] 姚鸿强.基于FPGA的USB设备接口设计[J].江南大学学报:自然科学版,2004(1).
  [4] XilinxInc.ISEWebPACK[EB/OL].[2008-09-27].http://toolbox.xilinx.com/docsan/xilinx10/books/manuals.pdf.
  [5] 郇晓辉,郇晓斌,田金文.USB FPGA系统测试设备开发[J].计算机与数字工程,2005(6).
其他文献
一  “生活是写作的源泉”,这话本身并没有错。但如果误读并用偏狭的理解来指导中学作文教学,以至作文题目过多过滥地指向“当下”的“生活”,包括“我”的“生活”,其结果会如何呢?曾宣伟的新著《人字作文法》(2012年7月,文心出版社出版)就列举出种种负面的事实。究其原因,正如曾老师所说,作文内容过多地指向当下的“生活世界”,“其必然忽视了学生阅读中获得的经验,限制了学生的联想和想象,限制了学生自由发挥
摘要:本文主要介绍了手工锁的常见类型, NOLOCK、 HOLDLOCK 、UPDLOCK、 TABLOCKX并举例说明它们在实际应用中的具体使用。  关键词:手工锁;SQL;应用  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)36-2828-02  Lock Table Applied in SQL SERVER  TONG Li-ting  (Heilongj
汉字是表意文字,古人在造字时把汉字的“形”与“意”和表达物的“象”联系起来,并且在取客观之“象”为汉字构形时,取什么样的“象”、怎樣造“象”达“意”都含有人的主观看法,并能映射当时社会背景和风俗习惯,所以从汉字中总能“窥见”古人的一些生活图景。本文通过《义务教育语文课程常用字表一》中“男”“女”“婚”“夫”“妇”“冠”“安”“家”“父”“母”“保”“孝”12个字来阐释汉字中蕴含的古代家庭文化现象,
本次讲坛按照“气韵”为“气”“韵”之合,“气韵”分为“气”“韵”,先文字理性论证,后图像感悟旁证的逻辑顺序展开:  从2004年至今,我一直从事谢赫“六法”与“气韵”的研究,发表了相关学术论文。出版了《谢赫“六法”义证》(25万字,河北教育出版社2009年版)《气韵——隋唐以前梵汉艺术精神之会痛与融合》(41万字,人民出版社2016年版)两本专著,在学术研究方法上主要强调回归原境,拓展、深化乾嘉考
近日,笔者在网上观摩了于永正老师于大约15年前执教的《小稻秧脱险记》一课的视频。这篇课文是苏教版小学三年级上册的一篇科普性童话故事。于老师通过艺术化的教学手段,使课堂生动活泼,给学生创造了一个轻松、愉快的学习氛围。尤其令人难忘的是,于老师的教学情与趣交融,使课堂绽放出无穷魅力,让人陶醉其中,对于我们今天的教学仍有启示意义。下面结合于永正老师这节课中的几个经典教学片段进行简要赏析。  一、品读课题,
摘要:软件工程失败,通常是由于协同工作的问题,而不是技术问题。软件课程的学习成效,也不纯是技术难度或学生基础知识的薄弱与否。软件课程的学习过程,实质上是学生在学习相关软件技术的同时作为一个大规模小组进行软件开发的过程,吸取小组软件开发过程初步TSPi的模式来组织教学可以更好的调动保持学生学习的积极性。  关键词:软件课程;软件工程;小组软件开发过程初步;TSPi  中图分类号:G642文献标识码:
《端午粽》是统编小学语文教材一年级下册第四单元中的一篇课文。统编教材在编排上采用双线结构,从人文主线看,本文与同单元的《静夜思》《夜色》《彩虹》共同的主题是“家人”,以吃粽子为主线把传统文化与爱国情怀有机融合在一起;从語文要素主线看,重点是“读好长句子”。从文体上看,《端午粽》是一篇比较贴近现实生活的小散文,粽子是儿童比较熟悉也比较喜欢的一种食品,在端午节来临之际,可以自家选用食材自做,也可以去商
《义务教育语文课程标准(2011版)》在“实施建议”中指出:“汉语拼音教学要尽可能有趣味性,宜采用活动和游戏的形式,应与学说普通话、识字教学相结合,注意汉语拼音在现实语言生活中的运用。”这一建议给汉语拼音教学带来了一些新的变化:情境图与语境歌在教学中被充分利用,游戏与活动使原来相对枯燥的拼音课堂有了一些转变,教师教学时也能尝试采用拼音学习与学生现实生活相联系的方式。然而,上述汉语拼音教学依然不可避
【关键词】小学语文,习作单元,深度学习  统编教材习作单元的编排,是为了加大“习作在教科书中的分量”,使习作序列化,体现出鲜明的单元整体特征。然而,在教学实践中,教师对习作单元缺乏认识,仍然一课一课地教习作知识,学生习得的习作知识是碎片化的、僵化的,学生完成单元习作的过程,缺乏真切的实践与体验,属于浅层次的学习。此外,教师忽视学生的主体性,学生在被动接受和机械训练中,对写作渐渐失去了兴趣。北京师范
书名:历史与记忆:英美历史文化研究  作者:郭晶晶  出版社:东北师范大学出版社  出版时间:2018年  ISBN:9787568140614  定价:50元  英美文化与中国文化在思维习惯、表达方式上都有着较大的差异。因此,借助各种资料和工具学习、了解英美两国的历史文化、掌握英美社会的基本特点,成为留学人员、商务人士以及教育工作者进修之必需。郭晶晶著、东北师范大学出版社2018年出版的《历史与