自由支配!不要讓MCU、內(nèi)核或編程語言干擾你的設(shè)計
正如前面所述,這是一個直接和相對簡單的應用,非常簡單以至于不需要考慮系統(tǒng),而是很自然地跳到實施(我相信大多數(shù)讀者甚至可以說出最喜歡的微控制器供應商的型號)。可以是用于次級市場的高端PC游戲圖形系統(tǒng)的墻恒溫器或溫度管理裝置。用于墻恒溫器的微控制器的具體實施基本不需用于圖形系統(tǒng)。重點是,無論設(shè)計顯得多么簡單,都有很好的理由先設(shè)計系統(tǒng),然后實現(xiàn)它。將其盡量設(shè)計成適合通常應用。
本文引用地址:http://www.ex-cimer.com/article/106457.htm開始時,需要考慮理想的系統(tǒng)設(shè)計,然后生成layers,在理想的系統(tǒng)和實際實施之間構(gòu)建wrappers(有時是雜亂的)。“控制邏輯”部分作為框圖的核心是有充分理由的-因為它是系統(tǒng)的內(nèi)核。周圍的每個部分都服務(wù)于“控制邏輯”部分,要根據(jù)需要提供“服務(wù)”。
應自“溫度傳感器”部分開始。其理由是獲得當前/瞬時溫度,并以一致的格式提供出來。從“控制邏輯”的角度來看,其作用是“獲取溫度”,并以格式化的值(xxx.xx攝氏度)返回當前溫度值。溫度傳感器部分的硬件wrappers將包括實施中任何需要用來將原溫度傳感輸入“翻譯”成預期格式的攝氏度。這可能意味著需要考慮獲得新讀數(shù)的最佳時間,如果溫度讀數(shù)中有太多的噪音(無論何種原因),應添加過濾算法,并且如果溫度硬件出現(xiàn)故障,應采用決策邏輯。重點是,“溫度傳感器”部分的輸出是什么,而且傳遞到“控制邏輯”應為理想的溫度,所有的噪音,實際隱藏的細節(jié)都應很容易的由wrapper代替。
如果設(shè)計需要從系統(tǒng)中三個不同的點測量三個溫度值(對于計算機箱內(nèi)的計算機很普遍)怎么辦?處理這三個溫度是控制邏輯問題(例如,何時多路輸出也將受到控制)?如果是這樣,從1個溫度轉(zhuǎn)換到3個溫度首先意味著“溫度傳感器”部分要更新,以提供3個溫度和為每個溫度實施創(chuàng)建的wrappers(允許多種類型的輸入),然后控制邏輯也因為多個輸出而更新。這可能意味著三個不同的“GetTemperature_n”服務(wù)或需要更新服務(wù)以確定是識別哪個溫度的參量。
如果三個溫度僅僅用于加權(quán)以得到一個“更真實”的系統(tǒng)溫度,控制邏輯不需要改變,只需將含wrappers的溫度傳感塊以統(tǒng)一格式輸入這三個溫度,然后通過一個wrappers來對這三個溫度進行加權(quán),生成控制邏輯所需的單一溫度。這種方法易于包含來自不同的溫度輸入(例如,圖形處理器的二極管結(jié)測量和連接到PCB的模擬熱敏電阻),因為wrappers將系統(tǒng)邏輯與硬件隔離開。
讓我們以兩個不同的實現(xiàn)例子驗證這個論點:一個用于墻恒溫器,另一個是顯卡上的溫度控制子系統(tǒng)。首先對于墻恒溫器,如圖2所示,假定使用基于8051的賽普拉斯PSoC3設(shè)備。“溫度傳感器”部分的硬件由連接到ADC(16位Δ-Σ轉(zhuǎn)換器)的熱敏電阻組成。“用戶輸入”部分的硬件由5個常開按鍵開關(guān)組成,一邊連接到電路接地端,另一邊連接到含內(nèi)部上拉電阻的5輸入數(shù)字端口。“熱和冷命令”模塊的硬件部分包括三個功率場效應管,由配置為開漏低輸出的3輸出端口驅(qū)動。最后,“顯示輸出”塊的硬件實現(xiàn)是串行字符液晶顯示器,能夠根據(jù)需要顯示字母數(shù)字字符串。
對于第2個應用,即顯示卡,將用戶輸入從離散開關(guān)變?yōu)镮2C基于寄存器的從接口(由主CPU而不是人類直接控制),并將串行LCD顯示變?yōu)镾PI-從控制顯示器(使用一系列的寄存器和指令,可能是安裝在主計算機外殼前面板上的遠程變頻顯示,未安裝到顯卡上)。溫度輸入和HVAC命令保持不變。圖3顯示了早期實施的變化,假定使用基于8051的賽普拉斯PSoC3設(shè)備。
評論