基于FPGA的视觉电生理图像刺激系统的设计*

2012-04-24 00:53朱伟芳赵晓明
传感技术学报 2012年2期
关键词:棋盘显示器串口

陈 骥,朱伟芳,赵晓明,刘 磊

(重庆大学生物工程学院,重庆400044)

当视网膜受到光的照射或图像刺激时,首先在视感受器内发生光化和光电反应,然后产生感受器电位,感受器电位经双极细胞等的传递使神经节细胞产生脉冲信号[1],此信号经视神经视路传至大脑最后在枕叶的视皮质区形成电位。视觉电生理检查是对青光眼、眼底病、弱视、色觉障碍等眼科疾病的早期诊断、视功能情况以及疗效评估的重要检测手段[2]。传统的视觉电生理图像信号发生器主要有两种:(1)基于单片机的图像刺激信号发生器,其刺激信号是通过单片机来实现,图像刺激装置一般使用黑白电视机,由计算机控制单片机输出图像信号到电视机,并控制其图像翻转。这种在计算机外另设单片机控制电路,对硬件要求较高,并且电视机分辨率低、易闪烁。(2)基于双显卡的图像刺激信号发生器[3-4],目前大部分使用的是这种方式,在视觉电生理系统中采用双显示器,一个显示器用作计算机的主显示器,另一个用作图像刺激器。在计算机内采用软件方式实现图像刺激器的输出。这种基于双显卡的技术,上位机同时发出刺激图像产生命令与信号采集命令,但是在采用多任务处理调度的Windows系统机制下,经双显卡控制显示器实现的刺激图像与信号采集命令有一定延时,而延时多少具有随机性及不确定性,这是Windows机制无法避免的。因此在延时无法确定的情况下,不能保证刺激图像输出与视觉电生理信号采集的同步性与实时性。同时随着视觉电生理研究在虚拟视觉、色觉等领域的越来越广泛应用,特别是进行视觉诱发电位检测时[5],要求图像刺激和视觉诱发电位信号采集的同步性与实时性[6],而传统的视觉电生理检测系统是无法满足的。

现代电子技术的飞速发展,可编程逻辑芯片FPGA以其功能强大、集成度高、开发过程投资小、周期短、可反复编程修改、开发工具智能化等特点被应用于很多领域,如图像检测[7]、数据采集[8]等方面,近年来又逐渐应用于生物医学工程。

本设计通过FPGA来生成刺激图像,FPGA控制刺激图像的生成与信号采集命令,通过FPGA生成相应的图像的同时,向采集卡发出信号采集命令,采集完视觉电生理信息再由上位机处理,即FPGA同时发出刺激图像生成命令和视觉电生理信号的采集命令,保证了刺激图像的输出与信号采集的同步性与实时性。

1 系统工作原理和组成框图

视觉电生理的刺激图形参数如下:图形方式有4种:方格、竖条栅、横条栅、圆环型。颜色:黑、白、红、绿、兰、黄。空间视野有12种:全、上下、左右、左半、右半、上半、下半、1/4角、中心。视角(空间频率)有7 种:2×2、3×4、6×8、12×16、24×32、48×64、96×128。中心固视点颜色:可调,红、绿、兰。中心固视点大小:大小可调,2 mm ~15 mm(直径)[9-10]。

本系统的设计利用硬件描述语言VHDL并结合FPGA的硬件特点,生成满足上述参数的各种刺激图像,并通过串口与上位机通信。硬件组成如图1所示。本设计采用的FPGA芯片是Altera公司的EP2C80208C8N,FPGA控制模块是整个系统的核心,主要包括VGA(Video Graphics Array)时序模块、图像刺激生成模块和串口模块。采集卡采用阿尔泰公司的基于USB数据总线的数据采集卡USB5935,具有12位A/D转换精度,采样速率达500 kHz。

视觉电生理图像刺激信号发生器选择了最高波特率为115 200 bit/s的串口通信的方式与上位机进行数据传输,上位机只向FPGA发送一些简单的数字控制命令控制图像输出,命令简单,串口通信足以满足这样的要求。

图1 系统原理框图

2 FPGA核心控制模块

FPGA控制模块是整个系统的核心,通过硬件描述语言VHDL编程可实现输出VGA接口的HS、VS行、场扫描同步信号和R、G、B三基色信号和串口的时序信号,产生和输出刺激图像以及视觉电生理的采集信号。当FPGA接受上位机输出的控制命令后,内部的数据选择器模块根据控制信号选通相应的刺激图像生成模块,输出刺激图像的RGB三基色信号和行、场扫描时序HS、VS信号,通过15针D型接口电路送入VGA显示器。

本文采用模块化的设计方法,利用VHDL语言生成各子模块,再将这些子模块进行顶层的连接。主要模块是VGA时序模块、刺激图像生成模块和串口模块,其中刺激图像生成模块是整个模块的核心,包括横条栅模块、竖条栅模块、棋盘格模块和圆环刺激图像模块,棋盘格由于空间频率、空间视野和颜色的不同又分为252个刺激图像模块,系统的程序结构如图2所示。图中棋盘格的参数有颜色、空间视野、空间分辨率3个参数,3个参数中每个取一项进行组合,共有252种棋盘格刺激图像。图中串口模块负责上位机与FPGA的通信,VGA时序模块主要是产生VGA的行同步信号HS和场同步信号VS。当FPGA接受上位机输出的控制命令C后,内部的数据选择器模块根据控制信号选通相应的刺激图像生成模块,例如当上位机发出命令C=1时,显示器就显示竖条栅刺激图像,C=2时显示横条栅刺激图像,C=3时显示颜色为黑白,空间视野为全、空间刺激频率为2×2方格刺激图像,C=4时显示颜色为黑白,空间视野为全,空间刺激频率为3×4方格刺激图像,以此类推当C=5、6、…、255时类似。

图2 系统的程序结构

2.1 VGA时序信号产生模块

由VGA控制模块产生的水平同步信号和垂直同步信号控制阴极射线枪产生的电子束,打在涂有荧光粉的荧光屏上,产生 R、G、B,即红、绿、黄三基色,合成1个彩色像素[11]。每个基色用一个两位的二进制数表示,每个像素是6位二进制,共有26=64种色彩。扫描从屏幕的左上方开始,由左至右,由上到下,逐行进行扫描,在回扫期间,CRT对电子束进行消隐,每行结束是用行同步信号HS进行行同步;扫描完所有行,再由场同步信号VS进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,准备下一场的扫描[12]。行同步信号HS和场同步信号VS是两个重要的信号。显示过程中,HS和VS的极性可正可负,显示器内可自动转换为正极性逻辑。

根据“VGA工业标准”,VGA显示器的分辨率有640×480,800×600 等,本系统采用800×600 的分辨率,像素频率是 50 MHz,场频 72 Hz[11]。水平有效像素点800,垂直有效像素点600。VGA时序产生模块包括行点数计数器Hcnt、是1040进制计数器,其中800为有效像素点,前沿时间为56时钟周期,行消隐时间为120时钟周期,后沿时间是64时钟周期.场行数计数器Vcnt,场行数计数器是800进制计数器,有效的场显示时间为600个行周期,前沿时间是39个行周期,场消隐时间是6个行周期,后沿时间是24个行周期。程序如下,clk是输入的时钟信号,HS、VS是产生的行、场信号。

行同步信号HS和场同步信号VS的时序图如图3[12]所示,T1为行同步消隐(120个时钟周期);T2为行显示时间(800个时钟周期),T3为场同步消隐(6个行周期);T4为场显示时间(600个行周期)。

图3 VGA行扫描、场扫描时序示意图

2.2 刺激图像生成模块

刺激图像生成模块是通过对行点计数器Hcnt的计数值和场行数计数器Vcnt的判断和运算来产生的,可以把显示器看作一个直角坐标系,其中原点在左上角,Hcnt是横坐标,从左上角的0向右增加到1 039;Vcnt是纵坐标,从左上角的0向下增加到799,这样显示器上的每一点都有自己的坐标,通过对不同的点赋予不同值,可以显示不同的竖条栅、横条栅、棋盘格和圆形刺激图像。这样通过判断和运算直接生成刺激图像,节省了外部存储空间。

2.2.1 竖条栅和横条栅刺激图像生成模块

在竖条栅和横条栅的刺激图像生成模块中,竖条栅和横条栅分别是通过对行点计数器Hcnt和场计数器Vcnt进行控制,不同的区域显示不同的颜色[11]。竖条栅的生成流程图如图4所示,图中n是要显示的竖条栅的条数,CY0、CY1…CYn-1是被赋给的6 位二进制数,如果要产生红、蓝、绿、白4条等宽竖条栅,图4中,Hcnt<200,CY0=110000;Hcnt<200×2,CY1=001100;Hcnt<200×3,CY2=000011;Hcnt<200×4,CY2=111111时,其中200是800除以4,即800÷4=200。横条栅发生模块与竖条栅发生模块原理相似,是对场行计数器Vcnt进行判断。

图4 竖条栅产生的流程图

2.2.2 方格刺激图像生成模块

在上述生成竖条栅和横条栅的基础上,赋予RGBX和RGBY不同6位二进制值,通过RGBX和RGBY的异或运算产生方格刺激图像,即RGB=RGBX XOR RGBY。这种方法在显示空间频率较小的情况下可以用简单的VHDL语句实现,但视觉电生理的图像刺激器所要求的棋盘格空间频率最高96×128,有“Hcnt<800÷128”的判断语句 96 条和“Vcnt<600÷96”的判断语句128条,浪费FPGA的硬件资源。这里提出一种较简单的方法:以空间频率6×8的棋盘格图像为基础,通过平移产生 12×16、24×32、48×64、96×128等高空间频率的棋盘格刺激图像。如,要生成12×16的棋盘格刺激图像,在6×8棋盘格刺激图像的基础上,Hcnt和Vcnt分别除以2,使全屏6×8棋盘格图像缩小在屏幕的左上1/4角,然后再平移得到12×16的棋盘格图像,如图5所示。这样仅需要“Hcnt<800÷8”的8条和“Vcnt<600÷6”的6 条判断语句,14条语句,和12+16=28条语句相比简化了程序,节约了FPGA的硬件资源。同样方法可产生空间频率24×32、48×64 和96×128 的棋盘格刺激图像。

图5 经缩小6×8的棋盘格平移后的12×16的方格

2.2.3 圆环型刺激图像产生模块

圆环刺激图像的产生的原理是通过对表达式x2+y2=r2的判断(x、y是坐标,r是圆半径),由于Hcnt,Vcnt所在的坐标的原点是在屏幕的左上角,要通过平移使坐标原点在屏幕的中心位置,屏幕的中心位置的坐标是(800÷2,600÷2),800 和 600 分别是行有效像素和场有效像素,即平移后坐标原点为(400,300),其它像素平移后的坐标就是(Hcnt-400)和(Vcnt-300)。通过对公式(1)

的判断(r是平移后到原点的距离,r的取值不同显示的不同的圆环),可以从0~300,在一个有n个圆环的刺激图像中,应取r1,r2…rn,每一个r的取值对应的RGB被赋予一个6位的二进制数值,可以生成n个环的圆环。式(1)中由于运算的数据比较大(Hcnt、Vcnt都是10位的二进制),如果直接采用VHDL中的行为级乘法运算,由于FPGA的器件特点和结构特点,计算速度慢于显示器的行、场扫描信号,而使显示的同心圆环图像中有多余的竖条,影响图像的质量。FPGA器件中集成了IP核,IP核是根据Altera的FPGA器件特点和结构而设计的,直接使用Altera的FPGA底层硬件语言设计。使用IP核能减少设计和调试时间,提高开发效率。本系统直接调用乘法器IP核使得计算速度加快,但快于显示器的行、场扫描信号时,同样会使显示图像出现上述的竖条,可以设置乘法器IP核的延时单元,对计算结果进行锁存,使得计算速度和显示器的行、场扫描信号匹配。试验证明,通过延时5个时钟单元,可以避免上述显示的同心圆环图像中多余的竖条,使圆环显示清晰,图像质量好,而延时的多少与硬件的选取有关。

2.3 控制信号串口通信模块

串口模块包含发送器、接收器和波特率发生器三个模块,由于本系统只接受上位机发送的控制命令,发送器模块不用,不作介绍。波特率发生器模块对系统时钟分频,得到串口的传输时钟。为提高采样的分辨能力和抗干扰能力,接收器的采样频率为16倍频的波特率,本系统时钟是50 MHz,传送的波特率是115.2 kbit/s,系统经过27分频后得到串口的传送波特率。

本文设计的UART协议的数据为8位,无奇偶校验位,1位起始位,1位停止位。接收模块的设计采用状态机来完成。接收模块的状态分别r_start、r_center、r_wait、r_sample、r_stop 5 个状态。接收器每隔16个CLK接收1位,遵循次序1位起始位、8位数据位、1位停止位。初始状态为r_start,数据的接收是由rxd信号控制,当rxd由高电平跳变到低电平时进入r_center状态,在此状态通过检测8个rxd连续的低电平,来确定是否为起始位,如不是,则判定为干扰信号,删除,如是,则判定为起始位,状态机进入r_wait状态,等待记满16个clk在第16个clk进入r_sample状态进行数据位的采样检测,同时也判断数据位的长度是否已达到8位,如果到来说明已经接收完数据位,进入r_stop状态,输出帧接收完毕信号,数据接收完成后状态机无条件进入r_start状态等待下一帧起始位的开始,如此循环。图6为接收器状态转换图。

图6 接收器模块状态转换图

3 实验结果

本系统采用的FPGA芯片是Altera公司CycloneII系列的 EP2C80208C8N,EP2C80208C8N共有8 256个逻辑单元(LE)、嵌入式18 bit×18 bit的乘法器、与外部存储器接口电路、4 kbit嵌入式存储器块、锁相环等丰富的资源。

本文利用模块化的设计方法,分别设计各个模块的VHDL模型,最后在顶层模块中将各个模块组装起来。并对其进行仿真、综合后通过JTAG下载口下载至EP2C80208C8N进行验证。

图7和图8是生成的视觉电生理的刺激图像,图8是48×64棋盘格图像,图像中的红点(由于版面的原因,在此显示为灰色)是中央固视点,中央固视点的生成和圆环的生成是同一个原理,其大小和颜色可以通过串口命令控制。图8为7个圆环,由于篇幅关系,不能列举所有的刺激图像。

图7 48×64棋盘格

图8 圆环型

4 结语

随着电子技术的发展,视觉电生理仪也日臻完善,视觉电生理的检测也越来越准确,为眼科疾病的诊断提供了客观的诊断依据。本文利用FPGA,成功的生成了视觉电生理所需要的各种参数的刺激图像,与传统在Windows系统下通过软件实现的图像刺激器相比,同步性和实时性较好。

[1] Fitz Gerald M J T,Folan-Curran.Clinical Neuroanatomy and Related Neuroscience,W.B.Saunders,Edinburgh,2002.

[2] Yin Zhengqin.Progress of Ophthalmic Electrophysiology in China in Past 5 Years[J].Chinese Journal of Ophthalmology,2010,10,46(10):930-933.

[3] Bela Torok.Microcomputer-Based Recording System for Clinincal E-lectrophysiology[J].Documenta Ophthalmologica,1990,75:189-197.

[4] Michael S Bradnam,Aled L Evans,Donald M I Montgomery,et al.A Personal Computer-Based Visual Evoked Potential Stimulus and Recording System[J].Documenta Ophthalmologica,1994,86:81-93.

[5] Vernon J,Odom J V,Michael Bach M,et al.Visual Evoked Potentials Standard[J].Doc Ophthalmol 2010,120:111-119.

[6] Mukartihall G B,Radhakrishnanl S,et al.Design and Development of Visual Evoked Potentials Recording System for Diagnosis of Optic Nerve Diseases[J].J.Instrum.Soc.India,36(4)227-234.

[7] 陆洲,王宝光.基于FPGA的嵌入式彩色图像检测系统[J].传感技术学报,2007,20(3):615-622.

[8] 张凌烽,王化祥.基于FPGA和DSP的电阻层析成像数据采集系统[J].传感技术学报,2011,24(7):1011-1016.

[9] 李海生,潘家普.视觉电生理的原理与实践[M].上海:上海科学普及出版社,2002.

[10] Vernon Odom J,Michael Bach,Mitchell Brigell,et al.ISCEV standard for clinical visual evoked potentials[J].Doc Ophthalmol,2010,120:111-119.

[11]曹允.基于FPGA的vga时序彩条信号实现方法及其应用[J].电子工程师,2002,28(7):41-44.

[12]蒋艳红.基于FPGA的vga图像信号发生器设计[J].电子测量技术,2008,31(3):78-81.

猜你喜欢
棋盘显示器串口
把显示器“穿”在身上
浅谈AB PLC串口跟RFID传感器的通讯应用
IDC发布《2018年PC显示器市场跟踪报告》
一种新型点阵显示器的设计
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
棋盘人生
棋盘里的天文数字
棋盘疑案