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