CN100468383C - 基于fpga技术的usb接口驱动装置 - Google Patents

基于fpga技术的usb接口驱动装置 Download PDF

Info

Publication number
CN100468383C
CN100468383C CNB2007100715146A CN200710071514A CN100468383C CN 100468383 C CN100468383 C CN 100468383C CN B2007100715146 A CNB2007100715146 A CN B2007100715146A CN 200710071514 A CN200710071514 A CN 200710071514A CN 100468383 C CN100468383 C CN 100468383C
Authority
CN
China
Prior art keywords
data
module
clock
output
usb interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2007100715146A
Other languages
English (en)
Other versions
CN101145146A (zh
Inventor
孟利民
罗佳波
周凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Tianjian Information Technology Development Co ltd
Zhejiang University of Technology ZJUT
Original Assignee
Hangzhou Tianjian Information Technology Development Co ltd
Zhejiang University of Technology ZJUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Tianjian Information Technology Development Co ltd, Zhejiang University of Technology ZJUT filed Critical Hangzhou Tianjian Information Technology Development Co ltd
Priority to CNB2007100715146A priority Critical patent/CN100468383C/zh
Publication of CN101145146A publication Critical patent/CN101145146A/zh
Application granted granted Critical
Publication of CN100468383C publication Critical patent/CN100468383C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Logic Circuits (AREA)

Abstract

一种基于FPGA技术的USB接口驱动装置,设置全局的复位端reset和外部时钟,外部时钟包括两个时钟域;USB接口驱动装置包括:数据产生模块,CRC检验模块,数据和CRC校验码的排序模块,并串转换模块,位填充模块,NRZI编码模块,数据输出模块。本发明提供一种高速数据传输、适用于实时数据采集场合的基于FPGA技术的USB接口驱动装置。

Description

基于FPGA技术的USB接口驱动装置
技术领域
本发明属于USB接口驱动装置。
背景技术
年来,随着互联网和通信技术的飞跃发展,人们也不再满足于只用简单的文字、声音进行交流,而更加倾向于使用图、文、声并茂的动画和多媒体进行交流,如视频会议、电子商务、远程医疗和远程监控等都是视频图像应用的一个热点。可以预见,二十一世纪将是视频图像广泛应用的世纪。但是由于视频图像本身具有庞大的数据量,给传输和存储带来了困难,从而极大的制约了视频图像应用的发展速度。例如,按CCIR 601建议,普通质量的电视信号数字视频的码率约为216Mb/s,而高清晰度电视HDTV则在1.2Gb/s以上,如果没有高效率的压缩技术,真是难以传输和存储。
鉴于以上原因,高效视频采集系统应用而生。视频采集是解决视频信息的获取问题,由于数字化信号的诸多优点,我们更愿意得到的是数字信号。数据采集主要包括模拟信号的获取,模拟信号的数字化,以及数字信号的必要处理。
当前市场上虽然出现了各种各样的视频采集板卡、视频采集系统,但均因其处理功能过于简单,工作环境要求度高,或系统性能不高,有些甚至由于硬件组件造型不当,导致系统总体配合差,出现瓶颈等原因,不能满足本系统的特殊需求。因此,必须自行设计新的视频采集系统。
本发明的目的就是设计一个基于FPGA(现场可编程门阵列)技术的视频信息采集系统,实现视频信息的采集、存储、显示和发送。基于FPGA的设计技术是发展迅速的一项技术。使用FPGA作为视频采集系统的核心控制处理部分,可以充分利用FPGA所具有的可编程、控制逻辑实现方式灵活的特点,使设计出的视频采集系统具有很强的通用性、灵活性和使用性.
对FPGA在视频采集系统硬件流程控制中的使用进行研究与实践,并且开发出具有自主知识产权的IP控制核,无疑会使我国逐渐摆脱对国外类似核心控制芯片的依赖,具有良好的经济核社会效益。
基于FPGA的视频采集系统的设计和实现,可以广泛地应用于视频监控、信息家电、智能小区、远程抄表等领域,而且经过进一步开发和完善,还可以应用于更广阔地领域。
视频采集系统对数据的处理是基于FPGA芯片来完成的,从FPGA芯片出来的数据是高速的,但是经过选用USB芯片之后出来的数据传输率就严重地降低了,这是非常可惜的。现阶段对于USB接口驱动的设计的实现,一般都是通过采用现成的USB芯片,根据芯片的特性来进行驱动程序设计。USB接口驱动采用现成的芯片进行设计,结构使FPGA控制芯片输出的高速数据再经过USB芯片之后,它的速度就明显变慢,无法满足实时的数据采集系统。
发明内容
为了克服的USB接口驱动装置的数据传输速度慢、不能适用于实时数据采集场合的不足,本发明提供一种高速数据传输、适用于实时数据采集场合的基于FPGA技术的USB接口驱动装置。
本发明解决其技术问题所采用的技术方案是:
一种基于FPGA技术的USB接口驱动装置,USB接口驱动装置设置全局的复位端reset和外部时钟,所述的外部时钟包括两个时钟域;所述的USB接口驱动装置包括:数据产生模块,用于当采集到reset的低电平时,产生1到20的20个数据;CRC(循环冗余码校验)检验模块,用于根据移位寄存器来实现,在一个时钟周期内,对对进来的8位并行数据进行了8次移位得到16位比特的CRC校验值;每一次移位进来8位中的一位数据,数据进来的顺序是从高位到低位;数据和CRC校验码的排序模块,用于把数据和CRC校验码同时输入到这个模块,进行排序后输出;添加同步字段和PID字段模块,用于在数据到来前,在数据前面加上80H,C3H两个8bit的头;并串转换模块,用于以输出时钟作为触发时钟,设置一个3bit取数计数器i,来一个时钟加1,当i计到7时自动回到0;当为0时从输入端取数据进行寄存,然后在每个时钟上升沿触发下,从低位到高位的顺序依次输出8个bit;位填充模块,用于将串行的数据存到RAM(随机存取存储器)中,当RAM中有数据放置时,开始对RAM中的数据输出,同时设置一个计数器对数据中的1进行计数,当读到的数据是1时,计数器加1;否则清零;NRZI编码模块,用于对输出的数据进行编码,当输出数据为1时,保持前一个数据的值一个时钟;当输出数据为0时,输出值跳变;数据输出模块,用于将编码后的数据输出。
所述的两个时钟域为1.5M和12M。
本发明的技术构思为:本发明设计的USB接口驱动是视频信息采集系统中的一部分,目的是实现基于FPGA技术的USB接口驱动,提高传输数据经过USB接口之后的传输速度。
对本视频采集系统中经过FPGA芯片处理完的视频数据进行了打包处理,把这些视频数据打成符合USB2.0协议的帧结构。
FPGA芯片处理完的视频数据DATA0包的打包过程,设置了一个全局的复位端和外部时钟,为了下载到FPGA芯片需要,在整个框架中自己添加了一个数据产生模块,用来代替数据输入端以供下载测试需要。整个框架包括CRC检验模块、数据和CRC校验码的排序模块、添加同步字段和PID字段模块、并串转换模块、位填充模块等。
本结构具有两个时钟域,1.5M和12M,因为NRZI编码后的数据是输出到USB总线上的,根据USB协议,视频数据在总线上传输用全速12M的就可以了,并串模块前的模块是1.5M时钟控制的,通过8倍频的关系正好将并串前后的数据同步。1.5M和12M时钟是通过外部24M频率的晶振分频得到的。
安排了一个全局复位端reset,用来告诉各个模块数据的到来,并开始对数据做相应的处理。数据产生模块、CRC检验模块和数据和CRC的排序模块是用1.5M的时钟控制的,都是用时钟的上升沿触发的。后面并串模块、位填充模块和编码模块是用12M时钟控制的,也是通过时钟的上升沿触发的。
在时钟的控制的,当采到reset的低电平,依次产生从1到20的20个数据,产生的数据经过CRC产生器模块进行CRC检验,同时产生的数据和产生的16位CRC校验码输入到数据和CRC帧排序模块,目的是把20个数据的CRC检验码放到第二十个数据后面;然后再经过帧产生模块,在数据之前加上同步和PID字段,这样一个包就完成。
为了下载调试的需要,所以编写了一个有规律输出20个数据的程序。在每一个时钟的上升沿的时刻,采到reset为的电平的时候,把寄存器都清零,将寄存器start拉高,表明要开始输出数据了。当reset的电平结束,算他人体为高时,依次输出1到20的数。当输出为20时,将输出端清零,并把start清零表示数据输出结束。
CRC检验是一个关键部分。由数据包结构可知,数据包采用16位的CRC校验位来验证发送的有效数据正确性。它验证的部分不包括同步字段和PID字段。16位的CRC字段的生成多项式为:G(X)=X16+X15+X2+1,这个为模式代表多项式为1000000000000101b。
根据移位寄存器来实现CRC校验的,相当于在一个时钟的周期内,对进来的8位并行数据进行了8次移位得到16位比特的CRC校验值;每一次移位进来8位中的一位数据,数据进来的顺序是从高位到低位的。要产生一个并行8位数据的16位CRC校验值,必须进行8次移位。
数据与CRC排序模块的功能是实现把二十个有效数据的CRC校验码放到第二十个数据后面,把数据和CRC校验码同时输入到这个模块,进行排序后输出。复位低电平后的一个时钟,数据到来,校验码比数据晚一个时钟到来,输出端先输出从2到21的数据,然后,输出校验位的第9位到第16位作为一个字节,再输出校验位的第1位到第8位作为一个字节。将CRC校验码这样输出,是因为在数据包中,在总线上数据是先输低位,再输高位,而校验码是从高位到低位地输出(参照数据包格式)。在下面介绍的并串转换模块中,是通过先输出低位,再输出高位而实现的,这样,校验位先在这里输出第9位到第16位作为一个字节,再输出校验位的第1位到第8位作为一个字节,从顶层来将,校验位是保持从高位到低位的输出的,是符合包格式的。
在数据包加同步头和PID字段模块中,实现在数据到来前,在数据前面加上80H,C3H两个8bit的头。
因为在USB总线上数据是串行的,所以要把模块中的8位并行数据转化成串行输出。串并模块实现:因为是8转1输出,所以输出时钟要比输入快8倍,在这里,以输出时钟作为触发时钟,设置一个3bit取数计数器i,来一个时钟加1,当i计到7时自动回到0;当为0时从输入端取数据进行寄存,然后在每个时钟上升沿触发下,从低位到高位的顺序依次输出8个bit;结合上面所述的CRC校验码,从并串模块输出后的CRC校验码,已经调整位高位到低位依次输出了。
串行数据包进行位填充和NRZI(倒转非归零)码编码模块完成的功能比较多,在这个模块中设置了一个8192bit的RAM,刚好存下一个数据包1024个字节,这里为了调试观察方便,如前所述,数据只取了20个,所以只用到24*8bit的存储空间。进行位填充会使输入跟输出的数据不等,造成速率不匹配问题,这也使这里设置一个RAM的目的。
在位填充功能模块中,先将串行的数据存到RAM中,当RAM中有数据放置时,开始对RAM中的数据输出,同时设置一个计数器对数据中的1进行计数,当读到的数据是1时,计数器加1;否则清零;当计数器计到6,说明当前输出的数据已经有6个连1了,之后在六个1后面插入一个零,同时计数器清零重新计数。
对RAM中输出的数据进行编码,当输出数据为1时,保持前一个数据的值一个时钟;当输出数据为0时,输出值跳变。
本发明的有益效果主要表现在:高速数据传输、适用于实时数据采集场合。
附图说明
图1是DATA0数据包打包整体框图。
图2是CRC校验逻辑图。
图3是模块的编译和测试过程图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图3,一种基于FPGA技术的USB接口驱动装置,USB接口驱动装置设置全局的复位端reset和外部时钟,所述的外部时钟包括两个时钟域;所述的USB接口驱动装置包括:数据产生模块,用于当采集到reset的低电平时,产生1到20的20个数据;CRC检验模块,用于根据移位寄存器来实现,在一个时钟周期内,对对进来的8位并行数据进行了8次移位得到16位比特的CRC校验值;每一次移位进来8位中的一位数据,数据进来的顺序是从高位到低位;数据和CRC校验码的排序模块,用于把数据和CRC校验码同时输入到这个模块,进行排序后输出;添加同步字段和PID字段模块,用于在数据到来前,在数据前面加上80H,C3H两个8bit的头;并串转换模块,用于以输出时钟作为触发时钟,设置一个3bit取数计数器i,来一个时钟加1,当i计到7时自动回到0;当为0时从输入端取数据进行寄存,然后在每个时钟上升沿触发下,从低位到高位的顺序依次输出8个bit;位填充模块,用于将串行的数据存到RAM中,当RAM中有数据放置时,开始对RAM中的数据输出,同时设置一个计数器对数据中的1进行计数,当读到的数据是1时,计数器加1;否则清零;NRZI编码模块,用于对输出的数据进行编码,当输出数据为1时,保持前一个数据的值一个时钟;当输出数据为0时,输出值跳变;数据输出模块,用于将编码后的数据输出。
所述的两个时钟域为1.5M和12M。
本实施例在通信系统实验板上下载、调试,并在逻辑分析仪上观看打包情况的,本人主要运用了通信替系统实验板上的Altera公司研发的FPGA芯片EP1K30TC144—3及其它元器件组成的硬件电路板。该硬件电路平面图如图3所示,在电路板的上端是电路板的电源部分,中间近似正方形的是FPGA芯片——EP1K30TC144—3,左端为一个连接电脑主机并口的下载调试口,右端插着白色管子的是连接到逻辑分析仪的管脚,下面一排pin8到pin17是可编程输入输出引脚,可供自己选择锁定管脚进行测试;pin46到pin49是键盘输入端,可供复位信号的输入。
调试工具:电路板、逻辑分析仪、下载线、直流稳压电源、QuartusII软件
调试步骤:
1.在右边口接上逻辑分析仪的输入管脚、用下载线连接板子和主机箱的并口。
2.接上直流稳压电源,这里用的电压是8V。
3.选择芯片。打开QuartusII中的项目,在菜单“Assignments”中打开“Device”,接下来跳出的对话框,在“Family”中选择“ACEX1K”,并在下面的芯片选择项中选择“EP1K30TC144-3”芯片,点“OK”就行。
4.引脚锁定。程序在下载之前首先要进行引脚锁定。打开QuartusII中的项目,在菜单“Assignments”中选择“Pins”项,会跳出一个对话框,在“Edit”下面会有信号名称可供选择,从中选择要锁定的信号管脚(如clk),根据程序调试需要锁定管脚,最后存盘。引脚锁定后,必须再编译一次,将引脚锁定信息编译进下载文件中。
5.选择编程模式和配置。为了将编译产生的下载文件(.sof)文件配置进FPGA中,在菜单“Tool”中,选择“Programmer”,弹出的编程窗口。在“Mode”栏中有三种编程模式,JTAG、Passive Serial、Active Serial,这里选择Passive Serial方式,选择配置文件,最后单击“Start”按钮。当“Progress”显示出100%时,表示编程成功。
6.设置编程器。单击图所示的编程窗上的“Hardware”按钮,弹出“Hardware Setup”对话框;选择此框的“Hardware setting”页,再双击此页中的选项“Byte BlasterII”,关闭对话框即可。
7.在逻辑分析仪上,要把从电路板上连接的管脚进行设定,就是在配置对话框里将用到的信号,打勾,不用的去掉勾就行了。
注意事项:
(1)上电后再开始下载。没上电就点击“Start”按钮,下载会出现Unableto reset device before configuration的错误。
(2)不能带电插拔,否则容易引起元器件的损环。
(3)引脚锁定后,必须再编译一次,才能将引脚锁定信息编译进下载文件中。锁引脚的时候时钟和复位信号的引脚也要锁定,时钟是55脚,复位是46脚。
(4)连到逻辑分析仪上的管脚也要锁定,把打完包8位并行的输出锁到以下几个输出口,连到分析仪上的信号除了自己要观察的信号以外,千万注意不要忘了时钟信号也要连接,把一个时钟信号锁到了17脚供逻辑分析仪使用。
调试结果:程序下载成功,实验板上的二极管指示灯亮,在逻辑分析仪的观察窗口上设定信号值为“C3”,这样窗口运行完后就会停在“C3”开头这一段,有利于捕捉帧头;然后按下运行按钮,在电路板上按一下46复位键,再看逻辑分析仪的观察窗口,这时就会看到打完包的整个包结构。

Claims (2)

1、一种基于FPGA技术的USB接口驱动装置,其特征在于:所述的USB接口驱动装置设置全局的复位端reset和外部时钟,所述的外部时钟包括两个时钟域;所述的USB接口驱动装置包括:
数据产生模块,用于当采集到reset的低电平时,产生1到20的20个数据;
CRC检验模块,用于根据移位寄存器来实现,在一个时钟周期内,对对进来的8位并行数据进行了8次移位得到16位比特的CRC校验值;每一次移位进来8位中的一位数据,数据进来的顺序是从高位到低位;数据和CRC校验码的排序模块,用于把二十个有效数据的CRC校验码放到第二十个数据后面,把数据和CRC校验码同时输入到这个模块,进行排序后输出;
添加同步字段和PID字段模块,用于在数据到来前,在数据前面加上80H,C3H两个8bit的头;
并串转换模块,用于以输出时钟作为触发时钟,设置一个3bit取数计数器i,来一个时钟加1,当i计到7时自动回到0;当为0时从输入端取数据进行寄存,然后在每个时钟上升沿触发下,从低位到高位的顺序依次输出8个bit;
位填充模块,用于将串行的数据存到RAM中,当RAM中有数据放置时,开始对RAM中的数据输出,同时设置一个计数器对数据中的1进行计数,当读到的数据是1时,计数器加1;否则清零;当计数器计到6,说明当前输出的数据已经有6个连1了,之后在六个1后面插入一个零,同时计数器清零重新计数;
NRZI编码模块,用于对输出的数据进行编码,当输出数据为1时,保持前一个数据的值一个时钟;当输出数据为0时,输出值跳变;
数据输出模块,用于将编码后的数据输出。
2、如权利要求1所述的基于FPGA技术的USB接口驱动装置,其特征在于:所述的两个时钟域为1.5M和12M。
CNB2007100715146A 2007-09-21 2007-09-21 基于fpga技术的usb接口驱动装置 Expired - Fee Related CN100468383C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100715146A CN100468383C (zh) 2007-09-21 2007-09-21 基于fpga技术的usb接口驱动装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100715146A CN100468383C (zh) 2007-09-21 2007-09-21 基于fpga技术的usb接口驱动装置

Publications (2)

Publication Number Publication Date
CN101145146A CN101145146A (zh) 2008-03-19
CN100468383C true CN100468383C (zh) 2009-03-11

Family

ID=39207675

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100715146A Expired - Fee Related CN100468383C (zh) 2007-09-21 2007-09-21 基于fpga技术的usb接口驱动装置

Country Status (1)

Country Link
CN (1) CN100468383C (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101754005B (zh) * 2008-12-15 2013-03-06 康佳集团股份有限公司 一种数字视频信号转换装置及数字视频信号传输系统
CN102904578B (zh) * 2011-07-28 2017-03-15 上海华虹集成电路有限责任公司 一种高速时钟域内的nrzi解码电路
CN103838691B (zh) * 2012-11-27 2018-08-14 中兴通讯股份有限公司 实现高速数据传输的方法及通用接口芯片
CN103281154B (zh) * 2012-12-24 2016-08-03 珠海拓普智能电气股份有限公司 并行处理数据采集与数据传输的数据采集卡系统
EP3637798A1 (en) * 2018-10-09 2020-04-15 Infineon Technologies AG Mems microphone
CN112612638A (zh) * 2020-12-29 2021-04-06 芯启源电子科技有限公司 基于usb3.2协议16比特循环冗余校验的硬件实现方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2700946Y (zh) * 2003-11-25 2005-05-18 浙江大学 实时信号处理的高速usb通讯接口装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2700946Y (zh) * 2003-11-25 2005-05-18 浙江大学 实时信号处理的高速usb通讯接口装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
USB在FPGA控制的高速数据采集系统中的应用. 倪明辉,周军,杨庚.计算机测量与控制,第14卷第2期. 2006 *
基于FPGA和USB2.0的高速数据采集系统. 吴振宇,常玉保,冯林.仪器仪表学报,第27卷第6期. 2006 *
基于USB总线的FPGA与PC机接口通信的实现. 张树春,刘成安.微计算机信息,第21卷第4期. 2005 *

Also Published As

Publication number Publication date
CN101145146A (zh) 2008-03-19

Similar Documents

Publication Publication Date Title
CN100468383C (zh) 基于fpga技术的usb接口驱动装置
CN101504692B (zh) 一种验证和测试片上系统的系统及方法
US7861070B2 (en) Trace compression method for debug and trace interface wherein differences of register contents between logically adjacent registers are packed and increases of program counter addresses are categorized
CN100337212C (zh) 逻辑验证系统及方法
CN104200846B (zh) 一种嵌入式prom测试系统及实现方法
CN105162437A (zh) 一种波形发生装置及方法
CN109891843A (zh) 用于可编程逻辑器件的时钟恢复和数据恢复
CN101373493A (zh) 一种多媒体存储网关专用soc芯片逻辑验证方法
CN202838306U (zh) 一种基于微处理器的fpga配置系统
CN103268299A (zh) 一种应用于PXI Express总线测试系统的通用数据压缩IP核
CN104298827A (zh) 一种基于Petri网的异步电路建模和VHDL实现方法
CN101329702A (zh) 一种满足SystemC语法的多核处理器的先进先出队列单元组
US7093224B2 (en) Model-based logic design
Sokolov et al. Clockless circuits and system synthesis
CN103607207B (zh) 一种即插即用的多接口数据压缩设备
CN109637312A (zh) 一种片上数字电子技术实验系统
Jusoh et al. An FPGA implementation of shift converter block technique on FIFO for RS232 to universal serial bus converter
CN101377794A (zh) 一种金融税控soc芯片逻辑验证系统
CN111710357B (zh) Mcu的mtp单元读写控制电路
Liao et al. FVP: A formal verification platform for SoC
Guo et al. A SPI interface module verification method based on UVM
CA2450627A1 (en) Method for generating electronic circuits
CN101354730B (zh) 一种仿真器芯片的仿真方法
Abbes et al. IP integration methodology for SoC design
CN109885850A (zh) 一种局部寄存器的生成方法及生成系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090311

Termination date: 20130921