基于STM32的多通道调理电路信号显示与控制

2018-11-05 02:55邵焕杰夏静
机械制造与自动化 2018年5期
关键词:主站触摸屏程序

邵焕杰,夏静

(南京理工大学 机械工程学院,江苏 南京 210094)

0 引言

在固体火箭武器发射测试时,需要采集火箭武器发动机喷射的燃气流作用在发射车相关位置上产生的压力、振动等参数,采集数据得到具体参数的变化曲线,对提升火箭武器发射的稳定性、精度和安全性具有重要的参考价值,因此要保证采集数据的精确度[1]。传感器在与标定环境不一时产生的漂移或温差电势在经放大电路放大后会严重影响采集数据的精度,传感器需要通过调零来消除此类误差干扰,来保证采集精度。由此,本文主要介绍了以STM32为内核芯片触摸屏显示控制各通道传感器数据的输出值,通过CAN总线通信实现调零功能。STM32系列是基于ARM Cortex-M3内核设计,性能突出,外设丰富,运用广泛,满足设计要求。控制器局部网(controller area network,CAN) 是 BOSCH 公司推出的一种多主机局域网,CAN 总线系统可由上位机(PC机或工控机)、数据转换器和现场节点组成[2]。由于火箭武器发射测试现场环境恶劣、电磁辐射强,普通的串口通信易受干扰,采集通道数要求较多,CAN通信比较适用于此类场合。CAN主站及从站均采用内置CAN控制器的32位高性能微处理器STM32F103RCT6作为核心芯片,采用TJA1050作为CAN收发器,实现电平转换和通信功能。

1 系统硬件结构

硬件结构如图1所示,整个电路主要由基于STM32的触摸屏主站和从站的信号调理及控制电路组成。

图1 硬件电路结构

1.1 CAN主站硬件设计

主站电路如图2所示,主要包括电源模块,STM32模块,CAN收发器模块和触摸屏模块。

图2 CAN主站电路

STM32模块由STM32F103RCT6微控制器、晶振时钟、复位、一键下载电路组成。该芯片是基于32位 ARM Cortex-M3 核心,最高工作频率为 72 MHz,拥有48 KB SRAM, 256 KB FLASH[3]。

STM32内置CAN控制器bxCAN,支持CAN2.0A和2.0B协议,最高支持1 Mbits/s。包含3个发送邮箱,2组各包含3个接收邮箱的FIFO,报文的接收和发送主要由STM32完成。CAN收发模块主要采用TJA1050,是CAN控制器和物理总线之间的接口,是一种速率相对较高的收发器[4]。发送接收端口可直接与STM32的CAN_RX和CAN_TX端口相连。

触摸屏主要采用的是ALIENTEK推出的4.3″TFTLCD电容触摸屏。屏幕分辨率为800×480,16位真彩显示,采用NT35510驱动,芯片自带GRAM,无需任何外加驱动器,支持5点同时触摸,具有良好的操控效果。图3为LCD与STM32接口电路,LCD表示与显示相关串口,T表示与触摸控制通信相关串口。LCD采用16位8080并口,触摸屏采用IIC接口。触摸屏与CAN主站硬件通过两排共32个排针连接和四角的安装定位孔通过螺纹连接固定。

图3 触摸屏连接图

1.2 CAN从站硬件设计

从站电路如图4所示,各通道均由电源模块、STM32模块、CAN收发器模块、信号调理模块和传感器桥压供电模块组成。

图4 CAN从站电路结构

信号调理模块电源模块为±12 V供应,采用线性降压稳压器LM7805和AMS117_3.3 V进行降压生成稳定的5 V和3.3 V电压为CAN收发器和STM32进行供电。

采集压力信号时,压力传感器内部为全桥结构,需要稳定的10 V桥压供电,采用REF102AP产生10 V基准电压供电。电桥输出电压信号非常小,通常为mV级,采用高精度仪用放大器AD8221作为放大器,其具有较大的输入阻抗,在G=1、频率最高为10 kHz时,AD8221的共模抑制比保持在80 db,相对于频率的高共模抑制比使得AD8221可以抑制带宽干扰和线路谐波,大大简化了滤波要求[5]。滤波电路采用MAX280芯片的低通巴特沃斯低通滤波电路,压力采集有效信号频率在1 kHz以下,MAX280是一种开关电容滤波器,引脚4 DR接地,则分频比为200,采用内部140 kHz时钟,截止频率计算式如式(1)。

(1)

式中:fc为截止频率;fcosc为时钟频率;DR为分频比。

可通过改变引脚4的接法来得到不同截止频率,此处DR接地,如图5所示,分频比为200,可得出截止频率约为700 Hz,可以有效截止干扰信号。

图5 放大滤波电路

调零信号采集电路由运放ADOP07,STM32和AD7680共同组成。AD7680是Analog Device公司生产的一款16位,100 ksps,功率为3 mW的低功率、高速模数转换芯片,参考电压与电源电压同步,具有关断模式。支持SPI,QSPI,MICROWIRE和DSP高速串行通信[6]。调零信号采集电路中信号通过运放ADOP07CH,输出信号VOUT=1.65+VIN,零点值为1.65V,送入基准电压为3.3V的AD7680进行模数转换。

调零输出电路主要由STM32、ADOP07和增益为1的放大器AD8221组成,如图6所示,ADOP07输出电压VOUT2=1.65-VDAC1后,与原信号通过放大器AD8221,消除漂移电压,实现调零输出。

图6 调零输出电路

2 系统软件设计

系统软件主要由CAN主站通信程序,触摸屏显示控制程序及从站节点调零通信程序构成,均采用STM32的固件库在Keil μVision环境下采用C语言模块化编程,均通过C语言编写。

2.1 程序工作流程

各模块程序是为了实现对传感器的调零及传感器数值的实时显示。结构流程包括:1) CAN主站、从站配置初始化;2)从站采集发送信号电压;3)主站接收各个从站数据,通过数值转换、显示程序,在屏幕上显示各从站数值;4)点击触摸屏进入调零模式,针对各从站接收传感器传来的数值,进行相应的上调、下降,循环以上步骤,使其接近零点;5)点击触摸屏进入数据采集模式,信号传送给数据采集系统。

2.2 CAN主站从站设置及通信

CAN控制器的初始化主要包括主控寄存器工作方式(CAN_MCR)和过滤器(CAN_FM1R)工作模式配置,在CAN主站中配置过滤器工作在标识符屏蔽位模式,过滤出一组标识符,CAN从站过滤器工作模式在标识符列表模式,只接受发往自己的报文。CAN位时间的设定,是在CAN位时序寄存器(CAN_BTR)中设置。CAN的波特率设置如式(2)。

(2)

式中:tBS1=tq×(TS1[3:0]+1);tBS2=tq×(TS2[2:0]+1);tq=(BRP[9:0]+1)×tPCLK;tPCLK=APB时钟的时间周期。

设置TS1=6,TS2=7和BRP=4,在APB1频率为36MHz的条件下,即可得出波特率为450kHz。

CAN数据帧发送主要包括起始帧、仲裁段(基本ID、扩展帧IDE和远程帧RTR设定)、控制端(数据段字节数LEN)、数据段(可包含8个字节)、CRC段(检查帧传输错误)、ACK段(确认是否正确接收)和帧结束段。

u8Can_Tx_Msg(u32 id,u8 ide,u8 rtr,u8 len u8 *canbuf)

//返回值:0~3,邮箱编号.0XFF,无有效邮箱

voidCan_Rx_Msg(u8 fifox,u32 *id,u8 *ide,u8 *rtr,u8 *len,u8 *canbuf)

//fifox:邮箱号

2.3 触摸屏初始化

显示初始化流程为STM32和TFTLCD模块相连IO口初始化、硬复位LCD、初始化序列、设置坐标、写GRAM指令、写入颜色数据、LCD显示,显示各从站通道对应的显示位置。触摸屏初始化为读取LCD ID判断是否为电容屏、执行OTT2001A初始化代码、进入触摸屏测试程序。

2.4 调零程序

在压力测试过程中,从站板子上电后,由于桥路的不平衡,运放失调电压等影响,所以输出的电压不等于零。点击CAN主站触摸屏进入调零模式,从站STM32接收经AD7680转换的放大滤波信号,在STM32内置数模转换DAC及AD7680输出上述规定的零点电压值1.65 V时和程序中设定的零点值存在一定的偏差,因此程序中添加了调零修正值tlb,如式(3)。

(3)

lingdian=0x8C10;//零点设定值

tiaoling[0] =Get_AD7680_Average(10);//STM32读取十次取平均值

DAC_SetChannel2Data(DAC_Align_12b_R,0x0000);//设定输出电压0V

tiaoling[1] =Get_AD7680_Average(10);//读取十次取平均值

DAC_SetChannel2Data(DAC_Align_12b_R,0x0fff);//设定输出电压3.3V

tiaoling[2] =Get_AD7680_Average(10);//读取十次取平均值

tiaolingg=(tiaoling[0] +tlb)>>4;//加上调零补偿值并右移四位以12位DA输出 tlb由式(3)得出

DAC_SetChannel2Data(DAC_Align_12b_R,tiaolingg);//设定修正后的值输出

tiaoling[0] =Get_AD7680_Average(10);//再次读取

将最后读取数值通过CAN通信传输到主站,标准标识符代表通道号,数据段包括2个字节。主站将16进制数转换成十进制并在触摸屏上显示,此时进入从站通道逐一调零模式,程序退出上述设定调零修正值程序,针对各从站通道一一进行调零操作,从站STM32通过DAC1输出相应的电压值,对调零电压进行更改;从站通道同时在接收传感器信号及发送数据,实现了触摸屏上循环显示,多次调零,直至调整至零位,达到精度要求。开始数据采集,其流程图如图7所示。

图7 调零程序流程图

3 结语

以STM32微处理器为核心,触摸屏为人机交互界面,实现了基于CAN总线的多通道信号调理。CAN总线通信可靠,抗干扰能力强,可扩展性强,传输速度高,对于火箭武器的现场测试环境具有良好的适应性。通过微处理器的控制,可以实现反复调零,保证精度,测试者能直观地观察到调零信号大小,增加了信号调理的可靠性,同时也解决了测试时传统手工调零的繁琐,提升了便捷性,具有较好的实用价值。

猜你喜欢
主站触摸屏程序
PLC和触摸屏在卫生间控制系统的应用
基于S7-1200 PLC的DP总线通信技术在马里古伊那水电站泄洪冲沙孔门机上的应用
试论我国未决羁押程序的立法完善
变电站综合自动化系统调试新方法研究
浅析投射式多点触控电容触摸屏
皮肤“长”出触摸屏
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
EtherCAT主站与主站通信协议的研究与实现*
多表远程集抄主站系统