15040268795 发表于 2019-6-19 13:09

21ic第三届设计大赛】+冗余执行系统

本帖最后由 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
视频连接:
故障检测以及管控
https://v.youku.com/v_show/id_XNDIzODgwNzk4OA==.html?spm=a2h3j.8428770.3416059.1
https://v.youku.com/v_show/id_XNDIzODgwMzQ2OA==.html?spm=a2h0j.11185381.listitem_page1.5~A
串口状态输出显示
https://v.youku.com/v_show/id_XNDIzODgwMzQ2OA==.html?spm=a2h3j.8428770.3416059.1
串口状态输出

cpu故障诊断,从cpu接管功能控制








15040268795 发表于 2019-6-22 21:34

感谢大家的支持

15040268795 发表于 2019-6-23 14:47

丛机监控主机通过io监控,这样能够提高系统的反应灵敏度,不建议采用串口通信,影响失效性,目前测试的反应时间在100ms以内

15040268795 发表于 2019-6-25 11:32

下一步,完善代码,实现双cpu互为主从的功能

15040268795 发表于 2019-6-26 15:17

感谢管家推荐,好活动必须参加

caijie001 发表于 2019-6-27 08:45

caijie001 发表于 2019-6-27 08:45

15040268795 发表于 2019-6-27 09:22

caijie001 发表于 2019-6-27 08:45


感谢支持,欢迎交流

lihui567 发表于 2019-6-29 11:01

楼主那个串口调试助手是你们自己做的吗,界面看这挺好的,

15040268795 发表于 2019-6-29 12:41

是我朋友做的,需要可以共享给你

15040268795 发表于 2019-7-2 11:01

欢迎大家交流

15040268795 发表于 2019-7-12 13:05

感谢各位的关注
页: [1]
查看完整版本: 21ic第三届设计大赛】+冗余执行系统