首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于μClinux的触摸屏设计与关键技术分析 01

基于μClinux的触摸屏设计与关键技术分析 01

 本文介绍了当前比较流行的开放源代码的嵌入式操作系统μClinux下驱动程序的一般结构,以及触摸屏控制器和Motorola DragonBallMCVZ328 CPU的连接。
  在此基础上,详细讲述了触摸屏驱动程序设计的一些关键技术,如阻塞型I/O操作、任务队列以及系统定时器的应用等,解决了采样数量控制问题,具有较好的移植性。
  1引言
  1.1背景介绍
  随着信息技术的发展,嵌入式系统越来越广泛地应用到航空航天、通讯设备、工业控制等领域。由于尺寸的限制,触摸屏代替键盘和鼠标成为嵌入式系统首选的输入工具。同时嵌入式系统也逐渐摒弃了传统的循环控制模式,而是引入操作系统完成进程间切换和任务调度。μClinux就是一种优秀的开放源代码的嵌入式操作系统。它经过各方面的小型化改造,形成了一个高度优化的、代码紧凑的嵌入式Linux,虽然它的体积很小,μClinux仍然保留了Linux的大多数优点:稳定良好的移植性、优秀的网络功能、完备的对各种文件系统的支持以及标准丰富的API。比较起其它几种应用较多的嵌入式操作系统,像vxworks、winCE等,它较为低廉的价格以及方便的用户程序开发,无疑是其巨大的优势。用户可以方便地从互联网上找到最新内核版本、编译器以及其它必需的软件环境,这也促使众多爱好者加盟。
  1.2研究现状
  由于触摸屏使用得越来越广泛,所以相应的研究与工程实践比较多。在现有的工作中,已有很多工程师对触摸屏控制器ADS7846与Strongarm平台的硬件连接以及在WinCE操作系统中软件驱动程序开发进行了研究,并对改进触摸屏控制器硬件精度上做了一定探索。而本文的主要贡献在于详细描述了在μClinux这一嵌入式操作系统中触摸屏驱动程序硬件及软件设计。实践证明,这一设计具有比较高的精度、稳定性和开放性,而且跨平台性也较好,因此必将给嵌入式设备提供更多选择。
  2硬件设计
  本设计中硬件平台微处理器选用Motorola公司的MC68VZ328,它是一款M68k体系的32位低功耗微处理器,采用SoC技术设计,具有典型的嵌入式微处理器的特征;触摸屏选用TI(原为Burr-Brown公司的产品,由于该公司已被TI公司收购,所以下文均用TI公司)公司的ADS7843。在本设计中,CPU与触摸屏以主从方式工作,触摸屏工作于从设备(slave)状态。本设计中硬件电路不同于传统设计,而是充分利用了ADS7843中的BUSY信号线,如图1所示。

  ADS7843是一款四线电阻式触摸屏控制芯片,它主要完成两件事情:其一,是完成电极电压的切换;其二,是采集接触点处的电压值。它由两层透明的阻性导体层组成,在导体层中间充满了用粘性绝缘液体材料做成的隔离层和由导电性能极好的材料构成的电极。
  触摸屏工作时,上下导体层相当于电阻网络,如图2所示。当某一层电极加上电压时,会在该网络上形成电压梯度。若有外力使得上下两层在某一点接触,则在电极未加电压的另一层可以测得接触点处的电压,从而知道接触点处的坐标。比如,若在顶层的电极(X+、X-)上加上电压,则在顶层导体层上形成电压梯度;当有外力使得上下两层在某一点接触,在底层就可以测得接触点处的电压,再根据该电压与电极(X+)之间的距离关系,知道该处的X坐标。然后,将电压切换到底层电极(Y+、Y-)上,并在顶层测量接触点处的电压,从而知道Y坐标。对电压在横向和纵向导体层之间的切换以及A/D转换,需要先通过串行外设接口(SPI)往ADS7843发送控
返回列表