本技術涉及汽車電子,尤其涉及一種控制寄存器的刷新方法及相關裝置。
背景技術:
1、為了滿足對汽車各種功能的需求,汽車的電子控制器ecu集成了越來越多的驅動芯片,每個驅動芯片具有若干控制寄存器,ecu中的微控制單元mcu可向驅動芯片的控制寄存器中寫入數據,進而,復雜驅動芯片根據自身的控制寄存器中的數據驅動對應的外部負載。
2、某些時候,驅動芯片因受到某些因素影響(比如外界環境)會導致控制寄存器中的數據發生變化,而控制寄存器中的數據發生變化會導致驅動芯片的功能異常,最終會導致汽車功能的失控。
技術實現思路
1、有鑒于此,本技術提供了一種控制寄存器的刷新方法及相關裝置,用以解決控制寄存器中的數據發生變化導致驅動芯片的功能異常,最終會導致汽車功能失控的問題,其技術方案如下:
2、本技術第一方面提供一種控制寄存器的刷新方法,應用于電子控制器ecu中的微控制單元mcu,所述控制寄存器的刷新方法包括:
3、每當執行周期性的主任務時,統計從上一寄存器刷新時間開始至當前時刻所述主任務的執行次數;
4、根據所述主任務的執行次數、預配置的寄存器刷新周期以及針對所述主任務預配置的任務執行周期,確定是否到達寄存器刷新時間;
5、若到達寄存器刷新時間,則對目標控制寄存器標識對應的控制寄存器進行刷新,所述目標控制寄存器標識為所述ecu中一驅動芯片的一待刷新的控制寄存器的標識;
6、在完成對所述目標控制寄存器標識對應的控制寄存器的刷新后,將所述目標控制寄存器標識更新為下一待刷新的控制寄存器的標識。
7、在一種可能的實現方式中,所述根據所述主任務的執行次數、預配置的寄存器刷新周期以及針對所述主任務預配置的任務執行周期,確定是否到達寄存器刷新時間,包括:
8、根據所述預配置的任務執行周期和所述預配置的寄存器刷新周期,確定所述主任務在所述預配置的寄存器刷新周期內的可執行次數,得到目標次數;
9、判斷所述主任務的執行次數是否達到所述目標次數;
10、若所述主任務的執行次數達到所述目標次數,則判定到達寄存器刷新時間,若所述主任務的執行次數未達到所述目標次數,則判定未到達寄存器刷新時間。
11、在一種可能的實現方式中,所述mcu的隨機存取存儲器ram中存儲有若干控制寄存器標識分別對應的寄存器數據,所述ram中任一控制寄存器標識對應的寄存器數據為所述mcu向該控制寄存器標識對應的控制寄存器最新寫入的數據;
12、所述對目標控制寄存器標識對應的控制寄存器進行刷新,包括:
13、從所述ram中讀取所述目標控制寄存器標識對應的寄存器數據,得到第一寄存器數據;
14、從所述目標控制寄存器標識對應的控制寄存器中讀取寄存器數據,得到第二寄存器數據;
15、判斷所述第一寄存器數據與所述第二寄存器數據是否一致;
16、若所述第一寄存器數據與所述第二寄存器數據不一致,則將所述第一寄存器數據覆蓋寫入所述目標控制寄存器標識對應的控制寄存器中。
17、在一種可能的實現方式中,所述控制寄存器的刷新方法還包括:
18、若所述第一寄存器數據與所述第二寄存器數據不一致,則輸出指示所述目標控制寄存器標識對應的控制寄存器發生故障的寄存器故障信息。
19、在一種可能的實現方式中,所述每當執行周期性的主任務時,統計從上一寄存器刷新時間開始至當前時刻所述主任務的執行次數,包括:
20、每當調用用于執行主任務的周期任務函數時,利用設置于所述周期任務函數中的刷新功能函數,統計從上一寄存器刷新時間開始至當前時刻所述周期任務函數的調用次數;
21、所述根據所述主任務的執行次數、預配置的寄存器刷新周期以及針對所述主任務預配置的任務執行周期,確定是否到達寄存器刷新時間,包括:
22、利用所述刷新功能函數,依據所述周期任務函數的調用次數、預配置的寄存器刷新周期以及針對所述周期任務函數預配置的函數調用周期,確定是否到達寄存器刷新時間。
23、在一種可能的實現方式中,所述對目標控制寄存器標識對應的控制寄存器進行刷新,包括:
24、利用設置于所述周期任務函數中的刷新寄存器函數,對目標控制寄存器標識對應的控制寄存器進行刷新;
25、所述將所述目標控制寄存器標識更新為下一待刷新的控制寄存器的標識,包括:
26、利用所述刷新寄存器函數,將所述目標控制寄存器標識更新為下一待刷新的控制寄存器的標識。
27、本技術第二方面提供一種控制寄存器的刷新裝置,應用于電子控制器ecu中的微控制單元mcu,所述控制寄存器的刷新裝置包括:任務執行次數統計模塊、寄存器刷新時間確定模塊、寄存器刷新模塊和寄存器標識更新模塊;
28、所述任務執行次數統計模塊,用于每當執行周期性的主任務時,統計從上一寄存器刷新時間開始至當前時刻所述主任務的執行次數;
29、所述寄存器刷新時間確定模塊,用于根據所述主任務的執行次數、預配置的寄存器刷新周期以及針對所述主任務預配置的任務執行周期,確定是否到達寄存器刷新時間;
30、所述寄存器刷新模塊,用于當到達寄存器刷新時間時,對目標控制寄存器標識對應的控制寄存器進行刷新,所述目標控制寄存器標識為所述ecu中一驅動芯片的一待刷新的控制寄存器的標識;
31、所述寄存器標識更新模塊,用于在所述寄存器刷新模塊完成對所述目標控制寄存器標識對應的控制寄存器的刷新后,將所述目標控制寄存器標識更新為下一待刷新的控制寄存器的標識。
32、本技術第三方面提供一種電子控制器ecu,包括微控制單元mcu和若干驅動芯片:
33、所述mcu用于采用上述任意一項所述的控制寄存器的刷新方法對所述若干驅動芯片的控制寄存器進行刷新。
34、本技術第四方面提供一種計算機存儲介質,所述存儲介質承載有一個或多個計算機程序,當所述一個或多個計算機程序被電子控制器ecu中的微控制單元mcu執行時,能夠使所述mcu實現上述任意一項所述的控制寄存器的刷新方法的步驟。
35、本技術第五方面提供一種計算機程序產品,包括計算機可讀指令,當所述計算機可讀指令在電子控制器ecu中的微控制單元mcu上運行時,使得所述mcu實現上述任意一項所述的控制寄存器的刷新方法的步驟。
36、借由上述技術方案,本技術提供的控制寄存器的刷新方法,每當執行周期性的主任務時,統計從上一寄存器刷新時間開始至當前時刻主任務的執行次數,根據從上一寄存器刷新時間開始至當前時刻主任務的執行次數、預配置的寄存器刷新周期以及針對主任務預配置的任務執行周期,確定是否到達寄存器刷新時間,若到達寄存器刷新時間,則對目標控制寄存器標識對應的控制寄存器進行刷新,在完成對目標控制寄存器標識對應的控制寄存器的刷新后,將目標控制寄存器標識更新為下一待刷新的控制寄存器的標識。本技術提供的控制寄存器的刷新方法可根據預配置的寄存器刷新周期對驅動芯片的控制寄存器進行刷新,當驅動芯片的控制寄存器中的數據因某些因素影響發生變化時,通過刷新操作能夠將控制寄存器中的數據恢復成原本的數據,從而能夠確保驅動芯片的功能正常,另外,本技術提供的控制寄存器的刷新方法根據用戶配置的寄存器刷新周期刷新控制寄存器,且每次刷新時只對一個控制寄存器進行刷新,根據用戶配置的寄存器刷新周期刷新控制寄存器使得用戶可靈活配置寄存器刷新周期,每次只刷新一個控制寄存器使得主任務的執行不會受到影響。