探究PIC32MX的液晶触摸屏人机界面设计

电子说

1.3w人已加入

描述

引 言

PIC32MX是Microchip公司推出的新型32位高性能系列单片机。采用改进的哈佛架构、C编译器优化的指令集、流水线取指令方式,具有实用、指令集小、体积小、功耗低、速度高、功能强、抗干扰能力强等特点。除了本文主要介绍的8位/16位并行控制接口模块和10/12位的A/D转换器(500 Ksps)外,还提供了CAN、UART、SPI、I2C等丰富的外围接口,可以方便地与其他设备进行通信。彩色液晶触摸屏不仅可以显示字符、数字、图形、曲线及汉字,还具有触摸功能,用途十分广泛。

工业上用32位单片机PIC32MX460F512L来控制带触摸屏的液晶显示器是一种理想的方案。本文使用PIC32MX460F512L的并行接口模块,按照8080时序驱动所罗门公司的SSD1926芯片,实现了5.7 in TFT彩色液晶触模屏的触摸和显示功能。该方案在喷水织机控制应用中,已经整体实现了数据输入/输出、数据存储、数据处理及传输等一系列上位机功能,而且用户界面友好。

1 PIC32MX与SSD1926的接口电路

SSD1926是一款中小规模的显示控制芯片。采用128引脚LQFP封装,256 KB静态存储空间和2D图像引擎,可以支持单色和彩色LCD;32位内部数据通道,可以提供高带宽的显示内存,以实现快速的屏幕刷新;拥有MMC/SD接口,可以与SD卡等外部存储器件方便地进行数据交换;采用单电源供电和单时钟输入,具有很短的CPU访问延迟时间,可以支持无READY/WAIT信号的微处理器。

这些特点能够极大地简化外围电路的设计。同时,SSD1926还具有强大的总线兼容性,可与多种类型的MCU连接,除了支持SRAM接口与ARM系列连接、ISA接口与NEC系列连接外,还支持8/16位8080时序间接寻址方式,能够方便地与各种具有并口的MCU连接。本文使用:PIC32MX460F512L的8位/16位并行控制接口模块与SSD1926接口。硬件接口框图如图1所示。

液晶控制器

CS为片选信号,RS为地址与数据选择信号,RESET为复位信号,都可以由通用I/O口进行控制,分别用RC1、RC2和RC3与其连接。数据总线DB[15:0]与并行控制接口模块中的PMD[15:0]引脚分别对接。WR和RD为读写信号,由并行控制接口模块中的PMWR和PMRD引脚分别控制。SSD1926对接收到的数据进行处理之后,再通过与LCD的接口驱动TFT彩色液晶屏进行显示。

2 触摸功能的软硬件设计

电阻式触摸屏处于与外界完全隔离的工作环境,不怕灰尘和水汽,可以用任何物体来触摸,可以写字画图,广泛应用于工业控制领域中。触摸屏工作时,上下导体层可以看作电阻网络。当某一层电极加上电压时,会在该电阻网络上形成电压梯度。若外力使得上下两层电极在某一点相接触,则在电极未施加电压的另一层可以检测出接触点的电压,从而换算出接触点的坐标值。本文选用4线电阻式触摸屏,其电阻网络工作原理如图2所示。

液晶控制器

系统工作时,首先把AN11/RB11、AN4/RB4复用引脚设置为I/O引脚。RB11输出高电平(+3.3 V),RB4引脚输出低电平(0 V),在顶层的电极X+、X-上即产生了3.3 V的电压。当有外力使得上下两层在某一点接触时,在底层Y+、Y-引脚上就会输出接触点处的电压。此时,AN10/RB10、AN5/RB5设置为A/D输入通道。采样此引脚上的电压信号,即可得到Y+、Y-引脚上的电压值,根据下式可以计算出X坐标:

触点X坐标=X轴分辨率×X相电压采样值/1 024

本文为10位精度A/D采样,3.3 V输入时对应的采样值即为1 024。然后,改变4个引脚的输出定义,将A/D输入引脚RB10设置为I/O引脚输出高电平,RB5设置为I/O引脚输出低电平,将3.3 V电压切换到底层电极Y+、Y-上,设置AN11和AN4为A/D输入引脚。对X+、X-引脚进行A/D采样,测量得到接触点处的Y相电压,根据下式可以计算出Y坐标:

触点Y坐标=y轴分辨率×y相电压采样值/1 024

在工业应用中,由于A/D采样信号为模拟量输入,很容易受到现场环境的电磁干扰。除了在硬件上设计滤波电路等抗干扰措施外,还需要在软件中设计抗干扰算法,具体软件流程如图3所示。通过采样两次输入进行比较的方法,能够有效地减少由A/D采样模拟信号源带来的干扰。根据采样得到的X、Y坐标值,能够准确地知道触摸屏上接触点的位置,再根据X、Y坐标的历史值,还能够分析出接触点的状态是接触、移动,还是放开等状态。

液晶控制器

3 显示触摸功能的综合实现

PIC32MX系列的并行控制接口模块功能非常强大,只需要对其寄存器进行正确的初始化配置,即可自动适应各种并行接口的时序要求。当需要进行读写指令切换时,只需要改变读写状态寄存器的值,芯片就会根据初始化配置时设置的值自动产生时序电平。在进行写操作时,芯片也会根据设置的值,自动使数据信号达到所要求的建立电平和保持电平的时间。SSD1926相对应的寄存器配置如下:

液晶控制器

并行接口数据传输时序如图4所示。

液晶控制器

图4中,CS信号为片选信号,对SSD1926进行操作时在整个操作周期中保持高电平。RS信号为地址与数据选择信号,写地址时保持低电平,写数据时保持高电平。PMWR为写操作使能信号。当写操作开始时,首先等待1个外部时钟周期(B),确保PMD[15:0]上的数据或地址信号已稳定建立;然后保持3个外部时钟周期的高电平(M),确保信号内容完全写入SSD1926;最后用1个外部时钟周期(E)结束写操作。BUSY信号为PMMODEbits.BUSY寄存器的状态。进行读写操作时,BUSY信号自动置高;只有读到BUSY信号为低时(表示上一次操作已完成,总线空闲),程序才能开始下一次读写操作。把对应I/O口和寄存器的操作编程集成起来,编写为子程序,可方便地在主程序中实现PIC32MX系列单片机与SSD1926之间的数据传输。人机界面主程序框图如图5所示。

液晶控制器

当A/D采样得到的接触点X、Y坐标发生变化时,消息处理函数根据得到的消息发出相应的指令。除了进行数据输入/输出和与下位机通信外,当需要进行页面切换时,就更改页面状态,调用“新页面建立”函数,切换到新的页面;当需要进行页面内容更新时,就调用“页面更新”函数,更新当前页面的状态。

为了简化编程,软件中定义了几种常用的图形模块,如按键、静态图片、静态文字段、动态数据显示框等。每个模块都具有模块创建、模块更新和消息响应3个子程序。模块创建子程序根据模块的上下左右坐标、模块的颜色、模块的内容及状态等参数,在液晶显示器的对应位置上显示出模块的图案,并在对应的内存空间中记录下模块的状态。

模块更新子程序定义了模块不同状态下图案的变化,比如按键模块当被触摸时即显示出3D效果的凹陷图案,未被触摸时即显示3D效果的凸出图案。消息响应子程序则根据A/D采样得到的接触点X、Y坐标,判断模块是处于触摸过程的接触、移动还是放开状态,并对状态进行响应。Microchip公司特别针对PIC32MX系列还开发了图形软件库(graphics library)。该软件可以方便地把各种语言、各种字体的文字以及位图格式的图片转化为能够在软件中直接使用的数组矩阵,极大地方便了用户。

4 应用情况

该方案已经成功应用在了某公司自主开发的喷水织机上。图6为该喷水织机上本系统的实物图。

液晶控制器

喷水织机是采用喷射水柱牵引纬纱穿越梭口的无梭织机。为了完成开口、引纬、打纬、卷取、送经过程,需要多单元高精度的协同配合工作。旧式的喷水织机完全靠机械齿轮齿条传动的方式,一旦更换织造品种,就得更换大.量齿轮齿条,改变传动比;而且由于机械精度及强度的限制,很难提高织造的速度。

采用CAN总线电气一体化控制策略的电控喷水织机,能够利用CAN总线高速传输的能力以及交流电机伺服系统的高精度,实现多单元的高度协同工作,大幅度提高织造速度和质量;并且更换织造品种时只需要进行相关参数的调整,无需改变机械传动比。

由于电气单元和交流伺服电机的引入,需要设置大量的参数,而且需要及时、准确的故障报警,以监测织机系统状态并方便织机系统的维护。为此,我们设计开发了人机界面。它以PIC32MX460F512L芯片和液晶触摸屏为核心,具有精度高、价格低、抗干扰能力强、简化了输入输出设备等优点。

系统通过I2C总线与片外EEPROM接口,能够方便地保存用户由界面输入的数据;通过I2C总线与日历时钟芯片接口,能够得到准确的时间信息;采用CAN通信方式与电机控制器通信,将设置的参数及时传输42给主控制器,并把用户需要的数据实时显示在液晶显示屏上;具备故障监测和自动报警功能,实现了电气智能化控制。系统结构框图如图7所示。

液晶控制器

5 结 论

本文介绍了带触摸屏的液晶控制器SSD1926与数字信号处理器PIC32MX460F512L的接口电路,并行接口时序的模块化实现,以及电阻式触摸屏的触摸功能。实践证明,这种方案具有完善的汉字显示和图形显示功能,占用引脚少,程序模块化强,编写方便;触摸功能可以取代应用系统中的键盘模块,具有良好的人机交互功能。该方案已经用于喷水织机中,效果良好。

编辑:jq

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分