新闻  |   论坛  |   博客  |   在线研讨会
ARM7一VxWorKs的网络化实时彩色分析虚拟仪器
tvb2058 | 2007-12-17 14:53:23    阅读:1143   发布文章

特种光源、彩色显示等行业的基础是彩色的还原与传递,在光学计量领域属于光源的光度和色度计量范畴,色坐标和亮度因数是主要的参数之一。光度、色度测试系统的性能,在高清晰度数字电视的白场基准测试、高清晰度数字摄像机白平衡校准以及半导体光电二极管LED照明和全彩色显示的白场均匀性测试等领域发挥着基础性关键作用。
    人眼的视觉可以感受380nm~780nto范围内的光信号,但对不同波长光的敏感程度不同。l924年国际照明委员会CIE公布了2。视场明视觉光谱光视效率函数V(γ)[1]。仿真人眼亮度感受的光度探测器通常是由光电二极管PIN构成的,核心是利用滤色玻璃将PIN的光谱光视效率修正得与(V)尽可能地相似。人眼对色彩的感受来源于人眼视网膜上的3种锥体细胞,分别对应红红(R)、绿(G)、蓝(B)三种颜色。但RGB色度系统的色度函群在某些波段为负值,难于理解和计算,因此目前最常CIEl931 xyY坐标系统。其中Y代表亮度,xy分代表红色和绿色的色度,蓝色的色度是红色和绿色的色度补值,其光谱函数称为ClEl93l 2。视场标准观察者色度函数,分别用X(λ)、和z(λ)表示,其中y(λ)=V(λ),如图1所示。

    在彩色电视白场测试领域,通常采用由与图1 色度变换(I/V)构成集成化探头,而将A/D变换与色度计算等工作交给PC机处理,例如美国Klein公司的K5/10系列。利用PC软件技术,K5/10系列增加了频谱分析功能,可以分析O~100Hz内的电视及计算机显示器的“闪烁”,是CAl00/200系列所不能完成的。
    在本文的工作中,笔者设计制作了CSE808新型的彩色分析虚拟仪器,特点在于将虚拟仪器的概念扩展到通信系统层的资源共享。采用ARM7TDMI内核的三星4510B硬件通信系统以及Vxworks嵌入式软件实时操作系统,实现了3路16位并行20kHz采样率的光度色度数据采集,并采用100M以太网和TCP/IP协议传输数据,领先于美国Klein公司的K5/10系列彩色分析仪。预计该系统在“刷新频率”、“响应时间”等与显示器相关的瞬态光度色度计量测试领域具有重要意义,在航空闪光警示灯质量检定领域也具有重要应用价值。


1 CsE808彩色分析虚拟仪器的设计
1.1总体设计方案

    由于电视及显示器的帧频或刷新率一般在l00Hz以内,因此系统的总体设计目标是可以进行3路并行10kHz取样率、12位精度以上的实时彩色分析,如此的数据量采用传统的RS232串口(通常几十Kb/s)以及IEEE488(GPIB,通常几Mb/s)接口都不能保证实时性,必须采用更高带宽的探测器与虚拟仪器主机系统互连方案。一种当前普遍采用的方案是基于ISA/PcI接口的插卡式A/D,但模拟信号需要从现场到主机进行传输,距离受到很大限制。电视或显示器工厂需要生产线在线彩色分析系统,要求具有可扩展、可管理、远程、多探测系统并行工作等能力,因此采用了TCP/IP协议以及100M以太网的传输方案,以满足以上需求,但缺点是比较复杂。虚拟仪器概念的核心应该不仅仅局限于软件,而是扩展到更广义的资源共享。美国的NI公司提出“软件就是仪器",在本文中,提出“资源共享就是虚拟仪器”,并把这种思想应用到彩色分析虚拟仪器的系统互连设计上。具体而言,将比较复杂的TCP/IP协议以及100M以太网传输部分用通用的通信系统板来实现,具体采用的是目前比较成熟的ARM7TDMI内核的韩国三星4510B通信系统板,未来的工业级应用可以考虑移植到Atmel公司的系统上。这种深入到数据传输层面虚拟仪器方案的实现难点在于,数据采集系统与通用通信系统板的互连,笔者采用FPGA来完成接口转换。采集到的数据封装成TCP/IP包的过程由嵌入在通信系统板上的VxWorks实时操作系统实现。系统整体结构如图2所示。

    色度探测器是加色度滤色片的光电二极管PIN,输出信号为光电流,强度与PIN接收面上光的照度成正比。信号调理部分由两部分构成,首先是光电流经l/V变换为电压信号,然后再经过2级电压放大,由换档开关决定放大倍数。信号调理部分在保证30kHz带宽的情况下尽量减小噪声是设计的关键。由于是并行彩色分析,因此数据采集系统采用了3路16位A/D,为了尽量简化引脚引线,因此采用了串行输出的A/D。
1.2 FPGA模块
    FPGA模块的作用是将数据采集系统采集到的数据转移到4510B通信系统板中,具体采用的是Altera的ACEX系列的芯片EPlKl00。数据采集系统主要由3块串行输出的ADS7809构成,需要将数据线以及使能、中断、时钟等信号与FPGA相连。FPGA“串并转换”A/D数据后,存储在内部的双口SRAM中,供4510B读取。FPGA与4510B的通信是系统难点,以下详细介绍。
    ARM体系结构将存储器看作是从零地址开始字节的线性组台。从O字节到3字节放置第1个存储的字数据,从第4个字节到第7个字节放置第2个存储的字数据,依次排列。4510B可以根据设置的数据总线宽度自动把内部地址总线移位输出到外部地址总线,因此FPGA与4510B互连时,不需要根据存储器宽度来移位地址总线,即ADDR[0]总是接存储器地址的最低位即可。4510B这一特点以及与FPGA的连接方法如图3所示。

1.3基于VxWorks的TCP/IP数据封装
    45l0B的通信系统板可以实时完成把采集到数据进行TCP/IP协议封装的功能,需要采用嵌入式操作系统。我们采用了VxWorks操作系统,属于强实时系统。该系统提供支持ARM7TDMI内核的板级支持包以及TCP/IP工具包。下面是在4510B上配置VxWorks的方法。
    首先要调试VxWorks在4510B上的BSP,其中eonfigh是一个重要的配置文件。该文件中最需要关注的一部分配置就是对存储空间的配置。
    #defineROM BASE ADRS 0x01000000 /*Flash起始点?*/
    #defineROM TEXT ADRS 0x01000000 /*ROM的开始地址*/
    #define ROM SIZE 0x00100000 /*VxWorks占用的
    #define RAM LOW ADRS 0x00001000 */VxWorks~镜像进入点*/
    #define RAM HIGH ADRS 0x00100000 /*为ROM启动的
    RAM地址*/
    相应的,在MAKEFILE文件中对内存的设置要与上面相同。   
    ROM_TEXT ADRS=01000000#ROM entry address
    ROM WARM_ADRS=01000004#ROMwarmentry address
    ROM SIZE=00100000#numberofbytes ofROM space
    RAM_LOW ADRS=00001000#RAM text/data address(bootrom]
    RAM_HIGH_ADRS=00100000#RAMtext/data address(bootrom)
    在VxWorks系统中数据封装的方法如下。
    为了及时响应外部的数据读取请求,4510B的软件中采用中断处理方式读取FPGA中的A/D数据缓存。为了保障连续的采集和传输,对于这部分数据缓存采用“乒乓法”。待当前缓存区存满时,从中断处理程序中释放一个二进制信号量给上传任务,由上传任务负责TCP数据封装,并且数据存储的指针切换到另一块缓存区。VxWoks使用与BSD4.4 Socket兼容的TCP/IP网络协议栈。目此,基于BSD4.4 UNIX Socket的网络应用程序可以很方便的移植到VxWorks中来。对于VxWorks下的TCP/IP编程方法[3]这里不再详述。


2 PG端软件系统及实验结果

    由于采用了TCP/IP协议以及100M以太网的传输方案,符合国际标准,因此PC端软件系统的开发非常方便,本课题采用了美国NI公司的Labwindows/CVI来开发,它是基于标准C语言的虚拟仪器开发工具,提供了包括按钮、换档开关、示波器等在内的大量人机界面函数一以及包括快速傅立叶变换、均方差计算、数字滤波等在内的信号处理函数,大大简化了开发进程。在CSE808系统中,4510B通信系统板的IP地址为192.168.0198,作为TCP的Server端;主控PC的IP地址为192.168.0.188,作为TCP的Client端。图4显示的是测试得到的I一种CRT显示器的亮度和两个色度信号的瞬态波形。显示器设置的刷新频率是85Hz,CSE808系统的采集速率是通道16位并行20kHz。测试结果是三个通道的刷新频群分别是84.9Hz、85.lHz、85.0Hz,证明系统工作正常。

3 结论
    本论文设计制作了一种并行网络化实时彩色分析虚拟仪器。为了实现高速测试系统互联,本文采用了100M以太网和TCP/IP网络通信协议。设计思想的新颖之处是在网络通信层达到了资源共享,用通用的ARM7TDI内核的三星4510B通信系统板完成复杂的数据封装等网络通信工作,并且用VXWorks嵌入式操作系统增加系统的稳定性。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客