"); //-->
摘 要: 在图像压缩调试过程中,压缩数据在实时硬盘存储的基础上,还要与PC机连接进行效果评估。为了解决数据压缩板在通用串行接口(USB)高速数据传输中双重角色(主机/外设)的矛盾,本文采用具有OTG功能的USB芯片ISP1761实现了协议转换、主从自动切换控制以及上/下行高速数据传输。针对ISP1761支持PowerPC微处理器接口的高速性能,采用Xilinx公司的Virtex4系列FPGA芯片,通过其内嵌的PowerPC硬核处理器完成芯片初始化以及DMA数据传输控制。实现了对JPEG2000压缩后图像的45.5Mb/s上/下行有效数据传输,满足了实时存储和调试的要求。
关键词: FPGA;PowerPC;USB;OTG;数据传输
在测绘、遥感等诸多图像相关领域,需要压缩图像数据用以平衡数据量与传输带宽之间的矛盾。随着图像传感技术的进步以及对图像质量要求的提高,对不同设备中通用标准接口之间的数据传输有了更高的要求。通用串行接口(USB)的热插拔、高速特性使其成为各个系统数据高速连接的通用标准。选择USB接口进行数据传输的前提下,满足各种设备的小型化、低功耗要求,需要脱离体积较大的PC机来实现系统的嵌入式操作。为了解决图像压缩调试中压缩板传输数据的双重角色矛盾——直接硬盘存储中图像压缩板为主机(Host),高速USB硬盘为外设;电脑调试中PC机为主机,图像压缩板为外设(Peripheral)。本文采用具有USB OTG(On-the-Go)技术的协议芯片ISP1761来完成同一端口的双重操作,并且实现了自动切换。
1 OTG技术及ISP1761特性分析
USB OTG是USB2.0规范的补充,在兼容所有USB2.0特性的前提下,结合了对嵌入式应用的新特性,其中包括低功耗、更小的USB接头以及在同一个USB端口上实现主机和外设双重角色(OTG)的功能。OTG适用于在没有PC机(主设备)的情况下,实现从设备相互之间的对等连接。
USB2.0协议本身支持高达480Mb/s的高速数据传输,并且与USB1.1规范后向兼容,而后者仅支持全速12Mb/s和低速1.5Mb/s。在具有OTG技术的USB协议芯片中,Philips公司生产的芯片ISP1761不但在同一接口具有主机/外设双重功能(OTG),而且实现主机/外设的高速传输(支持480Mb/s)。
ISP1761采用低功耗设计,正常工作时Icc<100mA,便于嵌入式应用。
(1)接口形式:ISP1761是单片高速USB OTG控制器,配备了一个OTG接口和两个主机控制器接口,OTG接口可以通过控制线在主机/外设角色间随时转换,使得系统可以随时连接PC机和USB高速硬盘进行数据传输调试。
(2)数据传输:集成PLL锁相环获得稳定的传输采样,内部FIFO进行数据缓冲,支持DMA传输方式,支持主机通信协议HNP(Host Negotiation Protocol)和对话请求协议SRP(Session Request Protocol)技术,采用请求/应答机制进行快速数据交换。
(3)控制方面:采用通用处理器接口,可以方便地连接到各种CPU单元。特别是支持PowerPC RISC处理器接口,能够和Xilinx FPGA硬核直接相连,实现高速控制。
2 PowerPC系统结构及其ISP1761连接方法
Xilinx公司Virtex系列FPGA芯片广泛采用PowerPC作为硬核。PowerPC是32位,采用IBM′ PowerPC体系结构的嵌入式微处理器。基于嵌入式设计的PowerPC系统如图1所示(图中主要列出本系统所用部分)。从图1可以看出,PowerPC硬核通过设备控制寄存器总线DCR与内部总线桥连接,通过处理器局部总线PLB、片上外设总线OPB和各种外设接口连接。
PowerPC具有5阶段流水线:取指、译码、执行、写-回、装载-写回;分离的指令Cache和数据Cache,便于流水操作;
PowerPC硬核处理器与ISP1761连接操作示意图如图2所示。
内部可寻址的主机控制器缓冲存储器(即内部RAM)大小为63KB,包括传输描述和有效载荷PTD(Philips Transfer Descriptor)和payload两部分。PTD区域和payload区域都被分成三个部分:ISO(Isochronous)、INT(Interrupt)、ATL(Acknowledged Transfer List),可以进行如图2所示的分区管理。无论是与PowerPC还是与USB硬盘进行数据传输都需要访问ISP1761内部RAM,即数据必须通过PIO模式或DMA模式传输到PTD区域和payload区域才能进行协议转换等操作,具体区域需要由ISP1761内部的仲裁机构裁定。
因为ISP1761的初始化主要是对内部寄存器赋值,因此采用PIO模式。通过CS_N、WR_N、RD_N访问寄存器和存储器。当USB接口进行高速数据传输时,则采用DMA方式。通过DACK、WR_N、RD_N来访问。ISP1761的DMA传输长度支持1、4、8、16个字,在DMA传输开始时,DREQ有效。DMA访问时序如图3所示。
3 调试系统硬件实现以及工作过程
3.1 调试系统硬件组成
本系统实现的是测绘图像数据压缩以及USB接口的数据传输。如图4所示,由图像传感器获取的图像数据经过FIFO缓存后,经由FPGA进行JPEG2000标准下的图像压缩,压缩程序由Verilog HDL硬件描述语言实现,压缩后的数据流在PowerPC405硬核处理器的控制下,暂存到DDR RAM中,进行连续相关图像比较及其处理,最后将图像数据存储到高速USB硬盘中。但在调试过程中,需要对压缩算法进行验证和评估,即将需要存储到高速USB硬盘的数据流直接连接输入到PC机中,在PC机中进行数据显示、处理和识别等方面的评估。因此调试中要频繁地将同一个USB OTG高速接口在高速USB硬盘和PC机USB接口中调换。
设计中CCD传感器采用2200万像素(4008×5344)的超大分辨率全帧CCD图像传感器FTF4052M。FIFO采用IDT公司的IDT72V2113,容量为512K×9bit。FPGA采用Xilinx公司的Virtex4 FX12,它集成PowerPC405硬核处理器和MicroBlaze软核处理器,可以通过IP核方便地连接SRAM 和DDR SDRAM进行数据暂存或高速缓冲存储,DDR RAM采用HYB25D256160BT,硬核也可以针对ISP1761的预留PowerPC接口直接对其进行高速控制,其中JPEG2000压缩部分为自己编制的已做成用户自定义IP核,直接添加到PowerPC硬核处理器中。
3.2 PowerPC硬件配置流程
系统采用ISE EDK(Embedded Development Kit)中的BaseSystem BuilderWizard来快速构建基于PowerPC405的硬核处理系统。在XPS(Xilinx Platform Studio)平台下进行硬核配置。首先定义内部所用各种存储器(BRAM,DDR RAM)以及应用总线(PLB,OPB)和接口,之后添加JPEG2000的IP核,对用户IP核进行各种导入操作,包括总线形式选择、主从配置、分配地址空间、添加端口信号、将端口信号连接到FPGA管脚上,并且定义成外部管脚。软件工程设计主要包括:软件工作环境设置,对设备驱动进行调整,添加应用软件,自己编写的应用C固件程序添加到软件工程之中,最后产生位流文件。
3.3 OTG芯片控制流程
OTG引脚可以分别连接到PC机和高速USB硬盘,而OTG的主机/外设作用选择取决于ISP1761中的ID引脚,引脚值由连接到USB mini-AB插座上的插头类型决定。如果ID为低(mini-A插头),则为主机A-device;如果ID为高(mini-B插头),则为外围设备B-device。这样就实现了智能主从选择,方便随时改变硬件进行压缩调试。
ISP1761引脚VBUS开/关之间的时间(session)是交换数据过程。主机和外设都可以开始一个数据传输过程,在一个传输过程中主机的作用能够通过HNP在A、B设备中随时改变。如果主机开始一个数据传输,通过使能电荷泵来有效VBUS。外设检测到VBUS有效后,通过使能DP线上的上拉电阻确定自己外设地位。主机检测到远程上拉电阻,则也确定了自己的主机地位,主机就可以和外设进行通信。结束通信则通过无效VBUS来实现。
如果外设开始一个数据传输,必须通过数据线脉冲或者VBUS脉冲来初始化SRP。当主机检测到SRP事件,则有效VBUS(只有主机才能有效VBUS),这时就确定了自己的地位。SRP初始化过程如表1所示。主机对两件SRP事件有反应:数据线脉冲或VBUS脉冲。当用数据线脉冲时,ISP1761能够检测DP脉冲。这意味着仅为外围设备必须通过DP初始化数据线脉冲。
当主机通过 OTG描述符而检测到支持HNP的外设时,主机就会通过使用SetFeature(b_hnp_enable)命令使能HNP hand-off,之后进入悬空状态。外设信号就会通过无效自己的上拉电阻来获得主机地位,而主机则认可了自己的外设地位。此时,外设就作为主机来进行各种通信,直到外设结束通信,两者又返回各自状态。HNP是对话时用来在默认主机(A-device)和默认外设(B-device)之间传输主机控制。如果B-device想利用总线,就给A-device发送断开信号。这样,A-device就获得外设地位,B-device则获得主机地位。
通过将压缩后的协议转换前图像、读出高速USB硬盘中的图像、连接到主机USB接口采集的图像,三者对比后达到完全一致,验证了通过单片协议芯片ISP1761实现了USB OTG标准下的高速数据传输,实现了同一压缩板端口的上/下行数据调试。CCD传感器数据量为100Mb/s的情况下,采用JPEG2000标准对图像数据进行无损压缩,实测压缩率约为2.2:1,因此通过USB接口实现了约45.5Mb/s的上/下行(OTG)有效数据传输,远远超过USB低速、全速的传输速度,实现了真正意义上的高速数据传输。
参考文献
[1] ISP1761Hi-Speed Universal Serial Bus On-The-Go controller.www.nxp.com.
[2] ISP1761 Hi-Speed USB Host/On-The-Go Demo Board for BSQUARE DevIDP PXA255.www.nxp.com.
[3] 宋宇宁,周兆英,赵焕军,等.USB OTG扩展子板的实现,电子技术应用,2006,32(5):112-114.
[4] 魏春凤.基于USB接口的OTG应用技术开发,世界电子元器件,2005,(11):52-55.
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。