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Ω,通過標定,得到每個通道的標定系數。
總結
以上是生活随笔為你收集整理的STM32项目(二) —— 车灯测试台架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [python高德]行政区查询、调用wb
- 下一篇: 微型计算机突然断电什么信息全部都是,微型