1. 程式人生 > >STM32專案(三)——通用LIN控制器

STM32專案(三)——通用LIN控制器

STM32——通用LIN控制器

宗旨:技術的分享是有限的,分享的精神是無限的。

需求:

LIN馬達控制器:AFS(DHL+AFL)——彎道輔助照明系統

DHL:上極限,下極限,零位,馬達老化迴圈;

AFL:左極限,右極限,零位,馬達老化迴圈;

所有引數可配置:上極限,下極限,零位,左極限,右極限,馬達迴圈上極限,馬達迴圈下極限,馬達迴圈次數,馬達迴圈等待時間;

儲存至少30款產品的配置,配置介面需要有新增,讀取,查詢,刪除功能。

方案:STM32 + LIN + 串列埠(使用NXP的串列埠屏,TJA系列的LIN晶片)

STM32的LIN介面作為主節點,馬達作為從節點。

系統設計:RTX多工設計,串列埠處理任務,顯示屏處理任務,LIN傳送任務;

(1)、串列埠處理任務:點選串列埠屏會獲取到點選的座標值,串列埠中斷接受到資料加入到佇列;任務中出隊解析座標,判斷是否是上下極限等;

(2)、LIN傳送任務:20ms週期幀,定時器中設定事件,任務中等待事件,併發送LIN週期幀;(週期幀是具體的產品協議)

(3)、顯示屏任務:

配置介面——新增配置,輸入所有引數並儲存到MCU內部flash;讀取配置,從Flash中讀取引數到介面指定位置;查詢配置,通過裝置型號從Flash中讀取匹配的引數顯示到介面;刪除配置。

邏輯功能——初始化,配置馬達零位,上下左右極限,修改LIN週期幀引數;上/下左/右/極限,零位,馬達走到指定位置;馬達迴圈,馬達老化實驗,不停的上下走,週期幀,時間可配置,次數可配置。