摘 要:提出并设计了一种基于DSP 芯片TMS320DM642的手图像实时显示和嵌入式网络实现方案,介绍了各模块的硬件实施方案和软件配置方式。图像数据由DM642处理后通过视频接口输出,由编码芯片转换为NTSC格式的模拟信号,并在显示屏上实时显示;系统利用DM642的EMAC将图像数据传输至物理层芯片实现物理层功能;通过RJ-45接口,完成了DSP与PC之间高速网络数据传输。
关键词:DM642;视频接口;实时显示;网络
数字信号处理器DSP(Digital Signal Processor)是一种具有特殊结构的微处理器,具有较高的主频以及拥有强大且高效的硬件资源。在硬件结构方面,DSP具有更多的数据总线和地址总线,并行处理数据的能力更为强大,已广泛应用于图像处理、通信技术、网络设备、仪器仪表和家电等领域。液晶显示屏以其显示直观、便于操作等特点被用作各种便携式系统的显示终端。随着信息技术应用的日益普及,对嵌入式网络通信技术的需求越来越大,对可靠性及信息流量的要求也越来越高。以目前的技术,TCP/IP是被广泛支持的一种协议,在嵌入式设备中实现TCP/IP协议,可以很方便地将设备接入网络中,实现PC与DSP间大数据量的快速数据交互。
本文设计的非接触多光谱手成像系统显示与数据接口可将在非接触多光谱条件下采集到的手掌静脉、掌纹和掌形三模态图像显示在液晶显示屏上,并通过以太网接口以TCP/IP协议在PC和DSP之间进行通信。本设计为非接触手多模态信息融合识别技术搭建了理想的硬件平台。
1 系统总体硬件结构
构建合理准确的硬件结构能够使采集到的图像很好地呈现在显示屏上,并将图片数据通过以太网传到PC上,而且能提高识别的准确度和速度,从而提高系统的整体性能。本系统硬件结构由光源子系统、图像采集模块、DSP数据处理识别模块、语音提示模块以及液晶显示模块、以太网接口模块等组成。
图1为系统总体框图。此系统为非接触多光谱式手成像系统,被测试者水平自然伸出手掌即可进行采集。由GPIO口发出光源控制信号来控制470 nm的可见光蓝光和850 nm的近红外光源,以完成多光谱条件下对手部信息的采集。由图像传感器采集到图像数据存在SDRAM中;由EDMA将数据搬到视频输出口VP0的FIFO中输出至编码芯片;经过编码芯片对信号进行D/A转换,输出模拟信号并送入液晶屏,使手部信息在显示器上实时显示。同时,将采集到的手图像数据经EMAC,由物理层芯片(PHY)对数据进行处理后送至RJ45,最后在PC上完成注册等相关工作。
2 实时显示电路的设计
实时显示电路主要依靠DM642来完成。前端图像采集模块采集到的数据由DM642的VP口输出数字信号,经过编码芯片转换成模拟信号接显示屏进行显示。图2为系统实时显示电路的框图。
2.1 编码芯片SAA7121H初始化
编码芯片选用Philips公司一款较简单的D/A转换芯片SAA7121H,将数字视频信息转换成场频为50 Hz的全电视模拟信号。MP0~MP7的视频数据引脚输入数据为BT.656格式的数字视频信号,经过SAA7121H芯片内的数据管理模块分离出Y、Cb、Cr信号,然后送到片内相应的数/模转换模块,将数字视频信号转换为复合视频信号,最后由CVBS或者Y、C输出[1]。
本系统通过DM642的GP14和GP15模拟I2C总线时序,对SAA7121H的功能寄存器进行配置。将SAA7121H芯片引脚SA拉低,即设备地址为0x88。SAA7121H内部有128个寄存器:26H~2EH为状态寄存器,用于设置宽屏显示模式和奇偶场编码使能等;3AH~5FH为工作方式寄存器,控制色度信号增益;61H用于设置输出制式及每行像素个数;62H~66H用于设置载波实时控制使能及载波频率;6BH~6EH用于设置行/场同步信号的输出;75H用于调整同步信号;70H~74H、76H~79H、7EH~7FH与广播信号有关。
(1)在获得U、V信号时要考虑白电平到黑电平之间的范围,因为白电平与黑电平的差值定义了增益的大小,其中最暗的程度是0 IRE,最亮的程度是100 IRE。事实上画面中亮度低于7.5 IRE的地方基本上已经显示不出细节了,看上去就是一片黑色,将黑电平设为7.5 IRE时,就可以去掉一些信号成分,从而在一定程度上简化电路结构。本设计将黑电平设为7.5 IRE,则white to black=92.5 IRE(即白电平与黑电平之间的差值为92.5 IRE);同步脉冲通常为零值以下的40 IRE,因此白色信号的峰峰值(正最高值100 IRE 减去负最高值-40 IRE)应该等于140 IRE,即white to sync=140 IRE。
(2)地址为6BH的RCV端口控制寄存器。
PRCV2、PRCV1:判断RCV2、RCV1引脚有效极性,即输入是在上升沿还是下降沿时有效,本设计中采用上升沿有效。
ORCV2、ORCV1:通过置0或者1来控制RCV2、ORCV1用作输入还是输出引脚。本设计中该两位置0,RCV2、RCV1用作行场信号的输入引脚。
CBLF:判断RCV2是否提供水平同步信号。
TRCV2:水平同步信号是来自RCV1、RCV2。
SRCV11和SRCV10:定义RCV1的类型。
在本设计中,把TRCV2位设为1,因为行同步信号是由RCV2提供的。由于采用场同步输出的方式,所以SRCV11和SRCV10设置为00,该寄存器是0x20。
(3)通过设置奇偶场中的有效行来确定显示图片的大小,SAA7121H寄存器地址为7AH的First active line寄存器和地址为7CH的MSB vertical寄存器中的第4位FAL8决定第一个有效行的位置;地址为7BH的Last active line寄存器和地址为7CH的MSB vertical寄存器中的第6位LAL8决定最后一个有效行的位置。
通过配置完SAA7121H寄存器,将输入视频BT.656格式的数字信号转换成为NTSC视频制式,扫描方式为隔行扫描,图像大小为640×480,使其输出满足本设计的要求。
2.2 VP口与编码芯片SAA7121H硬件连接
TMS320DM642的视频口亦可配置为视频输出口[2],通过视频编码芯片把BT.656格式的视频数据转化为NTSC制式的视频信号。SAA7121H的8条数据线MP[7:0]与VPORT的10根数据线中的高8位依次对应连接VPORT0_D[9:2];SAA7121H的输入时钟信号LLC的频率为27 MHz,引脚LCC与VPORT的VP0_CLK0相连,控制VPORT的数据显示节奏;SAA7121H的控制信号RCV1和RCV2与VPORT的VPORT1_CTL1、VPORT1_CTL0连接。图3为显示接口电路硬件连接图。
2.3 液晶显示模块
显示器主要用于显示身份识别的结果以及手成像过程的实时显示,最终使人机界面融为一体。要使显示屏正确显示图像以及识别结果,在使用前需要对液晶显示模块进行初始化的操作。初始化内容主要包括选择数据的传输接口(VGA接口或A/V接口)、显示器的亮度调整、工作和显示窗口大小的设定等。本设计中采用A/V数据接口,显示模式调为NTSC制式,宽屏显示。
3 以太网数据接口
选择用以太网接口来实现数据传输功能。DM642内部集成了增强型网络存取控制器(EMAC),但没有提供物理层接口,所以需要外接一片物理层芯片(PHY)完成物理层功能,从而实现网络操作和数据交互等功能。图4所示为以太网接口部分整体框图。
3.2 物理层芯片LXT971ALC
由于DM642内部没有提供物理层接口,所以外接一片物理层芯片LXT971ALC实现物理层操作功能。LXT971ALC是Intel公司推出的网络通信接口电路,它符合IEEE标准,直接支持10 Mb/s和100 Mb/s双绞线应用。该电路提供的MII接口能很好地符合10/100 MACs,支持全双工操作[4],在全双工模式下,可以同时实现发送和接收[5]。
根据IEEE802.3协议,100 Mb/s以太网物理层分为3个功能子层,分别为:物理编码子层(PCS)、物理介质连接子层(PMA)和物理介质相关子层(PMD)。物理层芯片LXT971ALC实现了以上各层的功能,芯片的硬件功能框图如图6所示。
3.3 EMAC与物理层芯片LXT971ALC硬件连接
由于EMAC没有集成网口的物理层,因此,必须与外部的物理层和链路层芯片组成网口传输硬件电路。在LXT971ALC与网口RJ-45之间使用网络隔离变压器,主要有两个作用:(1)传输数据,它把PHY送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到不同电平的连接网线的另外一端;(2)隔离网线连接的不同网络设备间的不同电平,以防止不同电压通过网线传输损坏设备。除此之外,网络隔离变压器还能对设备起到一定的防雷保护作用。
当DM642有数据需要发送时,首先通过MTXEN引脚使能TX_EN信号,然后通过DM642的EDMA搬移待发数据,从DM642的SDRAM中,通过发送总线MTXD[3:0]传输到LXT971ALC内,经LXT971ALC内部逻辑,将封装数据发送到以太网上。发送时钟TX_CLK由LXT971A产生。当发送过程有冲突产生时,冲突检测信号COL置高,状态指示信号CRS置高,DM642收到冲突信息并进行相应的处理,以保证数据传输按照网络协议正常工作。当DM642接收数据时,RX_DV数据接收端在数据有效时置高,提示DM642按照LTX971ALC产生的时钟RX_CLK从数据接收总线MRXD[3:0]上接收数据。当数据接收发生错误时,出错信号MRXER置高,随后DM642按照与PHY的协议进行处理。MDIO模块的时钟信号MDCLK和数据信号MDIO用于LXT971ALC芯片控制参数的写入和读取。EMAC/MDIO与LTX971ALC的硬件连接如图7所示。
3.4 数据分包
本设计主要是在DM642和PHY之间实现TCP/IP传输协议。TCP/IP通常被认为是一个4层协议系统,包括链路层、网络层、传输层、应用层。传输层上的协议主要是传输控制协议 TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram Protocol)。两种协议的主要区别如表1所示。
通过分析,本设计中在DM642与PC之间的通信采用UDP协议。由以太网的物理特性确定数据帧的长度必须在46~1 500 B之间,1 500 B被称为链路层的MTU(最大传输单元),即网络层IP数据报的长度限制。因为IP数据报的首部为20 B,UDP数据报的首部8 B,所以UDP数据报的数据区最大长度为1 472 B。这1 472 B就是可以使用的字节数。当发送的UDP数据大于1 472 B时,发送方IP层就需要分片,把数据报分成若干片,使每一片都小于MTU。
具体设计中要根据传输的数据量大小来决定分多少次传输,即需要多少个UDP发送包。因为本设计是要用网络来传输图像数据,发送的图像为640×480点阵的256色的灰度图像,图像大小为307 200 B,而UDP每个数据包大小不能超过1 472 B,所以一幅图像分成200个数据包传输,前219个数据包中图像数据部分长度为1 400 B,第220个数据包中图像数据部分长度为600 B,不足1 400 B的部分补充0。
4 语音模块
语言模块主要负责对操作者进行功能及操作提示。采用WT588D-U语音芯片作为主控核心,利用电脑通过USB接口将事先编辑好的语音片断下载到语音模块中[6]。本设计的音频输出为PWM驱动扬声器,控制模式选为一线串口模式,即用一根数据线发送数据,通过不同的占空比发送不同的数据。可以实现控制语音播放、停止、音量调节和直接触发语音等功能。在发送数据时,直接发送地址数据便可触发播放语音。高电平与低电平数据占空比1:3即代表数据位0,高电平与低电平数据位占空比为3:1代表数据位1[7],如图8所示。
5 结果与分析
本文介绍了在TMS320DM642嵌入式硬件平台上实现手图像实时显示以及利用网络进行视频传输的系统设计过程,实物如图9所示。实践表明,该系统完全可以实现实时显示和数据传输的功能,而且性能稳定。通过嵌入相应的融合处理和识别算法,可以完成对用户的身份识别。
参考文献
[1] Philips Semiconductor.SAA7121 digital video encoder(Con DENC)[Z].1997.
[2] TMS320C64x DSP video port/VCXO interpolated control (VIC) port reference guide[EB/OL].(2007-06-11)[2013-10-14].http://www.ti.com.cn.
[3] TMS320C6000 DSP EMAC_MDIO module reference guide[EB/OL].(2004-03-xx)[2013-10-14].http://www.ti.com.cn.
[4] Intel.LXT971A single-port 10/100 Mbps PHY transceiver[EB/OL].(2005-10-25)[2013-10-14].http://www.intel.com.
[5] 王晖,周巧娣,章雪挺,等.基于LWIP的海洋数据采集与传输系统[J].电子技术应用,2012,38(18):26-29.
[6] 汤永华,苑玮琦.基于6416和FPGA的手部三模态识别装置设计与实现[J].电子技术应用,2012,38(10):15-18.
[7] 广州唯创电子有限公司.WT588D 语音芯片使用资料[EB/OL].(2012-10-18)[2013-10-14].http://www.w1999c.com/UploadFiles/201096102114349.pdf.