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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 自由支配!不要讓MCU、內(nèi)核或編程語(yǔ)言干擾你的設(shè)計(jì)

          自由支配!不要讓MCU、內(nèi)核或編程語(yǔ)言干擾你的設(shè)計(jì)

          —— Take Control! Don't Let an MCU, Core or Programming Language Dictate your Design
          作者:Jon D. Pearson 賽普拉斯半導(dǎo)體公司 時(shí)間:2010-03-02 來(lái)源:電子產(chǎn)品世界 收藏

            很多時(shí)候有人試圖讓你信服:他們的“東西”或最新的產(chǎn)品將成為或取代你的下一個(gè)產(chǎn)品設(shè)計(jì)。這是真的,每天我們都在采用零星的技巧來(lái)改進(jìn)嵌入式設(shè)計(jì),有些改進(jìn)確實(shí)是挑戰(zhàn),但是,如果不從可靠的、獨(dú)特的設(shè)計(jì)開始,沒有“新的技術(shù)”,產(chǎn)品不會(huì)成功。擺在我們面前的問題是,設(shè)計(jì)需要時(shí)間,時(shí)間是一種易消逝的資源,并且,所有這些新事物、新設(shè)備、新工具很重要,但并不是最重要的事情。需要防漏洞實(shí)時(shí)操作系統(tǒng)嗎?需要更快的CPU嗎?微控制器中需要更密集集成的外圍設(shè)備嗎?把這些問題找出來(lái),找到答案并為之利用,但要知道“IT”不是設(shè)計(jì)的關(guān)鍵。關(guān)鍵是設(shè)計(jì)成仿佛你想要的一切已經(jīng)存在,完全取決于您的意愿,使您的產(chǎn)品、系統(tǒng)按照您的需求、期望、要求精密“包裝”,定義接口。按照您想要的方式,用layers和wrappers構(gòu)建設(shè)計(jì),你會(huì)發(fā)現(xiàn),采用最新的最好的事情,會(huì)使產(chǎn)品更高端,更快速,更便宜,更強(qiáng)大或者說(shuō)隨處滿足需求,可以在以后出現(xiàn)在您的后期設(shè)計(jì)時(shí),甚至出現(xiàn)在生產(chǎn)線上。

          本文引用地址:http://www.ex-cimer.com/article/106457.htm

            該觀點(diǎn)還在不斷繼續(xù):

            ● 此類或那類嵌入式設(shè)計(jì)采用哪種CPU最好?

            ● 開發(fā)嵌入式系統(tǒng)采用什么語(yǔ)言最好?哪個(gè)編譯器?

            ● 對(duì)于簡(jiǎn)單的主循環(huán)和中斷實(shí)時(shí)操作系統(tǒng),應(yīng)該購(gòu)買,自己編寫還是避開“操作系統(tǒng)”?

            作為經(jīng)驗(yàn)豐富的嵌入式系統(tǒng)的開發(fā)人員,既有大型系統(tǒng)的經(jīng)驗(yàn)(波音777飛行控制)又有小型單人項(xiàng)目(筆記本電腦熱風(fēng)扇控制)經(jīng)驗(yàn),應(yīng)避開單臺(tái)機(jī)器或語(yǔ)言的具體利弊,將更多的時(shí)間花在應(yīng)用程序設(shè)計(jì)和構(gòu)建上,并且獨(dú)立于語(yǔ)言和CPU。這方面部分來(lái)自于對(duì)類似系統(tǒng)的工作,只是“再用于“下一個(gè)項(xiàng)目(雖然要求完全不同,并且切換到了微控制器)。我也參與過由幾個(gè)獨(dú)立的設(shè)備組成的系統(tǒng),每個(gè)設(shè)備都有自己的程序和微控制器,各部分經(jīng)常在不同的子項(xiàng)目之間來(lái)回使用:某個(gè)子項(xiàng)目中的編碼器可能是另一個(gè)項(xiàng)目的測(cè)試器,或當(dāng)完成自己的子項(xiàng)目的編碼后,會(huì)投入另一個(gè)子項(xiàng)目,以幫助完成項(xiàng)目。缺乏基于系統(tǒng)的設(shè)計(jì)方法會(huì)覺得這些情況很困難,難以按照計(jì)劃完成。通過獨(dú)立的系統(tǒng)設(shè)計(jì)可避免機(jī)器依賴性,讓設(shè)計(jì)復(fù)用和基于團(tuán)隊(duì)的設(shè)計(jì)不僅成為可能,而且加大了成功機(jī)會(huì)(如以后的增加要求)。

            最近的一個(gè)項(xiàng)目是我更加疑慮,幾乎每次都是,必須使設(shè)計(jì)適應(yīng)(有時(shí)根本就是)所選的語(yǔ)言和機(jī)器。我們已經(jīng)以某個(gè)系統(tǒng)架構(gòu)和設(shè)計(jì)開始,只是按一般方式考慮了集成微控制器及其外圍設(shè)備,我們只關(guān)注我們需要什么并不關(guān)心它是如何實(shí)現(xiàn)的,至少我們是這么認(rèn)為的。我們選擇了一些非常專業(yè)外設(shè)的新器件,并且開始編碼時(shí),發(fā)現(xiàn)需要花費(fèi)大量的時(shí)間來(lái)了解如何構(gòu)建硬件,以及如何根據(jù)需求最好地利用。當(dāng)我們發(fā)現(xiàn)好的方式來(lái)利用設(shè)備的某特征時(shí),設(shè)備的此特點(diǎn)通過代碼嵌入了系統(tǒng)級(jí)設(shè)計(jì)。我們已不再堅(jiān)持我們的系統(tǒng),不得不讓機(jī)器和具體操作改變了系統(tǒng)設(shè)計(jì)。于是只好停下來(lái)檢查問題和實(shí)施方案,通過系統(tǒng)重新設(shè)計(jì)分離出依賴機(jī)器的“修復(fù)”,然后將“修復(fù)”融入系統(tǒng)四周的“包裝”中。

            當(dāng)設(shè)計(jì)某個(gè)應(yīng)用時(shí)(甚至單一微控制器),以調(diào)溫器為例,有一個(gè)創(chuàng)建好了的系統(tǒng)級(jí)視圖,描述了硬件和實(shí)施某種方式的應(yīng)用程序。該視圖用于多種用途,例如,可作為與高層管理人員或另一個(gè)小組進(jìn)行交流的工具(不希望知道所有細(xì)節(jié)),如自動(dòng)化測(cè)試人員。如果僅將其視為“視圖”而不是系統(tǒng)設(shè)計(jì),并且實(shí)施不是從系統(tǒng)設(shè)計(jì)自上而下,而是將其用作起點(diǎn),則問題就出現(xiàn)了??紤]圖1所示的溫控系統(tǒng)。

            顯示系統(tǒng)相對(duì)簡(jiǎn)單,卻反映了許多嵌入式產(chǎn)品設(shè)計(jì)。在“溫度傳感”部分包含溫度輸入,其輸出進(jìn)入主系統(tǒng)“控制邏輯”部分。“控制邏輯”的其它輸入是標(biāo)記“用戶輸入”的部分,代表人機(jī)接口,大概設(shè)置了恒溫器的溫度調(diào)節(jié)。“控制邏輯”部分根據(jù)這些輸入確定了如何命令供暖、通風(fēng)和空調(diào)(HVAC)系統(tǒng),以保持恒溫器設(shè)定的溫度,將這些命令發(fā)送到“熱與冷命令”部分。最后一個(gè)部分是“顯示輸出”,將當(dāng)前系統(tǒng)狀態(tài)傳遞到用戶。當(dāng)前系統(tǒng)狀態(tài)的一部分是恒溫設(shè)置,另一部分是最新的溫度讀數(shù),最后部分是正在執(zhí)行的命令,以迫使溫度返回恒溫設(shè)置(即加熱、冷卻和/或打開或關(guān)閉風(fēng)扇)。


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(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); })();