测试平台发射模块设计与实现*

2019-09-27 01:36张绍阳
舰船电子工程 2019年9期
关键词:方波开发板上位

李 超 张绍阳 庄 瑞

(昆明船舶设备试验中心 昆明 650051)

1 引言

在水下武器试验中,经常需要测试平台发射一定频率的信号来检测产品的相关响应特性。以往试验中由于测试平台与发射端一般都存在一定的距离,往往都要专门在发射端配备一名试验人员来负责与测试平台检测人员交流沟通并通过人工修改信号源与功放等设备参数的方式来完成信号发射任务。这种方法操作繁杂、耗费人力的同时由于试验环境不确定性干扰因素的存在可能影响检测人员与发射人员间正常通信进而影响发射结果的准确性与实时性。为此,本文基于STM32开发板设计实现了一个测试平台发射模块,该发射模块使得上位机可以通过LwIP(Light Weight IP)即轻型IP协议通信网络[1]来控制开发板发射300Hz、500Hz和800Hz三种频率方波来更好地完成产品调试检测任务。

2 发射模块总体结构

本文中,开发平台为位于测试平台上的STM32F407VGT6开发板。某工程试验任务要求测试试验中发射300Hz、500Hz和800Hz三种不同频率的方波,且每个频率方波持续发射10s,然后间隔5s无信号输出后再发射下一个频率方波,来检测产品对这三种频率信号的响应。

在嵌入式开发中LwIP通信协议以其开源、代码量小及移植简捷等特点[2],特别适合应用于小型嵌入式设备间网络通信中,故本文开发中采用LwIP通信协议来实现上位机与STM32开发板间通信。定时器PWM(Pulse Width Modulation)即脉宽调制模式输出具有占用系统资源少、输出波形好且操作简便等优点[3],因此,本文采用设定定时器PWM模式参数的方式来输出特定频率方波。

上位机通过LwIP通信网络控制STM32开发板发射特定频率方波的系统结构图如图1所示[4]。上位机网络调试助手软件通过LwIP通信网络向STM32开发板发送发射控制指令[5],STM32开发板收到发射指令后,通过设定定时器PWM模式相关参数的方式来分别输出三种频率方波完成发射任务。

图1 发射模块结构图

3 LwIP网络搭建

由于LwIP网络协议的便捷及应用广泛性性,在STM32开发板库函数中已集成了LwIP网络协议[6],因此,在程序开发中无需再进行移植操作,只需加上相应头文件直接调用相关库函数即可。本文开发中,由于上位机与开发板间通信距离短,且为了保障开发板能实时响应上位机控制指令等因素,本文采用传输速率较高的UDP通信协议方式来实现通信[7]。上位机通过网络调试助手与开发板间绑定IP地址并连接后即可进行实时通信[8~9]。

4 发射模块程序设计与实现

本文中,采用STM32F407VGT6开发板定时器1的PWM模式来输出方波且选择PA8管脚作为PWM输出管脚[10]。发射模块的程序设计如图2所示,在程序模块中注册回调函数来实时接收上位机发来的信息,当开发板收到上位机发来的“cs”(Control Shooting)字符命令时,通过设置全局变量的值来使能发射模块进而运行发射模块程序。

图2 发射模块程序设计框图

在发射模块程序中,首先通过设置定时器1为PWM输出模式并设置占空比为百分之五十使其输出方波[11],然后定时器1的PWM模式持续输出300Hz方波10s后关闭PWM输出使PA8管脚5s内无信号输出,同理依次分别持续输出500Hz和800Hz方波其间均保持5s间隔内输出端无信号输出,800Hz方波输出完成后即跳出发射模块程序,等待下次收到上位机“cs”字符命令再次调动发射模块程序,依次发射三种频率方波即可实现本文发射300Hz、500Hz及800Hz三种频率方波各10s间隔无信号5s的目标。

PWM模式输出三种频率方波则可通过改变定时器1的PWM模式中的分频系数Prescaler和重装载值TimerPeriod两个参数变量来实现[12]。STM32F407VGT6开发板定时器1的时钟频率为144MHz,则计数频率为144M/(Prescaler+1),当设置分频系数Prescaler为479时,则计数频率为144M/480=300K,所以PWM方波输出频率为300kHz/(TimerPeriod+1),因此设置TimerPeriod为999即可输出频率为300Hz的PWM方波。同理通过设置分频系数Prescaler为287和重装载值Timer-Period为999则可以输出频率为500Hz的PWM方波;设置分频系数Prescaler为179和重装载值TimerPeriod为999则可以输出频率为800Hz的PWM 方波[13]。

5 工程实现

如图3所示为上位机通过网络调试助手向STM32开发板发送“cs”发射指令。因为字符”c”对应的十六进制ASCII码为0X63,“s”对应的十六进制ASCII码为0X73,所以图3中发送的”cs”字符自动转化为十六进制0X6373传输。

图3 上位机网络调试助手发送“cs”发射指令

当开发板通过LwIP网络接收到上位机发射控制指令后便开启发射模块相继发射300Hz、500Hz和800Hz方波,通过示波器观察到PA8管脚输出的PWM方波如图4、图5、图6及图7所示。

图4 发射300Hz方波

图5 间隔5s无信号输出

图6 发射500Hz方波

图7 发射800Hz方波

由图4~图7示波器观察到的波形图可知,发射模块发射的方波频率准、波形正,且通过用手机计时软件计时的方式验证了该发射模块可以很好地实现分别持续发射300Hz、500Hz和800Hz方波10s且中间间隔5s无输出信号的功能。

6 结语

本文基于STM32开发板设计并实现了测试平台发射模块,该模块使得试验人员可以在上位机端直接控制STM32开发板发射300Hz、500Hz和800Hz三种频率方波。通过示波器观察PA8输出管脚波形及手机计时检验结果可知,该发射模块较好地实现了上位机控制开发板发射特定频率方波的功能,实现了STM32开发板定时器PWM输出模式及LwIP嵌入式网络在工程实践中的应用。此外该技术具有较高的灵活度和可控性,在嵌入式实时控制应用中具有重要的实用价值。

猜你喜欢
方波开发板上位
便携式多功能频率计的设计与实现
基于STM32H7的FDCAN通信系统设计与实现∗
特斯拉 风云之老阿姨上位
心肺复苏通气时呼吸机送气流速模式选用方波和减速波对患者气道压力的影响
开发板在单片机原理及接口技术课程教学中的应用
基于ZigBee和VC上位机的教室智能监测管理系统
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证
一种防垢除垢的变频电磁场发生装置
MiniGUI在基于OMAP5912开发板上的移植
基于VC的PLC数据采集管理系统