基于CPLD/FPGA的USB读写控制器
- 格式:doc
- 大小:207.00 KB
- 文档页数:5
基于CPLD的USB下载电缆设计随着片上系统(,System on Chip)时代的到来,包括复杂可编程规律器件(,Complex ProgrammableLogic Device)和现场可编程门阵列(,Field Pro-grammable Gate Array)的可编程规律器件(具有在系统可再编程的独特优点),应用越来越广泛。
这给用于可编程规律器件编程的下载电缆提出了更高的要求。
本文讨论基于IEEE1149.1标准的U5SB下载接口的设计及实现。
针对公司的FPGA器件Cy-clone,通过分析它的边界扫描测试结构和各种JTAG 命令,讨论它的编程过程和编程特点,并提出设计计划。
在接口电路硬件设计中,选用FTDI公司的控制芯片FT245BM,实现USB物理层和链路层协议的解析;Altera公司的可编程规律器件EPM7064实现接口规律。
与传统的基于PC并口的下载电缆相比,本设计的USB下载接口电路具有支持热插拔、体积小、便于携带、降低对PC硬件损害、编程速度快等显然优点。
目前已开发的USB下载线普通需要在主机端另行设计软件来控制与下载线及目标器件之间的通信和数据传送;但是这样不仅繁琐,而且可能因为PC机操作系统的不同而影响兼容性。
本文讨沦的USB下载线能在Altera公司的II开发环境下挺直用法,无须在主机端另行设计通信软件。
1 系统结构及工作原理接口电路的整体结构框图1所示。
因为USB下载电路涉及了IEEE1149.1标准和USB协议,所以接口电路主要包含两大部分。
一部分是USB接口,它衔接主机和可编程规律器件,主要功能是举行USB和并行I/O 口之间的数据格式转换,用USB控制芯片实现。
另一部分是JTAG接口,它衔接USB控制芯片和需要编程的规律器件,主要功能是举行并行I /O口和JTAG之间数据的转换,转换规律通过对可编程规律器件举行设计来实现。
其他还包括一些须要的时钟电路和转换电路。
从主机传来的USB数据,由USB控制芯片转换为8位并行数据,经数据送到CPLD的可编程I/O引脚。
基于CPLD的USB下载线设计学生姓名学号专业名称电子科学与技术指导教师姓名申请学位级别学位授予单位论文提交日期摘要随着片上系统时代的到来,包括复杂可编程逻辑器件和现场可编程门阵列的可编程逻辑器件,应用越来越广泛。
USBblaster的使用也显的越来越有必要。
与传统的并口、串口下载电缆相比,USBblaster在下载速度和灵活性上都有很大优势。
而且由于其结构相对简单,所以它的体积较小,容易携带。
USBblaster所用到的芯片价格便宜,容易被广大用户接受使用。
本文所设计的USBblaster硬件主要分为两部分,即USB控制芯片及CPLD 器件。
USB控制芯片将主机发送给CPLD器件的数据转化为8位并行数据,CPLD 器件再将其转化为JTAG时序,发送给外设。
软件方面,软件主要完成的功能是将USB时序转化成JTAG时序。
CPLD应用状态机的原理,将CPLD与USB 控制芯片之间的数据传输,分为接受状态机和发送状态机两个状态,它们的功能是控制如何接受和发送数据。
经实验证明,在下载速度上USBblaster下载FPGA 配置程序是ByteblasterII 的6 倍。
而且由于USBblaster采用USB接口模式,可以更好的适应现在计算机的发展.。
关键字:CPLD ,USB,状态机ABSTRUCTAlong with the System on Chip time arrival,including CPLD and FPGA,the application is more and more widespread。
With the parallel port and serial port download cable compared, USB blaster has great advantages in download speed and flexibility。
And because of simple structure, it's small and easy to carry. A lot of users can accept USB blaster easily, because that the chips which the USB blaster used are cheapThere are two main parts in hardware。
㊀㊀文章编号:1009-2552(2019)02-0116-05㊀㊀DOI:10 13274/j cnki hdzj 2019 02 026基于FPGA的USBPD控制器设计与实现张烨晨ꎬ刘有耀ꎬ崔㊀盼(西安邮电大学电子工程学院ꎬ西安710061)摘㊀要:USBPD是目前市场上主流的快充技术ꎬ在嵌入式系统中集成USBType ̄C接口与USBPD技术是必然的发展趋势ꎬ文中采用自顶向下的模块化方法设计一种基于PIC微处理器的USBPD控制器ꎬ详细介绍了USBPD控制器发送机㊁接收机和状态机的设计ꎮ使用FPGA仿真器㊁USBPD协议测试仪和示波器作为验证平台ꎬ经实测ꎬ表明控制器发送和接收数据过程均符合USBPD数据传输标准ꎮ该USBPD控制器减小了硬件电路面积ꎬ具有成本低㊁易扩展的优点ꎬ可广泛应用于USBPD快速充电系统设计中ꎮ关键词:USBType ̄CꎻUSBPD控制器ꎻPIC微处理器ꎻFPGA中图分类号:TN492㊀㊀文献标识码:ADesignandimplementationofUSBPDcontrollerbasedonFPGAZHANGYe ̄chenꎬLIUYou ̄yaoꎬCUIPan(SchoolofElectronicEngineeringꎬXi anUniversityofPostsandTelecommunicationꎬXi an710061ꎬChina)Abstract:USBPDisthemainstreamfast ̄chargingtechnologyonthemarket.IntegratingUSBType ̄CinterfaceandUSBPDtechnologyinembeddedsystemsistheinevitabletrend.Atop ̄downmodularapproachisusedtodesignaPIC ̄basedmicroprocessor.ThisarticlepresentsdetailsofthedesignoftheUSBPDcontrollertransmitterꎬreceiverandstatemachine.UsingtheFPGAemulatorꎬUSBPDprotocoltesterandoscilloscopeastheverificationplatformꎬtheresultsoftestsshowthatallthesendingandreceivingofdataisinaccordancewiththeUSBPDdatatransmissionstandard.TheUSBPDcontrollerreducescircuitareaofhardwareꎬwiththeadvantagesoflowcostandeasyexpansionꎬwhichcanbewidelyusedinthedesignoftheUSBPDfast ̄chargingsystem.Keywords:USBType ̄CꎻUSBPDControllerꎻPICMicroprocessorꎻFPGA收稿日期:2018-10-10作者简介:张烨晨(1993-)ꎬ男ꎬ硕士研究生ꎬ研究方向为电路与系统ꎮ0㊀引言USBType ̄C[1]接口具有体积更小㊁正反可插㊁供电更强㊁快速高效和兼容性佳等优点ꎬ在消费类电子产品接口市场中得到了广泛应用[2]ꎮ与传统的USB接口相比ꎬ最大的吸引点在于USBType ̄C接口重新定义了一条CC线ꎬUSB电力传输(UniversalSerialBusPowerDeliveryꎬUSBPD)协议就是基于CC线实现的ꎬ与Type ̄C接口的结合可通过单根线缆提供更灵活的电力和数据传输ꎬ实现USB功能的最大化[3]ꎬ因此USBPD是USBType ̄C接口的灵魂所在ꎮ随着智能手机的飞速发展ꎬ设备的续航能力已成为用户使用体验上的最大痛点[4]ꎮ在锂电池技术没有太大的突破下ꎬ通过增加手机充电功率ꎬ减少手机充电所需等待的时间ꎬ就是一种改善续航的 曲线救国 方案ꎮUSBType ̄C接口和USBPD的结合很好地契合了这一方案的需求ꎮ自从Cypress推出了全球首款USBPD控制器芯片以来ꎬ各大芯片公司纷纷抢夺市场ꎮ目前国内能够自主研发USBPD控制器芯片的公司屈指可数ꎬ因此研究USBPD控制器不仅可以掌握核心的技术ꎬ还可以创造可观的经济效益ꎮ本文的USBPD控制器基于PIC微处611理器实现ꎬ并利用FPGA平台进行验证ꎮ1㊀USBPD控制器架构USBPD控制器主要包括PD发送机㊁PD接收机和发送接收波特率控制单元ꎮUSBPD控制器架构如图1所示ꎬ本设计中采用自顶向下模块化的设计方法ꎬ使用Verilog硬件描述语言建立模型ꎬUSBPD控制器主要是负责数据的发送㊁接收以及协议处理ꎮ图1㊀USBPD控制器架构PD发送机的任务是接收来自协议层的初始数据包ꎬ然后在物理层按照USBPD协议规定的消息格式给初始数据包添加前导码㊁SOP㊁CRC32计算和EOPꎬ对数据包各部分(除前导码之外)进行4B5B编码ꎬ最后对数据包进行BMC编码ꎬ组成一组完整的数据包经CC信道发送到外部接收端[5]ꎮPD接收机的任务是接收CC信道上来自外部发送端的数据包ꎬ对其进行BMC解码ꎬ检测SOP包ꎬ进行5B4B译码接收到的数据包(包括CRC32)ꎬ最后检测EOP并进行CRC32校验ꎮ如果CRC32校验有效ꎬ向协议层发送数据ꎻ如果CRC32校验无效ꎬ丢失接收到的数据包[6]ꎮ在PD波特率控制单元中对发送和接收时间分别设定不同波特率进行数据发送和接收ꎮ2㊀USBPD控制器硬件设计2.1㊀波特率控制单元设计数据发送和接收波特率示意图如图2所示ꎮ本设计中采用MCT0和MCPR0作为发送和接收波特率控制ꎬ分别设定不同波特率进行数据发送和接收ꎮCC信道上的标准位速率为300kHzꎮ波特率由MCPR0决定ꎬ如系统时钟为20MHzꎬMCPR0=20MHz/300kHz-1=66ꎮ采样波特率由MCTCON寄存器中MSAMPLE[5ʒ0]决定ꎬ其计算公式为20MHz/300kHz/4=16ꎮ采样波特率是由MCT0S计数ꎬ当MCT0S与MSAMPLE[5ʒ0]相等时ꎬ标志位SCNT_SYNC置1说明第一次采样完成ꎬ并且BMCR_SCNT自加1ꎬ重复此过程ꎬ直至MCT0与MCPR0相等时ꎬBMCR_SCNT会从3重置为0ꎬ说明对一个位采样完成ꎮ图2㊀波特率示意图2.2㊀发送机模块设计发送机的设计总体框图如图3所示ꎬPDTX_STATE和MC_STATE分别是发射状态机和BMC编码状态机ꎬ前者主要是对数据进行组包ꎬ后者是对组包的数据进行BMC编码ꎮ图3㊀发送机总体框图首先ꎬ物理层接收来自协议层的初始数据包(Header和Data)ꎬ为其添加前导码㊁SOP㊁CRC32计算和EOP部分ꎮ将完整的数据包发送至DATA_TRANS模块ꎬ将数据包中的Header和Data依次传入CRC32模块中进行CRC32计算ꎬ将计算出的结果又返回至DATA_TRANS模块ꎮ其次ꎬSOP㊁Head ̄er㊁Data㊁CRC32计算值和EOP都进入4B5B模块进行编码ꎮ同时PDTX_STATE状态机模块对输入的数据选择性的处理组成完整的数据包并输出ꎮ最后ꎬ将数据包中的所有比特依次传入MC_STATE状态机模块进行BMC编码ꎬ编码后的数据会回传至PDTX_STATE状态机模块中ꎬ最后的数据包从PDTX_DATA输出至CC信道ꎮ①CRC32计算模块为了防止协议层的数据包(Header和Data)在传递过程中受到损坏或者丢失ꎬ因此对数据包的Header以及Data部分进行了CRC32计算ꎬ起到了711保护数据的作用ꎮ②4B5B编码模块本设计中对整个数据包(除了前导码之外)进行4B5B编码ꎬ将数据包以8比特为一组传至4B5B编码模块ꎬ编码后的数据存放在BMC_THBUF[4ʒ0]和BMC_TLBUF[4ʒ0]寄存器中ꎮ③发送状态机模块如图4所示ꎬ发送机在没有使能的情况下一直处于TX_IDLE状态ꎬ一旦使能打开ꎬ说明协议层有数据传入ꎮ当LOADEN0和LOADEN1同时为1时ꎬ发送状态机处于TX_WAIT状态ꎬ等待数据到来ꎮTX_SYNC是同步状态ꎬ用来判断是否存在延迟0的个数ꎬ如果没有延迟0的个数ꎬ将进入TX_OK状态说明发送完成ꎻ如果有延迟0的个数ꎬ将进入TX_DLY状态ꎬ若DLY_OK为0时ꎬDLY_CNT就会递减ꎬ直至DLY_CNT的值为0ꎬDLY_OK标志位会自动置1ꎬ此刻进入TX_OK状态说明数据发送完成ꎮ图4㊀PD发送状态机TXBUF[9ʒ0]寄存器中存放的数据高位在前低位在后ꎬ逐位发送且低位在前高位在后ꎬTXBUF[9ʒ0]在发送数据过程中时ꎬPDTXIF会置0ꎬ且BM ̄CTH[4ʒ0]和BMCTL[4ʒ0]寄存器被锁存ꎬ无法写入数据ꎮ当TXBUF[9ʒ0]数据发送完成ꎬPDTXIF会自动置1ꎮTXBUF[9ʒ0]发送数据时处于TX_BUF状态ꎬ当数据在发送过程中TX_CNT会递减且TX_OK标志位为0ꎬ直至TX_CNT减到1时ꎬ说明数据发送完成ꎬTX_OK标志位自动置1并进入TX_OK状态ꎮ若发送缓冲区标志位PDTXBF为1ꎬ说明发送缓冲区正在发送且处于TX_BUF状态ꎬ若发送缓冲区标志位PDTXBF为0ꎬ说明发送缓冲区发送完成且处于TX_OK状态ꎮ④BMC编码模块双向符号编码(BiphaseMarkCodingꎬBMC)是用于传递USBPD信息的一种编码方式ꎮ这种方式采用专用DC连接ꎬ通过CC线来标识[6]ꎮ在BMC中ꎬ每个位时间开始(UI)都有一次转换ꎬ并且在发送1时在UI的中间会有第二个转换ꎮBMC能进行有效的DC平衡(每个1都是DC平衡的ꎬ并且2个连续的0也是DC平衡的ꎬ不考虑1的反转次数)ꎮBMC的编码方式原理图如图5所示ꎮ图5㊀BMC编码原理如图6所示ꎬMC_00和MC_11表示0对应的BMC编码状态ꎬMC_01和MC_10表示1对应的BMC编码状态ꎮ本设计中是通过对TX_BUF状态下每一位数据进行BMC编码ꎬ状态机初始状态是MC_00ꎬ是因为发送端初始为低电平ꎮBMC编码后的信号必须满足CC信道传输的要求ꎬ会在发送每位数据中间进行一次检测ꎮ处于MC_00状态ꎬPDTX_DATA发送0ꎻ处于MC_11状态ꎬPDTX_DA ̄TA发送1ꎻ处于MC_01状态ꎬ当BMCR_SCNT为00时ꎬPDTX_DATA发送0ꎬ当BMCR_SCNT为10时ꎬPDTX_DATA发送1ꎻ处于MC_10状态ꎬ当BMCR_SCNT为00时ꎬPDTX_DATA发送1ꎬ当BMCR_SCNT为10时ꎬPDTX_DATA发送0ꎮ当MCT0与MCPR0相等且BMCR_SCNT为11时ꎬ说明一个数据BMC编码且发送完成ꎮ2.3㊀接收机模块设计接收机的设计总体框图如图7所示ꎮ图中PDRX_STATE是接收状态机ꎬ主要是对接收到的数据包进行解包ꎮ首先ꎬ对来自CC信道的输入数据进行了BMC解码ꎬ对解码后的数据进行倒序高位在前低位在后ꎬ同时根据来自状态机PDRX_STATE以及PD接收标811图6㊀BMC编码状态机图7㊀接收机总体框图志状态位ꎬ接收并解码各个部分的数据ꎮ其次ꎬ对数据进行5B4B解码ꎮ最后将5B4B解码后的数据发送到CRC32中计算新的CRC32计算值ꎬ将新旧CRC32计算值对比ꎬ若相同ꎬ说明数据包正确ꎬ将其传输至接收机的协议层ꎬ若不同ꎬ说明数据包错误ꎬ将其丢弃掉ꎮ①BMC解码模块接收机通过Type ̄C接口的CC信道接收来自发射机的编码数据ꎬ因为在CC信道上传递的数据都需要BMC编码ꎬ所以接收机要对接收到的数据进行BMC解码[6]ꎮ本设计中我们对CC信道上接收到的数据BMCR_CCDAT进行采样ꎬ当BMCR_SCNT为01且SCNT_SYNC为1时ꎬ将BMCR_CCDAT的数据传给BMCR_SDAT[0]ꎬ当BMCR_SCNT为11且SCNT_SYNC为1时ꎬ将BMCR_CCDAT的数据传给BMCR_SDAT[1]ꎬ根据采样波特率对接收到的每一比特进行两次采样ꎬ然后两次采样的结果进行异或运算ꎬ异或的结果即就是BMC解码的数据ꎬ每接收完1比特ꎬ用MCTSYN_EN作为结束标志位ꎮ这样就对前导码㊁SOP㊁Header㊁Data以及EOP解码完成ꎮ②5B4B解码模块将经过BMC解码后的Header㊁Data和CRC32数据存入BMC_RLBUF[4ʒ0]和BMC_RHBUF[4ʒ0]进行5B4B解码ꎬ最后的原始数据以8比特一组从BMCR5T4寄存器输出ꎮ③接收状态机模块图8㊀接收机状态图如图8所示ꎬ接收机在没有使能的情况下一直处于IDLE状态ꎬ一旦使能打开ꎬ说明外部有数据传入ꎮ首先进入WAIT状态ꎬ等待接收数据ꎬ当BMCR_SYNC[0]为0且BMCR_SYNC[1]为1时进入SFIRST状态ꎮ当BMCR_SYNC[0]为1且BMCR_SYNC[1]为0时进入接收前导码状态ꎬ同时Pream ̄ble_cnt[5ʒ0]作为前导码的计数器ꎬ为了准确无误的接收到前导码ꎬ对BMC解码后的前导码进行检测ꎬ当满足条件后Preamble_cnt[5ʒ0]会自加1ꎬ并且在Preamble_cnt[5ʒ0]计数到63时说明前导码接收完成ꎬSYNC64_FLAG标志位会置1ꎮ然后进入SYN1状态ꎬ检测并接收完SOP中第一个SYNC时SYNC1_FLAG标志位会置1ꎬ必须用软件对SYNC1_FLAG标志位清零ꎮ为了简化接收机的设计ꎬ其余三个SYNC或RST代码都在DATA状态中ꎬ并且用BMCRCNT[2ʒ0]作为计数器ꎬ当检测到SOP中第二个SYNC时SYNC1_FLAG会置1ꎬ然后再用软件清零ꎮ直到检测并接收完SOP中第四个SYNC时才对SOP检测完成ꎮ在Header和Data接收完成之911后ꎬDATA_FLAG标志位会置1ꎬ并且会用软件对其清零ꎮ最后ꎬEOP_FLAG标志位为1时说明EOP接收完成ꎬ跳转至IDLE状态ꎮ当接收数据发生错误时ꎬ也会返回到IDLE状态ꎮ④CRC32计算模块在数据进行5B4B解码之后ꎬ将得到的4比特输出数据传输至CRC32计算模块中进行CRC32计算ꎬ计算得到的结果与接收到的CRC32进行对比ꎬ若两者值相等ꎬ把接收到的数据包传输至协议层ꎬ若两者值不相等ꎬ丢掉接收到的数据包ꎮ3㊀结果验证USBPD控制器挂接在嵌入式系统中ꎬ采用Al ̄terQuartusII工具综合出门级网表电路ꎬ选用AlterCycloneIVEP4CE6E22C8NFPGA仿真器以及USBPD(POWER ̄Z)协议测试仪和示波器作为验证平台ꎮUSBPD控制器模块采用PIC系统时钟20MHzꎬ确保CC信道上位速率的正确性ꎬ数据来自协议层ꎬ本文中数据由软件产生并且生成HEX文件烧录至仿真器中ꎮ验证平台如图9所示ꎮ图9㊀FPGA验证平台为检验USBPD控制器的数据传输是否符合USBPD协议标准ꎬ使用数字示波器采样CC传输信道的波形进行验证ꎮPD协议测试仪可作为用户端(吸端)ꎬ将其设置为Monitor模式ꎬ在系统上电之后ꎬ仿真器(源端)检测到有设备插入ꎬ会将自身的供电能力传输给用户端(吸端)ꎮ通过示波器对Type ̄C的CC线进行捕获ꎬ如图10所示ꎮ第一个数据包是源端提供给接吸端的5V/3A供电能力包(Source_Capability命令)ꎬ是来自协议层的数据(Header和Data) 111a0001912c 进入物理层后ꎬ添加前导码㊁SOP㊁CRC32计算和EOP形成一组完整的数据包ꎮ第二个数据包是吸端成功接收到源端的数据后判定其符合USBPD协议规范ꎬ并且返回GoodCRC控制命令ꎬ在源端成功接收到GoodCRC命令之后会将PC0的电平拉高ꎬ此通信过程说明USBPD控制器设计满足要求ꎮ图10㊀CC通道数据包采样4㊀结束语本文研究了USBPD协议中的消息格式与消息类型以及通信交互机制ꎮ基于此设计并实现了一种基于PIC微处理器的USBPD控制器ꎬ对各个模块的设计进行VCS+Verdi的功能仿真ꎬ并且经过FP ̄GA平台验证ꎬ验证结果表明PIC微处理器加载USBPD驱动程序可以实现PD数据正确收发ꎮUSBPD控制器硬件电路实现简单ꎬ在提升系统性能的同时降低了成本ꎬ且具有极大的扩展性ꎬ可根据后期的需求对软件进行修改ꎮ为了进一步研究ꎬ后期工作将实现USBPD快速充电智能管理系统ꎮ参考文献:[1]俞德军.基于USBTYPE ̄C协议的大功率智能电源技术研究[D].成都:电子科技大学ꎬ2018.[2]阮颐ꎬ宋清亮ꎬ王甲ꎬ等.USBType ̄C与PD技术概述与应用[J].集成电路应用ꎬ2017ꎬ34(4):31-36.[3]李勇.USBPD在移动设备快速充电中的新兴应用[J].电子产品世界ꎬ2018ꎬ25(9):27-30.[4]惠惠.支持快充协议的充电接口芯片XD9523的研究与设计[D].西安:西安电子科技大学ꎬ2017.[5]黄勇华.USBPD协议中VDM消息的实现[D].大连:大连理工大学ꎬ2016.[6]李生晖.基于Type_C接口的USB_PD协议的设计与实现[D].西安:西安电子科技大学ꎬ2017.责任编辑:梁毅菲021。
收稿日期:2019年11月16日,修回日期:2019年12月19日作者简介:牛雨萌,女,硕士研究生,研究方向:集成电路系统设计。
焦继业,男,高级工程师,研究方向:集成电路系统设计。
李晨,女,硕士研究生,研究方向:嵌入式系统开发。
∗1引言目前市场上新发布的主流手机机型,已全面开始使用USB Type-C [1]接口,且飞利浦、乐视等厂商已经推出USB Type-C 接口的数字耳机,USB Type-C 在消费类电子市场中得到了广泛应用[2]。
相比于传统USB 接口[3],最大的不同在于USB Type-C 接口中新定义了一条CC 线,USB PD [4]协议就是基于USB Type-C 接口中的CC 线实现的,它是一种主从单线通讯协议,不仅是用于实现快速充电的协议,实际上,USB PD 是USB Type-C 的灵魂所在。
它与USB Type-C 接口的结合可支持高达20V/5A 的标准电能传输,利用协议中的VDM [5]消息建立Type-C 替代模式的连接,可实现DisplayPort [6~7]、HDMI [8]等高速数据传输,具有良好的应用前景[9]。
本文设计并实现了一种USB PD 控制器,完成了PD 数据包的正确发送、接收及校验,并利用FP ⁃GA 进行验证[10]。
FPGA (Field-Programmable Gate Array ),即现场可编程门阵列,具有丰富的可编程逻辑单元、嵌入式块RAM 、可编程输入输出单元等硬件资源,可以在其内部灵活实现各种数字电路设计。
因此,采用FPGA 技术进行验证,可以快速修改代码中的错误,为后续的IC 设计提供正确保障。
基于FPGA 的USB PD 控制器的设计与实现∗牛雨萌焦继业李晨(西安邮电大学电子工程学院西安710121)摘要USB PD 协议可以使USB Type-C 接口集数据、电能、视频传输于一体,其核心点是通过PD 控制器来控制USBType-C 接口中CC 线上的数据通信。
基于FPGA的USB2.0控制器设计摘要介绍了一种用设计20功能控制器的方法,详术了其原理和设计思想,并在上予以实现。
关键词在视频存储和图像宽带领域中,经常遇到实时高速数据传输的要求。
2000年4月,由、、、、、等公司共同制订的20传输协议,其速度远远超过了目前使用1394接口进行视频传输的400,达到了480;而且具有即插即用的、范文先生网收集整理可进行菊花链式的级联通过进行外围扩展、可串连多达127个设备等优点。
应用该协议可支持实时语音、音频和视频数据的传输。
本文针对高速数据传输需求,根据20的协议规范,利用语言实现符合该协议的功能控制器,在视频压解系统中使数据在与外设之间高速传输。
如图1所示由视频采集的原始视频数据,在公司生产的1300专用视频处理器中压缩后,通过控制器送至机。
机的整个通过控制器传输到1300,解压后发送至视频。
1控制器结构原理20控制器结构框图如图2所示。
控制器主要由两个部分组成,其一为与外设的接口,另一个是内部协议层逻辑。
内部存储器仲裁器实现对内部和外部总线对存储器访问之间的仲裁。
则实现的数据和控制。
接口有三种一种是与微控制器之间的功能接口;一种是与单口同步静态存储器之间的接口;另外一种是与物理层之间的接口。
这里符合规范定义。
2控制器实现控制器接口的信号框图如图3所示。
存储器采用标准的单口,其信号接口由32位数据线_、15位地址线_及读写信号_和_组成,系统所需的容量为215×32=128。
而与微控制器之间的接口信号包括32位数据线、18位地址线以及请求和响应信号_和_。
由于要支持到128,需要17位地址线,另外还需要一根地址线来选通和控制器内部的寄存器,总共需要18根地址线[170]。
定义如下____第18位地址[17]为高时选择缓冲存储器,否则选择内部寄存器。
地址[162]直接用于存储器的地址。
21接口接口信号包括与发送数据相关的信号、等,与接收数据相关的信号、、等以及16位双向数据线。
Vol.23No.1安徽工业大学学报第23卷第1期January2006J.of Anhui University of Technology2006年1月文章编号:1671-7872(200601-0076-04基于FPG A的U SB接口读写设计周芳(南京航空航天大学信息科学与技术学院,江苏南京210016摘要:介绍了一种用FPG A实现U SB接口读写的设计方法。
着重分析主循环,中断服务处理器和D12命令接口等几个结构模块的设计。
在X i l i nx I SE软件平台上,验证了读写模块的V er i l og H D L语言代码。
关键词:U SB;FPG A;PD I U SBD12;V er i l og H D L中图分类号:TN402文献标识码:BD esi gn ofU SB I nt er f ace R ead-W r i t e Based on FPG AZHOU Fang(Col l ege of I nf or m at i on Sci ence&Technol ogy,N anj i ng U ni ver s i t y of A er onaut i cs&A s t r onaut i cs,N anj i ng210016, Chi naAbstract:A way t o des i gn U SB i nt er f ace R ead-W r i t e bas ed on FPG A i s i nt r oduced.M ai n Loop,I nt er r upt Ser vi ce Pr ocessorand D12Com m and I nt er f ace,et c ar e anal yzed and des i gned,and r eal i z ed by V er i l og H D L i n X i l i nx I SE. Key words:U ni ver s alSer i alBus;FPG A;PD I U SBD12;V er i l og H D L引言U SB(U ni ver s alSer i alBus就是通用串行总线,是近年来应用在PC领域的新型接口技术。
76 Microcontrollers &Embedded Systems 2011年第6期www.mesnet.com.cn 基于CPLD/FPGA的USB读写控制器肖小康,张东,贾慧强(武汉大学物理科学与技术学院,武汉430072)引 言随着计算机科技的发展,无纸办公日益成为各单位日常办公的主要形式。
而随着USB存储设备日益广泛的使用,数据泄漏的危害也越来越严重。
因此在单位内部对USB存储设备的操作权限进行控制是很有必要的。
本设计可将不同的USB存储设备(包括安全存储设备和普通存储设备)通过不同的接口接入到主机上,同时对主机和设备间传输的数据进行提取,分析和拦截。
其应用范围比较广泛,为了方便介绍,本文将其作为USB存储设备管理系统的一部分,根据具体的应用来介绍控制器的设计原理。
读写控制器可应用在对PC机与安全存储设备和普通存储设备的数据共享管理上。
其中,PC机的数据要求被保护,安全设备的使用权限被严格控制,不会泄漏数据;而普通设备则没有采取任何安全措施,很有可能向外泄漏数据,比如通用的U盘。
控制器的主要功能是通过不同的接口把两种USB存储设备区分开来,实时监测PC机和普通设备间的数据,当检测到PC机向普通设备写入数据包时,对其强行破坏,防止数据泄漏。
1 硬件原理系统的结构框图如图1所示。
集线器芯片将上游一路USB总线分为两路:一路直接通过专用的USB接口与安全存储设备连接,另一路通过读写控制器和普通存储设备连接。
读写控制器采用CPLD、USB转发器以及外围电路实现集线器和普通存储设备的连接。
在CPLD中设计逻辑电路实现对USB转发器传输方向的控制,并对数据进行分析和拦截,以破坏从PC机向普通USB存储设备传输的数据,防止泄漏。
图1 系统结构框图集线器采用的是带有4个下游端口的GL850G。
其端口传输的是USB总线的差分信号,故将其上游端口直接接PC机,下游端口接安全USB存储设备或读写控制器。
基于CPLD/FPGA的USB读写控制器引言随着计算机科技的发展,无纸办公日益成为各单位日常办公的主要形式。
而随着USB 存储设备日益广泛的使用,数据泄漏的危害也越来越严重。
因此在单位内部对USB 存储设备的操作权限进行控制是很有必要的。
本设计可将不同的USB 存储设备(包括安全存储设备和普通存储设备)通过不同的接口接入到主机上,同时对主机和设备问传输的数据进行提取,分析和拦截。
其应用范围比较广泛,为了方便介绍,本文将其作为USB 存储设备管理系统的一部分,根据具体的应用来介绍控制器的设计原理。
读写控制器可应用在对PC机与安全存储设备和普通存储设备的数据共享管理上。
其中,PC 机的数据要求被保护,安全设备的使用权限被严格控制,不会泄漏数据;而普通设备则没有采取任何安全措施,很有可能向外泄漏数据,比如通用的U 盘。
控制器的主要功能是通过不同的接口把两种USB 存储设备区分开来,实时监测PC 机和普通设备间的数据,当检测到PC 机向普通设备写入数据包时,对其强行破坏,防止数据泄漏。
1 硬件原理系统的结构框图如图1 所示。
集线器芯片将上游一路USB 总线分为两路:一路直接通过专用的USB 接口与安全存储设备连接,另一路通过读写控制器和普通存储设备连接。
读写控制器采用CPLD、USB 转发器以及外围电路实现集线器和普通存储设备的连接。
在CPLD 中设计逻辑电路实现对USB 转发器传输方向的控制,并对数据进行分析和拦截,以破坏从PC 机向普通USB 存储设备传输的数据,防止泄漏。
集线器采用的是带有4 个下游端口的GL850G。
其端口传输的是USB 总线的差分信号,故将其上游端口直接接PC 机,下游端口接安全USB 存储设备或读写控制器。
读写控制器是由1 片CPLD 和2 片USB 转发器及其外围电路组。
基于FPGA的USB接口可信平台模块设计与实现随着信息技术的发展,基于FPGA的USB接口可信平台模块也越来越受到广泛的关注。
本文将介绍这种模块的基本原理、设计与实现过程,并给出三个实际案例。
一、基于FPGA的USB接口可信平台模块的原理基于FPGA的USB接口可信平台模块是一种集成了许多功能的芯片,用于数据传输、解密、加密、认证等多种计算机安全任务。
其主要原理为:通过FPGA对数据进行加解密和认证,并通过USB接口实现数据的传输。
模块内部具有丰富的控制和状态监测,能够实现可信计算所需的关键功能。
二、基于FPGA的USB接口可信平台模块的设计与实现过程在设计基于FPGA的USB接口可信平台模块时,首先要明确设计要求和目标,例如所要求的接口类型、处理速度、功耗、硬件成本等。
其次,需选取相应的芯片和开发工具,根据开发工具的提示,进行硬件和软件的开发。
在开发过程中,需要特别注意芯片的时序设计、电路连接、数据流控制等方面的问题,以保证模块能够正常工作并提供高性能。
三、实际案例1、基于Lattice XP2-5 FPGA的USB接口可信平台模块该模块主要用于数字信息安全领域,能够实现高速数据的加解密和认证。
其主要特点为:小型化设计、高性能、低功耗、易于集成和应用。
该模块提供了标准的USB 2.0接口,可直接连接到PC或其他设备。
2、基于Xilinx Spartan-6 FPGA的USB接口可信平台模块该模块主要用于智能安全设备、存储加密设备等领域,具有较高的安全性和可靠性。
该模块支持USB 2.0/3.0接口,可实现高速数据传输和多种加解密算法。
其设计还考虑了能耗、体积、成本等问题,具有较好的实用性。
3、基于Altera Cyclone V FPGA的USB接口可信平台模块该模块是一种高性能、低功耗、易于扩展和应用的可信计算平台。
它提供了丰富的接口和功能,包括USB接口、加解密加速器、随机数发生器、GPIO等。
基于CPLD/FPGA的USB读写控制器
时间:2011-06-27 11:30:10 作者:肖小康,张东,贾慧强武汉大学引言
随着计算机科技的发展,无纸办公日益成为各单位日常办公的主要形式。
而随着USB存储设备日益广泛的使用,数据泄漏的危害也越来越严重。
因此在单位内部对USB存储设备的操作权限进行控制是很有必要的。
本设计可将不同的USB存储设备(包括安全存储设备和普通存储设备)通过不同的接口接入到主机上,同时对主机和设备问传输的数据进行提取,分析和拦截。
其应用范围比较广泛,为了方便介绍,本文将其作为USB存储设备管理系统的一部分,根据具体的应用来介绍控制器的设计原理。
读写控制器可应用在对PC机与安全存储设备和普通存储设备的数据共享管理上。
其中,PC机的数据要求被保护,安全设备的使用权限被严格控制,不会泄漏数据;而普通设备则没有采取任何安全措施,很有可能向外泄漏数据,比如通用的U盘。
控制器的主要功能是通过不同的接口把两种USB存储设备区分开来,实时监测PC机和普通设备间的数据,当检测到PC机向普通设备写入数据包时,对其强行破坏,防止数据泄漏。
1 硬件原理
系统的结构框图如图1所示。
集线器芯片将上游一路USB总线分为两路:一路直接通过专用的USB接口与安全存储设备连接,另一路通过读写控制器和普通存储设备连接。
读写控制器采用CPLD、USB转发器以及外围电路实现集线器和普通存储设备的连接。
在CPLD中设计逻辑电路实现对USB转发器传输方向的控制,并对数据进行分析和拦截,以破坏从PC机向普通USB存储设备传输的数据,防止泄漏。
集线器采用的是带有4个下游端口的GL850G。
其端口传输的是USB总线的差分信号,故将其上游端口直接接PC机,下游端口接安全USB存储设备或读写控制器。
读写控制器是由1片CPLD和2片USB转发器及其外围电路组成。
CPLD采用的是Altera公司的EPM3512。
它具有10000个可用的门、512个宏单元、208个可用的I/O引脚,调试和升级简便,开发十分灵活。
市场上关于USB转接的芯片很多,本文设计的读写控制器要求功能简单、性能稳定,因此USB转发器采用TI 公司的TUSB1106,既满足设计的要求,也不存在资源浪费。
该芯片的详细介绍见参考文献。
其中VP0、VM0引脚由CPLD驱动。
VP、VM和RCV输人到CPLD中。
TUSB1106和CPLD的接口电路如图2所示。
2 CPLD中的读写控制电路
CPLD中的读写控制电路包括时钟提取、包识别、不归零解码、状态控制、CBW包识别和数据流控制等模块,如图3所示。
时钟提取部分见参考文献,包识别和不归零解码部分见参考文献。
下面详细介绍状态控制、CBW包识别和数据流控制3个模块。
2.1 状态控制模块
因为IJSB总线是半双工的,所以CPLD要控制总线数据的方向,即通过OE信号来控制TUSB1106是接收总线数据还是驱动总线。
总线上所有的传输事务都始于令牌包。
令牌包由主机发送,指明本次事务处理过程的含义,包括数据的传输方向、设备的地址及端点号等信息。
在本模块中,通过对PID的检测可得到每个包的种类,控制状态机在初始状态、主机发送数据、设备发送数据、主机发送握手包和设备发送握手包等几个状态间跳转,从而控制其他模块的状态。
下面为状态
机的部分代码:
可以看出,当令牌包是OUT包(PID为8'hE1)或SETUP包(PID为8'h2D)时,数据包由主机发往设备,握手包由设备返回给主机;如果令牌包是IN包(PID为8'h69)时,则数据包由设备发给主机,握手包由主机返回给设备。
在全速模式下,只可能有4种令牌包,除了这3种包外就只可能是SOF包,而该包没有后续的数据包和握手包,因此状态机仍为初始状态。
如果一次传输事务出错,没有数据包或握手包,则主机和设备会通过超时来判断是否出错,而不会持续等待。
在CPLD中,超时信号和系统复位信号相与之后作为本模块的复位信号。
2.2 CBW包识别和数据流控制模块
USB Mass Storage Device在完成枚举之后就进入到仅批量传输模式。
在仅批量传输协议中数据传输分为命令、数据和状态3个阶段。
主机发送的命令被封装成CBW(Command Block Wrapper)包在命令阶段发送,以定义要操作的命令以及要传输的数据方向和长度。
CBW的前4个字节是标志位,第15个字节是操作代码。
在本设计中,借助序列识别的思想识别出写命令的CBW,并在接下来的数据阶段将标志位CBW_flag 置位为0,使数据流控制模块截断从主机发往设备的数据包。
下面为状态机的部分代码:
可以看出,只有在检测到CBW包中的写命令(操作代码是8h2A和8hAA)时才将CBW_flg置0,其余状态都为1。
数据流控制模块完成的工作比较简单,主要有3个:
①在系统复位有效或失效时控制转发器模拟拔下或插入的过程;
②根据当前的传输方向提取总线数据以供分析;
③cbw_flg无效时,将上游端口的VP和VM直接赋值给下游端口的VP0
和VM0,同样将下游端口的VP和VM赋给上游端口的VP0和VM0,否则将上游端口的VM强制置0,使传输过程失败以阻止数据从主机向普通存储设备传送数据。
3 实验结果
控制器完全不干涉主机和安全USB存储设备间的数据传输。
而将普通USB存储设备通过控制器接到PC 机上时,能正常完成除写之外的所有操作。
当向USB存储设备中写入数据(包括新建、粘贴、删除、写入和修改文件)时,系统弹出图4所示的对话框,操作无法完成。
结语
本文针对信息安全系统设计了一种对USB存储设备的读写控制器。
该控制器包括一个与主机连接的上游端口,以及安全存储设备专用和普通存储设备通用两种下游端口。
对安全存储设备使用的硬件接口进行异化,以防止普通存储设备通过该口接入;普通存储设备采用普通的USB A型口连接。
控制器不干预主机和安全存储设备的数据交换,能够破坏PC机写入普通存储设备上的数据包,从而防止了PC机上的数据通过普通存储设备外泄。