c语言sscanf函数的用法是什么
295
2022-11-03
基于OMAP5912的手持多媒体终端的人机接口实现
0引言
手持多媒体终端以其高渗透力的移动数字媒体方式、全新的业务理念和巨大的市场潜力而倍受关注,已成为世界各国广播和电信产业积极研究和发展的重要领域。手持多媒体终端具有高集成度、低功耗以及使用灵活等优点,故可广泛运用于各种领域。手持多媒体终端对人机接口的设计也越来越人性化、多元化。本系统之所以选用 OMAP5912微处理器,除了它具有低功耗、高性能的特性外,其丰富的外圈接口可提供对各种人机接口的支持,也是其重要因素之一。
1 LCD显示设计
1.1接口框架
本终端设计中包含的人机接口为键盘、触摸屏以及LCD显示屏,图1所示是其接口结构框架。在下面的章节中将对各功能模块分别进行介绍。
1.2 LCD控制器
1.3 LCD的驱动实现
framebuffer驱动的最重要结构体就是fb_info,它记录了帧缓冲设备,即当前显卡的全部信息,包括设备的参数、状态以及操作函数指针等。每一个帧缓冲设备都必须对应一个这样的结构体。
(2)初始化结构体;
(3)初始化硬件,配置相应寄存器;
(4)申请中断;
(5)注册frame buffer设备。
在文件层次上,Linux为其定义了读操作、写操作、映射操作、打开操作和关闭操作等,其定义代码如下:
2触摸屏输入设计
2.1触摸屏芯片ADS7843
2.2触摸屏驱动
ARM侧的处理流程如下:
(1)ARM侧的MAILBOX中断;
(2)由MAILBOX中断服务程序从数据寄存器DSP2ARM和命令寄存器DSP2ARM2B读取X、Y,并将其封装成触摸屏返回结构TS_RET,最后通过写指针写入队列;
(3)由应用程序通过读指针读取数据并进行相应处理。
驱动程序中有下面两个比较重要的结构:
3键盘输入设计
OMAP5912 可以支持键盘专用的8×8 I/O接口以及KB.R[7:0]和KB.C[7:0]。其中KBR_LATCH为键盘行输入,KBC_REG为键盘列输出,通过对这两个寄存器进行读写,可以进行行、列的扫描。本设计为了节省系统资源,提高使用效率,因而采用中断和扫描相结合的方法来实现3×3键盘驱动。
下面给出的是键盘中断服务程序:
定时器中断服务程序如下:
下面是扫描程序:
4结束语
本文介绍了OMAP5912平台下人机接口的驱动开发方法,完成后的驱动程序可在MontavistaLinux操作系统下正常运行,因而对于在此平台下开发其他设备的驱动程序具有一定的启发作用。OMAP开放式多媒体应用平台也为今后系统的拓展预留了足够的空间,相信该系统会具有巨大的市场潜力。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~