APP下载

解决线阵CCD 大幅面扫描仪USB 传输图像失真的新方法*

2013-12-22骆才华叶玉堂刘娟秀贾宏宇别俊峰徐文涛

电子器件 2013年1期
关键词:传输方式批量数据量

骆才华,叶玉堂 ,刘 霖,刘娟秀,贾宏宇,王 平,别俊峰,徐文涛,郝 霞

(电子科技大学光电信息学院,成都610054)

随着人类进入数字信息时代,急需一种将前人保存在纸张上的珍贵财富直接转换为数字信息的设备,于是线阵CCD 大幅面扫描仪孕育而生。但是,由于其跨越光学设计、机械加工、软件工程、图像算法等多个学科,迄今为止,全部关键核心技术仍然只被丹麦Contex、日本Graphtec 等少数国外研究团队掌握,国内所使用的线阵CCD 的大幅面扫描仪全部进口,迄今为止处于空白状态[1-2]。

线阵CCD 大幅面扫描仪的各个系统中,数字图像数据的传输以其数据量大、传输精度要求高等特点,成为了研发中的一大技术难点[3]。高速USB 接口具有通用性强、成本低、软件开发周期短等优势,成为了线阵CCD 大幅面扫描仪图像传输的首选。高速USB 接口的批量传输方式(BULK方式)更是以支持错误重传等有优势满足了线阵CCD 大幅面扫描仪传输数据量大、精度高等要求[4]。但是,由于前端线阵CCD 传感器产生稳定的海量数据以及高速USB 批量传输方式传输优先级低,不能保证传输延迟时间的特点,导致了线阵CCD 大幅面扫描仪在数据传送中出现数据丢失,造成图像失真,如图1。

图1 是USB 传输模块传输0 ~255 连续数据时,计算机软件采集到的图像。图1 中图像平移的起始点如图2。图2(a)中标识线上方的第一行是图像发生平移的起始位置。该行左边边界和上面每行的边界是重合的如图2(b)。其右边边界和上方边界相比左移了4 个像素,如图2(c)。由于图像数据是按从左往右的顺序显示的,那么左边边界不变,右边边界左移说明:在图2(a)中标识线上方的一行中,图像数据至少丢失了4 个像素。

图1 传输图像数据时出现图像失真

图2 图像失真起始位置

1 基本原理及问题分析

1.1 高速USB 批量传输的间歇性和随机性

1.1.1 USB 批量传输的优先级低

USB 协议规定了高速USB 有4 种传输方式:控制传输、中断传输、同步传输、批量传输。这4 种传输方式中,批量传输以其支持错误重传机制,保证了大数据量的可靠传输,被大量应用在打印机、扫描仪中[5]。但是,批量传输方式本身也有其缺点:为了使发送的大量数据不阻塞总线,USB 协议赋予了批量传输最低的优先级。它会为其他3 种类型的传输做延迟,并且理论上延迟时间是无限的,只有当有可用的总线带宽时,批传送才发生[6]。与此同时,我们的计算机系统中使用了大量USB 外设,如鼠标、键盘等等。这些外设工作于各种传输模式上,直接跟批量传输设备竞争USB 总线资源,它们对用总线的使用情况将直接影响线阵CCD 大幅面扫描仪的传输带宽,造成了线阵CCD 大幅面扫描仪数据传输过程出现了大的停滞,如图3 所示。

图3 是线阵CCD 大幅面扫描仪向运行在实验用计算机(intel core i3 M330@2.13 GHz 处理器)上的数据采集程序传送图像数据时,测得的关键控制信号波形:full_n。当full_n=0 时,USB 接口芯片上的FIFO 处于满状态,USB 传输出现停滞。图3 中,在两次密集的批量传输之间USB 接口出现了长时间的停滞full_n_L。并且这个长时间的停滞时间是随机的,如图4 所示。

图3 full_n 实际波形图

图4 是full_n_L 时间折线图。横坐标表示按时间先后出现的full_n_L 的序号,纵坐标表示full_n_L持续时间(单位:μs),full_n_L 持续时间随机波动。

1.1.2 协议开销占用USB 总线时间

USB 的批量传输方式,是一种可靠的单向传输。采用握手协议正是其可靠性的体现,完成一次握手操作的过程叫做事务(Transaction)。一个事务由:令牌包、数据包、握手包构成,它们的流程如图5所示。一个事务中的各种数据占用USB 总线时间的分布如图6 所示。协议开销tProtocol_Overhead,是指事务中的令牌包,握手包以及数据包内除数据净负荷区以外的数据占用数据总线传输时间;数据位的填充位占用总线开销tBitStuffTime,它直接跟数据包中的有效数据量相关;主机控制器申请访问开销tHost_Delay,它与USB 主机控制器及计算机操作系统有关;数据传输时间tData,跟每个数据包中数据净负荷区的大小有关。tService_Overhead为完成一次数据传输需要的服务开销(不含有效数据),tBulk_Transaction为完成一个完整事务所消耗的总线时间[7-8]。

图5 USB 事务流程

图6 一个事务的USB 总线时间分配

根据式(2),总线上两次数据传输tData间必然存在一个时间间隙用于传输服务开销tService_Overhead,而tService_Overhead中的tHost_Delay是造成高速USB 批量传输方式多个事务间出现随机时间间隔的主要原因,该参数跟计算机操作系统环境和USB 总线控制控制器有关。图3 中除full_n_L 以外,full_n 的波形还出现了很多持续时间很短并且持续时间随机变化的低电平“毛刺”,它们很好的体现了tService_Overhead的存在。

1.2 数据采集量大且连续

线阵CCD 大幅面扫描仪的数据采集系统由机械走纸机构和线阵CCD 传感器组成。为了避免机械走纸机构和线阵CCD 传感器运行速度不匹配引起的图像拉伸或压缩失真的出现,它们的工作必须保持协调一致。同时,为了保证纸张在机械走纸机构上运动的稳定性,走纸机构通常以匀速方式运动[9]。鉴于以上两种原因,这就要求线阵CCD 传感器以固定的扫描速度工作即以固定的行频工作。线阵CCD 大幅面扫描仪数据采集系统的工作方式决定了它数据输出的连续性[10]。同时,线阵CCD 大幅面扫描仪产生的数据量特别大。设线阵CCD 大幅面扫描仪水平分辨率P(DPI),扫描宽度W(mm),与走纸机构匹配的行频f(Hz),l 为每个像素点的量化宽度,数据采集速度S(bit/s)

在扫描纸张为A0(841 mm×1 189 mm)幅面时,W=841 mm,P=600 DPI,f=1 200 Hz,l=8 bit,数据采集速度S 高达195.84 Mbit/s。

根据上述分析,线阵CCD 大幅面扫描仪前端数据采集具有数据量大、数据以特定频率稳定输出的特性。然而,后端的USB 数据传输却具有随机和间歇性。采集和传输系统的特点明显存在矛盾,如果不在上述两个系统间添加高效、高精度的缓存机制,前端数据很可能无法被及时传输。后边新采集的数据会覆盖没来得及传输的数据,造成原始图像数据的丢失、图像的失真。这个时候,无论前端线阵CCD 传感器驱动多么精确,后期处理算法多么优越,图像质量还是得不到保障。根据以上原因,笔者提出了基于写优先FIFO 结构的SRAM 缓存法。

2 实验结果与讨论

2.1 基于写优先FIFO 结构的SRAM 缓存法

由上述对线阵CCD 大幅面扫描仪USB 传输中图像失真机理的分析可知,图像数据丢失产生的根本原因是:USB 批量传输方式实时性不高、易受系统中其它USB 设备工作状态影响以及批量传输协议中数据传输的服务开销太大,进而导致在传输过程中出现了时间间歇full_n_L。同时,在full_n_L 时间内,线阵CCD 传感器仍以极高的速率往传输系统的缓存中写入,由于该缓存容量有限造成数据溢出最终导致了USB 图像传输的失真。因此,只要在USB 图像数据传输系统前端添加一种数据缓存机制,保证full_n_L时间段内系统能够将线阵CCD 传感器产生的数据NBlock充分缓存,就可以避免图像失真[11]。

设full_n_L 持续的时间内,线阵CCD 传感器积压的数据量的最大、最小值表示为NBlock_max、NBlock_min,数据采集速度表示为S(bit/s),传输停顿最大值表示为tmax,传输停顿最小值表示为tmin。根据式(1)

基于写优先FIFO 结构的SRAM 缓存法缓存器容量Nbuffer应该比在full_n_L 内积压的最大的数据量还大。

实际应用中发现:由于tmax受与线阵CCD 大幅面扫描仪配套的计算机的软硬件环境影响巨大,在某些条件下tmax达到了10 ms,NBlock_max高达1 958.4 kbit。所以,为了避免图像失真选择缓存器的容量应远大于计算结果。根据实际情况,项目组选择了32 Mbit 的SRAM 作为缓存器。

2.2 方法执行过程

基于写优先FIFO 结构的SRAM 缓存法流程图如图7 所示。行使能信号以固定频率驱动线阵CCD传感器工作,线阵CCD 传感器产生的海量数据由仲裁器写入到SRAM 中,同时,仲裁器在两次行使能的间歇,将读出SRAM 的数据并写入到FIFO 中。USB接口芯片会随时检测FIFO 的空标志位(rdempty),一旦非空就将FIFO 的数据传输给计算机采图程序。仲裁器在对SRAM 的操作过程中,赋予了写操作更高的优先级。仲裁器的工作流程如图8 所示,只要线阵CCD 传感器开始工作,必须暂停一切对SRAM 的其它操作,将其产生的一行数据(20. 4 kbyte)写到SRAM 中[12]。当线阵CCD 传感器暂停工作的时,检测FIFO 的空、满,一旦为非满状态时将SRAM 中数据高速读出到FIFO 直到FIFO 被写满为止,否则在这段时间暂停对SRAM 的操作。

图7 基于写优先FIFO 结构的SRAM 缓存系统框图

图8 仲裁器工作流程图

2.3 方法实验结果

经过基于写优先FIFO 结构的SRAM 缓存后,图像失真的现象得到了解决。在600 DPI 的分辨率下,图像传输稳定、未见图像失真。图9 为大幅面扫描仪整机,图10(a)、图10(b)分别为采用新方法前后的对比图。图10(a)中间位置,图像数据发生丢失,出现了图像左移的情况。图10(b)中图像完整,真实还原了图纸的本来面貌。

图9 线阵CCD 大幅面扫描仪

图10 大幅面扫描仪扫描图像处理前后对比图

3 结论

通过对线阵CCD 大幅面扫描仪USB 传输中图像失真原因的深入分析,并结合线阵CCD 大幅面扫描仪特点,提出了基于写优先FIFO 结构的SRAM缓存法,通过大量实验验证了该方法的可行性,解决了国内首台线阵CCD 大幅面扫描仪USB 传输中的图像失真问题。

测试结果表明:在600 DPI 的分辨率下,图像传输稳定、采图软件采集到的图像真实。项目组制作的线阵CCD 大幅面扫描仪在600 DPI 的分辨率下,行频达到1 200 Hz,USB 接口平均传输速度为256 Mbit/s,纸张扫描速度为5.08 cm/s,扫描一张A0 图纸需要约23 s。

[1] Kumpulainen T,Latokartano J,Vihinen J,et al. Scanner Test Pattern for Evaluation of Beam Manipulation Accuracy[C]//Assembly and Manufacturing(ISAM),2011 IEEE International Symposium on,2011,1-5.

[2] Fan Naiqiagn, Wang Guohui, Lu Yarong. Design and Implementation of Computerized Logging Ground Data Acquisition System Based on USB[J]. Instrument Technique and Sensor,2009,1(1):59-61.

[3] John Keithley L Difuntorum,Kristine Mari U Matutina,Al Jerome Mervyn Z Tong. A USB 2. 0 Processor Controller for an ARM7TDM-S Processor Implemented in FPGA[C]//TENCON 2011—2011 IEEE Region 10 Conference,2011:689-692.

[4] Zhang Ting,Jiang Li,Li Nan,et al. A Measurement and Control System Based on USB Bus for Prosthetic Hand[C]//International Conference on Mechatronics and Automation,2011:1321-1325.

[5] Hajime Masaoka,Toshihiro Ohigashi,Tohru Kondo,et al.Supporting USB Devices for the Global Migration[C]//10th Annual International Symposium on Applications and the Internet,2011:153-156.

[6] Alessandro Depari,Alessandra Flammini,Daniele Marioli,et al.USB Sensor Network for Industrial Applications[J].IEEE Transactions on Instrumentation and Measurement,2008,57(7):20-31.

[7] Cypress Semiconductor.EZ-USB FX2 Manual Technical Reference[S].San Jose,California:Cypress Semiconductor Press,2001:95-116.

[8] Compaq,HP,Intel,et al. USB 2. 0 Specification[EB/OL].http://www.usb.org,2000:63-65.

[9] Stache N C,Stollenwerk A,Gedicke J,et al.Automatic Calibration of a Scanner-Based Laser Welding System[J]. Journal of Laser Applications,2009,21:10-15.

[10] 岑家生,王青梅,罗晖,等.基于线阵CCD 的降水粒子探测高速数据采集系统[J].激光与红外,2012,42(6):674-675.

[11] 李晓坤,刘百玉,欧阳娴,等.基于FPGA 和SRAM 的智能点胶机控制系统设计[J].仪器仪表学报,2009,30(7):1379-1381.

[12] 武星星,刘金国.三线阵立体测绘相机时间系统优化与实时监测[J].光学精密工程,2012,20(5):1022-1030.

猜你喜欢

传输方式批量数据量
基于大数据量的初至层析成像算法优化
批量提交在配置分发中的应用
高刷新率不容易显示器需求与接口标准带宽
宽带信号采集与大数据量传输系统设计与研究
可穿戴式多通道传感系统功能需求分析及设计
基于分布式传感器的GIS局部放电在线监测实时数据传输方式的研究
在数控车床上批量钻铰孔类工件的实践
浅谈工程建设中的信息化发展与网络传输方式选择
道路监控系统图像数据传输方式探讨
基于AUTOIT3和VBA的POWERPOINT操作题自动批量批改