本帖最后由 15040268795 于 2019-6-22 19:48 编辑
积极参与下21ic的活动
系统设计方案
首先满足竞赛要求,保证竞赛的基本功能实现,在此基础上,发挥下,除了竞赛加分项的功能外还打算进一步发挥,两个mcu互为主从,保证任何一个mcu出问题了,另一个mcu都能够接管控制功能
1、硬件设计
MCU: stm32f030c8t6
系统状态指示:3个led
系统状态监控:1个uart串口
故障状态模拟:按键1个
调试接口:SWD 2个 特意为了参赛做了一版PCB,PCB图如下
pcb正面
pcb丝印层
2、软件设计
软件采用双CPU结构,其中主cpu进行adc检测以及led状态指示,主cpu与从cpu之间通过状态指示信号通信,当从cpu检测到状态指示信号不同时,指示主cpu有故障,并接管主cpu功能,当从cpu检测到状态信号相同时,再检测led状态,当led状态有误时,从cpu通过串口输出故障信息,并接管主cpu功能纠正led状态。由于双cpu之间分别采集adc存在一定误差,所以软件设计中考虑到误差容错机制。代码主界面:
3、系统调试
PCB打样归来
焊接硬件
硬件调试,一次上电ok
4、视频展现
指示灯显示规则
1、adc状态:
闪烁:adc值处于limt_a>=adc_val>limt_a
灭:adc值处于adc_val<limt_a
常亮:adc值处于adc_val>limt_b
2、主cpu工作状态:
闪烁:主cpu正常工作
不闪烁或者常亮:功能被从cpu接管
3、从cpu工作状态:
慢闪:处于监控状态,主cpu工作正常
快闪:处于监控状态,并接管主cpu工作,主cpu工作异常
测试条件:
limt_a = 1000
limt_b = 2000
视频连接:
故障检测以及管控
串口状态输出显示
串口状态输出
cpu故障诊断,从cpu接管功能控制
|
加油!