新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于嵌入式技术的MultiBus―CPU模块设计

基于嵌入式技术的MultiBus―CPU模块设计

作者:时间:2010-06-25来源:网络收藏

 


图3是显示电路总体连接图。S1D13506连接到AT9IRM9200的信号有:
、ABl~AB20、DBl~DBl5、。连接到ICSl523的信号有:CLCKI、CLCKl2(用于内部显示及外部媒体接口时钟)。连接到IS41LVl6100的信号有:DRAM-WE、DRAM-RAS、LCAS、UCAS、MA0~MA9、MD0~MDl5。其中,MDl、MD2、MD4、MD6、MDl5需要外接上拉电阻用于S1D13506初始配置。其他控制信号连接到LCD/CRT显示器。S1D13506芯片有个测试使能引脚TESTEN在芯片正常工作时接地。如果不使用RAMDAC的数模转换功能,那么IREF引脚必须接地。ICSl523通过I2C串行总线(TWD、TWCK)接受AT91RM9200对它的寄存器配置。本中,ICSl523的输入时钟是50 MHz,输出CLKl为25 MHz,CLK2为12.5 MHz.

4 显示软件方案
4.1 Linux下LOD驱动程序开发
在Linux内核中,设备驱动程序是一个个独立的“黑盒子”,可以使某个特定的硬件响应一个定义良好的内部编程接口,同时完全隐藏了设备的工作细节,用户操作只需要通过一组标准化的调用即可完成。把这些调用映射到设备特定的操作上,则是设备驱动程序的任务。而每一个设备都可以看作是一个文件,所以打开的设备在内核中都可以由一个File结构标识,内核使用File_operations结构访问驱动程序的函数。每个文件(设备)都与它自己的函数集相关联。这些操作函数主要负责上面所提到的系统调用的实现,并因此被命名为open、read、for-k,ioctl等。
LCD控制器的功能是显示驱动信号,进而驱动LCD。用户只需要通过读写一系列的寄存器,就可以配置和显示驱动。配置LCD控制器时,最重要的一步是帧缓冲区(FrameBuffer)的指定。帧缓冲区为图像硬件设备提供了一种抽象化处理,它代表了一些视频硬件设备,允许应用软件通过定义明确的界面来访问图像硬件设备。用户程序只需与帧缓冲驱动程序抽象出来的接口打交道,就可以把要显示的内容从缓冲区中读出,从而显示到屏幕上。
在FrameBuffer驱动程序中,最核心的结构体是帧缓冲区驱动程序接口,即struct fb_info。它记录了当前FrameBtlffer硬件设备的状态,通常在Linux的inctLtde/Linux/fb.h中定义。最主要的结构体有:Struct fb_fiX_screeninfo,定义显示输出设备自身的属性,如屏幕缓冲区的物理地址和长度;Struct fb_var_screeninfo,记录帧缓冲设备和指定显示模式的可修改信息,包括显示屏幕的分辨率、每个像素的比特数和一些时序变量。
若要先设定帧缓冲区的物理地址和长度,就要在SlDl3506.h里指定,然后在驱动程序里通过对fb_fiX_screeninf0赋值来实现:


首先对LCD的背光灯进行点亮。LCD显示是一种被动的显示模式,不能发光,只能依靠控制透射或反射周围环境的光来达到显示的目的。因此,必须通过写寄存器用高电平指示对LCD加3.2 V电压来实现背光灯的点亮。其函数的部分代码如下:

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭