关 闭

新闻中心

EEPW首页 > 安全与国防 > 设计应用 > 基于嵌入式技术的MultiBus-CPU模块设计

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

作者:时间:2010-07-17来源:网络收藏

  S1D13506与处理器的接口采用通用类型总线(包括数据总线、地址总线、控制总线)。接口定义如表1所列。芯片所用像素时钟CLK1、CLK2是由同步信号发生器ICS1523来提供的,外接1M×16位的EDO-DRAM IS41LV16100。

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

4 显示软件设计方案

  4.1 Linux下LCD驱动程序开发

  在Linux内核中,设备驱动程序是一个个独立的“黑盒子”,可以使某个特定的硬件响应一个定义良好的内部编程接口,同时完全隐藏了设备的工作细节,用户操作只需要通过一组标准化的调用即可完成。把这些调用映射到设备特定的操作上,则是设备驱动程序的任务。而每一个设备都可以看作是一个文件,所以打开的设备在内核中都可以由一个File结构标识,内核使用File_operations结构访问驱动程序的函数。每个文件(设备)都与它自己的函数集相关联。这些操作函数主要负责上面所提到的系统调用的实现,并因此被命名为open、read、fork、ioctl等。

  LCD控制器的功能是显示驱动信号,进而驱动LCD。用户只需要通过读写一系列的寄存器,就可以配置和显示驱动。配置LCD控制器时,最重要的一步是帧缓冲区(FrameBuffer)的指定。帧缓冲区为图像硬件设备提供了一种抽象化处理,它代表了一些视频硬件设备,允许应用软件通过定义明确的界面来访问图像硬件设备。用户程序只需与帧缓冲驱动程序抽象出来的接口打交道,就可以把要显示的内容从缓冲区中读出,从而显示到屏幕上。

  在FrameBuffer驱动程序中,最核心的结构体是帧缓冲区驱动程序接口,即struct fb_info。它记录了当前FrameBuffer硬件设备的状态,通常在Linux的include/Linux/fb.h中定义。最主要的结构体有:Struct fb_fiX_sereeninfo,定义显示输出设备自身的属性,如屏幕缓冲区的物理地址和长度;Struct fb_var_screeninfo,记录帧缓冲设备和指定显示模式的可修改信息,包括显示屏幕的分辨率、每个像素的比特数和一些时序变量。

  



评论


相关推荐

技术专区

关闭