CN106708457A - 用于dmd动态选区的fpga处理模块及其方法 - Google Patents
用于dmd动态选区的fpga处理模块及其方法 Download PDFInfo
- Publication number
- CN106708457A CN106708457A CN201611198188.0A CN201611198188A CN106708457A CN 106708457 A CN106708457 A CN 106708457A CN 201611198188 A CN201611198188 A CN 201611198188A CN 106708457 A CN106708457 A CN 106708457A
- Authority
- CN
- China
- Prior art keywords
- constituency
- counta
- dmd
- modules
- ddc4100
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1407—General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种用于DMD动态选区的FPGA处理模块及其方法,是应用于由PC机、RS232串口、二值图像存储模块和DDC4100模块所组成的系统中;其特征是:PC机通过RS232串口向FPGA模块发送控制命令,FPGA模块由命令接收单元、选区控制单元、FIFO单元和DMD显示单元组成,负责从二值图像存储单元读取图像数据,根据命令接收单元的命令,对图像进行选区处理,经FIFO单元转换格式,利用DMD显示单元处理,输入DDC4100模块,最终在DMD微镜上显示选区处理后的图像。本发明能根据用户需要实时改变DMD选区显示范围,实现DMD动态选区显示功能,从而提高DMD的显示效率。
Description
技术领域
本发明涉及一种DMD动态选区显示方法,特别涉及一种基于FPGA平台的DMD底层软件动态选区显示方法。
背景技术
DMD(Digital Micromirror Device,数字微镜器件)通过控制镜片的±12°偏转达到显示图像的目的。近年来DMD在单光子时间分辨成像光谱仪、压缩感知等领域得到广泛的应用。在单光子时间分辨成像光谱仪等设备中,其数据存储单元中存储了大量的二值图像信息(一般为100Gbps左右),在设备运行过程中,若无特殊要求,无需改变存储单元中的图像。特别是相关设备运用于航天领域时,要求数据存储单元中的图像一次下载,永久保存。在DMD显示图像时,需要用到局部选区显示功能。
现有的选区方案是通过上位机软件将已经选区处理后的图像存储到二值图像缓存模块中,然后再在DMD上显示。上位机选区的缺陷是不能实时改变选区大小,DMD选区改变时,重新下载二值图像数据,每次下载大量的图像数据需要消耗大量的时间,并且下载的图像选区范围固定,只适用于某一阶段性的需要,导致了系统无法长期、稳定、高速运行,同时还要为设备配备专用的数据传输模块,带来了设计上的麻烦。
发明内容
本发明是为了解决上述现有技术存在的不足之处,提出一种用于DMD动态选区的FPGA处理模块及其方法,以期能根据用户需要实时改变DMD选区显示范围,实现DMD动态选区显示功能,从而提高DMD的显示效率。
本发明为解决技术问题采用如下技术方案:
本发明一种用于DMD动态选区的FPGA处理模块,是应用于由PC机、RS232串口、二值图像存储模块和DDC4100模块所组成的系统中;所述PC机通过所述RS232串口与所述FPGA处理模块通信,所述FPGA处理模块与所述二值图像存储模块相连,用于读取所述二值图像存储模块中存储的图像;所述FPGA处理模块与所述DDC4100模块相连,用于向所述DDC4100模块输入图像;其特点是:所述FPGA处理模块包括:命令接收单元、选区控制单元、FIFO单元和DMD显示单元;
所述命令接收单元在时钟周期的控制下,通过所述RS232串口接收所述PC机发送的数据帧并进行识别,得到控制命令并发送给所述选区控制单元和所述DMD显示单元;所述控制命令包括:写触发命令、选区有效命令、选区起点坐标(StartX,StartY)和选区终点坐标(EndX,EndY);
所述选区控制单元在所述写触发命令的控制下,从所述二值图像存储模块中读取一幅大小为m×n的二值图像;所述选区控制单元在所述选区有效命令的触发下,根据所述选区起点坐标(StartX,StartY)和选区终点坐标(EndX,EndY)对所述二值图像进行选区处理,得到处理后的二值图像,并输入所述FIFO单元;
所述FIFO单元对所述处理后的二值图像进行格式转换处理,得到大小为u×v的预显示图像并向所述DMD显示单元发送数据容量rd_Count及数据dout;从而将所述预显示图像输出给所述DMD显示单元;
所述DMD显示单元在所述写触发命令的触发下,读取所述预显示图像,并根据所述DDC4100模块接口协议将图像逐行写入所述DDC4100模块,直到完成所述预显示图像的写入操作后,所述DMD显示单元向所述DDC4100模块发送复位信号,并等待所述DDC4100模块中的DMD设备完成所述预显示图像的显示。
本发明所述的FPGA处理模块的特点也在于,所述选区控制单元是按如下步骤对所述二值图像进行选区处理:
步骤1、由所述选区起点坐标(StartX,StartY)和所述选区终点坐标(EndX,EndY)构成选择区域;并保留所述选择区域内二值图像信息;
步骤2、对所述选择区域外的二值图像分别与“0”进行“与”操作,从而获得处理后的二值图像。
本发明一种用于DMD动态选区的FPGA处理方法,是应用于由PC机、RS232串口、FPGA处理模块、二值图像存储模块和DDC4100模块所组成的系统中,其特点是按如下步骤进行:
步骤1、在时钟周期的控制下,所述FPGA处理模块通过所述RS232串口接收所述PC机发送的数据帧并进行识别,得到控制命令;所述控制命令包括:写触发命令、选区有效命令、选区起点坐标(StartX,StartY)和选区终点坐标(EndX,EndY);由所述选区起点坐标(StartX,StartY)和所述选区终点坐标(EndX,EndY)构成选择区域;
步骤2、在所述写触发命令的控制下,所述FPGA处理模块从所述二值图像存储模块中读取一幅大小为m×n的二值图像;
步骤3、在所述选区有效命令的触发下,所述FPGA处理模块保留所述选择区域内二值图像信息,并对所述选择区域外的二值图像分别与“0”进行“与”操作,实现选区处理,从而获得处理后的二值图像;
步骤4、所述FPGA处理模块对所述处理后的二值图像进行格式转换处理,得到大小为u×v的预显示图像,并确定数据容量rd_Count;
步骤5、在所述写触发命令的触发下,所述FPGA处理模块根据所述DDC4100模块接口协议将所述预显示图像逐行写入所述DDC4100模块,直到完成所述预显示图像的写入操作后,向所述DDC4100模块发送复位信号,并等待所述DDC4100模块中的DMD设备完成所述预显示图像的显示,从而实现显示处理。
本发明所述的用于DMD动态选区的FPGA处理方法的特点也在于,所述步骤3中的选区处理是按如下步骤进行:
步骤3.1、所述FPGA处理模进行复位RST操作;若复位完成,则执行步骤3.2;否则重复执行步骤3.1;
步骤3.2、所述FPGA处理模块进行初始化IDLE操作,判断所述写触发命令和选区有效命令是否有效,若两者都有效,则执行步骤3.3,并初始化行计数器countA=1;若所述写触发命令有效,所述选区有效命令无效,则执行步骤3.6,并初始化行计数器countA=1,否则继续执行步骤3.2;
步骤3.3、判断countA<StartX是否成立,若成立,则将所述二值图像中第countA行的数据与“0”进行“与”操作后,将countA+1赋值给countA,将处理后的第countA行数据输入所述FIFO单元;并返回步骤3.3;否则,执行步骤3.4;
步骤3.4、判断countA≤EndX是否成立,若成立,则保留所述二值图像中第countA行的第StartY列至第EndY列的信息;将第countA行的第0列至第(StartY-1)列、以及第countA行的第(EndY+1)列至第m列的二值图像分别与“0”进行“与”操作后,将countA+1赋值给countA,处理后的第countA行数据输入所述FIFO单元;并返回步骤3.4;否则执行步骤3.5;
步骤3.5、判断countA<n是否成立,若成立,则将所述二值图像中第countA行的数据与“0”进行“与”操作后,将countA+1赋值给countA,处理后的第countA行数据输入所述FIFO单元;并返回步骤3.5;否则,表示实现选区处理,返回步骤3.2,等待下一次选区处理;
步骤3.6、判断countA<n是否成立,若成立,则保留所述二值图像中第countA行的信息,将第countA行数据输入所述FIFO单元,并将countA+1赋值给countA后,返回步骤3.6,否则,表示实现选区处理,返回步骤3.2,等待下一次选区处理。
所述步骤5中的显示处理是按如下步骤进行:
步骤5.1、所述FPGA处理模进行复位RST操作;若复位完成,则执行步骤5.2;否则重复执行步骤5.1;
步骤5.2、所述FPGA处理模进行初始化IDLE操作;并初始化行计数器conutB=0;判断所述写触发命令是否有效,若有效,则执行步骤5.3;否则重复执行步骤5.2;
步骤5.3、判断数据容量rd_Count大于m/u是否成立,若成立,则执行步骤5.4;否则,仍返回步骤5.3执行;
步骤5.4、所述FPGA处理模块向所述DDC4100模块写入一行数据,并将countB+1赋值给countB,执行步骤5.5;
步骤5.5、所述FPGA处理模块判断countB≥n是否成立,若成立,则执行步骤5.6;否则,执行步骤5.3;
步骤5.6、所述FPGA处理模块向所述DDC4100模块发送复位信号,并等待T个时钟周期后,执行步骤5.7;
步骤5.7、所述FPGA处理模块检测所述DDC4100模块是否完成复位;若完成,则所述DDC4100模块对所述预显示图像在自身DMD设备中进行显示,同时,所述FPGA处理返回步骤5.2;否则,返回步骤5.7。
与已有现有技术相比,本发明的有益效果是:
1、本发明采用用于DMD动态选区的FPGA处理模块及其方法,利用PC机通过RS232串口向FPGA模块发送控制命令,FPGA模块由命令接收单元、选区控制单元、FIFO单元和DMD显示单元组成,负责从二值图像存储单元读取图像数据,根据命令接收单元的命令,对图像进行选区处理,经FIFO单元转换格式,利用DMD显示单元处理,输入DDC4100模块,最终在DMD微镜上显示选区处理后的图像,从而解决了现有技术中DMD模块无法实时动态选区的问题,提高了DMD设备应用于单光子时间分辨成像光谱仪以及压缩感知等领域时的稳定、实时、高效性;降低了设备因多次下载数据带来的功耗。
2、本发明采用用于DMD动态选区的FPGA处理模块及其方法,利用FPGA处理设备高速、并行的特点,在时钟周期的控制下,根据PC机传送的控制命令,可以在微秒级的范围内完成选区功能,解决了现在有方案中DMD选区时下载大量数据带来时间损耗的问题,相比于上位机选区,极大的降低了选区时间,提高了DMD的显示效率。
3、本发明采用用于DMD动态选区的FPGA处理模块及其方法,利用上位机发送几个简单的数据帧,通过命令接收模块接收、处理,可以按照用户需求,实时的改变DMD显示区域的大小,解决了现有方案中DMD设备无法实时改变选区大小的缺点,提高了DMD设备的显示模式及应用价值。
4、本发明采用用于DMD动态选区的FPGA处理模块及其方法,利用FPGA处理单元实现DMD选区显示功能,图像只需要一次下载,解决了现有方案中多次下载图像,需要配备专用的数据传输模块问题,降低了设计上的麻烦。
附图说明
图1为现有技术中系统结构图;
图2为本发明的FPGA处理流程图;
图3为本发明选区状态机的示意图;
图4为本发明FIFO处理模块的示意图;
图5为本发明DMD显示状态机的示意图。
具体实施方式
如图1所示,一种用于DMD动态选区的FPGA处理模块,是应用于由PC机、RS232串口、二值图像存储模块和DDC4100模块所组成的系统中;PC机通过RS232串口与FPGA处理模块通信,FPGA处理模块与二值图像存储模块相连,用于读取二值图像存储模块中存储的图像;FPGA处理模块与DDC4100模块相连,用于向DDC4100模块输入图像;如图2所示,FPGA处理模块包括:命令接收单元、选区控制单元、FIFO单元和DMD显示单元;
如图2所示,命令接收单元在时钟周期的控制下,通过RS232串口接收PC机发送的数据帧并进行识别,得到控制命令并发送给选区控制单元和DMD显示单元;控制命令包括:写触发命令、选区有效命令、选区起点坐标(StartX,StartY)和选区终点坐标(EndX,EndY),其中StartX的值小于等于EndX,StartY的值小于等于EndY;RS232串口一次最多只能传输8bits的数据,而控制命令的有效数据位最少为10bits,命令接收单元需要将两个长度为8bits的串口数据,即cmdl[7:0],cmdh[7:0]组合成16bits数据命令,即cmd[15:0],并根据利用数据的的最高三位,即cmd[15:13],判断命令类型;命令类型如下:
①cmd[15:13]=001,表示写触发命令,该命令最低位,即cmd[0]=1,表示写触发命令有效,cmd[0]=0,表示写触发命令无效;该命令的其余12位,即cmd[12:1]无效;
②cmd[15:13]=010,表示选区有效命令,该命令最低位,即cmd[0]=1,表示选区有效,cmd[0]=0,表示选区无效;该命令的其余12位,即cmd[12:1]无效;
③cmd[15:13]=011,表示起点横坐标标识,即StartX,该命令的低10位,即cmd[9:0]表示选区起点横坐标的具体指,表示的坐标范围为[0,767],其余位,即cmd[12:10]无效;
④cmd[15:13]=100,表示起点纵坐标标识,即StartY,该命令的低10位,即cmd[9:0]表示选区起点纵坐标的具体指,表示的坐标范围为[0,1023],其余位,即cmd[12:10]无效;
⑤cmd[15:13]=101,表示终点横坐标标识,即EndX,该命令的低10位,即cmd[9:0]表示选区终点横坐标的具体指,表示的坐标范围为[0,767],其余位,即cmd[12:10]无效;
⑥cmd[15:13]=100,表示终点纵坐标标识,即EndY,该命令的低10位,即cmd[9:0]表示选区终点纵坐标的具体指,表示的坐标范围为[0,1023],其余位,即cmd[12:10]无效;
如图2所示,选区控制单元在写触发命令的控制下,从二值图像存储模块中读取一幅大小为m×n的二值图像,其中m的取值固定为1024,n的取值固定为768;选区控制单元在选区有效命令的触发下,根据选区起点坐标(StartX,StartY)和选区终点坐标(EndX,EndY)对二值图像进行选区处理,得到处理后的二值图像,并输入FIFO单元;
如图3和图4所示,FIFO单元对处理后的二值图像进行格式转换处理,得到大小为u×v的预显示图像并向DMD显示单元发送数据容量rd_Count及数据;从而将预显示图像输出给DMD显示单元;具体的说,在选区有效命令的触发下,FPGA处理模块保留选择区域内二值图像信息,并对选择区域外的二值图像分别与“0”进行“与”操作,实现选区处理,从而获得处理后的二值图像;
如图4和图5所示,DMD显示单元在写触发命令的触发下,读取预显示图像,并根据DDC4100模块接口协议将图像逐行写入DDC4100模块,直到完成预显示图像的写入操作后,DMD显示单元向DDC4100模块发送复位信号,并等待DDC4100模块中的DMD设备完成预显示图像的显示。
本实施例中,一种用于DMD动态选区的FPGA处理方法,是应用于由PC机、RS232串口、FPGA处理模块、二值图像存储模块和DDC4100模块所组成的系统中,并按如下步骤进行:
步骤1、在时钟周期的控制下,FPGA处理模块通过RS232串口接收PC机发送的数据帧并进行识别,得到控制命令;控制命令包括:写触发命令、选区有效命令、选区起点坐标(StartX,StartY)和选区终点坐标(EndX,EndY);由选区起点坐标(StartX,StartY)和选区终点坐标(EndX,EndY)构成选择区域;
步骤2、在写触发命令的控制下,FPGA处理模块从二值图像存储模块中读取一幅大小为m×n的二值图像;
步骤3、在选区有效命令的触发下,FPGA处理模块保留选择区域内二值图像信息,并对选择区域外的二值图像分别与“0”进行“与”操作,实现选区处理,从而获得处理后的二值图像;选区处理单元有6个阶段组成,分别为:RST,IDLE,S1,S2,S3,S4,其中RST表示复位阶段,IDLE表示初始化阶段,S1表示选区处理阶段一、S2表示选区处理阶段二、S3表示选区处理阶段三、S4表示不进行选区处理阶段,各个阶段均在同一个时钟周期clk_W控制下工作。各阶段之间按如下步骤进行:
步骤3.1、FPGA处理模进行复位RST操作,包括:选区起点坐标、选区终点坐标恢复默认值,即(StartX,StartY)=(0,0),(EndX,EndY)=(767,1023),行计数器countA清零,写触发命令、选区有效命令清零;若复位完成,则执行步骤3.2,进入IDLE阶段;否则重复执行步骤3.1,停留在RST阶段;
步骤3.2、FPGA处理模块进行初始化IDLE操作,包括接受写触发命令、选区有效命令、选区起点坐标和选区终点坐标,判断写触发命令和选区有效命令是否有效,若两者都有效,则执行步骤3.3,进入S1阶段,并初始化行计数器countA=1;若写触发命令有效,选区有效命令无需,执行步骤3.6,进入S4阶段,并初始化行计数器countA=1;否则继续执行步骤3.2,停留在IDLE阶段;
具体实现方式如下:
写使能=1,选区命令=1,进入S1阶段,清除FIFO单元的复位信号,即将FIFO单元中的rst赋值为0;并向FIFO单元输出写使能信号,即将FIFO单元中的wr_En赋值为1;
写使能=1,选区命令=0,进入S4阶段,清除FIFO单元的复位信号,即将FIFO单元中的rst赋值为0;并向FIFO单元输出写使能信号,即将FIFO单元中的wr_En赋值为1;
写使能=0,选区命令=0或者1,停留在IDLE阶段,并对FIFO单元执行复位操作,即将FIFO单元中的rst赋值为1,wr_En=0,rd_En=0;
步骤3.3、判断countA<StartX是否成立,若成立,则将二值图像中第countA行的数据与“0”进行“与”操作后,将countA+1赋值给countA,将处理后的第countA行数据通过din[1023:0]接口输入FIFO单元;并返回步骤3.3,继续停留在S1阶段;否则,执行步骤3.4,进入S2阶段;S1阶段主要用于处理位于选区起点横坐标前的StartX行数据,将位于[0,StartX)行的所有数据清除;
步骤3.4、判断countA≤EndX是否成立,若成立,则保留二值图像中第countA行的第StartY列至第EndY列的信息;将第countA行的第0列至第(StartY-1)列、以及第countA行的第(EndY+1)列至第m列的二值图像分别与“0”进行“与”操作后,将countA+1赋值给countA,处理后的第countA行数据通过din[1023:0]接口输入FIFO单元;并返回步骤3.4,继续停留在S2阶段;否则执行步骤3.5,进入S3阶段;S2阶段主要用于处理横坐标位于[StartX,EndX]行内的数据,对于横坐标位于此区间的图像数据,保留纵坐标位于[StartY,EndY]列的数据,清除纵坐标位于[0,StartY)或(EndY,1023]列的数据;
步骤3.5、判断countA<n是否成立,若成立,则将二值图像中第countA行的数据与“0”进行“与”操作后,将countA+1赋值给countA,处理后的第countA行数据通过din[1023:0]接口输入FIFO单元;并返回步骤3.5,继续停留在S3阶段;否则,表示实现选区处理,返回步骤3.2,进入IDLE阶段,等待下一次选区处理;S3阶段主要用于处理位于选区终点横坐标后的768-EndX行数据,将位于(EndX,767]行的所有数据清除;
步骤3.6、判断countA<n是否成立,若成立,则保留二值图像中第countA行的信息,将第countA行数据通过din[1023:0]接口输入FIFO单元,并将countA+1赋值给countA后,返回步骤3.6,继续停留在S4阶段;否则,表示实现选区处理,返回步骤3.2,进入IDLE阶段,等待下一次选区处理。
步骤4、FPGA处理模块对处理后的二值图像进行格式转换处理,得到大小为u×v的预显示图像,并确定数据容量rd_Count;
如图4所示,FIFO单元由6组输入信号:rst,clk_R,clk_W,wr_En,rd_En和din[1023:0]以及4组输出信号:full,empty,rd_Count和dout[127:0]组成,其中:
rst表示复位信号,rst=1表示复位,rst=0表示复位完成;
clk_R表示读时钟周期,与显示单元时钟同步;
clk_W表示写时钟周期,与选区单元时钟同步;
wr_En表示写使能,wr_En=1表示写使能,wr_En=0表示无写使能;
rd_En表示读使能,rd_En=1表示写使能,rd_En=0表示无写使能;
din[1023:0]表示写入FIFO单元数据的格式,宽度为1024bits;
full表示FIFO内部空间是否已满,full=1表示内部空间已满,full=0表示内部空间不满;
empty表示FIFO内部空间为空,empty=1表示内部空间为空,empty=0表示内部空间不空;
rd_Count表示FIFO单元中缓存的数据个数;
dout[127:0]表示FIFO单元输出数据格式,宽度为128bits;
FIFO单元内部RAM空间不满,即full=0的情况下,在写使能wr_En和写时钟周期clk_W的作用下,接收选区单元通过din[1023:0]数据接口传输过来的宽度为1024bits的图像数据,将图像数据写入到FIFO单元的内部RAM单元中,并将图像数据转换为宽度为128bits的预显示图像数据,用于dout[127:0]数据接口输出到显示单元中;转换后得到大小为u×v的预显示图像,其中u的取值固定为128,v的取值固定为6144;FIFO单元告知DMD显示单元,其内部缓存的数量容量rd_Count,在内部空间不空,即empty=0的情况下,在读时钟周期clk_R和读使能rd_En控制下,利用dout[127:0]数据接口将预显示图像输入到显示单元中;
如图5所示,步骤5、在写触发命令的触发下,FPGA处理模块根据DDC4100模块接口协议将预显示图像逐行写入DDC4100模块,直到完成预显示图像的写入操作后,向DDC4100模块发送复位信号,并等待DDC4100模块中的DMD设备完成预显示图像的显示,从而实现显示处理。显示单元有7个阶段组成,分别为:RST,IDLE,S1,S2,S3,S4和S5,其中RST表示复位阶段,IDLE表示初始化阶段,S1表示显示理阶段一、S2表示显示处理阶段二、S3表示显示处理阶段三、S4表示复位处理阶段,S5表示等待阶段,各个阶段均在同一个时钟周期clk_R控制下工作。DDC4100模块接口协议中包含以下信号可以简化为,行地址row_addr[9:0],表示的范围为0到767,写入模式model,DMD复位模式rst0,写入数据data;显示模块内部需要两个计数器:行计数器countB,列计数器countC;各阶段之间按如下步骤进行:
步骤5.1、FPGA处理模进行复位RST操作,包括复位行计数器countB=0、列计数器countC=0,写入数据data=0,行地址row_addr=0,写入模式model=0和DMD复位模式rst0=0;若复位完成,则执行步骤5.2,进入IDLE阶段;否则重复执行步骤5.1,继续停留在RST阶段;
其中写入模式和DMD复位模式的具体操作操作如下:
model=0,rst0=0,写入一行,复位一次;
model=1,rst0=1,写完全部的768行,整体复位;
其他状态不考虑。
步骤5.2、FPGA处理模进行初始化IDLE操作,包括初始化行计数器countB=0,列计数器countC=0,写入模式model=1,DMD复位模式rst0=1,写入数据data=0,行地址row_addr=0;判断写使能命令是否有效,若有效,则执行步骤5.3,进入S1阶段;否则重复执行步骤5.2,继续停留在IDLE阶段;
步骤5.3、判断FIFO单元的数据容量rd_Count大于m/u是否成立,即rdCount≥8是否成立,若成立,则执行步骤5.4,进入S2阶段;否则,仍返回步骤5.3执行,继续停留在S1阶段;该阶段主要是用于确保FIFO单元中是否有1024bits的图像数据;
步骤5.4、FPGA处理模块根据行地址row_addr指示的位置,将一行数据写入DDC4100模块,并将countB+1赋值给countB,将row_addr+1赋值给row_addr,执行步骤5.5,进入状态S3;在该阶段,写入一行数据过程中,需要设置一个列计数器countC,每写入一次数据,将countC+1赋值给countC,当countC大于等于8时,表示写完一行数据,由于在S1阶段已经做出判断是否有1024bits的数据,即一行数据,所以该阶段只需重复执行8次,即表示写完一行数据;
步骤5.5、FPGA处理模块判断countB≥n是否成立,n=768,若成立,则执行步骤5.6,进入S4阶段;否则,执行步骤5.3,继续停留在S3阶段;该阶段主要用于判断数据是否已经全部写完,即countB是否大于768,同时对S2阶段中的countC赋值为0,用于下一阶段处理;
步骤5.6、FPGA处理模块向DDC4100模块发送复位信号,并等待T个时钟周期后,执行步骤5.7,进入S5阶段,一般情况下T的取值为16;
步骤5.7、FPGA处理模块检测DDC4100模块是否完成复位;若完成,则DDC4100模块对预显示图像在自身DMD设备中进行显示,同时,FPGA处理返回步骤5.2,进入IDLE阶段;否则,返回步骤5.7,继续停留在S5阶段;该阶段需要等该a×T个时钟周期,a为正整数,每隔T个时钟周期,检测一次复位完成信号,若没有完成继续等待T个时钟周期。
Claims (5)
1.一种用于DMD动态选区的FPGA处理模块,是应用于由PC机、RS232串口、二值图像存储模块和DDC4100模块所组成的系统中;所述PC机通过所述RS232串口与所述FPGA处理模块通信,所述FPGA处理模块与所述二值图像存储模块相连,用于读取所述二值图像存储模块中存储的图像;所述FPGA处理模块与所述DDC4100模块相连,用于向所述DDC4100模块输入图像;其特征是:所述FPGA处理模块包括:命令接收单元、选区控制单元、FIFO单元和DMD显示单元;
所述命令接收单元在时钟周期的控制下,通过所述RS232串口接收所述PC机发送的数据帧并进行识别,得到控制命令并发送给所述选区控制单元和所述DMD显示单元;所述控制命令包括:写触发命令、选区有效命令、选区起点坐标(StartX,StartY)和选区终点坐标(EndX,EndY);
所述选区控制单元在所述写触发命令的控制下,从所述二值图像存储模块中读取一幅大小为m×n的二值图像;所述选区控制单元在所述选区有效命令的触发下,根据所述选区起点坐标(StartX,StartY)和选区终点坐标(EndX,EndY)对所述二值图像进行选区处理,得到处理后的二值图像,并输入所述FIFO单元;
所述FIFO单元对所述处理后的二值图像进行格式转换处理,得到大小为u×v的预显示图像并向所述DMD显示单元发送数据容量rd_Count及数据dout;从而将所述预显示图像输出给所述DMD显示单元;
所述DMD显示单元在所述写触发命令的触发下,读取所述预显示图像,并根据所述DDC4100模块接口协议将图像逐行写入所述DDC4100模块,直到完成所述预显示图像的写入操作后,所述DMD显示单元向所述DDC4100模块发送复位信号,并等待所述DDC4100模块中的DMD设备完成所述预显示图像的显示。
2.根据权利要求1所述的FPGA处理模块,其特征是,所述选区控制单元是按如下步骤对所述二值图像进行选区处理:
步骤1、由所述选区起点坐标(StartX,StartY)和所述选区终点坐标(EndX,EndY)构成选择区域;并保留所述选择区域内二值图像信息;
步骤2、对所述选择区域外的二值图像分别与“0”进行“与”操作,从而获得处理后的二值图像。
3.一种用于DMD动态选区的FPGA处理方法,是应用于由PC机、RS232串口、FPGA处理模块、二值图像存储模块和DDC4100模块所组成的系统中,其特征是按如下步骤进行:
步骤1、在时钟周期的控制下,所述FPGA处理模块通过所述RS232串口接收所述PC机发送的数据帧并进行识别,得到控制命令;所述控制命令包括:写触发命令、选区有效命令、选区起点坐标(StartX,StartY)和选区终点坐标(EndX,EndY);由所述选区起点坐标(StartX,StartY)和所述选区终点坐标(EndX,EndY)构成选择区域;
步骤2、在所述写触发命令的控制下,所述FPGA处理模块从所述二值图像存储模块中读取一幅大小为m×n的二值图像;
步骤3、在所述选区有效命令的触发下,所述FPGA处理模块保留所述选择区域内二值图像信息,并对所述选择区域外的二值图像分别与“0”进行“与”操作,实现选区处理,从而获得处理后的二值图像;
步骤4、所述FPGA处理模块对所述处理后的二值图像进行格式转换处理,得到大小为u×v的预显示图像,并确定数据容量rd_Count;
步骤5、在所述写触发命令的触发下,所述FPGA处理模块根据所述DDC4100模块接口协议将所述预显示图像逐行写入所述DDC4100模块,直到完成所述预显示图像的写入操作后,向所述DDC4100模块发送复位信号,并等待所述DDC4100模块中的DMD设备完成所述预显示图像的显示,从而实现显示处理。
4.根据权利要求3所述的用于DMD动态选区的FPGA处理方法,其特征是,所述步骤3中的选区处理是按如下步骤进行:
步骤3.1、所述FPGA处理模进行复位RST操作;若复位完成,则执行步骤3.2;否则重复执行步骤3.1;
步骤3.2、所述FPGA处理模块进行初始化IDLE操作,判断所述写触发命令和选区有效命令是否有效,若两者都有效,则执行步骤3.3,并初始化行计数器countA=1;若所述写触发命令有效,所述选区有效命令无效,则执行步骤3.6,并初始化行计数器countA=1,否则继续执行步骤3.2;
步骤3.3、判断countA<StartX是否成立,若成立,则将所述二值图像中第countA行的数据与“0”进行“与”操作后,将countA+1赋值给countA,将处理后的第countA行数据输入所述FIFO单元;并返回步骤3.3;否则,执行步骤3.4;
步骤3.4、判断countA≤EndX是否成立,若成立,则保留所述二值图像中第countA行的第StartY列至第EndY列的信息;将第countA行的第0列至第(StartY-1)列、以及第countA行的第(EndY+1)列至第m列的二值图像分别与“0”进行“与”操作后,将countA+1赋值给countA,处理后的第countA行数据输入所述FIFO单元;并返回步骤3.4;否则执行步骤3.5;
步骤3.5、判断countA<n是否成立,若成立,则将所述二值图像中第countA行的数据与“0”进行“与”操作后,将countA+1赋值给countA,处理后的第countA行数据输入所述FIFO单元;并返回步骤3.5;否则,表示实现选区处理,返回步骤3.2,等待下一次选区处理;
步骤3.6、判断countA<n是否成立,若成立,则保留所述二值图像中第countA行的信息,将第countA行数据输入所述FIFO单元,并将countA+1赋值给countA后,返回步骤3.6,否则,表示实现选区处理,返回步骤3.2,等待下一次选区处理。
5.根据权利要求3所述的用于DMD动态选区的FPGA处理方法,其特征是,所述步骤5中的显示处理是按如下步骤进行:
步骤5.1、所述FPGA处理模进行复位RST操作;若复位完成,则执行步骤5.2;否则重复执行步骤5.1;
步骤5.2、所述FPGA处理模进行初始化IDLE操作;并初始化行计数器conutB=0;判断所述写触发命令是否有效,若有效,则执行步骤5.3;否则重复执行步骤5.2;
步骤5.3、判断数据容量rd_Count大于m/u是否成立,若成立,则执行步骤5.4;否则,仍返回步骤5.3执行;
步骤5.4、所述FPGA处理模块向所述DDC4100模块写入一行数据,并将countB+1赋值给countB,执行步骤5.5;
步骤5.5、所述FPGA处理模块判断countB≥n是否成立,若成立,则执行步骤5.6;否则,执行步骤5.3;
步骤5.6、所述FPGA处理模块向所述DDC4100模块发送复位信号,并等待T个时钟周期后,执行步骤5.7;
步骤5.7、所述FPGA处理模块检测所述DDC4100模块是否完成复位;若完成,则所述DDC4100模块对所述预显示图像在自身DMD设备中进行显示,同时,所述FPGA处理返回步骤5.2;否则,返回步骤5.7。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611198188.0A CN106708457B (zh) | 2016-12-22 | 2016-12-22 | 用于dmd动态选区的fpga处理模块及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611198188.0A CN106708457B (zh) | 2016-12-22 | 2016-12-22 | 用于dmd动态选区的fpga处理模块及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106708457A true CN106708457A (zh) | 2017-05-24 |
CN106708457B CN106708457B (zh) | 2019-05-31 |
Family
ID=58938808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611198188.0A Active CN106708457B (zh) | 2016-12-22 | 2016-12-22 | 用于dmd动态选区的fpga处理模块及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106708457B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246363A (zh) * | 2018-07-18 | 2019-01-18 | 中国科学院国家空间科学中心 | 一种dmd系统及其存取方法 |
CN114615170A (zh) * | 2022-01-20 | 2022-06-10 | 北京华耀科技有限公司 | 报文处理方法、设备及计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102740083A (zh) * | 2012-06-12 | 2012-10-17 | 华东师范大学 | 智能数字微镜驱动时序配置方法及装置 |
US20150003738A1 (en) * | 2013-07-01 | 2015-01-01 | Xerox Corporation | Adaptive quality image reconstruction via a compressed sensing framework |
CN105657308A (zh) * | 2016-01-04 | 2016-06-08 | 厦门理工学院 | 一种dmd系统及dmd控制方法 |
US20160366397A1 (en) * | 2015-06-12 | 2016-12-15 | Research & Business Foundation Sungkyunkwan University | Embedded system, fast structured light based 3d camera system and method for obtaining 3d images using the same |
-
2016
- 2016-12-22 CN CN201611198188.0A patent/CN106708457B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102740083A (zh) * | 2012-06-12 | 2012-10-17 | 华东师范大学 | 智能数字微镜驱动时序配置方法及装置 |
US20150003738A1 (en) * | 2013-07-01 | 2015-01-01 | Xerox Corporation | Adaptive quality image reconstruction via a compressed sensing framework |
US20160366397A1 (en) * | 2015-06-12 | 2016-12-15 | Research & Business Foundation Sungkyunkwan University | Embedded system, fast structured light based 3d camera system and method for obtaining 3d images using the same |
CN105657308A (zh) * | 2016-01-04 | 2016-06-08 | 厦门理工学院 | 一种dmd系统及dmd控制方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246363A (zh) * | 2018-07-18 | 2019-01-18 | 中国科学院国家空间科学中心 | 一种dmd系统及其存取方法 |
CN114615170A (zh) * | 2022-01-20 | 2022-06-10 | 北京华耀科技有限公司 | 报文处理方法、设备及计算机存储介质 |
CN114615170B (zh) * | 2022-01-20 | 2023-08-04 | 北京华耀科技有限公司 | 报文处理方法、设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106708457B (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108681984B (zh) | 一种3*3卷积算法的加速电路 | |
AU721764B2 (en) | High performance universal multi-port internally cached dynamic random access memory system, architecture and method | |
US4562435A (en) | Video display system using serial/parallel access memories | |
CN102270444B (zh) | 视频处理芯片数据流控制及帧缓存装置 | |
US9240165B2 (en) | Display driver integrated circuit including first-in-first-out (FIFO) memories configured to receive display data from a distributor and output the display data to graphics memories a display system having the same, and a display data processing method thereof | |
CN106846255B (zh) | 图像旋转实现方法及装置 | |
CN101236774B (zh) | 单端口存储器实现多端口存储功能的装置和方法 | |
CN102263880A (zh) | 一种图像缩放的方法和装置 | |
CN104717485A (zh) | 一种基于fpga的vga接口裸眼3d显示系统 | |
US20100325375A1 (en) | Data-access control device and data-access control method | |
CN102763071A (zh) | 仅取回帧的活动区域的用户接口单元 | |
JPH11103407A (ja) | Ccdデータ画素補間回路およびこのccdデータ画素 補間回路を備えたデジタルスチルカメラ | |
CN104065937B (zh) | 用于cmos图像传感器的实时高速图像预处理方法 | |
CN109858622B (zh) | 深度学习神经网络的数据搬运电路和方法 | |
EP0778576B1 (en) | A synchronous dynamic random access memory integrated circuit, a method for accessing said memory and a system comprising such a memory | |
CN106708457A (zh) | 用于dmd动态选区的fpga处理模块及其方法 | |
CN105577985B (zh) | 一种数字图像处理系统 | |
CN102831872A (zh) | 基于fpga的lcd信号转vga信号的实现方法 | |
CN101969552B (zh) | 一种视频数据并行处理系统及其方法 | |
CN113794849B (zh) | 用于图像数据同步的装置、方法及图像采集系统 | |
KR100438736B1 (ko) | 어드레스 라인을 이용해 데이터 쓰기를 수행하는 메모리제어 장치 | |
Gong et al. | Design of high-speed real-time sensor image processing based on FPGA and DDR3 | |
CN101404145B (zh) | 液晶显示控制系统 | |
CN111554334A (zh) | 一种实现多tap访问DDR的方法及系统 | |
CN105243028B (zh) | 一种降低图像缩小处理时系统峰值带宽的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |