文档库 最新最全的文档下载
当前位置:文档库 › 基于FPGA的CPU转RGB时序模块

基于FPGA的CPU转RGB时序模块

基于FPGA的CPU转RGB时序模块
基于FPGA的CPU转RGB时序模块

基于FPGA的CPU转RGB时序模块

本世纪是一个多媒体的信息化时代。人们对信息的要求已不再局限于简单的文字或语音,而是丰富多彩的视频、音频、图片。随着人们对视频、图像信息的高品质追求,对视频及图片信息再现终端(显示屏)提出了更高要求。这里局限于手机显示屏来看人们对显示屏分辨率要求的不断提升。试看从当初的QQVGA 分辨率显示屏到现在的FHD全高清分辨率显示屏,对我们的研发和生产电测提出了更高的要求。

一般QHD分辨率及以上显示屏多会采用RGB或MIPI Video Mode接口来驱动显示。市面上常用的电测方案是:用三星的2410或2440芯片自带的LCD控制器来直接驱动RGB接口显示屏;用三星的2410或2440芯片自带的LCD控制器加上RGB时序转MIPI Video Mode 时序的桥接IC(如:SSD2825、SSD2828、TC358768)来驱动MIPI Video Mode接口显示屏。这些方案都有其局限性而无法满足测试要求。其局限性主要表现在如下两个方面:第一、2410或2440的LCD 控制器最多支持X坐标2048、Y坐标1024分辨率的显示屏,而手机显示屏HD 分辨率及以上的Y坐标分辨率已大于1024,使得此方案无法满足测试要求;第

二、2410或2440的LCD控制器的PCLK(像素点时钟)频率较低,无法满足HD分辨率及以上显示屏对帧频的需求。基于FPGA的CPU转RGB时序模块能很好的解决以上两方面局限,且简单方便。

什么是FPGA?FPGA是Filed Programmable Gate Array的缩写,即现场可编程门阵列。FPGA是在CPLD基础上发展起来的新型高性能可编程逻辑器件它一般采用SRAM工艺,也有一些专用器件采用Flash工艺或反熔丝(Anti_Fuse)工艺等。FPGA的集成度很高,其器件密度从数万系统门到数千万系统门不等,可以完成极其复杂的时序与组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域。FPGA的基本组成部分有可编程输入\输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元、内嵌专用内核等。FPGA的主要供应商有Xilinx、Altera、Lattice、Actel和Atmel等。

基于FPGA的CPU转RGB时序模块,采用Altera公司的Cyclone II系列中的EP2C8Q208C8N器件为核心来设计。其完成的主要功能就是异步的CPU时序到同步的RGB时序的转换;其技术指标要求PCLK(像素时钟)频率到达100MHz,支持24位色FHD分辨率手机显示屏。

为什么要设计将普通的异步CPU时序转换成满足帧频的高分辨率RGB时序的固定功能模块呢?其原因是:第一、市面上的8051、ARM7、ARM9、Cortek 等内核的低成本MCU芯片资源很多,易购买,也不会增加太多成本;第二、对于功能或软件流程上的处理MCU比FPGA更加灵活,更加容易实现;第三、MCU采用的ADS、Keil等编译器的编译效率比FPGA厂商,如Altera公司的Nios II IDE要高得多,更适合于要频繁调试初始化代码的手机屏的测试;第四,做成固定功能模块,对于不了解FPGA的工程师来说,降低了学习使用的门槛。工程师只要懂得用MCU来控制这个固定功能模块即可。

基于FPGA的CPU转RGB时序模块由FPGA芯片、SRAM芯片、有源晶振三个主要部件组成,用MCU控制其按要求工作。

FPGA内部按四个功能模块进行逻辑设计,分别是相关控制寄存器、时钟管理模块、RGB时序模块、SRAM控制模块。

相关控制寄存器主要用来控制模块的工作状态,总共由10个寄存器组成,分别是0Xb0、0xB1、0xB2、0xB3、0xB4、0xB5、0xB6、0xB7、0x2C、0xE0。其作用如下:

0xb0:

位数 bit10 bit9 bit8 bit7 bit6bit5bit4bit3bit2bit1bit0

默认 0 0 0 0 0 0 0 0 0 0 0

说明:水平同步信号之负脉冲的宽度(多少个PCLK宽度?)

0xb1:

位数 bit10 bit9 bit8 bit7 bit6bit5bit4bit3bit2bit1bit0

默认 0 0 0 0 0 0 0 0 0 0 0

说明:水平同步信号之负脉冲的宽度+脉冲后肩宽度

0xb2:

位数 bit10 bit9 bit8 bit7 bit6bit5bit4bit3bit2bit1bit0

默认 0 0 0 0 0 0 0 0 0 0 0

说明:水平同步信号之负脉冲的宽度+脉冲后肩宽度+水平有效扫描宽度

0xb3:

位数 bit10 bit9 bit8 bit7 bit6bit5bit4bit3bit2bit1bit0

默认 0 0 0 0 0 0 0 0 0 0 0

说明:水平同步信号之负脉冲的宽度+脉冲后肩宽度+水平有效扫描宽度+脉冲前肩宽度

0xb4:

位数 bit10 bit9 bit8 bit7 bit6bit5bit4bit3bit2bit1bit0

默认 0 0 0 0 0 0 0 0 0 0 0

说明:垂直同步信号之负脉冲的宽度(多少个HS宽度?)

0xb5:

位数 bit10 bit9 bit8 bit7 bit6bit5bit4bit3bit2bit1bit0

默认 0 0 0 0 0 0 0 0 0 0 0

说明:垂直同步信号之负脉冲的宽度+脉冲后肩宽度

0xb6:

位数 bit10 bit9 bit8 bit7 bit6bit5bit4bit3bit2bit1bit0

默认 0 0 0 0 0 0 0 0 0 0 0

说明:垂直同步信号之负脉冲的宽度+脉冲后肩宽度+垂直有效扫描宽度

0xb7:

位数 bit10 bit9 bit8 bit7 bit6bit5bit4bit3bit2bit1bit0

默认 0 0 0 0 0 0 0 0 0 0 0

说明:垂直同步信号之负脉冲的宽度+脉冲后肩宽度+垂直有效扫描宽度+脉冲前肩宽度

0x2C:

位数 bit10 bit9 bit8 bit7 bit6bit5bit4bit3bit2bit1bit0

默认 X X X X X X X X X 0 0

说明:bit1,bit0: 0,0:禁止写SRAM,SRAM地址计数器清零,RGB核可以读SRAM 0,1:可以按24bit写SRAM,SRAM地址计数器自加,RGB核禁止读SRAM

1,1:可以按16bit写SRAM,SRAM地址计数器自加,RGB核禁止读SRAM

0xE0:

位数 bit10 bit9 bit8 bit7 bit6bit5bit4bit3bit2bit1bit0

默认 X X X X X X X X 0 0 0

说明:bit2,bit1,bit0: 0,0,0:对应QVGA所需PCLK频率

0,0,1:对应HVGA所需PCLK频率

0,1,0:对应WVGA所需PCLK频率

0,1,1:对应QHD所需PCLK频率

1,0,0:对应HD720所需PCLK频率

1,0,1:对应HD800所需PCLK频率

1,1,0:对应FHD所需PCLK频率RGB时序模块用来完成对SRAM的读操作和RGB时序的输出。

SRAM控制模块完成MCU对SRAM的写操作与RGB时序模块对SRAM的读操作的仲裁。

时钟管理模块完成生成当前所需的PCLK时钟,总共可以产生0XE0寄存器所设置的6种PCLK时钟。

小结:通过以上对基于FPGA的CPU转RGB时序模块的功能描述,可以清楚的看到到此模块绝对优于传统的单纯MCU测试方案和单纯的FPGA测试方案。尤其针对如今HD及以上分辨率的屏的测试更显得非此方案不可。此模块的输入可以是任何能产生CPU时序的单片机或ARM;此模块的RGB时序输出可以做为很多MIPI桥接IC的输入信号。所以此模块具有使用的简易性和通用性。

相关文档