1. gzyueqian
      13352868059

      嵌入式開發:以數據為中心的軟件設計的3個技巧

      更新時間: 2022-10-13 11:24:44來源: 粵嵌教育瀏覽量:9673

        許多嵌入式軟件系統問題的優雅解決方案是利用以數據為中心的軟件設計。數據是每個嵌入式系統的核心。首先,通過采樣傳感器、通信接口和輸入/輸出設備獲取數據。接下來,數據被轉換、過濾并處理成系統中的新數據資產。最后,對這些數據進行處理以生成輸出。以下是嵌入式開發人員以數據為中心的軟件設計的三個技巧。

        技巧1——遵循數據

        每個軟件系統的核心都是以數據為中心的。設計有效且高效的軟件架構和實現必須遵循這些數據。不幸的是,數據在軟件系統中能做的事情是有限的。

        首先,產生數據。例如,在嵌入式系統中,可能有一個模擬傳感器產生由微控制器內部模數轉換器測量的電壓。觸摸屏輸入可以中斷并提供x/y坐標對。數據通常作為系統的輸入或輸出產生。以數據為中心的軟件設計會仔細識別輸入和輸出,因為這是我們可以找到產生的數據的地方。

        接下來,處理數據。我們剛剛提到的產生ADC計數的模數轉換是原始形式。可以對傳感器數據進行處理,以創建表示傳感器科學單位的浮點數值。通常,更常見的是以原始形式保留傳感器值,但對數據進行過濾。例如,數據可以具有低通或高通濾波器以去除噪聲。嵌入式開發人員需要跟蹤數據,了解數據是如何處理的。

        最后,存儲數據。數據可能作為單個值存儲在內存中。數據可以存儲在將被一起處理的值的數組中。數據可以保存到非易失性存儲器中以備后用。同樣,理解數據如何存儲對設計過程至關重要。

        是傳感器還是通信接口產生數據并不重要。無論您是將其存儲在SD卡還是存儲芯片上,都沒有關系。從設計的角度來看,我們關心數據在哪里進入和離開系統(產生),被處理,然后最終被存儲。要創建一個有效的軟件設計,你必須遵循數據。記錄每種狀態下的數據及其轉換方式。如果你這樣做了,你會發現這個設計自然而然就到位了。

        

        技巧2——記錄數據是如何變化的

        在每個系統中,原始數據被傳輸并轉換成有價值的數據,然后輸出。嵌入式開發人員跟蹤數據如何在系統中流動可以很好地驅動軟件架構;然而,記錄數據如何在整個系統中變化和發展可以幫助設計者確定軟件的規模。

        例如,如果我將一些模擬傳感器數據轉換成數字并顯示在遙測數據中,我知道不需要太多處理能力。數據處理簡單。但是,如果檢索傳感器數據,將其存儲在循環緩沖區中,進行過濾,然后轉換為科學單位,我知道我對該數據資產有更廣泛的了解。記錄數據流和處理事件有助于設計人員約束和理解他們的設計,即使沒有正式的微控制器或硬件被識別。

        在設計之初,遵循以下簡單步驟:

        1.識別系統中產生的數據。

        2.確定每個數據資產如何在軟件中移動。

        3.記錄數據在其整個生命周期中如何變化。

        4.記錄任何存儲介質以及數據是如何被訪問的。

        技巧3——在事件或任務開始時處理數據

        嵌入式系統中的典型任務將按以下步驟處理信息:

        1.檢索新數據。

        2.過濾/處理數據。

        3.輸出結果。

        這個過程似乎是合乎邏輯的。但是,在嵌入式開發中,它不一定適合實時嵌入式系統設計。實時系統的主要目標是確定性和最小化抖動。上述過程會使抖動的可能性最大化,而不是最小化。讓我們考慮一個例子。

        電機控制任務讀入最新的模擬電流和電壓測量值,然后通過PID控制器運行。PID控制器將為新的電機狀態提供輸出。根據控制器的設計,每次通過PID控制器可能不會在相同數量的時鐘周期內運行。如果考慮到在PID計算過程中觸發中斷的可能性,時間值的范圍可能會很大。結果是電機輸出永遠不會同時更新。它會稍微移動和抖動,這可能會影響電機的響應。

        最大限度降低抖動的一種更可靠的方法是將步驟改為:

        1.輸出以前的結果。

        2.檢索新數據。

        3.過濾/處理數據。

        在這種情況下,新的輸出總是在循環開始時,在進一步處理或其他不確定性活動發生之前發送到電機。因此,是的,我們正在對可能稍舊的數據采取行動,但我們可以考慮這一點,并大幅降低我們的抖動。

        

        更好的軟件設計的結論

        當你分解我們為設計和實現嵌入式軟件所做的工作時,一切都歸結于數據。嵌入式軟件只不過是以一種確定的方式集體處理、存儲和輸出數據。嵌入式開發人員遵循以數據為中心的軟件設計方法將會產生一個突出數據最重要的部分的架構。你會發現這個設計是高效的,有效的,并且不會被現代的設計模式和填充物所膨脹。想要一個優秀的軟件設計,跟著數據走就行了。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲成AV人片乱码色午夜男男 | 亚洲国产精品不卡在线播放 | 亚洲乱码中字幕综合 | 日本在线亚州精品视频在线 | 亚洲综合网站精品一区二区 | 日韩免费中文字幕 |