STM32项目(二) —— 车灯测试台架

STM32 —— 车灯测试台架


宗旨:技术的学习是有限的,分享的精神是无限的。


需求:

(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Ω,通过标定,得到每个通道的标定系数。





猜你喜欢

转载自blog.csdn.net/a1314521531/article/details/78415876