微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于ARM与FPGA的LCD控制器设计

基于ARM与FPGA的LCD控制器设计

时间:11-06 来源:维库 点击:

类型;最后在驱动探测函数中实现具体设备类型的注册。以下为其具体的实现过程。

1)资源申请 系统中,9200通过外部总线接口的BANK7与FPGA FIFO接口连接,采用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液晶显示的系统或场合。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top