随着LCD技术的不断进步使得其应用变得日益广泛。手持式设备、测试测量仪器,工业仪表、办公设备、电子游戏机、互连网设备、医学仪器等很多产品都需要LCD,在无线便携式设备中应用更是广泛,这就要求有强大的LCD控制器作为支撑。S1D13506是EPSON公司生产的大规模显示控制器家族中较新的一款,是以SEDl354控制器为基础发展起来的具有更多功能的LCD显示控制器,支持全类型、大规模的LCD及CRT/TV[1]。它可以灵活地对各种不同的显示方式进行设置,功能非常强大,其丰富的输出接口兼容目前市场上流行的多种CPU总线。
2、S1D13506芯片介绍
S1D13506是爱普生公司针对嵌入式系统设计的,是彩色LCD/CRT/TV图象控制器。其主要特性有:该芯片内部没有显示内存,它是通过16位的EDO-DRAM/FPM-DRAM接口,可以连接一个512K字节(256K*16)或2M字节(1M*16)的设备;兼容多种处理器总线(如:StrongArm,Motorola MC68000/MC68030 总线等);还支持MediaPlug 接口;具有全LCD控制信号,支持4/8位扭曲向列型(TN)、4/8/16位超扭曲向列型(STN)、8/16位双超扭曲向列型(DSTN))、9/12位TFT/D-TFD,在16bpp下可达到800*600像素的分辨率面板、18位TFT/D-TFD(最高64K色)、CRT、NTSC和PAL TV输出[2]。该芯片可以同时输出数字信号和模拟信号,也就是说,由于LCD和CRT是独立的,可以同时管理和显示不同的图象。该芯片内置了RAMDAC硬件X-Y轴转置2维加速器,114个寄存器来配置各种显示模式,较低的功耗和低工作电压可以满足各种手持设备的图象控制。基于S1D13506的这些有利的特征,使其在大规模LCD的控制方面是个不错的选择。
3、硬件实现
本卡S1D13506与处理器的接口采用了通用类型总线(包括数据总线、地址总线、控制总线)接口定义见表1。芯片所用象素时钟是由同步信号发生器ICS1523来提供的,外接1M*16的EDO-RAM(IS41LV16100 )。图1所示的是显示卡硬件总体连接图。连接到CPU的信号有: A1-A21、D0-D15、WR0#、WR1#、RD#、CS#、RST#、时钟、WAIT#;连接到时钟发生器的信号有:CLK1、CLK2(用于内部显示及外部媒体接口时钟);连接到EDO-DRAM的信号有:DRAM-WE、DRAM-RAS、LCAS、UCAS、MA0-MA9、MD0-MD15(其中MD1/MD2/MD4/MD6/MD15需要外接上拉电阻用于S1D13506初始配置);其他控制信号连接到LCD/CRT。S1D13506芯片有个测试使能引脚TESTEN在芯片正常工作时接地。如果不使用DAC功能,那么IREF引脚必须接地。图2为同步信号发生器ICS1523的外部连接电路[3]。 ICSl523通过I2C串行总线(TWD、TWCK)接受微处理器MPU对它进行寄存器配置。本显示卡的ICSl523输入时钟 是50 MHz、输出CLKl (25 MHz)、CLK2(12.5 MHz)。本卡引出了LCD的全信号有利于连接不同的LCD屏和CRT的控制信号。
表1 S1D13506总线接口定义
图1显示卡硬件总体连接图
图2 ICS1523硬件连接电路图
4、显示卡在无线通信考试系统中的应用
随着无线技术的进步,扩大了其应用的范围,并且目前嵌入式系统的广泛应用,使得人们对学生们的考试硬件条件有了新的想法,采用无线数据通信的方法进行远程试卷发送及接收答卷,这样学生通过这个嵌入式平台显示终端进行考试。方法是使用一台主机,通过802.11b无线数据传输技术来进行远程控制,每个教室安装有一个无线接入点(AP),学生的考题通过AP上传到 主机。由于这个考试系统的显示平台需要较大些的LCD,为此采用了本显示卡。该系统应用于沈阳某学校的学生考试系统中,控制800*600*16bpp分辨率的TFT液晶显示器。 [page]
4.1 显示卡初始化
图3是该显示卡的初始化流程图。在微处理器(MPU)控制板上电复位后,MPU通过I2C总线接口对ICS1523寄存器设置,使其产生S1D13506内部所用的显示时钟,再对S1D13506进行寄存器初始设置,确定LCD分辨率、刷新率,对比度、调色板及显示模式等。LCD的显示方式是以帧模式显示的。
初始化结束后,进入任务中运行应用程序,把每页的考题以帧的形式存放到显示缓存中,图象就可以在LCD上显示,学生可以通过USB鼠标和键盘在LCD显示界面上进行答题和提交试卷,然后通过无线接入点(AP)把数据传输到主机。
4.2 软件实现
该无线通信考试系统运行LINUX操作系统,在其上运行MINIGUI图形界面软件。通过对显示卡的初始化,生成了S1D13506.h头文件及各显示功能的接口函数S1D13506.c文件。由于LINUX系统本身带有帧缓存管理,因此只要把S1D13506芯片的驱动文件加入到LINUX系统中driver的文件夹中,更改Makefile文件,然后把Frame-buffer support选项选上,这样重新编译系统内核。下面是S1D13506基本配置的宏定义:
#define S1D_DISPLAY_WIDTH 800
#define S1D_DISPLAY_HEIGHT 600
#define S1D_DISPLAY_BPP 16
#define S1D_DISPLAY_SCANLINE_BYTES 1600
#define S1D_PHYSICAL_VMEM_ADDR
0x30200000L
#define S1D_PHYSICAL_VMEM_SIZE 0x140000L
#define S1D_PHYSICAL_REG_ADDR 0x30000000L
#define S1D_PHYSICAL_REG_SIZE 0x200
#define S1D_DISPLAY_PCLK 18300
#define S1D_PALETTE_SIZE 256
#define S1D_FRAME_RATE 60
#define S1D_Power_DELAY_ON 0
#define S1D_POWER_DELAY_OFF 120
#define S1D_REGDELAYOFF 0xFFFE
#define S1D_REGDELAYON 0xFFFF
5、结论
由于S1D13506其方便的通用类型总线接口及可支持全类型LCD及支持800*600*16bpp的LCD的特性,使得该液晶显示卡的应用范围十分广泛。可应用于包括公共事业、医院、学校、金融服务、物流、制造业、服务业、工业自动化等很多领域,控制不同类型的LCD显示屏。
推荐阅读最新更新时间:2024-05-02 22:59