一种基于dma的能够刷led显示屏的gpio模块的制作方法

文档序号:6378613阅读:236来源:国知局
专利名称:一种基于dma的能够刷led显示屏的gpio模块的制作方法
技术领域
本发明涉及LED显示屏刷屏技术,尤其涉及适用于高带宽、大尺寸的LED显示屏的刷屏技术。
背景技术
LED显示屏技术飞速发展,显示屏色彩从单、双色向全彩普及,显示内容由文字图片转化为视频实时显示,对LED显示屏的刷新能力提出了更高的要求。在传统的LED显示屏的控制卡中,往往需要加上FPGA进行大数据量的刷屏操作。这样在生产成本上会比较高,而且实现起来也比较复杂。

发明内容
本发明的目的在于提供一种基于DMA的能够刷LED显示屏的GPIO模块,能很好的满足LED显示屏的刷屏要求,并降低了产品设计的复杂性和生产成本。本发明的技术方案如下一种基于DMA的能够刷LED显示屏的GPIO模块,包括以下结构控制寄存器模块,与CPU模块相连,用于存储控制指令和状态数据;FIFO模块,与DMA模块和数据输出控制模块相连,用于数据的缓冲;LED_ABCD控制模块,与控制寄存器模块、LED_STB控制模块、LED_CLKS控制模块和IObank选择模块相连,用于控制LED显示屏接口的行选择信号的时序;LED_0EN控制模块,与控制寄存器模块、LED_STB控制模块、LED_CLKS控制模块和IObank选择模块相连,用于控制LED显示屏接口的使能信号的时序;LED_STB控制模块,与控制寄存器模块、LED_AB⑶控制模块、LED_0EN控制模块、LED_CLKS控制模块和IObank选择模块相连,用于控制LED显示屏接口的数据锁存信号的时序; LED_CLKS控制模块,与控制寄存器模块、LED_ABCD控制模块、LED_0EN控制模块、LED_STB控制模块和IObank选择模块相连,用于控制LED显示屏接口的各个时钟信号的时序;数据输出控制模块,与控制寄存器模块、FIFO模块和IObank选择模块相连,用于控制输出数据的格式和位宽;IObank选择模块,与控制寄存器模块、LED_AB⑶控制模块、LED_0EN控制模块、LED_STB控制模块、LED_CLKS控制模块、数据输出控制模块及LED显示屏模块相连,用于把LED显示屏的控制信号、时钟信号和数据分别在不同的IObank上输出。其进一步的技术方案为所述LED_ABCD控制模块内部具有递增计数模块和移位模块,对LED_CLKS控制模块送来的LED_CLKS信号进行计数,分别通过递增计数模式和移位模式产生行选择信号;先配置每行有多少个数据,自动地对数据计数,一行计满时由多路选择器自动变换行选择信号;由LED_STB控制模块送来的LED_STB信号控制递增计数模块和移位模块的清零操作;并接收来自控制寄存器模块的控制信号的控制。其进一步的技术方案为所述LED_0EN控制模块内部具有计数器,对LED_CLKS控制模块送来的LED_CLKS信号进行计数,由比较器将计数器的值与控制寄存器模块中的值进行对比来决定LED_0EN的电平状态;由LED_STB控制模块送来的LED_STB信号控制计数器的清零操作;并接收来自控制寄存器模块的控制信号的控制。其进一步的技术方案为所述LED_STB控制模块内部具有计数器,对LED_CLKS控制模块送来的LED_CLKS信号进行计数 ,由比较器将计数器的值与控制寄存器模块中的值进行对比来决定LED_STB的电平状态;并接收来自控制寄存器模块的控制信号的控制。其进一步的技术方案为所述LED_CLKS控制模块内部具有计数器和比较器,将系统时钟通过计数器和比较器产生LED_DATA_CLK信号,并通过分频器对LED_DATA_CLK信号分频得到LED_CLKS信号;并接收来自控制寄存器模块的控制信号的控制。上述技术方案中所述CPU 是指 Central Processing Unit,中央处理器。所述DMA是指Direct Memory Access,直接存储器访问。所述FIFO 是指 First Input First Output,先入先出队列。所述GPIO 是指 General Purpose Input Output,通用输入 / 输出。本发明的有益技术效果是(I)本发明提供一个内存到芯片管脚的高速数据通道,DMA模块从内存中将数据取出然后再直接写入到FIFO模块中,数据输出控制模块从FIFO模块中将数据取出然后根据相关的配置将数据处理后输出到IObank选择模块,这样能提供很大的刷屏带宽。(2)本发明的LED_CLKS控制模块用于产生多个同频率但不同相位的时钟,这些时钟的极性都可以调节,有效电平的长度也可以调节,这样是为了适应不同的LED显示屏。输出的数据在每个相位都会更新,而每个相位都会对应一个时钟的有效边沿,这样就能保证每个不同相位的时钟在他们的有效边沿都能采样到不同的数据,如LED_CLKS控制模块一共产生3个同频不同相的时钟,这样一个时钟周期就分为3个相位,每个相位都有数据更新,每个相位的数据都对应一个时钟边沿,这样就把数据分散到3个时钟域中,相应的就将数据线的宽度扩展了 3倍,如果原来是32bit,扩展后就变为96bit。利用这种方法,就可以在高度上扩展LED显示屏,弥补了 LED显示屏长度上不能扩展太长的问题。(3)本发明包含LED_AB⑶控制模块、LED_0EN控制模块、LED_STB控制模块,能根据配置自动的产生LED显示屏接口的一些控制信号。LED_AB⑶控制模块能够产生LED显示屏的行选择信号。LED_0EN控制模块用于产生使能信号,它的极性可调,用于适用不同的显示屏;它的有效电平的宽度可以调节,用于调节LED显示屏的亮度。LED_STB控制模块用于产生数据锁存信号,用于LED显示屏锁存输出的数据。这些信号都由硬件自动产生,很大程度上减小了设计的复杂度,使利用本发明的产品简单易用。(4)本发明的IObank选择模块可以选择最后要输出的控制信号、时钟和数据,输出到10管脚的任何bank上,这样使利用本发明的产品应用上会很灵活,避免了管脚复用引起的问题。(5)本发明的数据输出控制模块中可以选择将FIFO中的一个数据分为几个小部分依次发送出去,如FIF0模块中一个数据是32bit的,这样数据输出控制模块可以选择一次输出一个32bit ;或者分两次,每次输出16bit ;或者分四次,每次输出8bit。这样也提高了该发明应用的灵活性。(6)本发明的LED_CLKS控制模块还提供一个和数据同频的时钟信号,即一个时钟边沿对应一个有效数据,这为以后扩展其他的刷屏模式提供的条件。


图I是本发明的结构框图。 图2是LED_AB⑶控制模块的结构框图。图3是LED_0EN控制模块的结构框图。图4是LED_STB控制模块的结构框图。·
图5是LED_CLKS控制模块的结构框图。
具体实施例方式以下结合附图,通过实施例对本发明进行具体说明。如图I所示,本发明由控制寄存器模块1、FIF0模块2、LED_AB⑶控制模块3、LED_OEN控制模块4、LED_STB控制模块5、LED_CLKS控制模块6、数据输出控制模块7及IObank选择模块8构成。下面对各部分进行详细说明控制寄存器模块1,与CPU模块10、LED_AB⑶控制模块3、LED_0EN控制模块4、LED_STB控制模块5、LED_CLKS控制模块6、数据输出控制模块7及IObank选择模块8相连,用于接受和存储CPU模块10发出的指令,然后根据相关的指令来控制其他与其连接的模块的操作模式。FIFO模块2,与DMA模块11、数据输出控制模块7相连。DMA模块11被启动后,FIFO模块2内部如果还有空间,便会向DMA模块11发送请求信号,DMA模块11接受到请求信号后便向FIFO模块2中写入数据,然后再返回一个应答信号给FIFO模块2。FIFO模块2主要用于数据的暂存作用,用于匹配CPU和10管脚的速度。本实施例中将FIFO宽度设计为32bit,深度设计为16。LED_AB⑶控制模块3,与控制寄存器模块I、LED_STB控制模块5、LED_CLKS控制模块6和IObank选择模块8相连,用于控制LED显示屏的行选择信号。内部结构如图2所示,该模块内部有一个递增计数模块13和一个移位模块14,对LED_CLKS信号进行计数,有两种模式产生行选择信号一种是递增计数模式,可以选择1、1 / 2、1 / 4、1 / 8和I /16的扫描模式;一种是移位模式,可以选择1、1 / 2、1 / 3和I / 4的扫描模式。在本实例中先配置每行有多少个数据,LED_ABCD控制模块3会自动的对数据计数,然后一行计满时由多路选择器15自动变换行选择信号,LED_STB信号用于控制递增计数模块13和移位模块14的清零操作。图2中的LED_CLKS信号来自LED_CLKS控制模块6,LED_STB信号来自LED_STB控制模块5,其余控制信号来自控制寄存器模块I。 LED_0EN控制模块4,与控制寄存器模块I、LED_STB控制模块5、LED_CLKS控制模块6和IObank选择模块8相连,用于控制LED显示屏的使能信号,该信号能控制LED显示屏的亮度,它的有效电平宽度可以调节,用于控制LED显示屏的亮度;它的极性也可以配置,用于适应不同的LED显示屏。内部结构如图3所示,该模块内部有一个计数器16,对LED_CLKS信号进行计数,然后比较器17将计数器16的值与控制寄存器模块I中的值进行对比来决定LED_OEN的电平状态,LED_STB信号用于控制计数器16的清零操作。图3中的LED_CLKS信号来自LED_CLKS控制模块6,LED_STB信号来自LED_STB控制模块5,其余控制信号来自控制寄存器模块I。LED_STB控制模块5,与控制寄存器模块I、LED_AB⑶控制模块3、LED_0EN控制模块4、LED_CLKS控制模块6和IObank选择模块8相连,用于控制LED显示屏的数据锁存信号,在一行数据发送完成后在该信号上产生一个有效边沿将数据锁存到LED显示屏上显示。内部结构如图4所示,该模块内部有一个计数器18,对LED_CLKS信号进行计数,然后比较器19将计数器18的值与控制寄存器模块I中的值进行对比来决定LED_STB的电平状态。图4中的LED_CLKS信号来自LED_CLKS控制模块6,其余控制信号来自控制寄存器模块
IoLED_CLKS控制模块6,与控制寄存器模块I、LED_ABCD控制模块3、LED_0EN控制模 块4、LED_STB控制模块5和IObank选择模块8相连,用于产生一个和数据同步的时钟信号和多个同频不同相的时钟信号。本实施例中LED_CLKS控制模块6可以支持I 8个同频不同相的时钟,具体的时钟个数可以通过寄存器配置。如果时钟的个数配置为3,则输出数据的速率是时钟速率的3倍,每个时钟周期被分为3个相位,每个相位都有一个时钟的有效边沿,这样就把32bit的数据总线分时复用到三个时钟域。如果外部有三个LED显示屏,每个LED显示屏用不同的时钟,但3个LED显示屏都使用同一组数据线,这样利用时钟的不同相位,可以在LED显示屏上分别显示不同的内容。该模块的内部结构如图5所示,先通过计数器20和比较器21产生LED_DATA_CLK信号,然后通过分频器22对LED_DATA_CLK信号分频得到LED_CLKS信号。图5中的系统时钟信号由外部CPU产生,控制信号来自控制寄存器模块I。数据输出控制模块7,与控制寄存器模块I、FIFO模块2和IObank选择模块8相连,用于控制输出数据的位宽和速率等。本实施例中FIFO内部的数据是32bit的,在数据输出控制模块7中可以配置成8bit、16bit或者32bit输出。当配置为8bit时,数据输出控制模块7从FIFO模块2中取一个32bit数据,然后分4次发送到IObank选择模块8,这样可以做到对内存中的数据按byte操作,使用起来比较灵活。IObank选择模块8,与控制寄存器模块I、LED_ABCD控制模块3、LED_0EN控制模块4、LED_STB控制模块5、LED_CLKS控制模块6、数据输出控制模块7及LED显示屏模块12相连。用于把LED显示屏的控制信号、时钟信号和数据分别在不同的IO bank上输出,本实施例中一共有20个IObank,每个bank有8个IO ;LED显示屏的控制信号、时钟信号和数据都可以分配到任何一个bank上,这样对以后做产品方案比较有利,避免了在一些情况下IO管脚复用造成一些功能不能正常使用的情况。以上所述的控制寄存器模块I、FIFO模块2、LED_AB⑶控制模块3、LED_0EN控制模块4、LED_STB控制模块5、LED_CLKS控制模块6、数据输出控制模块7及IObank选择模块8 —起构成本发明,即图I中的GPIO模块9。形成本发明中上述各电路模块的基本组成模块/单元为通用模块/单元。图I中的CPU模块10、DMA模块11和LED显示屏模块12均为通用模块,仅供示意,不属于本发明。
本发明实施例中CPU模块10和DMA模块11的总线带宽都是32bit的,在GPIO模块9工作之前,需要CPU模块10向控制寄存器模块I写入相关的配置信息,用来控制GPIO模块9的工作模式。DMA模块11启动后,当检测到FIFO模块2的请求信号,便向FIFO模块2中写入数据。当检测到FIFO模块2中有数据时,数据输出控制模块7便会从FIFO中依次取出数据,然后按照配置要求向IObank选择模块8输出数据,IObank选择模块8选择不同的IO bank输出数据和控制信号。本发明最主要的特点是LED_CLKS控制模块6能产生若干个同频不同相的时钟,这些时钟也输出到IO管脚上,并且每个相位的时钟的有效边沿都对应不同的有效数据。并且输出的同频不同相位时钟的个数也可以根据实际情况进行配置,这样会很大程度上提高实现的灵活性,以适应外围LED显示屏的不同尺寸的设计。以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下,可以做出其他改进和变化。·
权利要求
1.一种基于DMA的能够刷LED显示屏的GPIO模块,其特征在于包括以下结构 控制寄存器模块(I ),与CPU模块(10)相连,用于存储控制指令和状态数据; FIFO模块(2),与DMA模块(11)和数据输出控制模块(7)相连,用于数据的缓冲; LED_AB⑶控制模块(3 ),与控制寄存器模块(I)、LED_STB控制模块(5 )、LED_CLKS控制模块(6)和IObank选择模块(8)相连,用于控制LED显示屏接口的行选择信号的时序;LED_0EN控制模块(4 ),与控制寄存器模块(I)、LED_STB控制模块(5 )、LED_CLKS控制模块(6)和IObank选择模块(8)相连,用于控制LED显示屏接口的使能信号的时序; LED_STB控制模块(5),与控制寄存器模块(I)、LED_ABCD控制模块(3)、LED_0EN控制模块(4)、LED_CLKS控制模块(6)和IObank选择模块(8)相连,用于控制LED显示屏接口的数据锁存信号的时序; LED_CLKS控制模块(6 ),与控制寄存器模块(I)、LED_ABCD控制模块(3 )、LED_0EN控制模块(4 )、LED_STB控制模块(5 )和IObank选择模块(8 )相连,用于控制LED显示屏接口的各个时钟信号的时序; 数据输出控制模块(7),与控制寄存器模块(I)、FIFO模块(2)和IObank选择模块(8)相连,用于控制输出数据的格式和位宽; IObank选择模块(8 ),与控制寄存器模块(I)、LED_AB⑶控制模块(3 )、LED_0EN控制模块(4)、LED_STB控制模块(5)、LED_CLKS控制模块(6)、数据输出控制模块(7)及LED显示屏模块(12)相连,用于把LED显示屏的控制信号、时钟信号和数据分别在不同的IO bank上输出。
2.根据权利要求I所述基于DMA的能够刷LED显示屏的GPIO模块,其特征在于所述LED_AB⑶控制模块(3)内部具有递增计数模块(13)和移位模块(14),对LED_CLKS控制模块(6)送来的LED_CLKS信号进行计数,分别通过递增计数模式和移位模式产生行选择信号;先配置每行有多少个数据,自动地对数据计数,一行计满时由多路选择器(15)自动变换行选择信号;由LED_STB控制模块(5)送来的LED_STB信号控制递增计数模块(13)和移位模块(14)的清零操作;并接收来自控制寄存器模块(I)的控制信号的控制。
3.根据权利要求I所述基于DMA的能够刷LED显示屏的GPIO模块,其特征在于所述LED_0EN控制模块(4)内部具有计数器(16),对LED_CLKS控制模块(6)送来的LED_CLKS信号进行计数,由比较器(17 )将计数器(16 )的值与控制寄存器模块(I)中的值进行对比来决定LED_0EN的电平状态;由LED_STB控制模块(5)送来的LED_STB信号控制计数器(16)的清零操作;并接收来自控制寄存器模块(I)的控制信号的控制。
4.根据权利要求I所述基于DMA的能够刷LED显示屏的GPIO模块,其特征在于所述LED_STB控制模块(5)内部具有计数器(18),对LED_CLKS控制模块(6)送来的LED_CLKS信号进行计数,由比较器(19 )将计数器(18 )的值与控制寄存器模块(I)中的值进行对比来决定LED_STB的电平状态;并接收来自控制寄存器模块(I)的控制信号的控制。
5.根据权利要求I所述基于DMA的能够刷LED显示屏的GPIO模块,其特征在于所述LED_CLKS控制模块(6)内部具有计数器(20)和比较器(21),将系统时钟通过计数器(20)和比较器(21)产生LED_DATA_CLK信号,并通过分频器(22)对LED_DATA_CLK信号分频得到LED_CLKS信号;并接收来自控制寄存器模块(I)的控制信号的控制。
全文摘要
本发明提供一种基于DMA的能够刷LED显示屏的GPIO模块,包括控制寄存器模块、FIFO模块、LED_ABCD控制模块、LED_OEN控制模块、LED_STB控制模块、LED_CLKS控制模块、数据输出控制模块以及IObank选择模块。本发明给数据提供了一个从内存到IO管脚的快速的传输通道,在一定程度上为LED显示屏提供了宽裕带宽条件。LED_CLKS控制模块提供一个和数据同步的时钟和若干个同频不同相的时钟,这些同频不同相的时钟为在高度上扩展LED显示屏提供了条件。LED显示屏所有的控制信号都由硬件自动产生,大大简化了后期开发的复杂度。本发明结合上述特点,能使利用本发明的产品具有外围电路少,设计简单,刷屏能力强等优点。
文档编号G06F13/28GK102902648SQ20121038332
公开日2013年1月30日 申请日期2012年10月11日 优先权日2012年10月11日
发明者孙进军, 周毅, 奚谷枫 申请人:东莞润风电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1