<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 別讓MCU、內(nèi)核或編程語言干擾設(shè)計

          別讓MCU、內(nèi)核或編程語言干擾設(shè)計

          作者: 時間:2010-03-05 來源:網(wǎng)絡(luò) 收藏

            如果三個溫度僅僅用于加權(quán)以得到一個“更真實”的系統(tǒng)溫度,控制邏輯不需要改變,只需將含wrappers的溫度傳感塊以統(tǒng)一格式輸入這三個溫度,然后通過一個wrappers來對這三個溫度進行加權(quán),生成控制邏輯所需的單一溫度。這種方法易于包含來自不同的溫度輸入(例如,圖形處理器的二極管結(jié)測量和連接到PCB的模擬熱敏電阻),因為wrappers將系統(tǒng)邏輯與硬件隔離開。

            讓我們以兩個不同的實現(xiàn)例子驗證這個論點:一個用于墻恒溫器,另一個是顯卡上的溫度控制子系統(tǒng)。首先對于墻恒溫器,如圖2所示,假定使用基于8051的賽普拉斯PSoC3設(shè)備?!皽囟葌鞲衅鳌辈糠值挠布蛇B接到ADC(16位Δ-Σ轉(zhuǎn)換器)的熱敏電阻組成。“用戶輸入”部分的硬件由5個常開按鍵開關(guān)組成,一邊連接到電路接地端,另一邊連接到含內(nèi)部上拉電阻的5輸入數(shù)字端口?!盁岷屠涿睢蹦K的硬件部分包括三個功率場效應(yīng)管,由配置為開漏低輸出的3輸出端口驅(qū)動。最后,“顯示輸出”塊的硬件實現(xiàn)是串行字符液晶顯示器,能夠根據(jù)需要顯示字母數(shù)字字符串。

            對于第2個應(yīng)用,即顯示卡,將用戶輸入從離散開關(guān)變?yōu)镮2C基于寄存器的從接口(由主CPU而不是人類直接控制),并將串行LCD顯示變?yōu)镾PI-從控制顯示器(使用一系列的寄存器和指令,可能是安裝在主計算機外殼前面板上的遠程變頻顯示,未安裝到顯卡上)。溫度輸入和HVAC命令保持不變。圖3顯示了早期實施的變化,假定使用基于8051的賽普拉斯PSoC3設(shè)備。

            用戶輸入的兩種實現(xiàn)均可服務(wù)于“GetThermostatSetting”、“IsHeaterEnabled”、“IsCoolerEnabled”和“IsFanOn”。對于第一個墻恒溫器應(yīng)用,“用戶輸入”將數(shù)字端口包裝到所列的服務(wù)中,當設(shè)備被調(diào)用時,提供端口的實時讀數(shù)(一種可能的實施)。對于另一個應(yīng)用,基于I2C從機的實現(xiàn),相同的服務(wù)將來自I2C主機寫入的寄存器的最新值返回到“控制邏輯”部分,也許經(jīng)常返回也許僅在上電時返回。并且這些實現(xiàn)還有很多其它特點,包括用作切換鍵的墻上按鈕開關(guān)而不是瞬間讀數(shù),甚至在“用戶輸入”部分的wrappers深層進行邊沿觸發(fā)異步處理。

            綜合上述的關(guān)鍵是:系統(tǒng)隱藏了硬件細節(jié);硬件和實施細節(jié)被系統(tǒng)包裝并隱藏。通過外端(即代碼)的實施細節(jié),可以保護這些應(yīng)用實現(xiàn)時避免分裂,可以做到個性化的設(shè)計,權(quán)衡利弊,保證項目成功交付,并仍然能夠提供可復(fù)用性和組設(shè)計。不要讓賣方牽引注意力――先設(shè)計系統(tǒng),然后加強保護系統(tǒng)設(shè)計實現(xiàn)細節(jié)不被抄襲。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();