APP下载

基于FPGA的无线触控屏控制器设计*

2015-08-21

机械研究与应用 2015年3期
关键词:无线通讯寄存器触摸屏

杜 刚

(中国科学技术大学精密机械与精密仪器系,安徽 合肥 230027)

0 引言

嵌入式微处理器FPGA相比于微机,具有成本低、体积小、速度快的优点,对于中小型设备其处理能力完全可以满足要求[1]。相比于各种单片机等嵌入式芯片,FPGA采用可编程门阵列,可以根据具体需求构造SOPC(System-on-a-Programmable-Chip,片上可编程系统)、较为便捷地搭建外围电路,有效提高芯片资源的利用率[2]。

以FPGA为控制核心,设计一种具有无线通讯功能的触摸屏控制系统。其无线通讯功能,可以实时发送无线控制命令并无线监控设备运行状况,可以作用于危险环境或操作者难以亲自到达的场合。设计中以触控屏替代实体按键,减小了控制装置的体积。该系统可以脱离微机,独立操纵控制,减轻微机的工作负担。整个控制装置体积小,重量轻,可便携。

1 系统组成

系统主要由FLASH控制模块、基于XPT2046的触摸屏坐标采集模块、基于ILI9325的LCD显示控制模块及NRF24L01无线通讯模块组成。系统的控制核心采用FPGA芯片EP4CE15F17C8,搭建SOPC核。在LCD触摸屏绘制用户控制界面,利用触摸屏控制芯片采集控制信号,经编码后交由无线通讯模块发送至接收终端,实现触摸屏控制器的无线控制。无线通讯模块接收到控制端发送的信号经译码后被FPGA处理,FPGA将处理后的信号去控制受控设备。在对硬件编程时,主要采用NIOSII类C语言。

1.1 SOPC核和SPI总线

一个基本的SOPC核的组成部分有时钟(本设计采用50 MHz)、CPU、SDRAM控制器(用于在线调试)、FLASH控制器(用于烧录程序并实现掉电保存),JTAG_UART[3]。此外,还需搭建 IO 作为各个模块的控制接口,具体为:LCD的控制接口 RS、WR、RD、CS、REST及数据线DB7~DB0;触摸屏控制接口T_CS、T_CLK、T_IN、T_OUT、T_IRQ;无线通讯模块控制接口 MOSI、MISO、CE、CSN、SCK。

在上述模块中,触摸屏坐标采集模块XPT2046和无线模块NRF24L01都是基于SPI总线实现的,SPI总线是一种串行接口协议,一般由片选CS、时钟CLK、主出从入MOSI及主入从出MISO四根数据线组成,分别对应 XPT2046控制总线中的 T_CS、T_CLK、T_IN、T_OUT端口及 NRF24L01中的 CSN、SCK、MOSI、MISO 端口[4]。图 1 为 SPI时序图。

图1 SPI时序

对与NRF24L01与XPT2046,都是MOSI时钟上升沿有效,MISO时钟下降沿有效。在NIOSII中使用四个IO口模拟实现SPI接口。

1.2 LCD 触摸屏

采用的LCD触摸屏为电阻式,其中的LCD用以绘制并显示系统的用户控制界面,触摸屏用以对触控点进行捕捉,编码转换为该触控点所表示按键的具体指令。该部分主要工作流程如图2所示。

图2 LCD显示及触摸控制工作流程

1.2.1 LCD 显示控制

LCD用以绘制控制系统的用户控制界面,并反映对受控端工作状态监控的信息。为此,把用户控制界面分为按键区和显示区两部分。而ILI9325的作用就是读入控制界面的颜色数据矩阵,以静态的方式在LCD屏上绘制出来,同时在显示区显示受控设备的工作状态。

LCD驱动芯片ILI9325最高支持320X240分辨率的图像显示,且有18位RGB接口,故最多可支持262144色显示。芯片内置存储器大致分为两个部分:控制寄存器及缓存图片数据的GRAM(Graphics RAM,GRAM),通过对控制寄存器写入控制字,以此设置驱动芯片的工作状态。图片存储区GRAM大小为320X240X18bit,即有320X240个阵列存储单元,每个单元有18bit空间,GRAM结构与LCD像素排列方式对应。在写入图像数据之前,需要设置GRAM的工作范围,同时也是LCD的显示范围,该范围由对角线上两点坐标决定。待显示的图片数据会暂时存于GRAM中,显示图片时,GRAM寻址计数器自动在设定的范围内累加,以此读出GRAM中相应存储单元的图片数据,在屏幕像素阵列上显示[5]。LCD显示控制流程如图3所示。

图3 LCD显示控制流程

ILI9325提供了多种数据读写接口,有读写速度从快至慢分别为18-/16-/9-/8-bit的并行接口和1-bit的串行接口,综合考虑速度要求和FPGA的IO资源,本设计采用8-bit并行接口,图片颜色格式采用RGB565。在此接口模式及颜色格式下,一个像素点的颜色数据为16位,需分两次传输。图4为8-bit下并行接口颜色数据输入格式。

图4 8-bit并行接口颜色数据输入格式

本设计以FPGA内部资源搭建ROM存储模块,用以存放构成用户控制界面的图像数据矩阵,在上电后写入GRAM,这样,在FPGA资源允许的情况下可以减小外围电路的规模,有效提高了对FPGA资源的利用率。

1.2.2 触摸屏的控制

相比于电容屏,电阻屏虽不能支持多点触控,但具有精度高,价格低廉的特点,可做到一个像素点的精确控制。所以,对于控制器而言,电阻屏更为合适。

图5 XPT2046采集坐标流程

控制电阻式触摸屏的核心芯片是XPT2046,其本质上是一款逐次逼近型的数模转换器,可自由设置为8位或12位精度。触摸屏不同像素点受到压力会产生不同的模拟电压值,该电压由XPT2046采集后由处理器识别其对应的像素坐标,得到所按屏幕的区域并执行相应按钮的指令,在采集到像素坐标时,XPT2046同时会产生IRQ中断,因此,对应的具体命令函数可在中断中实现[6]。

触摸屏的像素坐标与具体的模拟电压值成正比关系,因为不同的屏幕该比例因子可能会略有差别,所以为了使触摸屏能在更精确的情况下工作,需要对触摸屏校正,计算出所用屏真实的比例系数。校正主要采用多次采集屏幕上特定像素点(例如一个矩形的四个顶点)的电压值,平均后得到较为精确的有效值,再结合被采点的几何关系即可算出比例系数。根据实际验证,20次左右的采集次数即可保证校正的精度。图7为XPT2046采集触摸点坐标的控制流程。

XPT2046的控制接口中T_IN口(即MOSI口)写入控制字,决定芯片的工作状态,包括模数转化的精度(8为或12位)、采集的坐标是横坐标还是纵坐标、单端采集还是差分采集等,而T_OUT口(即MISO)输出12位数值,代表在12位精度下采集到电压值[7]。XPT2046读写时序如图6所示。

图6 XPT2046读写时序

由时序图可见,在触动屏幕,产生IRQ中断信号后开始进行一次有效的电压采集,在一次采集的数据输出7位后,可以进行第二次采集的控制字输入,这样既可保证下一次的数值不会覆盖前一次,又可提高采集效率。

1.3 无线通讯模块

NRF24L01工作频率为2.4~2.525 GHz的公频段。NRF24L01有六个收发通道,因此可实现一对多或多对一的相互通讯,一次最多可发送的数据包大小为32 Bytes,在一般室内环境中有效通讯距离可达10 m(在开阔的室外环境可以更高)。

NRF24L01必须至少两片同时工作,一片发送一片接收。互为收发的两片芯片需配置相同的收发地址、收发通道、工作频率、数据长度及发射功率。NRF24L01的收发状态由CE管脚(激活芯片进入收发状态)及CONFIG寄存器中的PWR_UP(上电位)位和PRIM_RX(收发选择位)位共同决定。表1为NRF24L01工作状态。

具体的发送流程为:①接收端地址及待发送的数据写入NRF24L01;②配置CONFIG寄存器,进入发送状态;③置高CE管脚,激发发送;④发送数据包,并得到接收端的应答,完成发送。具体的接收流程为:①配置本机地址(需与发射端地址一致)及需接收的数据包的大小;②配置CONFIG寄存器,进入接收状态;③置高CE,激发接收;④接收到发射端发来的数据,产生应答;⑤从NRF24L01读出接收到的数据,置低CE,进入待机模式[9]。图7为无线模块工作流程。

表1 NRF24L01工作状态

图7 无线模块工作流程

NRF24L01的工作状态,可以通过读取状态寄存器STATUS实现。STATUS为8位寄存器,其中接收到有效数据后第六位RX_DR置高,发送数据成功接收到应答后第五位TX_DS置高。在收发完成后,必须对STATUS寄存器重置及对数据缓存区清空,否则下次收发可能会出现错误。为了提高收发的成功率,应该打开NRF24L01的自动重发功能,NRF24L01最多支持16次数据重发,直至收到接收端成功接收的应答为止。

由于无线通讯模块用于对控制端控制指令的传输,所以需要对控制界面产生的不同指令进行编码,交由无线模块发送,在接收端进行译码还原原始指令,并执行相应的操作。NRF24L01一次发送的数据包最多可达32bytes,可以满足控制指令的编码需求。

2 实验

以带有光栅尺反馈系统的二维电控平台为受控设备,对研制的控制系统进行了测试。图10为LCD触摸屏上显示的用户控制界面。图中上下箭头分别控制X向步进电机的正反转,左右箭头分别控制Y向步进电机的正反转,中间为启动和暂停键。上面的状态栏显示反馈的光栅尺测得的X和Y方向位移。一次发送控制指令和返回监控状态所用时间约为30~50 ms,该系统可用于实时控制和监测。图8为系统用户控制界面。

图8 用户控制界面

3 总结

本设计基于FPGA搭建SOPC嵌入核,实现LCD显示、触摸屏控制、无线通讯模块的控制,构建了无线触控系统,并通过无线操控和监测带光栅尺反馈的二维电控平台,验证了该系统运行的准确性、稳定性、可靠性和实时性。该无线触控系统也可应用于控制和监测其他工业设备或实验室仪器。

[1]李 欣.基于FPGA的片上多处理器建模方法[D].合肥:中国科学技术大学,2012.

[2]冯亚楠.基于SOPC的嵌入式系统架构及应用验证[D].呼和浩特:内蒙古大学,2014.

[3]王 刚,张 潋.基于FPGA的SOPC嵌入式系统设计与典型实例[M].北京:电子工业出版社,2008.

[4]刘福奇.FPGA嵌入式项目开发实战[M].北京:电子工业出版社,2009.

[5]高 超.基于SOPC汽车故障检测系统的设计[D].哈尔滨:黑龙江大学,2014.

[6]张 勇,邹卫军.基于Cortex-M3的低成本液晶触摸屏设计[J].工业控制计算机,2014,27(6):12 -14.

[7]张恩迪,余 萌.基于STM32和μC/OS-Ⅲ的双触摸屏无线自助点餐系统设计[J].微型机与应用,2014(12):90-92.

[8]杨 旭,李德敏,张谦益.基于nRF24L01的一种无线通信协议设计[J].通信技术,2011,44(7):57 -59.

[9]李 辉,宋 诗,周建江.基于ARM和nRF24L01的无线数据传输系统[J].国外电子元器件,2008(12):44 -46.

猜你喜欢

无线通讯寄存器触摸屏
Lite寄存器模型的设计与实现
PLC和触摸屏在卫生间控制系统的应用
基于无线通讯的远程无线切割分离装置控制系统
皮肤“长”出触摸屏
分簇结构向量寄存器分配策略研究*
基于NRF无线通讯技术的自组网互助教学系统研究与开发
成焊机组与飞焊车之间串行无线通讯研究与应用
对超宽带无线通讯技术的分析探讨
投射式多点触控电容触摸屏
触摸屏项目移植在自动化系统升级中的应用