一种基于FPGA的可编程LED阵列显微照明控制方法技术

技术编号:18292922 阅读:43 留言:0更新日期:2018-06-24 09:11
本发明专利技术公开了一种基于FPGA的可编程LED阵列显微照明控制方法,首先基于FPGA的串口接收与译码电路设计,根据控制指令现场计算出用于可编程LED阵列显示的图形基本数据,进行圆域的确定、圆内亮度呈标准正态分布、颜色区域的划分,然后将数据分类存储于FPGA的片内双口RAM中,并根据可编程LED阵列的扫描位置读出存储于FPGA片内双口RAM中的显示数据,最后利用FPGA快速地并行驱动使用多行扫描,RGB三通道分开的可编程LED阵列,显示输出的数据。本发明专利技术节省了大量的外部存储设备,使用FPGA驱动可编程LED阵列,实现图形的显示与驱动电流的PWM调制。

【技术实现步骤摘要】
一种基于FPGA的可编程LED阵列显微照明控制方法
本专利技术属于可编程LED阵列控制
,特别是一种在低传输带宽、低复杂度控制的基于FPGA的可编程LED阵列显微照明控制方法。
技术介绍
多模式显微成像使用“无标记样品”成像方法,对细胞样品进行无需荧光粉或染色剂标记的显微成像,避免了传统显微观察因“标记”带来的对细胞活性的影响。实现多模式显微成像的方法一般有两种,一种是直接采用可编程照明光源,例如可编程LED阵列,控制其显示不同颜色的多种照明图案实现多模式显微成像。另一种是通过在照明端引入光源调制器件,如可编程LCD,通过其调节光源孔径、照明角度以及光源颜色等照明参数,经后端光路成像实现多模式显微成像。但是商用的LCD消光比较低,导致其照明调控的信噪比下降,最终导致成像质量的下降,而高消光比的LCD一般都需要定制加工,成本亦高于LED阵列(201510642770.0)。对LED阵列的控制,传统的方法为通过上位机发送相应的显示数据,并以MCU、DSP、FPGA等为处理器,根据LED驱动芯片的协议,来实现控制开关量与PWM占空比,实现全彩的变化。这种一般的驱动LED阵列的方法在用于显微成像系统中时因为传输带宽较低并且所需显示的图形有限且对称,则难以满足系统的需求。这时因为传输带宽的限制,它会造成图形切换时的卡顿。对此,一种解决方法是对对称图形进行数据的压缩,虽然这样可以减小对数据带宽的依赖,缓解图形切换时的卡顿现象,但这也增加了压缩和解压成本。用增大数据传输带宽的方法也可以来弥补因数据传输带宽的限制造成的图形卡顿的现象,但同时也增大了上位机与处理器之间通信的复杂度,增加了开发与生产成本(200820146952.4)。另一种解决方法是将所需显示的有限的图形事先计算完成并存储在非易失性存储介质中,在使用时再去访问;或是在每次硬件上电初始化时进行较大规模的计算,并将计算得到的数据存储到易失性存储介质如:SDRAM、DDR3等。这样都可以减小对数据传输带宽的依赖,而且存储在易失性存储介质中时还可以在访问时显著增加访问数据的速度。但是无论是事先存储在非易失性存储介质中或是上电初始化时存储在易失性存储介质中,都需要额外的大容量存储介质(201310229029.2),这即增加了控制的复杂度,也增加了生产成本。而且当存储于易失性存储介质中时,每次上电初始化时都会额外需要一定量的初始化时间。总之,在使用少量有限的硬件资源和数据传输带宽的条件下,如何实现可编程LED阵列高速显示任意彩色图案是一个技术难题。
技术实现思路
本专利技术的目的在于提出一种基于FPGA的可编程LED阵列显微照明控制方法,在少量有限的硬件资源和数据传输带宽的条件下,实现了可编程LED阵列对任意彩色图案的高速显示。实现本专利技术目的的技术解决方案为:一种基于FPGA的可编程LED阵列显微照明控制方法,步骤如下:步骤一,基于FPGA的串口接收与译码电路设计:FPGA接收上位机通过串口发送来的控制指令,并对其进行译码,将译码后的信息存储于专用的配置寄存器中;步骤二,根据控制指令现场计算出用于可编程LED阵列显示的图形基本数据,并进行圆域的确定、圆内亮度呈标准正态分布以及颜色区域的划分;步骤三,将步骤二中计算生成的数据分类,并存储于FPGA的片内双口RAM中;步骤四,根据可编程LED阵列的扫描位置读出步骤三中存储于FPGA片内双口RAM中的显示数据,根据控制指令对读出的显示数据进行处理并输出到步骤五中;步骤五,利用FPGA快速地并行驱动使用多行扫描,RGB三通道分开的可编程LED阵列,显示步骤四中输出的数据。本专利技术的有益结果为:(1)上位机与FPGA控制模块的通信非常简单,只需要6个字节的数据就可以实现多种图形之间的切换。(2)FPGA现场快速地计算用于显示的图形数据,节省的大量的上位机与FPGA模块之间的通信带宽,节省了大量的数据存储介质(如SDRAM、DDR3等。(3)本专利技术使用FPGA中综合出的数字电路计算用于可编程LED阵列显示的图形数据,使用流水线技术,显示数据计算耗时大为降低。(4)在FPGA内实现驱动电流的PWM调制,驱动可编程LED阵列进行彩色显示,避免了PWM芯片的大量使用。使用时,只需要上位机使用简单的控制指令就可以控制可编程LED阵列显示任意的圆、半圆、圆环、彩虹环等图形,节省了大量的数据传输带宽和数据存储空间的同时也显著地提高了图形刷新的帧率。下面将结合附图对本专利技术进行详细地说明。附图说明图1为可编程LED阵列结构框图。图2为本专利技术基于FPGA的可编程LED阵列照明控制方法的流程图。图3为在FPGA内部计算用于可编程LED阵列圆域显示的方法的示意图。图4为半圆与彩虹环的生成原理示意图。图5为驱动可编程LED阵列的时序图。图6为实际显示的图形。图7为实际显示的彩色图形。具体实施方式本专利技术基于FPGA的可编程LED阵列显微照明控制方法,所使用可编程LED阵列是并行驱动多行扫描的可编程LED阵列。结合图1,可编程LED阵列主要包括可编程LED像素1、行地址译码2、恒流源驱动3,一个可编程LED像素1包括R(红)、G(绿)、B(蓝)三个LED单元,每一个像素行被当作R、G、B三个并列的独立行;行地址译码2分别驱动两个独立的像素行,这两个像素行分别由不同的恒流源驱动3;横流源并行地驱动R、G、B三个通道。图1中的可编程LED阵列可以实现一次刷新两行LED像素行,并且每一列的RGB可编程LED单元的驱动数据可以同时接收,使用FPGA在同一时刻同步发送两行的RGB三通道数据。结合图2,本专利技术基于FPGA的可编程LED阵列显微照明控制方法,步骤如下:步骤一:基于FPGA的串口接收与译码电路设计。FPGA接收上位机通过串口发送来的控制指令,并对其进行译码。使用FPGA接收上位机发送的串口信息,串口信息为可编程LED阵列的控制指令,控制指令为可编程LED阵列上显示的图形模式,包括以下几种:(1)在可编程LED阵列上显示任意位置、任意半径、可选颜色的圆、半圆以及圆环。(2)在可编程LED阵列上显示任意位置,任意半径的圆内亮度呈标准正态分布的圆。(3)在可编程LED阵列上显示任意位置、任意半径、任意指定的至多24份颜色的24阶彩虹环。(4)在可编程LED阵列上显示任意位置、任意半径的二段、四段圆环并且中心圆灰度可调的图形。译码后所得的控制信息,作为后续步骤的工作配置参数寄存到专用的配置寄存器中。在FPGA中实现本控制方法时,使用同步时钟设计,即每一个步骤中所使用到的同步时钟相同,这个同步时钟为可编程LED阵列所支持的最高工作频率下对应的同步时钟。因此该专用的配置寄存器可以不需要作任何处理就可以被电路中的任何模块直接访问。步骤二:根据控制指令现场计算出用于可编程LED阵列显示的图形基本数据。计算包括三个方面:圆域的确定、圆内亮度呈标准正态分布的数据计算、颜色区域的划分。关于圆域的确定,具体如下:根据控制指令中的圆心与半径信息,利用直角坐标系下圆的方程,(x-a)2+(y-b)2≤r2判断可编程LED阵列上各点位于圆内还是圆外。因为所给的圆心均落在可编程LED阵列各点上,且目标半径均为整数,因此,此时如果按照上述直角坐标系下圆的方程来确定圆域,则会得到如本文档来自技高网
...
一种基于FPGA的可编程LED阵列显微照明控制方法

【技术保护点】
1.一种基于FPGA的可编程LED阵列显微照明控制方法,其特征在于步骤如下:步骤一,基于FPGA的串口接收与译码电路设计:FPGA接收上位机通过串口发送来的控制指令,并对其进行译码,将译码后的信息存储于专用的配置寄存器中;步骤二,根据控制指令现场计算出用于可编程LED阵列显示的图形基本数据,并进行圆域的确定、圆内亮度呈标准正态分布以及颜色区域的划分;步骤三,将步骤二中计算生成的数据分类,并存储于FPGA的片内双口RAM中;步骤四,根据可编程LED阵列的扫描位置读出步骤三中存储于FPGA片内双口RAM中的显示数据,根据控制指令对读出的显示数据进行处理并输出到步骤五中;步骤五,利用FPGA快速地并行驱动使用多行扫描,RGB三通道分开的可编程LED阵列,显示步骤四中输出的数据。

【技术特征摘要】
1.一种基于FPGA的可编程LED阵列显微照明控制方法,其特征在于步骤如下:步骤一,基于FPGA的串口接收与译码电路设计:FPGA接收上位机通过串口发送来的控制指令,并对其进行译码,将译码后的信息存储于专用的配置寄存器中;步骤二,根据控制指令现场计算出用于可编程LED阵列显示的图形基本数据,并进行圆域的确定、圆内亮度呈标准正态分布以及颜色区域的划分;步骤三,将步骤二中计算生成的数据分类,并存储于FPGA的片内双口RAM中;步骤四,根据可编程LED阵列的扫描位置读出步骤三中存储于FPGA片内双口RAM中的显示数据,根据控制指令对读出的显示数据进行处理并输出到步骤五中;步骤五,利用FPGA快速地并行驱动使用多行扫描,RGB三通道分开的可编程LED阵列,显示步骤四中输出的数据。2.根据权利要求1所述的基于FPGA的可编程LED阵列显微照明控制方法,其特征在于步骤一中,串口信息为可编程LED阵列的控制指令,控制指令为可编程LED阵列上显示的图形模式,包括以下几种:(1)在可编程LED阵列上显示任意位置、任意半径、可选颜色的圆、半圆以及圆环;(2)在可编程LED阵列上显示任意位置,任意半径的圆内亮度呈标准正态分布的圆;(3)在可编程LED阵列上显示任意位置、任意半径、任意指定的至多24份颜色的24阶彩虹环;(4)在可编程LED阵列上显示任意位置、任意半径的二段、四段圆环并且中心圆灰度可调的图形;译码后所得的控制信息,作为后续步骤的工作配置参数寄存到专用的配置寄存器中。3.根据权利要求1所述的基于FPGA的可编程LED阵列显微照明控制方法,其特征在于步骤二中圆域的确定过程如下:根据控制指令中的圆心与半径信息,利用直角坐标系下圆的方程:(x-a)2+(y-b)2≤r2其中(x,y)为可编程LED阵列上各点,(a,b)为圆心,r为半径。判断可编程LED阵列上各点位于圆内还是圆外。为了显示效果更好的圆与便于在FPGA内运算,将方程化为:(2i(x-a))2+(2i(y-b))2≤(2i(r+d))2其中Δd为半径延长的部分,Δd=1/2k(其中k=1,2,3……)。i为一个扩大系数,满足:2i=2j/Δd,其中j=0,1,2,3……,利用FPGA的并行性,对于显示图形所需的内圆和外圆数据,同步并行地进行计算。4.根据权利要求1所述的基于FPGA的可编程LED阵列显微照明控制方法,其特征在于步骤二中圆内亮度呈标准正态分布的计算过程如下:选取亮度的灰度为32阶,事先制作标准正态分布密度查找表,对于可编程LED阵列上每个LED像素灰度值的确定根据其距圆心的距离而定,所使用查找表为当圆内亮度呈标准正态分布的圆的半径为32个单位时,以距离圆心的距离为地址,每个地址存储的值为该距离对应的亮度灰度;使用时,有如下公式:addr=d×32÷rd为可编程LED阵列上一点(x,y)距离圆心(a,b)的距离,r为半径,addr为距离d所对应的亮度灰度在标准正态分布密度查找表中的地址,公式中的d与addr均取整数。5.根据权利要求1所述的基于FPGA的可编程LED阵列显微照明控制方法,其特征在于步骤二中颜色区域的划分过程为:将可编程LED阵列依据某一给定点(a,b)划分为24块区域,每块区域对应的张角为15°,事先计算得到15°、30°、45°、60°和75°的正切值分别为0.268、0.577、1.0、1.732和3.732;对于可编程LED阵列上任意的一点(x,y),在x≥a并且y≥b的区域内判断|(x-a)|×0.268≥|y-b|,为真时,意为该点处于区域15°内,为假时,继续判断|(x-a)|×0.577≥|y-b|,为真时,意为该点处于区域15°到30°之间,为假时,再依次判断|(x-a)|×1.0≥|y-b|、|(x-a)|×1.732≥|y-b|、|(x-a)|×3.732≥|y-b|,一直判断到75°到90°区域时停止;根...

【专利技术属性】
技术研发人员:左超潘向鹏陈钱孙佳嵩冯世杰张玉珍顾国华李加基范瑶丁君义尹维顾莹
申请(专利权)人:南京理工大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1