在嵌入式系统中,产品在出厂前需要对开发板的开关机进行测试,用于验证产品在大量次数的开关机过程中是否出现异常.实现方法如下:
1.电源准备
我们不可能完全人工操作,太耽误时间和效率.在这里我选用了一款稳压源GW INSTEK GPD 3303这款产品支持串口编程控制,花了一些时间编写了一个程序,用于自动控制稳压源软件.如下图:
功能如下:
1)可实现通过串口连接设备,进行命令发送;
2)可设定2路输出的额定电压,电流
3)可保存运行log,带绝对时标
4)可实现自行编译启动时间,关闭时间,循环次数
5)可暂停,也可从设定次数开始执行.
2.被测产品准备
我这里试验使用的飞凌公司的3568产品,首先根据手册了解到,系统启动完成后会执行/etc/rc.local脚本.这样我们在这个rc.local脚本中增加一行 /home/forlinx/runtimes.sh & .这样当系统启动完成后,会启动我们的脚本runtimes.sh,计算启动次数;
脚本runtimes.sh 内容如下:
#!/bin/bash
# filename : runtimes.sh save as /home/forlinx/runtims.sh
# writed by yufuchang 2022.5.21
# 6ul-s2: write "/home/forlinx/runtimes.sh& in file '/etc/rc.local' "
if [ -e /home/forlinx/runcount.log ]
then
runcount=`cat /home/forlinx/runcount.log | wc -l`
runcount=`expr ${runcount} + 1`
echo "`date +%T` poweron times: ${runcount} " >> /home/forlinx/runcount.log
echo "`date +%T` poweron times: ${runcount} "
sync
else
touch /home/forlinx/runcount.log
echo "`date +%T` poweron times: 1" > /home/forlinx/runcount.log
echo "`date +%T` poweron times: 1"
sync
fi
验证过程
1)首先连接好电源和开发板,能够正常加电并启动,串口终端设定好自动保存log,用于当出现异常的时候能够复盘启动过程;
2)单次验证
单击"打开"按钮,设备启动,等待开发板启动完成,完成后会在串口终端出现"05:05:29 poweron times: X"字样;
这个时候单击关闭按钮.根据时标计算启动时间,如下图
从图中我们看到,启动的时间为15:37:59-18:37:24=35秒,这个时候打开开发板,执行命令 "cat /home/forlinx/runcount.log |wc -l "就可以得到当前开发板的启动次数,看是否和电源的启动次数一致,
注意: 在重新开始试验的时候,需要删除/home/forlinx/runcount.log .
为了稳定起见,我们设定启动时间为40秒,设定冷却时间为3秒(关闭电源后再启动的时间差),设定次数为你需要的次数,如十万次.已执行设定为0,从1开始技术.执行效果如下:
实验执行完成后,对比稳压源软件的次数和开发板中runcount.log中的行数,就可以知道是否正常了.
如果需要上面的稳压源软件,可以在这里连接下载GWINSTEKGPD3303系列稳压源控制软件_C#GWInstek-C#文档类资源-CSDN下载
创作不易,点赞不止.