欢迎光临亚东光大油浸式变压器厂网站!

亚东光大油浸式变压器厂

光大变压器制造有限公司 

联系人:吴经理 

电话:0635-8378889 

电话:0635-8322228 

手机:13336258888 

手机:13258996850 

邮箱:1665971166@qq.com 

Q Q: 1662981166 

地址:山东聊城经济开发区嵩山路19号

亚东亚东变压器厂家:基于ARM与FPGA的LCD控制器设计(二)

来源:亚东光大油浸式变压器厂 时间:2020-08-05 次数:623

  3.2Framebuffer驱动设计

  Framebuffer是Linux内核中的一种驱动程序接口,该接口将显示设备映射为帧缓冲区。平台使用Linux2.6.25内核。在Linux2.6内核当中,通常采用分层的驱动设计框架。对设备进行分层和分类管理,驱动底层为总线驱动,上层为具体设备驱动。在Framebuffer驱动程序中,其软件设计流程为:首先需要针对该具体的设备和硬件连接注册总线类型及申请系统总线资源;其次,将具体设备驱动程序注册进入总线链表,Linux内核根据设备驱动程序中提供的探测函数检测总线设备类型;后在驱动探测函数中实现具体设备类型的注册。以下为其具体的实现过程。

  1)资源申请系统中,9200通过外部总线接口的BANK7与FPGAFIFO接口连接,采用16位静态总线方式对FIFO数据进行写入操作。根据驱动设计框架,驱动程序设计的步需要通过系统调用platform_device_register函数申请总线资源,示意代码如下:

  2)驱动注册在具体设备驱动中,通过使用module_init宏与module_exit定义驱动模块的加载与卸载方法,在模块注册函数中使用plat-form_driver_register函数将具体设备的platform_driver结构体注册进入系统总线链表,platform_driver中为总线提供具体设备的probe与remove等操作方法,其示意代码如下:

  3)Framebuffer设备注册在Linux中,通过fb_info结构体对帧缓冲设备信息进行描述。在fb_info中,较为重要的结构有fb_var_scree-ninfo、fb_var_screeninfo、fb_ops。其中,fb_var_screeninfo记录用户可修改的显示控制器参数,包括屏幕分辨率;fb_fix_screeninfo记录用户不能修改的显示控制器的参数,如屏幕缓冲区的物理地址等;fb_ops记录了具体显示设备IO操作的实现方法。驱动通过register_-framebuffer函数将fb_info记录的显示设备信息注册进Framebuffer设备链表。

  在Linux文件系统中,Framebuffer设备的主设备号为29,次设备号为帧缓冲序号。Framebuffer设备注册后通过mknod指令在系统dev目录下创建Framebuffer设备文件节点,应用层程序可通过Framebuffer设备文件实现Framebuffer设备的访问和操作。

  4结束语

  该设计方案的LCD控制器达到实时性及显示帧率的要求,每秒显示至少25帧。基于FPGA设计的LCD控制器技术具有应用广泛、移植性强、开发周期短以及成本低等优点,可以适用于众多的需要LCD液晶显示的系统或场合。