APP下载

S3C2440A在步进电机控制器人机交互中的应用

2015-03-21徐正平许永森

液晶与显示 2015年1期
关键词:缓冲区触点触摸屏

徐正平,许永森

(中国科学院航空光学成像与测量重点实验室中国科学院 长春光学精密机械与物理研究所,吉林 长春130033)

1 引 言

人机交互系统[1-2]便于操作人员实时控制设备运行,而其显示[3]窗口能实时向操作人员提供系统运行状态信息,多数设备均提供了人机交互接口。早期通用步进电机控制器采用阵列式键盘和黑白点阵式LCD 作为人机交互设备,主控芯片采用单片机。单片机通过阵列扫描获取用户按键信息,并根据欲显示信息向LCD 发送数据及相应的控制信号。为减轻单片机工作负荷,通常采用单片机配合CPLD 实现人机交互,单片机主要完成系统级功能实现,键盘扫描和LCD 时序控制则由CPLD 完成。目前,彩色LCD 和触摸屏组成的人机交互接口在消费电子、工业控制、汽车电子、医疗电子、航空航天等各个领域得到了广泛的应用[4-8]。随着电子产业的不断发展,高性能微处理器的价格在不断降低,且用户对产品性能要求越来越高,普通单片机已无法满足系统要求。

本系统采用高性能 ARM9 控制器S3C2440A[9]作为主控芯片,其片内LCD 控制器和触摸屏接口可分别实现与LCD 和触摸屏的无缝连接,简化了主控芯片工作负荷,同时增强了系统可靠性。本文在介绍步进电机控制器结构的基础上,对S3C2440A 与触摸屏和LCD 的接口电路及应用程序代码进行了详细分析,并进行了实际系统运行测试。最后给出了实验结果。

2 步进电机控制器系统设计

通用步进电机控制器结构框图如图1所示。

系统主控制器选用S3C2440A,其为基于ARM920TCPU 内核、主频高达400 MHz、具有16位/32位精简指令集结构的嵌入式微处理器,片上包含有丰富的外设资源,如:定时器、RTC、DMA 控制器、LCD 控制器、UART、ADC 和触摸屏接口、看门狗定时器、IIC 和IIS 总线接口、AC97接口、USB主机和器件接口、SD 主机接口、SPI接口和摄像头接口。

图1 步进电机控制器结构框图Fig.1 Structural sketch of stepping motor controller

图2 S3C2440A 与触摸屏接口电路Fig.2 Circuit between S3C2440Aand touch-screen

步进电机控制器具有似于汇编语言的独立指令系统。与步进控制器同时使用的还有上位机用户程序编译软件,该软件对用户程序代码进行编码,读取用户自定义图像数据或寄存器参数,并通过串行总线将上述信息传送给步进电机控制器。步进电机控制器将接收到的信息存储在Flash中。在系统运行时,主控芯片S3C2440A 读取、解译并执行用户程序。主控芯片S3C2440A 通过触屏按键接口读取用户按键信息,依据应用程序将运行过程中的数据信息和提示信息发送给S3C2440A 片内LCD 控制器,由其产生相应控制信号控制LCD 显示。S3C2440A 与触摸屏接口电路如图2所示。

图2中,VSYNC、HSYNC、VCLK、VD[23∶0]、VDEN 和LCD_PWR 为LCD 接 口 信 号;TSXM、TSYM、TSXP、TSYP 为触摸屏接口信号,后续将给出信号的详细说明。

本文将对触摸屏和LCD 等接口的程序设计进行详细介绍。

3 触摸屏接口设计

S3C2440A 内部集成有4线制电阻式触摸屏接口,当有触点按下时,可通过ADC 读取相应触点的坐标值。S3C2440A 触摸屏接口具有4种工作模式:常规转换模式、X/Y 坐标单独转换模式、X/Y 坐标连续转换模式和等待中断模式。在实际应用中,常用的两种模式为:X/Y 坐标连续转换模式和等待中断模式,以下给出具体应用方式。

触摸屏接口等待中断模式分为下降沿等待中断模式和上升沿等待中断模式,ADCTSC[8]=0/1分别对应下降沿/上升沿中断模式。在等待中断模式下,上拉开关应该处于使能模式,即ADCTSC[3]=0;在转换模式下,上拉开关应处于关闭模式,即ADCTSC[3]=1。系统初始化时,设置触摸屏接口为下降沿等待中断模式,且打开上拉使能开关。当有触点按下时,触摸屏接口向CPU 发送中断信号。在触摸屏接口中断服务子程序中,设置上拉开关为关闭模式,同时设置触摸屏接口为X/Y 坐标连续转换模式,并启动ADC转换。在ADC转换完成后,触点X 轴和Y轴结果分别保存在ADCDAT0和ADCDAT1的低10位中。读取上述寄存器获取触点X 轴和Y轴坐标。在通常应用系统中,需等待触笔抬起才能进行后续操作。为实现该功能,需设置触摸屏接口为上升沿等待中断模式,且打开上拉使能开关。系统查询中断状态标志位SUBSRCPND[9]以判断触笔是否抬起。在触笔抬起后,为保证下次触摸屏触点按下时能够正确处理,在触摸屏接口中断服务子程序返回前,还需再次将触摸屏接口设置为下降沿等待中断模式,并打开上拉使能开关。触摸屏接口中断服务子程序程序示例代码如下:

通常情况下,触摸屏和LCD 配合使用。在使用触摸屏时,应保证触摸屏上触点的物理坐标与LCD 像素点坐标一一对应,因此,需要进行触摸屏的校正。设LCD 上每个像素点的坐标为(Xd,Yd),对应触摸屏上触点的坐标为(Xt,Yt),则两者存在以下关系式:

触摸屏的校正即求取上式中的a、b、c、d、e、f。通常采用3点校正,即指定LCD 屏幕上3个坐标点,其坐标值分别为(Xd1,Yd1)、(Xd2,Yd2)、(Xd3,Yd3),操作人员顺次点击上述三点,获取对应触点坐标值(Xt1,Yt1)、(Xt2,Yt2)、(Xt3,Yt3),由此可列写6个方程,通过6个方程求取触摸屏校正所需的6个参数。

4 LCD 接口设计

S3C2440A 内部的LCD 控制器可实现与STN LCD 和TFT LCD 的无缝连接,支持屏幕实际大小有640×480、320×240、160×160等。在与STN LCD 连接时,支持单色、4 级/16 级灰度和256级/4 096级彩色,可实现4位双扫描、4位单扫描、8位单扫描LCD 显示,在256级彩色模式下,虚拟屏幕尺寸可达4 096×1 024、2 048×2 048、1 024×4 096等。在与TFT LCD 连接时,可支持1位、2位、4位、8位、16位及24位彩色显示,在16位真彩色模式下,支持的最大虚拟屏幕尺寸可达2 048×1 024等。以下以TFT LCD 为例进行详细介绍。

应用S3C2440A 内部的LCD 控制器的关键是完成时序配置和缓冲地址设置。LCD 控制器与外部TFT LCD 连接信号主要包括垂直同步信号VSYNC、水平同步信号HSYNC、像素时钟VCLK、数据信号VD[23∶0]、数据使能信号VDEN,其时序关系图如图3所示。

图3 TFT LCD 时序图Fig.3 Scheduling of TFT LCD

图3中,VSPW、VBPD、VFPD、LINEVAL、HSPW、HBPD、HFPD、HOZVAL 用 于 设 置 时序。VSPW、VBPD、LINEVAL、VFPD 单位为水平同步脉冲数;HSPW、HBPD、HOZVAL、HFPD单位为像素时钟数。LCD控制器输出的各驱动信号极性也可编程设置,具体通过LCDCON2~LCDCON5设置。依LCD型号,定义相关参数如下:

在与彩色TFT LCD 连接时,模式可分为24 bpp 和16 bpp 模 式。在24 bpp 模 式 下,BPP24BL(LCD-CON[5])用于决定内存中字节有效位;在16bpp模式下,HWSWP(LCDCON[0])用于决定内存中字节存放次序,具体如表1所示。

表1中,Pi表示第i个像素值;PiR、PiG、PiB分别表示第i个像素R、G、B分量值。

在16bpp模式下,有两种数据格式可选:5∶6∶5 和5∶5∶5∶1,由位FRM565(LCDCON[11])决定:当FRM565=1 时选择5∶6∶5 格式;当FRM565=0时选择5∶5∶5∶1格式。在5∶6∶5格式下,D[15∶11]、D[10∶5]、D[4∶0]分别存储某一像素的R[4∶0]、G[5∶0]、B[4∶0];在5∶5∶5∶1 格式下,D[15∶11]、D[10∶6]、D[5∶1]、D[0]分别存储某一像素的R[4∶0]、G[4∶0]、B[4∶0]和I位。

在应用LCD 控制器时,另一需要设置的为显示缓冲区地址。可在S3C2440A 内部开辟虚拟显示区域,当虚拟显示区大于LCD 实际显示区时,通过改变显示缓冲区地址来显示特定区域,虚拟显示区和实际显示区关系图如图4所示。

表1 各模式下数据存放格式Tab.1 Data format in several modes

图4中,OFFSIZE 为偏移量;PAGEWIDTH为实际显示区域宽度;LCDBASEU 为显示缓冲区起始地址;LCDBASEL 为显示缓冲区结束地址。从 图4 可 以 看 出,LCDBASEU 和LCDBASEL满足以下关系式:

LCDBASEL =LCDBASEU + (PAGEWIDTH+OFFSIZE)×(LINEVAL+1)

图4 虚拟显示区和实际显示区关系图Fig.4 Relationship between virtual display and actual display

在实际应用中,可将虚拟显示区域和实际显示区域设置为同等大小,此时偏移量OFFSIZE即为0。LCD 初始化代码如下:

在系统运行过程中,首先需将欲显示图片按照显示格式要求存储为5∶6∶5 16bpp模式,并将数据数组中的数据放置在LCDBUF 指定位置即可,示例代码如下:

上述代码含义是从(x0,y0)开始显示大小为h×l的图片,图片数据缓冲区数组名为bmp。

5 实验结果

实际采集到的系统开机界面如图5所示。

为正确获取用户按键信息,首先需在屏幕上显示按键图标,做法是先用画图软件制作图标,然后经格式转换获取对应数组,然后更新LCD 缓冲区数据,实现键盘图标显示。由于键盘图标显示位置已知,当用户按下触摸屏时,通过程序获取触点坐标,经校正获取对应LCD屏幕上像素点位置,之后判断该位置是否在某一按键显示区域内,以获取按键值,并确定后续程序运行。系统运行过程中的显示界面如图6所示。

图5 系统开机界面显示结果Fig.5 Displaying result of opening interface

图6 运行界面显示结果Fig.6 Displaying result of system running interface

6 结 论

以S3C2440A 为核心,实现了步进电机控制器系统人机交互接口的升级。S3C2440A 片内集成的触摸屏接口和LCD 控制器可实现与触摸屏和LCD 的无缝连接。采用该方案,可大大简化系统设计,并减轻系统运行负荷。实验测试结果表明:系统方案合理,运行可靠。

[1] 熊根良,陈海初,梁发云,等.物理性人-机器人交互研究与发展现状[J].光学精密工程,2013,21(2):356-370.Xiong G L,Chen H CH,Liang F Y,et al.Research and development statue of physical human-robot interaction[J].Optics and Precision Engineering,2013,21(2):356-370.(in Chinese)

[2] 吴迪,曹洁,王进花.基于自适应高斯混合模型与静动态听觉特征融合的说话人识别[J].光学精密工程,2013,21(6):1598-1604.Wu D,Cao J,Wang J H.Speaker recognition based on adapted Gaussian mixture model and static and dynamic auditory feature fusion[J].Optics and Precision Engineering,2013,21(6):1598-1604.(in Chinese)

[3] 丁柏秀,郑喜凤,陈宇,等.发光二极管显示屏CCD 图像的修正[J].光学精密工程,2013,21(5):1318-1325.Ding B X,Zheng X F,Chen Y,et al.Revision of LED display images acquired by CCD camera[J].Optics and Precision Engineering,2013,21(5):1318-1325.(in Chinese)

[4] 郭星,刘政怡,李炜,等.一种大屏幕人机交互系统的实现方法[J].计算机工程与应用,2012,48(1):176-179.Guo X,Liu Z Y,Li W,et al.Implementation method of human-computer interaction system with large screen[J].Computer Engineering and Applications,2012,48(1):176-179.(in Chinese)

[5] 林贺盛.针织圆纬机数控平台人机交互单元设计[D].杭州:浙江理工大学,2012.Lin H S.Design of human-computer interaction unit of circular knitting machine CNC platform [D].Hangzhou:Zhejiang Sci-Tech University,2012.(in Chinese)

[6] 裴鸿刚.基于ARM 的服务机器人人机交互界面的设计与实现[D].广州:暨南大学,2012.Pei H G.The human-machine interface of a service-robot based on ARM:design and application[D].Guangzhou:Jinan Univeristy,2012.(in Chinese)

[7] 邢艳.精密光栅单色仪控制系统人机交互的实现[D].长春:吉林大学,2012.Xin Y.Development of human-computer interaction for control system of grating homochromatic instrument[D].Changchun:Jilin Univeristy,2012.(in Chinese)

[8] 高静雅.人机交互中的手势识别技术研究[D].西安:西安电子科技大学,2013.Gao J Y.Research on gesture recognition technology in the human-computer interaction[D].Xi’an:Xidian Univeristy,2013.(in Chinese)

[9] SAMSUNG Corporation.S3C2440A32-Bit Microprocessor User′s Manual[R].Korea:SAMSUNG Corporation,2009.

猜你喜欢

缓冲区触点触摸屏
中国人民大学新闻学院教授 林升栋:将消费者触点思维融入广告媒体计划
航空电转换器的损伤原因分析及修理
PLC和触摸屏在卫生间控制系统的应用
接触器辅助触点接触电阻产生原因分析
浅析投射式多点触控电容触摸屏
皮肤“长”出触摸屏
基于ARC的闪存数据库缓冲区算法①
一类装配支线缓冲区配置的两阶段求解方法研究
初涉缓冲区
可靠性技术在继电器控制中的应用探讨