0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

触摸屏串口控制器的通信协议的具体分析

lhl545545 来源:微计算机信息 作者:微计算机信息 2020-06-30 11:06 次阅读

随着现代计算机技术和互联网技术的飞速发展,嵌入式系统开始占据市场主流。因32位ARM嵌入式处理器具有高性能、低功耗的特性,它已广泛应用于科学研究、工程设计,军事技术,商业文化艺术及消费产品。而触摸屏作为一种最新电脑输入设备,具有坚固耐用、反应速度快、节省空间、易于交流等优点。主要用于公共信息的查询、工业控制、军事指挥、旅游、电子游戏、点歌点菜、多媒体教学和房地产预售等场所。因此,本文着重讨论基于嵌入式微处理器HMS30C720与触摸屏控制器接口设计和底层串口驱动与上层microwindows图形界面结合的编程设计方法,以实现触摸屏对嵌入式设备之间的控制。

系统的整体结构

该系统的整体结构如图1所示:本系统由ARM单元,触摸屏控制单元构成。ARM单元主要接收触摸屏控制单元的位置数据信息并根据位置信息调用ARM的控制和应用程序。我们选用Hynix公司的ARM CPU HMS30C7202作为ARM系统单元的主芯片。它是基于以太网应用系统的高性价比16/32位RISC微控制器,内含一个由ARM公司设计的16/32位ARM7TDMI RISC处理器核。触摸屏控制单元主要完成信号放大与处理、A/D。根据数字信号识别用户点击的触摸屏上的图标位置。并调用该图标应执行相应指令。我们选用深圳某公司的触摸屏控制器。该触摸屏控制器具有串行通信接口,分辨力高等特点。

图1 系统的整体结构

硬件电路的设计

接口电路

内建LCD显示控制器,并且有专用视频DMA控制器和视频总线连接SDRAM控制器。分开的总线使LCD的刷新不需要ARM的控制,数据传送完全由DMA控制器控制,提高了整个系统的性能。HMS30C7202支持彩色、单色STN液晶显示器和TFT彩色液晶显示器,显示分辨率可达640480,本系统平台采用16位真彩色,采用565配色方案,5位红色、6位绿色、5位蓝色。而TFT显示器都采用18根数据线,因此,将红色和蓝色数据线最低位接地。除数据线外LCD接口还有行、场同步信号、LCD时钟信号,LCD控制信号,可分别接CPU的LCD控制输出LLP,LFP,LAC。

触摸屏硬件电路

.2.1四线电阻式触摸屏

如图2所示是 四线电阻式触摸屏原理示意图,四线触摸屏包含两个阻性层。其中一层在屏幕的左右边缘各有一条垂直总线,另一层在屏幕的底部和顶部各有一条水平总线。为了在X轴方向进行测量,将左侧总线偏置为0V,右侧总线偏置为VREF。将顶部或底部总线连接到ADC,当顶层和底层相接触时即可作一次测量。为了 在Y轴方向进行测量,将顶部总线偏置为VREF,底部总线偏置为0V。将ADC输入端接左侧总线或右侧总线,当顶层与底层相接触时即可对电压进行测量。对于四线触摸屏,最理想的连接方法是将偏置为VREF的总线接ADC的正参考输入端,并将设置为0V的总线接ADC的负参考输入端。

.2.2 触摸屏串口控制器接口定义

触摸屏器接口引脚与RS232串口引脚功能关系表如表1所示。RS232串口引脚为9脚,只使用了5个脚,触摸屏电源供给由PS/2接口4脚提供。

通信协议的确定及软件设计

.1触摸屏串口控制器的通信协议的具体分析

由于公司的商业原因,不提供源程序和通信协议,也没有HMS30C7202的驱动程序,我们借助串口调试助手和存储示波器分析,得出了串口触摸屏控制器的通信协议,其传输速率为9600,一帧数据为10位,起始位为1,8位数据位,停止位为0,无校验位。先发低位再发高位。每一个数据包传送5个字节数据,第一个字节为控制位,第二、第三字节为触摸屏得到的X轴坐标值,第四、第五字节为得到的Y轴坐标。这样我们就获得了触摸屏控制器的通信协议,为在linux系统下编写相应的触摸屏程序提供了基础。

触摸屏串口通信程序的设计

首先在linux系统下编写一个对应于触摸屏的串口通信程序,用交叉编译器编译后,下载至目标板ARM,运行之后,点击触摸屏得到触摸屏输出数据。在这个程序中,我们的目的是建立触摸屏串口控制器和ARM7 串口1之间的通信,使其读取的数据显示在对应的LCD显示器屏幕上,设置好相应的波特率,数据位,奇偶校验位和停止位,便可对触摸屏串口控制器发送过来的数据进行读取操作。主程序流程图如图3所示。

本设计采用microwindows0.90版本,编写程序时,不必关心底层的驱动,直接调用上层的API.而不需编写底层的驱动。这里采用的方法是在microwindows中编写对应于触摸屏串口接收程序,然后比较microwindows窗口坐标和串口数据中的坐标值,如果在一定范围内,则产生一个相应的事件。 用一个数组来接收串口送过来的数据,再从数组中取出触摸屏的位置信息。触摸屏的坐标原点及分辨率都不同,这也需要进行转换。具体转换的公式为:

我们设触摸屏如下:右下角为原点坐标(x1,y1),横轴为x轴,竖轴为y轴,右上角坐标(x1,y2),左上角坐标(x2,y2),右上角坐标(x2,y1),分辨率为40964096;ARM7所接LCD的坐标原点在左上角,横轴为x轴,竖轴为y轴分辨率为640480,则我们的坐标转换公式为:

[640(x-x1)/(x2-x1)] (4-1)

[480(y-y1)/(y2-y1)] (4-2)

因触摸屏的分辨率为40964096,则x2-x1和y2-y1的值均为4096;坐标转换公式为:

(4-3)

(4-4)

其中,公式中的z1,z2坐标为触摸屏坐标,它的获取方法:由数组buffer[ ]接收串口送来的数据,我们要从数组中取出有用的坐标信息。

[6]; x2=buffer[7]; x3=buffer[3]; x4=buffer[4]

这里我们用四个8位元素来获得两个16位坐标信息。那么就需要将两个8位的坐标数据,转换为一个16位的数据,具体转换如下:

两个8位数据移位成16位数据

那么此时的y1,y2便是我们触摸屏的坐标信号了。转换之后,显示器和触摸屏的坐标就对应起来了,在microwindows下建立一个窗口,设定它的坐标值及大小,这时在用microwindows的消息处理函数,如果触摸范围(触摸屏在屏幕上对应坐标)在窗口的坐标范围内,则产生一个相应的事件,我这是在窗口上打印一条Touched信息的事件,在窗口范围外触摸触摸屏时,打印Nottouched信息。编写一个程序点触触摸屏上相应的位置,就会在屏幕上的对应位置上输出一个新的窗口,且位置比较准确。如图4所示为点触摸屏时LCD显示器显示的触点响应位置。

结论

通过调试和测试,完全达到设计要求。本设计创新之处是:成功将深圳某公司的触摸屏控制器运用到HMS32C7202嵌入式控制系统中,在对方没有提供通信协议和驱动程序情况下,分析了该控制器的通信协议,编写了ARM的驱动程序。分析了LCD与触摸屏的物理换算关系,然后编写上层程序,通过microwindows的API进行相关调用,使底层数据与上层图形界面建立了联系。最后编写相应的事件处理和响应程序,通过点触触摸屏的图形界面完成对ARM的操作。该接口已应用于本人开发的基于Internet网络通信的嵌入式系统平台中。
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 显示器
    +关注

    关注

    21

    文章

    4730

    浏览量

    137798
  • 控制器
    +关注

    关注

    112

    文章

    15191

    浏览量

    171086
  • 触摸屏
    +关注

    关注

    42

    文章

    2128

    浏览量

    113595
收藏 人收藏

    评论

    相关推荐

    UART串口通信协议是什么?

    UART (Universal Asynchronous Receiver/Transmitter) 是一种通信接口协议,用于实现串口通信。它是一种简单的、可靠的、广泛应用的
    的头像 发表于 03-19 17:26 261次阅读

    工业控制通信协议的报文帧分别是什么样的?

    工业控制常用到不同的通信协议,MODBUS,CAN,CANOPEN,PROFIBUS,PROFINET,ETNERNET,ETHERCAT,SPI,PPI,工业以太网等等,协议,就是两台设备交换数据
    发表于 01-19 14:46

    EG网关串口连接威纶通触摸屏应用案例

    威纶通触摸屏广泛应于工业控制领域,是一款性能高,运行稳定的人机交互设备。此次我们要把威纶通的触摸屏通过Modbus-RTU协议连接EG系列网关,实现电脑Web页面和手机APP对威纶通
    的头像 发表于 12-07 16:59 536次阅读
    EG网关<b class='flag-5'>串口</b>连接威纶通<b class='flag-5'>触摸屏</b>应用案例

    如何利用ModBus通信协议实现触摸屏与单片机的通信

    电子发烧友网站提供《如何利用ModBus通信协议实现触摸屏与单片机的通信.pdf》资料免费下载
    发表于 10-19 11:19 2次下载
    如何利用ModBus<b class='flag-5'>通信协议</b>实现<b class='flag-5'>触摸屏</b>与单片机的<b class='flag-5'>通信</b>

    如何使用M031/ M032系列微控制器读取触摸屏信号和分析手指触摸位置

    应用程序 : 此试样代码使用 M031/ M032 系列微控制器读取触摸屏信号和分析手指触摸位置。 此文档将描述如何配置 ADC 以读取信号, 以及如何配置 SPI 将数据传输到主机
    发表于 08-29 07:32

    Modbus通信协议的类型与理解

    Modbus是一种通信协议,常用于工业自动化领域的数据通信和设备控制。其最初由Modicon公司开发并于1979年发布,在工业领域得到广泛应用。Modbus通信协议支持
    发表于 08-25 09:36 3114次阅读

    modbus触摸屏

    modbus触摸屏是指支持Modbus通讯协议触摸屏,它可以通过串口或网络与其他设备进行通讯,从而实现对其他设备的控制和监测。Modbus
    的头像 发表于 06-28 09:34 963次阅读
    modbus<b class='flag-5'>触摸屏</b>

    plc通信协议 plc通信原理

    Modbus协议是一种应用层协议,建立在串口通信协议之上,常用于工业控制系统中。Modbus协议
    的头像 发表于 06-26 17:52 2735次阅读

    串口通信协议有哪几种

    USB协议:虽然USB不是一种串口通信协议,但它也可以通过串口模拟器实现串口通信的功能,具有
    的头像 发表于 06-26 17:49 1w次阅读

    现在具体的动作就是触摸屏按键按下,单片机控制继电器的通断,麻烦大神给个具体C语言程序

    触摸屏按键按下后,串口会下发一串指令A5 5A 06 83 00 85 01 21 31 通过串口发送到单片机,单片机读取串口缓冲
    发表于 06-17 09:29

    CAN总线通信协议的基础知识

    本文将介绍CAN总线通信协议的基础知识,目前的内容仅为通用的协议部分,暂不涉及具体的外设模块的用法。研究通信协议具体内容,主要是看建立
    的头像 发表于 06-16 10:58 4751次阅读
    CAN总线<b class='flag-5'>通信协议</b>的基础知识

    具体分析RLC谐振电路

    RLC谐振电路,分为RLC 电路的串联谐振和并联谐振,下面主要从这两种谐振电路形式来具体分析
    的头像 发表于 06-08 15:21 1.2w次阅读
    <b class='flag-5'>具体分析</b>RLC谐振电路

    通信协议的概念

    通信协议是指在通信过程中,为了使得不同设备之间进行有效的数据交换,所约定的一整套规则和标准。通信协议中定义了通信双方的接口、数据格式、传输速率、传输
    发表于 05-06 14:32 1432次阅读

    浅析ModBus通信协议的相关知识

      概 述   Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus
    发表于 05-05 15:51

    工业通信协议如modbus如何具体使用呢?

    工业通信协议如modbus如何具体使用呢?是否依赖一定的硬件,还是根据协议直接编程实现数据读写?
    发表于 05-05 15:47