基于SOPC适用于不同规格LCOS的控制器设计

嵌入式设计应用

133人已加入

描述

1 引  言

校正器作为自适应光学系统的核心部件,在很大程度上决定着自适应技术发展的方向。目前在自适应光学系统使用较多的是变形镜校正器。

随着自适应技术在眼底观测方向的使用,传统变形镜校正器显露出其固有的缺点,由于受校正单元少的限制,变形镜校正器很难对存在高阶像差的眼底成像。因此,校正单元多的液晶校正器开始在眼底观测领域广泛使用。与玻璃基板液晶显示器相比,采用硅基板的液晶显示器(LCOS)由于具有尺寸小、分辨率高、光效利用率高等优点,成为目前的最佳选择。作为LCOS驱动威廉希尔官方网站 的核心———为液晶模块(LCM)提供显示数据和时序信号的LCOS控制器通常都是由专用集成威廉希尔官方网站 (ASIC)组成。在实际工程应用中,需要各种分辨率的LCOS,由于每一种LCOS都需要专门的显示控制器,因此LCOS的设计和使用都比较繁琐。

本设计采用现场可编程门阵列(FPGA)器件来代替ASIC,利用可编程片上系统(SOPC)实现通用LCOS显示控制器的设计。在使用中只需通过对软件参数进行修改,即可完成对不同分辨率 LCOS的控制。由于液晶自适应系统需要传输的数据量很大,所以为了保证系统的实时性,采用USB2.0协议进行数据传输。本文使用了NXP公司的PDIUSBD12的USB芯片、ALTERA公司的EP1C6Q240C8器件,采用C++语言设计了USB驱动程序和固件程序,利用VHDL硬件描述语言设计了通用LCOS控制器并在实际应用中通过测试,基本上实现了通用LCOS控制器的预期目标。

2 系统原理

LCOS的显示采用逐行扫描方式,即当一行被选通以后,这一行中的各列信号同时加到列上,并维持一个扫描行的时间,当这一时间结束后选通下一行,各列电极施加下一行的显示电压。

目前普通的液晶控制器都是由存储器和控制器组成,由一块MCU 接收上位机发送过来的显示数据,并由该MCU分配存储地址,生成时序信号,把数据存入存储器中,而后由液晶显示模块读取存储器中的数据。存储器的存取速度较慢,在读写大批量数据时很费时,很难匹配LCOS的响应速度,并且当更换不同分辨率的LCOS显示模块后还需要有新的控制器,存在成本太高且过程烦琐的缺点。

有鉴于此,本文提出了基于SOPC 设计LCOS控制器的思路,即在FPGA 内构建一个NIOSⅡ软核处理器和SRAM 存储器,把SRAM映射到LCOS显示模块的数据缓冲区,将NIOSⅡ与PDIUSBD12以DMA 的方式连接,将NIOSⅡ与上位机以串口的方式连接,通过设置LCOS参数和存储器规模参数在内的各种参数,适应不同分辨率的LCOS;通过DMA方式节省传输时间;通过把SRAM 映射到显示数据缓冲区节省存储器的存取时间。如图1所示。

LCOS系统原理图

控制器

3 系统设计

3.1 系统引脚信号时序分析

一般来说,LCM 引脚都具有如表1所示的功能描述。

表1 LCM 引脚信号功能
 
控制器

LCM 引脚信号功能

每个CP移位脉冲信号都是通过一系列CP脉冲,把完整的一行显示数据(D0~D7)存入移位寄存器中。移位寄存器与锁存器并口相接,当完整的一行显示数据被存入移位寄存器后,在锁存信号LP的作用下,该行数据被锁存到锁存器内,并输出给列电极。因此LP的周期应为一个行周期。当一帧图像的最后一行显示数据存入移位寄存器后,FLM 帧扫描信号变成高电平,其脉宽维持超过一个LP脉宽。因此FLM 的周期应为一帧图像的时间,即各行LP的周期和。M 是液晶显示模块的交流驱动信号,每一帧时间改变一次波形的极性,可以防止液晶显示的单方向扭曲变形。更为详细的引脚信号时序关系如图2和图3所示。

引脚信号的时序关系1
控制器

图2 引脚信号的时序关系1

控制器

图3 引脚信号的时序关系2。

3.2 参数确定

在设计通用分辨率的LCOS控制器之前,先要确定某些参数。这些参数包括LCOS的分辨率m×n,LCOS的灰度级2u(一般情况下LCOS的灰度为256),LCOS显示器的刷新频率a Hz,信号CP的频率b MHz等。这些参数由上位机通过串口发送到NIOSⅡ处理器中。根据这些参数,由NIOSⅡ计算得到如下关系:每一帧的周期为 103/a(ms);每一行的周期为106a-1 n-1(us);将一行显示数据写入寄存器的时间为m/b (μs);每一行的空时间[106a-1n-1]-[m/b]us),这一项应当不小于0。依据计算后的数据和图2、图3所示的信号关系,使用定时器和脉宽调制器(PWM)生成LCOS的逻辑控制信号。同样在NIOSⅡ中还要完成SRAM 内存的设计,内存的实现是依靠FPGA 中的逻辑门阵列来实现的。设计所遵循的原则是SRAM 的容量能至少装下完整的2帧数据,即2m×n×2u,一帧数据存储区用于当前显示,另一帧数据存储区同时接收下一帧要显示的数据,这样的策略虽然耗费了大量的逻辑门数量,却可以使低速的存储器和高速的LCOS显示器相匹配,同时更好地发挥USB的速度优势。

4 实例设计

在实际应用中,以256×256分辨率、256灰度级的LCOS为例来设计LCOS控制器。

首先根据已有的LCOS计算各种参数。对于256×256的LCOS,其刷新频率为200Hz,时钟信号CLKB的频率为20MHz。因此,每一帧的周期为5ms,每一行的周期为19.53μs(相当于391个CLKB时钟周期时间),将一行显示数据写入寄存器的时间为12.8μs(相当于256个CLKB时钟周期时间),每一行的空时间为6.73μs(相当于135个CLKB时钟周期时间)。如果设计时发现每一行的空时间小于0,则要提高时钟信号CLKB的频率。

接下来是设计SRAM 存储器,SRAM 容量的设计原则是能装下完整的2帧数据,即2×256×256×256就能装下完整的2帧数据,但为了便于CPU还可以完成其他计算的需要,内存的设计要比2帧数据大一些,这里取3帧数据容量,同时设定固定的区域为显示缓冲区。

将USB的数据输入缓冲区同样设在该显示缓冲区域,这样通过USB端口输入的待显示数据直接存储在显示缓冲区域。

然后是将外部的LCOS显示器的数据输入端口作为NIOSⅡ处理器的I/O 映射地址,通过DMA处理,使NIOSⅡ内存的显示缓冲区以DMA的方式通过AHB总线与LCOS显示器的数据输入端口直接输入。使用DMA和总线的好处是既简便快速,传输又很稳定。

在QuartusⅡ6.0环境下对NIOSⅡ控制器进行功能仿真测试,仿真的波形如图4所示。该控制器的时序信号符合设计要求。完成功能仿真后,经过综合生成门级网表,下载到ALTERA公司Cyclone系列EP1C6Q240C8器件中。

NIOSⅡ控制器的功能仿真波形
控制器

图4 NIOSⅡ控制器的功能仿真波形

5 结  论

利用SOPC和USB设计了一种LCOS通用控制器。通常LCOS的价格较高且不能通用,利用本文的方法可以最大限度地降低材料成本和设计成本,并且可以根据应用的需要,通过发送不同的参数适应于不同的LCOS显示器。由于采用软核处理器,系统的稳定性稍差一些,并且PDIUSBD12的速度仅为12MB/s。为了提高系统的稳定性,可以使用ARM9 处理器;为了发挥USB2.0 的全速480 MB/s,可以使用新一代CH375USB控制器。这样就可以使LCOS通用控制器拥有更优秀的性能。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分