基于STM32的矿用手持式孔口显示器设计

2016-11-01 08:51:02雷晓荣
电视技术 2016年10期
关键词:手持式微控制器孔口

雷晓荣

(中煤科工集团西安研究院有限公司,陕西 西安 710077)



基于STM32的矿用手持式孔口显示器设计

雷晓荣

(中煤科工集团西安研究院有限公司,陕西 西安 710077)

为了提高矿用孔口显示器使用的便捷性,采用STM32微控制器和emWin图形库设计了矿用手持式孔口显示器。首先介绍了孔口显示器的整体硬件设计;软件部分介绍了软件整体架构,并详细介绍了采集控制程序的设计和emWin图形库在STM32平台的移植。试验结果表明,孔口显示器系统工作稳定,性能可靠,界面设计友好,实用性强。

孔口显示器;STM32微控制器;emWin图形库

STM32微控制器是意法半导体(ST)公司生产的32位ARM处理器。该处理器具有内部资源丰富、扩展能力强、功率消耗低、价格便宜等优点,已逐渐成为 32位微控制器中的理想器件[1]。

孔口显示器是探管和用户之间的人机接口,用户通过它向探管发送同步、配置和数据提取等命令;同时,探管接收命令后,向孔口显示器发回相应的信息;孔口显示器将接收到的数据信息经过计算和处理将结果以数字和图形(剖面图和水平面图)的方式显示出来[2-3]。传统的孔口显示器根据实现的主控芯片不同,一般有三种:基于工控机平台的孔口显示器,具有体积大、重量大等缺陷;基于单片机的孔口显示器,没有图形化显示界面;基于嵌入式ARM一体机的孔口显示器,连续工作时间短,加大电池容量后体积又大。针对这些问题,笔者基于STM32微控制器设计了一款体积小、功耗低、方便携带的矿用手持式孔口显示器。

1 矿用手持式孔口显示器硬件设计

矿用手持式孔口显示器的主要功能就是配合中煤科工集团西安研究院有限公司研制的煤矿井下各型轨迹仪使用,作为其显示控制设备。矿用手持式孔口显示器硬件主要由STM32F103系列微控制器、FLASH、SDRAM、LCD触摸显示控制模块、USB转蓝牙模块、接口模块和其他模块组成如图1所示。

图1 显示器硬件框架图

1.1微控制器

STM32F103 系列微控制器是新一代基于32位Cortex-M3内核的嵌入式 ARM处理器,最高处理速度可达72 MHz,片上集成存储器,拥有USB2.0和USART等多个通信接口、11个定时器、中断源和外设等。工作电压为 2.0~3.6 V;具有休眠、停止、待机3种低功耗模式,从而在低功耗、短启动时间和可用唤醒源之间达到一个最好的平衡点,适合孔口显示器使用[4]。

1.2显示控制电路

LCD触摸显示控制模块采用了BL32007型3.2 in(1 in=2.54 cm)TFT液晶屏,分辨率为320×240,控制驱动芯片采用经典的ILI9341,其组成包括720通道的源极驱动器、320通道的栅极驱动器、图形显示的GRAM以及供电电路。ILI9341支持8/9/16/18位数据总线的MCU接口,6/16/18位数据总线的RGB接口,以及3/4线的SPI接口,使用1.65~3.3 V的I/O接口电压和一个对应的电压跟随电路来产生驱动LCD的电压,有精确的电压控制支持全色显示、8色显示和睡眠模式。触摸屏控制芯片选用XPT2046,内含12位分辨率125 kHz的转换速率逐步逼近型A/D转换器。 XPT2046支持从1.5 V到5.25 V的低电压I/O接口。 XPT2046能通过执行2次A/D转换查出被按的屏幕位置。显示控制电路连接如图2所示。

图2 显示控制电路连接图

1.3通信电路

通信电路改进了上一代产品有线串口通信的方式,设计了有线串口通信和无线蓝牙传输模块共存的模式,可根据实际使用工况自由切换[5]。ADM2687E采用 Analog Devices的 iCoupler技术,在单一封装中结合了3通道隔离器、三态差分线路驱动器、差分输入接收器,内置 5 kV(rms)隔离式DC-DC集成电源,不需要采用外部DC-DC隔离块,具有 ±15 kV ESD 保护功能,适合在多点传输线路中用于高速通信。采用 5 V 或 3.3 V 单电源供电,实现了全集成式信号和电源隔离式 RS-485 解决方案;BF10-A 蓝牙模块直接把串口数据通过蓝牙传输的方式发送或接收回来,送到STM32F103 系列微控制器进行处理[6]。

2 矿用手持式孔口显示器软件设计

图形用户界面是矿用手持式孔口显示器设计的关键部分,软件设计的主要内容包括emWin图形库在STM32平台的移植和基于emWin图形库的数据采集控制程序设计。

2.1数据采集控制软件设计

数据采集控制软件作为轨迹仪的人机交互界面,直接关系到整个系统的用户体验。因此,软件的设计采用模块化设计方法,具体操作采用“数字导向式”设计,简化了软件的操作步骤。该软件实现了井下数据通信、调试测量、定时同步、数据处理计算及存储、轨迹图显示和USB导出等功能,软件架构如图3所示。

图3 软件架构图

2.2emWin移植

emWin是SEGGER公司开发图形库,将它授权给ST公司使用称之为STemWin,二者是一样的。emWin来源有两处,一个是MDK(Keil)软件目录下的,另外一个是ST公司的,文中采用ST公司的STemWinLibrary522,它的移植主要有以下几个步骤[7-8]:

1)添加库文件和配置文件。

打开工程文件,添加GUI配置文件GUIConf.h和GUICon.c、GUI驱动模板文件GUIDRV_Template.h和GUIDRV_Template.c、LCD配置文件LCDConf_FlexColor_Template.h和LCDConf_FlexColor_Template.c及LCDConf_Lin_Template.h和LCDConf_Lin_Template.c;库文件添加与STM32F103 系列微控制器对应的STemWin522_CM3_Keil.lib和STemWin522_CM3_OS_Keil.lib。

2)配置LCD文件

LCD文件配置主要针对ILI9341控制驱动芯片进行配置,配置它的显示尺寸、颜色模式、显示方向、寄存器地址等参数,主要配置如下:

/* 显示尺寸 */

#define XSIZE_PHYS240

#define YSIZE_PHYS320

/* 触摸屏四个角的AD采样值 */

#define TOUCH_AD_TOP3802

#define TOUCH_AD_BOTTOM189

#define TOUCH_AD_LEFT213

#define TOUCH_AD_RIGHT3859

/* 设置寄存器 */

static void LcdWriteReg(U16 Data)

{

ILI9341_REG = Data;

}

/* 写寄存器 */

static void LcdWriteData(U16 Data)

{

ILI9341_RAM = Data;

}

void LCD_X_Config(void)

{

GUI_DEVICE * pDevice;

CONFIG_FLEXCOLOR Config = {0};

GUI_PORT_API PortAPI = {0};

/* 控制驱动器和颜色模式 */

pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_565, 0, 0);

/* 控制驱动器配置 */

LCD_SetSizeEx (0, XSIZE_PHYS , YSIZE_PHYS);

LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS);

/* 显示方向 */

Config.FirstCOM = 0;

Config.FirstSEG = 0;

Config.Orientation = GUI_SWAP_XY | GUI_MIRROR_Y;Config.NumDummyReads = 2;

GUIDRV_FlexColor_Config(pDevice, &Config);

/* 配置控制驱动器和操作方式 */

PortAPI.pfWrite16_A0= LcdWriteReg;

PortAPI.pfWrite16_A1= LcdWriteData;

PortAPI.pfWriteM16_A1 = LcdWriteDataMultiple;

PortAPI.pfReadM16_A1= LcdReadDataMultiple;

GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66709, GUIDRV_FLEXCOLOR_M16C0B16);

GUI_TOUCH_SetOrientation((GUI_MIRROR_X * LCD_GetMirrorXEx(0)) |

(GUI_MIRROR_Y * LCD_GetMirrorYEx(0)) |

(GUI_SWAP_XY* LCD_GetSwapXYEx (0)));

/* 触摸屏校正 */

GUI_TOUCH_Calibrate(GUI_COORD_X, 0,240-1, UCH_AD_RIGHT ,TOUCH_AD_LEFT );

GUI_TOUCH_Calibrate(GUI_COORD_Y,0,320-1,TOUCH_AD_BOTTOM ,TOUCH_AD_TOP );

}

3)配置GUI文件

GUI文件配置分为GUIConf.h配置和GUIConf.c配置。GUIConf.h配置多层显示、多任务支持、触摸屏支持、可用包支持信息和缺省字体等,具体如下:

/* 设置2层显示支持 */

#define GUI_NUM_LAYERS2

/* 匹配多任务支持 */

#ifdef OS_SUPPORT

#define GUI_OS(1)

#else

#define GUI_OS(0)

#endif

/* 触摸屏支持 */

#ifndef GUI_SUPPORT_TOUCH

#define GUI_SUPPORT_TOUCH(1)

#endif

/* 缺省字体 */

#define GUI_DEFAULT_FONT&GUI_Font6x8

/* 鼠标支持 */

#define GUI_SUPPORT_MOUSE(1)

/* 支持窗口 */

#define GUI_WINSUPPORT(1)

/* 存储器设备支持 */

#define GUI_SUPPORT_MEMDEV(1)

/* 设备指针支持 */

#define GUI_SUPPORT_DEVICES(1)

GUIConf.c配置主要配置动态显示缓冲区大小和缺省的字体等,具体如下:

/* emWin动态显示缓冲区大小 */

#define GUI_NUMBYTES1024*38

/* 设置块大小 */

#define GUI_BLOCKSIZE 0x80

void GUI_X_Config(void)

{

/* 32位分配存储区域 */

static U32 aMemory[GUI_NUMBYTES / 4];

/* 分配存储区域给emWin */

GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES);

/* 设置块大小 */

GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);

/* 设置缺省字体 */

GUI_SetDefaultFont(GUI_FONT_6X8);

}

移植完成后,将使用emWin图形库设计的数据采集控制程序添加到工程目录中进行编译并下载到MCU中,初始的功能界面如图4所示。

图4 数据采集控制软件界面(截图)

3 试验结果

为了验证矿用手持式孔口显示器的性能,配合中煤科工集团西安研究院有限公司研制的YBG1-T便携式轨迹仪探管一起进行了地面钻孔试验。测试效果如图5所示。

图5 地面钻孔试验效果

打开矿用手持式孔口显示器,启动后自动弹出数据采集软件功能界面,和YBG1-T便携式轨迹仪探管进行蓝牙连接,连接成功后开始各项功能测试:1)调试测量,点击发送命令后功能界面显示当前的测量倾角和方位,各项工作正常;2)定时同步测试,定时同步设置完成并发送命令,把YBG1-T便携式轨迹仪探管送入地面钻孔开始测量,每隔3 m测量一次,直到测试结束。本次测试钻孔深度72 m,全程耗时32 min,矿用手持式孔口显示器成功记录了测量信息;3)数据传输测试,取出YBG1-T便携式轨迹仪探管后再次进行蓝牙连接,成功取出所有的测试数据,如图5b所示;4)图形显示测试,数据传输结束后,点击图形曲线后程序自动计算全部测量数据的轨迹坐标,并生成二维轨迹图,如图5c所示。全部功能测试完成后,又选取了2号钻孔、3号钻孔进行了测试,测试效果良好。

4 结语

基于STM32微控制器和3.2 in(1 in=2.54 cm)高分辨率触摸显示屏作为硬件平台,设计了矿用手持式孔口显示器。该仪器搭载了emWin操作系统,并采用emWin图形库设计了数据采集控制程序。通过大量的室内外试验验证,设计的矿用手持式孔口显示器具有系统工作稳定、性能可靠、携带方便等优点,能满足煤矿井下钻孔施工的要求。

[1]肖林京,于鹏杰,于志豪,等.基于STM32和emWin图形库的液晶显示系统设计[J].电视技术,2015,39(1):39-42.

[2]雷晓荣.回转钻进随钻测斜仪的研制及应用[J].煤田地质与勘探,2015,43(3):118-121.[3]雷晓荣,程建远.YZG05/30矿用钻孔轨迹记录仪及其应用[J].煤田地质与勘探,2015,43(4):120-122.

[4]STMicroelectronics.STM32F103XX Datasheet[EB/OL]. [2016-04-05].http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN1565/PF164491,2016.2.

[5]深圳蓝色飞舞科技有限公司.BF10蓝牙模块数据表[EB/OL]. [2016-04-05].http://www.lanwind.com/download.php,2016.2.

[6]AnalogDevices.ADM2687E Datasheet[EB/OL]. [2016-04-05].http://www.analog.com/en/products/interface-isolation/isolation/isolated-rs-485/adm2687e.html#product-overview,2016.2.

[7]郑力,蔡启仲,陆伟男,等.基于emWin图形库的四旋翼飞行器监控系统设计[J].计算机测量与控制,2015,23(6):1986-1988.

[8]张峰,张团善,吕双庆,等.emWin在LPC1788上的移植与应用[J].电子设计工程,2015,23(6):156-159.

Design of mine hand-held orifice display based on STM32

LEI Xiaorong

(Xi′anResearchInstituteofChinaCoalTechnology&EngineeringGroupCrop,Xi′an710077,China)

In order to improve the convenience of the use of mine orifice display, a mine hand-held orifice display is designed by using STM32 micro controller and emWin graphics library. The hardware design of orifice display is firstly elaborated. In the software part, the whole software structure and the design of acquisition control program and transplant of emWin graphics library in STM32 platform are described in detail. The results show that mine orifice display is steady, reliable, user-friendly and practicable.

orifice display;STM32 micro controller;emWin graphics library

TN873

ADOI: 10.16280/j.videoe.2016.10.009

陕西省科技统筹创新工程计划项目(2012KTCL03-23)

2016-04-05

文献引用格式:雷晓荣. 基于STM32的矿用手持式孔口显示器设计[J].电视技术,2016,40(10):41-44.

LEI X R. Design of mine hand-held orifice display based on STM32 [J]. Video engineering,2016,40(10):41-44.

雷晓荣(1981— ),工程师,硕士,主要研究方向为物探仪器。

责任编辑:闫雯雯

猜你喜欢
手持式微控制器孔口
5.8GHz ETC手持式收费机在高速公路中的应用
一种筒类零件孔口去毛刺工具
手持式金属探测器设计
电子制作(2019年19期)2019-11-23 08:41:38
逆作法孔口边梁内力计算
物联网技术在微控制器实验教学中的应用
电子制作(2017年14期)2017-12-18 07:07:58
基于FPGA的手持式示波器的设计与实现
Atmel针对新一代物联网应用发布全新32位微控制器
最新STM32设计工具增加对混合信号微控制器的支持
康耐视 DataMan®8050系列手持式读码器
自动化博览(2014年4期)2014-02-28 22:31:13
煤层钻孔孔口除尘装置设计
河南科技(2014年15期)2014-02-27 14:12:34