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





⑴. 汽车左转弯的仿真。在Multisim 2001下(以下的仿真都是在这个软件下,并且都是功能仿真)的仿真的电路图。 图4.左转弯仿真电路 仿真分析:如图4所示当S2 S1 S0 =001时候,L3L2 L1变化顺序为: 000 001 011 111 000,由于输出为高电平时灯亮,所以尾灯的点亮方式为:L1→L1L2→L1L2L3→全灭→L1…… S2 S1 S0 =000的时候,r1 r2 r3 ,L1L2L3恒为000,所以所有灯熄灭与实际相符合,所以正确。 ⑵.汽车右转弯仿真。 图5.右转弯仿真电路 仿真分析:根据图5有当S2 S1 S0 =001时候,L3L2 L1变化顺序为: 000 001 011 111 000,r3 r2 r1=000由于输出为高电平时灯亮,所以尾灯的点亮方式为:L1→L1L2→L1L2L3→全灭→L1……r3 r2r1恒为熄灭; S2 S1 S0 =010的时候,r3 r2 r1变化顺序为: 000 001 011 111 000,L1L2L3=000由于输出为高电平时灯亮,所以尾灯的点亮方式为:r1→r1 r2→r1 r2 r3→全灭→r1……L1L2L3恒为熄灭。 S2 S1 S0 =000的时候,r3 r2 r1 ,L1L2L3恒为000,所以所有灯熄灭。 经过分析与实际相符合,所以仿真正确。 ⑶.汽车左右转弯和倒车的仿真。 图6.汽车左右和倒车仿真电路 仿真分析:根据图6有当S2 S1 S0 =001时候,L3L2 L1变化顺序为: 000 001 011 111 000,r3 r2 r1=000由于输出为高电平时灯亮,所以尾灯的点亮方式为:L1→L1L2→L1L2L3→全灭→L1……r3 r2 r1恒为熄灭; S2 S1 S0 =010的时候,r3 r2 r1变化顺序为: 000 001 011 111 000,L1L2L3=000由于输出为高电平时灯亮,所以尾灯的点亮方式为:r1→r1 r2→r1 r2 r3→全灭→r1……L1L2L3恒为熄灭。 S2 S1 S0 =100的时候,r3 r2 r1 ,L3L2 L1变化顺序为000 001 011 111 000,所以尾灯的点亮方式为:全灭 r1,L1 r1r2,L1L2 r1 r2 r3。L1L2L3 全灭 S2 S1 S0 =000的时候,r3 r2 r1 ,L3L2 L1恒为000,所以所有灯熄灭。 经过分析与实际相符合,所以仿真正确。 ⑷.左右转弯刹车和倒车仿真。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值