APP下载

基于STM32F103的“无线传书”设计

2014-04-02周璐璐

卷宗 2014年12期
关键词:触摸屏电阻无线

周璐璐

伴随着集成电路的发展,无线通信技术变得更加成熟,而且容易实现。数据的传输速度,随着技术的不断提高也越来越快,人们慢慢摆脱了电缆的束缚,使信息的获取慢慢的从有线向无线进行过渡。本设计的传输系统主要是实现“无线传书”任务,除此之外还有LED任务、信号量检测任务、按键扫描任务和主任务。设计中引入了嵌入式操作系统 μCOS-II,并自己构建GUI环境,使得功能相对集中的控制,将软件封装在任务中,简化了总体软件结构的复杂度,提高了系统的开发效率。

系统的功能模块框图可以简化设计过程,贯穿于整个系统设计和调试的始终,使得设计思想清晰明白。整个系统分为主机子系统和从机子系统,共用一套程序代码,通过外围电路的按键控制部分进行模式的选择。每个系统都是由TFTLCD显示、无线发送或接收、控制器部分等功能模块组成,都可以独立进行各自的显示工作。控制器部分主要是由MCU和按键、LED、下载电路、电源等功能模块组成。下面我们就硬件部分设计和软件部分设计分别进行介绍。

1 硬件设计

ARM Cortex-M3处理器是为存储器和处理器的尺寸对产品成本影响极大的各种应用专门开发设计的,它整合了多种技术,减少使用内存,并在极小的 RISC 内核上提供低功耗和高性能。

目前市场上具有代表性的射频收发芯片主要有Nordic公司的nRF系列、TI公司的CC系列与RFM公司的TR系列等,这些芯片在不同的传感器网络节点中都得到了应用。其中由挪威 Nordic 公司推出的一款2.4GHz低成本的无线收发芯片nRF24L01 近年来得到了广泛应用,其最大空中数据传输速率达到 2Mbps,有 125个频道,满足本设计的要求,因此本文选择它来设计通信模块的无线收发电路,nRF24L01 主要是通过设置寄存器和对寄存器读写来控制其工作的。

本设计用的是电阻式触摸屏,电阻式触摸屏利用压力感应进行控制。电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜。当手指触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发生变化,在X和Y两个方向上产生信号,然后送触摸屏控制器。控制器侦测到这一接触并计算出(X,Y)的位置,再根据获得的位置模拟鼠标的方式运作。这就是电阻技术触摸屏的最基本的原理。

TFTLCD模块自带的触摸屏控制芯片为XPT2046。XPT2046是一款4导线制触摸屏控制器,内含12位分辨率125KHz转换速率逐步逼近型A/D转换器。XPT2046支持从1.5V到5.25V的低电压I/O接口。XPT2046片内集成有一个温度传感器。在2.7V的典型工作状态下,关闭参考电压,功耗可小于0.75mW。

2 系统软件设计

随着嵌入式系统应用领域范围日益广泛,硬件系统性能的大幅度提高,使得操作系统的应用成为可能。μCOS-II 是一种源码公开、结构紧凑、内核可剥夺的实时嵌入式操作系统。通讯和系统的任务调度。μCOS-II V2.86 版本嵌入式操作系统的体系结构中,内核源代码分为 3 个部分,硬件无关的内核代码、处理器相关的移植代码、用户配置文件。

“无线传书”任务的软件部分主要包括STM32控制程序和TFT触摸显示程序。STM32控制程序包括主机、从机的初始化程序,nRF24L01 无线发射、接收模块的配置程序以及数据的发送、接收程序。nRF24L01 无线收发模块的配置包括接收和发送数据地址、有效数据长度、数据传输速率、发射功率、工作通道频率、接收数据通道等,注意相关参数接收模块和发送模块必须具有相同的配置。收发程序主要是对 SPI 的操作。

系统上电后控制器按照模式控制真值表将 nRF24L01 设置为配置模式。在上电初始化之后,配置模块之前需要延迟一定的时间等待 nRF24L01 稳定,然后进行配置,使 nRF24L01 进入待机模式。在配置寄存器时,控制器首先需要将控制CSN的引脚拉低,其次写入配置命令和对应的配置字,最后将CSN 置高,这样就完成了一次配置。

整个发送过程包括上电初始化程序、配置子程序以及数据采集发送子程序。本节主要介绍数据采集发送子程序部分。采集部分由STM32控制器对TFT触摸屏上的触摸点进行定位而来。在程序开始时定义了一个容量为 32K bytes 的数组,采集完成的数据首先存放在数组中,然后将数据通过 SPI 口写入 TX_FIFO。在程序中设置了一个循环标志 i,当循环次数为 16 时说明 32 字节数组存满,这时 nRF24L01的 TX_FIFO 写满。最后启动发射,将 CE 置高,并且时间要保持在 10μs 以上,无线模块自动发射数据。注意往 nRF24L01 写数据时,必须首先把 CSN 置低写数,并且在写满寄存器之前要一直拉低,否则在发送时要出错。发送完成后要清楚标志位才能启动下一次发射。

当接收部分上电以后同样首先进行初始化,然后对 nRF24L01初始化配置成接收模式,此时 CE 置高等待接收。延迟 130μs 后nRF24L01 开始检测接收数据。为了方便检测把接收部分配置成产生 RX_DR 中断,所以当用示波器观察时可以看到当接收到一包数据后 IRQ 引脚会产生一个下降沿,此时 RX_FIFO 把接收到的数据读回单片机,IRQ 信号作为接收部分的读数中断信号。同样需要注意的是在读取数据之前需将 CE 置低,模块退出接收模式后才能读取数据;如果数据还未接收完毕,在读数后要注意清除标志位以便接收下一包数据。

猜你喜欢

触摸屏电阻无线
PLC和触摸屏在卫生间控制系统的应用
基于ARM的无线WiFi插排的设计
电阻焊
ADF7021-N在无线寻呼发射系统中的应用
基于multisim13.0负电阻在电源中作用的仿真
投射式多点触控电容触摸屏
触摸屏项目移植在自动化系统升级中的应用