中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 設(shè)計應(yīng)用 > STM32內(nèi)置的硬件功能安全屬性,你用過哪些

        STM32內(nèi)置的硬件功能安全屬性,你用過哪些

        作者: 時間:2023-04-11 來源: 收藏

        概覽

        本文引用地址:http://www.antipu.com.cn/article/202304/445477.htm

        對于功能,ST MCU從芯片內(nèi)置的屬性,經(jīng)過認證的軟件自檢庫和完備的文檔三個層面來支持用戶在系統(tǒng)級進行開發(fā),達到要求的功能安全等級。 

        下表中列出了 MCU內(nèi)置的一些主要安全屬性。下面我們一起來看看這些屬性在功能安全中的用處。 

        捕獲.PNG

        雙看門狗:獨立看門狗和窗口看門狗

        看門狗是我們常用到的針對CPU運行狀態(tài)監(jiān)測的手段之一。它本質(zhì)上就是一個定時器,啟動之后,需要不斷的去刷新(我們通常把這個動作叫做“喂狗”),否則當看門狗的定時器減到規(guī)定的值后,就會引起系統(tǒng)復位。我們可以利用它來檢測程序是否跑飛,并通過芯片復位,來讓系統(tǒng)恢復到正常狀態(tài)。 

        MCU提供兩個看門狗:獨立看門狗和窗口看門狗。 

        捕獲.PNG

        從獨立看門狗的名字可以看出,它的特點是擁有獨立于系統(tǒng)時鐘的時鐘。獨立看門狗使用LSI時鐘,這樣使得它與系統(tǒng)時鐘分離開,即使系統(tǒng)時鐘出現(xiàn)故障,獨立看門狗也能正常工作。 

        獨立看門狗還支持“看門狗”功能,通過選項字使能該功能后,MCU只要一上電,就會啟動運行,開啟對系統(tǒng)的保護。 

        窗口看門狗使用的是系統(tǒng)時鐘,它的特點是必須在一個窗口時間內(nèi)完成“喂狗”的動作,否則就會引起系統(tǒng)復位,所以窗口看門狗對“喂狗”的要求更精確了。

        窗口看門狗還有一個EWI(early wakeup interrupt)的功能, 這個功能使能后,可以在窗口看門狗引起系統(tǒng)復位之前,先產(chǎn)生一個EWI中斷,在這個中斷里,給了系統(tǒng)軟件一個機會去完成一些必要的安全動作或者數(shù)據(jù)保存的工作。 

        部分MCU系列的窗口看門狗也支持“硬件看門狗”的功能。 

        獨立看門狗和窗口看門狗都支持在調(diào)試模式下“凍結(jié)”計數(shù),以及在低功耗模式下繼續(xù)工作的功能。 

        看門狗可以用在內(nèi)核檢測,時鐘檢測和電源檢測中。 

        電源監(jiān)測

        關(guān)于電源檢測,STM32 MCU的可編程電壓監(jiān)測(PVD),模擬電壓監(jiān)測(AVD)和電池電壓監(jiān)測等功能可以用來檢測VDD,VDDA和電池電壓是否在正常的電壓范圍內(nèi)。

        時鐘安全系統(tǒng)CSS

        關(guān)于時鐘的檢測,MCU內(nèi)部的時鐘安全系統(tǒng)(CSS)可以用來檢測外部高速時鐘(HSE)和外部低速時鐘(LSE)是否丟失。 

        當檢測到HSE時鐘丟失后,CSS可以觸發(fā)定時器的“剎車”功能和系統(tǒng)中斷,并自動切換到內(nèi)部高速時鐘,軟件可以根據(jù)這些觸發(fā)的事件,制定相應(yīng)的保護措施。 

        LSE是RTC的時鐘源,當檢測到LSE丟失后,RTC不能再使用LSE時鐘源,并產(chǎn)生CSS中斷,在中斷中需要將RTC切換到其他時鐘源。 

        CSS只能檢測時鐘是否丟失。對于時鐘存在但發(fā)生偏移的情況,可以通過下圖所示的時鐘交叉測試來進行檢測。 

        捕獲.PNG

        該測試利用了MCU的TIMER模塊的輸入捕獲功能,LSI時鐘內(nèi)部連接到TIMER的一個輸入捕獲通道,當分別使用HSE或者HSI作為計數(shù)時鐘時,通過檢測LSI的頻率是否在正常范圍內(nèi),從而間接地檢測了HSE/HSI的頻率。 

        不同STM32系列用到TIMER模塊不一樣,具體請查看相應(yīng)的參考手冊。

        SRAM奇偶校驗位

        部分STM32系列支持帶奇偶校驗的SRAM。 

        奇偶校驗可以用來檢測SRAM的瞬時和永久性故障。比如由于電磁干擾導致的SRAM中的數(shù)據(jù)錯誤。由于奇偶校驗的檢測原理,使得它只能檢測出奇數(shù)個的比特位錯誤,并且也不能對錯誤數(shù)據(jù)進行糾正。 

        STM32 MCU帶奇偶校驗的SRAM每個字節(jié)增加了一位奇偶校驗位,所以SRAM的數(shù)據(jù)總線是36位。在對SRAM進行寫操作時,硬件自動計算并存儲奇偶校驗;當進行讀操作時,硬件自動進行校驗。 

        如果檢測到錯誤,會立刻產(chǎn)生不可屏蔽中斷(NMI),并且可以配置成可以觸發(fā)定時器的“剎車”功能。 

        硬件ECC

        ECC全稱Error Checking and Correcting,是一種錯誤檢查和糾正的技術(shù)。跟奇偶校驗一樣,它也需要額外的空間來存儲校驗碼。比奇偶校驗更強的是,ECC可以做到單比特位錯誤校正和雙比特位錯誤檢測。對于由于電磁干擾等原因造成的內(nèi)存瞬時故障或者永久性故障,ECC都可以檢測。 

        ECC檢測在讀操作時進行,當檢測到一個比特位的錯誤時,讀出來的數(shù)據(jù)就是已經(jīng)糾正后的數(shù)據(jù),當檢測到兩個比特位的錯誤時,ECC無法糾正,但是可以告訴應(yīng)用程序該位置的數(shù)據(jù)有錯。 

        STM32部分MCU系列(STM32H7/L4/G0/G4/L5)支持Flash ECC,現(xiàn)在只有H7支持SRAM ECC和Cache ECC。 

        當檢測到單比特/雙比特ECC錯誤時,出錯地址會被自動保存到寄存器中(需要使能該功能),并且可以通過寄存器配置產(chǎn)生對應(yīng)的錯誤中斷。 

        檢測到雙比特錯誤時,還將觸發(fā)NMI中斷,并可以將出錯信號連接到TIMER的“剎車”功能。 

        參考AN5342了解更多關(guān)于ECC的操作細節(jié)。 

        硬件CRC

        在Flash自檢的程序中會用到CRC來檢測Flash內(nèi)容的完整性。

        其檢測思路一般是:在程序編譯完成后,計算整個程序的CRC值(第一次計算CRC值),然后將這個CRC值添加到可執(zhí)行文件末尾。再將帶有CRC校驗值的可執(zhí)行文件燒錄到MCU中。在程序啟動后,由程序中的自檢代碼重新根據(jù)當前Flash里內(nèi)容(不包括預存的CRC校驗值)計算一次CRC值(第二次計算CRC值),再與之前預先計算并燒錄到Flash中的CRC校驗值(第一次計算的值)進行比較,如果一致就通過檢測。 

        第二次計算CRC值的時候是由運行在MCU中的自檢程序完成的,這部分工作可以利用軟件代碼完成,也可以利用MCU的硬件CRC完成。STM32的全系列都提供了硬件CRC的功能,默認使用CRC32多項式0x4C11DB7。 

        參考AN4187了解更多關(guān)于CRC的使用細節(jié)。 

        存儲器保護單元MPU 

        存儲器保護單元MPU是Cortex-M內(nèi)部的組件。Cortex-M0不支持MPU,所以除了基于Cortex-M0內(nèi)核的STM32F0以外,其他STM32產(chǎn)品都支持存儲器保護單元(MPU)。 

        MPU可以用來設(shè)置部分數(shù)據(jù)只能被一些特權(quán)任務(wù)訪問或者是只讀;可以將SRAM空間定義為“不可執(zhí)行代碼”,從而防止注入攻擊代碼;可以用來檢測堆棧溢出和數(shù)組越界;還可以通過MPU設(shè)置存儲器的緩沖、緩存、共享等屬性。 

        在功能安全的應(yīng)用中,我們可以利用MPU來對安全相關(guān)的關(guān)鍵數(shù)據(jù)進行隔離,從而防止其被其他程序意外修改。 

        關(guān)于MPU的使用細節(jié),參考AN4838。 

        其他

        除了前面介紹的這些硬件的功能外,還有: GPIO、Timer、比較器等外設(shè)的寄存器鎖定功能,可以配置參數(shù)不會被軟件意外修改。

        定時器PWM輸出的“剎車”功能,它的目的是保護由PWM信號驅(qū)動的功率開關(guān),就是當系統(tǒng)出現(xiàn)故障時,可以觸發(fā)該功能,關(guān)閉PWM輸出,保證系統(tǒng)處于安全狀態(tài)。

        而觸發(fā)“剎車”功能的輸入信號,既可以是來自MCU內(nèi)部的系統(tǒng)級故障(比如CSS檢測到的時鐘失效,SRAM的奇偶校驗錯誤等),也可以是連接到特定引腳的外部信號。不同的STM32系列支持的輸入信號來源不同,具體使用請見相應(yīng)的參考手冊。 

        部分STM32系列還支持“內(nèi)核進入lockup狀態(tài)”作為“剎車”功能的觸發(fā)源。關(guān)于“內(nèi)核進入lockup狀態(tài)”是指,當MCU已經(jīng)因為出錯進入fault中斷后,在fault中斷服務(wù)程序中又觸犯了fault條件,這時就會進入lockup狀態(tài)。 

        還有一些外設(shè)比如串口、I2C、CAN等,也內(nèi)置有協(xié)議錯誤檢測、CRC校驗等功能,可以用于該外設(shè)使用過程中的安全檢測。 

        STM32內(nèi)置安全屬性還很多,這里就不一一列舉了。 

        可以參考各個STM32系列的安全手冊,來獲取詳細的信息。 

        來源:【STM32單片機】
        文章來源于網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除。



        關(guān)鍵詞: STM32 硬件 安全

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉