STM32項(xiàng)目 —— 車(chē)燈測(cè)試臺(tái)架
需求:
(1)、點(diǎn)燈控制器:在線節(jié)拍,離線節(jié)拍;
(2)、PWM控制盒:在線PWM,離線PWM;
(3)、電流測(cè)試模塊:檢測(cè)車(chē)燈電流校準(zhǔn)系數(shù);
方案:
點(diǎn)燈控制器:STM32 + CAN + GPIO
節(jié)拍:比如亮多長(zhǎng)時(shí)間,滅多長(zhǎng)時(shí)間;大節(jié)拍中嵌套多個(gè)小節(jié)拍,每個(gè)燈對(duì)應(yīng)相同或者不同的節(jié)拍。
上位機(jī)下發(fā)控制指令,表明此時(shí)是在線還是離線。(離線跑的節(jié)拍是在在線模式下下載的)
在線模式:如果是直接輸出,按照指定格式下發(fā)CAN消息,MCU接受消息并解析,切繼電器點(diǎn)燈;如果是存儲(chǔ)節(jié)拍,MCU內(nèi)部Flash存儲(chǔ)上位機(jī)通過(guò)CAN下發(fā)的點(diǎn)燈節(jié)拍。
離線模式:從內(nèi)部Flash中讀取節(jié)拍,并控制繼電器點(diǎn)燈;
模式切換按鈕:不僅可以通過(guò)上位機(jī)控制在線/離線模式,還可以通過(guò)按鍵控制在線/離線模式。
系統(tǒng)設(shè)計(jì):RTX多任務(wù)設(shè)計(jì),CAN的接收、發(fā)送任務(wù)和超時(shí)任務(wù),在線模式任務(wù),離線模式任務(wù),按鍵檢測(cè)任務(wù)。
(1)、按鍵檢測(cè):判斷IO口電平,添加到隊(duì)列中,任務(wù)中不斷讀取隊(duì)列和按鍵檢測(cè)函數(shù);
(2)、CAN接收/發(fā)送/超時(shí):CAN接收中斷中接收消息加到隊(duì)列中,任務(wù)中出隊(duì)列處理,在線模式——不保存數(shù)據(jù),保存數(shù)據(jù);離線模式;周期幀發(fā)送狀態(tài)及接收的應(yīng)答。
(3)、在線模式:CAN接收線程中判斷是在線模式,如果不保存數(shù)據(jù),在此處理在線線程邏輯去點(diǎn)燈,如果保存數(shù)據(jù),寫(xiě)文件系統(tǒng);
(4)、離線模式:判斷上位機(jī)切換到離線模式/按鍵切換到離線模式,此時(shí)讀取Flash內(nèi)容,控制繼電器點(diǎn)燈;
PWM控制器:STM32+CAN+GPIO
上位機(jī)下發(fā)控制指令,表明此時(shí)是在線還是離線。(離線跑的節(jié)拍是在在線模式下下載的)—— 這里的節(jié)拍就包括PWN頻率和占空比
在線模式:如果是直接輸出,上位機(jī)按照指定格式下發(fā)CAN消息,MCU接受消息并解析,通過(guò)PWM模塊輸出PWM方波(輸入和輸出可配置);如果是存儲(chǔ)節(jié)拍,MCU內(nèi)部Flash存儲(chǔ)上位機(jī)通過(guò)CAN下發(fā)的點(diǎn)燈節(jié)拍。
離線模式:從內(nèi)部Flash中讀取節(jié)拍,并控制繼電器點(diǎn)燈;
模式切換按鈕:不僅可以通過(guò)上位機(jī)控制在線/離線模式,還可以通過(guò)按鍵控制在線/離線模式。
系統(tǒng)設(shè)計(jì):RTX多任務(wù)設(shè)計(jì),CAN的接收、發(fā)送任務(wù)和超時(shí)任務(wù),在線模式任務(wù),離線模式任務(wù),按鍵檢測(cè)任務(wù)。
(1)、按鍵檢測(cè):判斷IO口電平,添加到隊(duì)列中,任務(wù)中不斷讀取隊(duì)列和按鍵檢測(cè)函數(shù);(模式切換按鈕)
(2)、CAN接收/發(fā)送/超時(shí):CAN接收中斷中接收消息加到隊(duì)列中,任務(wù)中出隊(duì)列處理,在線模式——不保存數(shù)據(jù),保存數(shù)據(jù);離線模式;周期幀發(fā)送狀態(tài)及接收的應(yīng)答。
(3)、在線模式:CAN接收線程中判斷是在線模式,如果不保存數(shù)據(jù),在此處理在線線程邏輯去輸出PWM方波,如果保存數(shù)據(jù),寫(xiě)文件系統(tǒng);
(4)、離線模式:判斷上位機(jī)切換到離線模式/按鍵切換到離線模式,此時(shí)讀取Flash內(nèi)容,輸出PWM方波;
(外部PWM輸入通過(guò)繼電器切換, 默認(rèn)是外部PWM輸入,檢測(cè)到在線/離線模式,切繼電器變成MCU輸出PWM(小的PWM模塊驅(qū)動(dòng)))。
電流測(cè)試模塊:使用電流檢測(cè)芯片,兩端接采樣電阻,如0.06Ω,通過(guò)標(biāo)定,得到每個(gè)通道的標(biāo)定系數(shù)。