当前位置:首页 > 芯闻号 > 充电吧
[导读]需求:(1)、点灯控制器:在线节拍,离线节拍;(2)、PWM控制盒:在线PWM,离线PWM;(3)、电流测试模块:检测车灯电流校准系数;方案:点灯控制器:STM32 + CAN + GPIO节拍:比如

需求:

(1)、点灯控制器:在线节拍,离线节拍;

(2)、PWM控制盒:在线PWM,离线PWM;

(3)、电流测试模块:检测车灯电流校准系数;


方案:

点灯控制器:STM32 + CAN + GPIO

节拍:比如亮多长时间,灭多长时间;大节拍中嵌套多个小节拍,每个灯对应相同或者不同的节拍。

上位机下发控制指令,表明此时是在线还是离线。(离线跑的节拍是在在线模式下下载的)

在线模式:如果是直接输出,按照指定格式下发CAN消息,MCU接受消息并解析,切继电器点灯;如果是存储节拍,MCU内部Flash存储上位机通过CAN下发的点灯节拍。

离线模式:从内部Flash中读取节拍,并控制继电器点灯;

模式切换按钮:不仅可以通过上位机控制在线/离线模式,还可以通过按键控制在线/离线模式。

系统设计:RTX多任务设计,CAN的接收、发送任务和超时任务,在线模式任务,离线模式任务,按键检测任务。

(1)、按键检测:判断IO口电平,添加到队列中,任务中不断读取队列和按键检测函数;

(2)、CAN接收/发送/超时:CAN接收中断中接收消息加到队列中,任务中出队列处理,在线模式——不保存数据,保存数据;离线模式;周期帧发送状态及接收的应答。

(3)、在线模式:CAN接收线程中判断是在线模式,如果不保存数据,在此处理在线线程逻辑去点灯,如果保存数据,写文件系统;

(4)、离线模式:判断上位机切换到离线模式/按键切换到离线模式,此时读取Flash内容,控制继电器点灯;


PWM控制器:STM32+CAN+GPIO

上位机下发控制指令,表明此时是在线还是离线。(离线跑的节拍是在在线模式下下载的)—— 这里的节拍就包括PWN频率和占空比


在线模式:如果是直接输出,上位机按照指定格式下发CAN消息,MCU接受消息并解析,通过PWM模块输出PWM方波(输入和输出可配置);如果是存储节拍,MCU内部Flash存储上位机通过CAN下发的点灯节拍。

离线模式:从内部Flash中读取节拍,并控制继电器点灯;

模式切换按钮:不仅可以通过上位机控制在线/离线模式,还可以通过按键控制在线/离线模式。

系统设计:RTX多任务设计,CAN的接收、发送任务和超时任务,在线模式任务,离线模式任务,按键检测任务。

(1)、按键检测:判断IO口电平,添加到队列中,任务中不断读取队列和按键检测函数;(模式切换按钮)

(2)、CAN接收/发送/超时:CAN接收中断中接收消息加到队列中,任务中出队列处理,在线模式——不保存数据,保存数据;离线模式;周期帧发送状态及接收的应答。

(3)、在线模式:CAN接收线程中判断是在线模式,如果不保存数据,在此处理在线线程逻辑去输出PWM方波,如果保存数据,写文件系统;

(4)、离线模式:判断上位机切换到离线模式/按键切换到离线模式,此时读取Flash内容,输出PWM方波;

(外部PWM输入通过继电器切换, 默认是外部PWM输入,检测到在线/离线模式,切继电器变成MCU输出PWM(小的PWM模块驱动))。


电流测试模块:使用电流检测芯片,两端接采样电阻,如0.06Ω,通过标定,得到每个通道的标定系数。





本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭