NIOS II控制LCD

NIOS II控制LCD

ID:38177713

大小:93.50 KB

页数:6页

时间:2019-05-24

NIOS II控制LCD_第1页
NIOS II控制LCD_第2页
NIOS II控制LCD_第3页
NIOS II控制LCD_第4页
NIOS II控制LCD_第5页
资源描述:

《NIOS II控制LCD》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于NIOSII嵌入式处理器实现LCD的控制   随着半导体技术以及计算机软硬件技术的飞速发展,对于图像的显示的控制技术也呈现出越来越多的方式。本文介绍了一种基于NIOSII软核处理器实现对LCD-LQ057Q3DC02控制的新方法。在设计中利用FPGA的Altera的SOPCBuilder定制NIOSII软核处理器及其与显示功能相关的“软”硬件模块来协同实现显示控制的软硬件设计。利用SOPC技术,将NIOSIICPU和LCD控制器放在同一片FPGA中,解决了通常情况下必须使用LCD控制专用芯片才能解决LCD显示的问题。1LCD选型及主要特性   本文所采用的LCD是SHARP公司的5.7英寸

2、的LCD-LQ057Q3DC02。它能显示320×240×3点像素,输入信号有:18位色度信号(R,G,B各6位)的数据信号,4个时钟信号(CLK,Hsync,Vsync,Enable)以及实现水平显示模式,垂直显示模式的R/L、U/D和VGA/QVGA模式选择信号线。   事实上,LCD-LQ057Q3DC02是一个逐行扫描设备,它总是从屏幕的左上方开始扫描,先水平扫描完一行(320像素点)到最右边,然后再回到最左边,换下一行,继续扫描。直到扫描到屏幕的最下方(共240行),这样就扫描完一帧图像,然后再回到最左边,开始下一帧的扫描。2Avalon流模式LCD控制器设计   文中实现的LCD实

3、时图像显示控制方式采用的是DMA数据传输方式。设计时,利用DMA控制器在流模式LCD控制器和SDRAM之间建立一条DMA传送通道,让硬件来完成像素信息的自动读取,而NIOSII处理器仅通过操作SDRAM中相应的区块就能实现LCD图像的更新。2.1Avalon流模式控制器的组成   设计Avalon流模式外设时需要遵循Avalon总线规范。在实际设计时,笔者设计的Avalon流模式LCD控制器的硬件结构如图1。该控制器由如下3部分构成:LCD接口控制器、FIFO存储器和AvalonStreamingPort接口。2.2LCD显示控制流程   对LCD-LQ057Q3DC02而言,要实现LCD的正

4、常显示就必须对相应的控制信号正确配置,特别是行同步(LCD_Hsync)、场同步(LCD_Vsync)必须与从SDRAM存储器中取出的图像数据同步,否则,图像将不能正常再现。实现LCD控制的行同步、场同步的控制时序流程如图2。 2.3LCD控制器文件组成及部分代码   与LCD控制器硬件相对应的是3个模块文件,分别是:LCD_interface.vhd,LCD_pixel_fifo.v以及LCD_controller_stream.v。其中LCD_controller_stream.v是顶层模块,其内部也包含了AvalonStreamingPort接口时序部分,LCD_pixel_fifo.v

5、可通过QuartusII中的宏模块直接生成。当生成了上述3个文件后,可选择SOPCBuilder中的System->AddInterfacetoUserLogic命令打开InterfacetoUserLogic对话框,选择总线类型为AvalonMemorySlave,因为工作于流模式的LCD控制器可看成一个存储器(FIFO类型),可通过添加DMA控制器来实现存储器(FIFO)到存储器(SDRAM)的DMA设置。下面给出LCD接口部分程序。ENTITYLCD_interfaceISPORT(reset:INstd_logic;lcd_clk:INstd_logic;Wrdata:INstd_lo

6、gic_vector(17downto0);hsync:OUTstd_logic;vsync:OUTstd_logic;enable:OUTstd_logic;lcd_R/L:OUTstd_logic;lcd_U/D:OUTstd_logic;sel_VGA_QVGA:OUTstd_logic;RGB:OUTstd_logic_vector(17downto0);end_of_picture:OUTstd_logic);ENDLCD_interface;ARCHITECTUREtransOFLCD_interfaceISprocess(lcd_clk)beginif(rising_edge(l

7、cd_clk))thenif(hcnt<400)then hcnt<=hcnt+1;else hcnt<=(others=>'0');endif;endif;endprocess;--行计数器模块process(lcd_clk)beginif(rising_edge(lcd_clk))thenif(hcnt=320)thenif(vcnt<262)thenvcnt<=vcnt+1;elsevcnt

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。