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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 嵌入式開發(fā)的設(shè)計(jì)模式及發(fā)展趨勢

          嵌入式開發(fā)的設(shè)計(jì)模式及發(fā)展趨勢

          作者: 時間:2013-09-09 來源:網(wǎng)絡(luò) 收藏
          text-size-adjust: auto; webkit-text-stroke-width: 0px">  北京航空航天大學(xué)出版社出版的《單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)》(修訂版)教材是專為沒有C基礎(chǔ)的人編寫的,大量的實(shí)例可引導(dǎo)大家進(jìn)入單片機(jī)C時代。微處理器是以C、C++甚至JAVA語言進(jìn)行編程的,并普遍采用RTOS。

            在應(yīng)用中使用RTOS是由于應(yīng)用一般是計(jì)算機(jī)實(shí)時系統(tǒng),有兩個重要特性:實(shí)時性和可靠性。實(shí)時性標(biāo)準(zhǔn)常用“系統(tǒng)響應(yīng)時間”來衡量,即當(dāng)一外部事件發(fā)生,系統(tǒng)能在多少時間內(nèi)響應(yīng)事件。RTOS分強(qiáng)實(shí)時和弱實(shí)時兩種。強(qiáng)實(shí)時RTOS用于對時間要求比較嚴(yán)格的場合??煽啃詷?biāo)準(zhǔn)常用系統(tǒng)平均無故障運(yùn)行時間,即平均的故障間隔時間MTBF來衡量。

            操作系統(tǒng)(OS)是一組計(jì)算機(jī)程序的集合,用來有效地控制和管理計(jì)算機(jī)的硬件和軟件資源,即合理地對資源進(jìn)行調(diào)度,并為用戶提供方便的應(yīng)用接口。它為應(yīng)用支持軟件提供運(yùn)行環(huán)境,即對程序者提供功能強(qiáng)、使用方便的環(huán)境。OS的前身就是監(jiān)控程序,類似于單片機(jī)仿真器的監(jiān)控程序。

            RTOS是多任務(wù)的,每個用戶的應(yīng)用程序可以設(shè)計(jì)成多個不同的任務(wù),這些任務(wù)可以并發(fā)執(zhí)行,提高系統(tǒng)的吞吐量,更有效地利用系統(tǒng)資源。常用的任務(wù)調(diào)度算法為:優(yōu)先級加輪詢、非搶占式優(yōu)先級調(diào)度、按優(yōu)先級搶占的調(diào)度算法。任務(wù)間通信與同步機(jī)制為:郵箱、隊(duì)列、信號量、事件標(biāo)志。劃分任務(wù)時,任務(wù)之間的通信要盡可能少,這樣可以簡化設(shè)計(jì)。

            基于任務(wù)的設(shè)計(jì)可擴(kuò)展、可管理、可大大提高系統(tǒng)的可靠性。RTOS提供給用戶的是各種系統(tǒng)調(diào)用。中斷、時間基準(zhǔn)及定時的管理都由RTOS完成。采用RTOS編程可大幅度縮短程序的時間。RTOS一般都可裁剪、移植,適用于多種硬件環(huán)境,可以和應(yīng)用程序一起固化到應(yīng)用系統(tǒng)中。

            隨著后PC時代的來臨,微軟維納斯計(jì)劃推出Windows CE,我國女媧計(jì)劃推出自主版權(quán)的Hopen實(shí)時多任務(wù)操作系統(tǒng)。 “3C”結(jié)合的信息家電問世,RTOS引起國內(nèi)業(yè)界的極大關(guān)注。國內(nèi)已引入pSOS、 VRTX、VxWorks、QNX、Nucleus等RTOS以及 CMX和RTXC小型適合單片機(jī)的帶源代碼的RTOS。

            免費(fèi)公開內(nèi)核的RTLinux和 μCOS也是使用的熱點(diǎn)。清華大學(xué)出版社出版了《工業(yè)控制計(jì)算機(jī)實(shí)時操作系統(tǒng)》。國際上很有名的有關(guān)μCOS的專著《Micro C/OS-ii The Real Time Kernel》不久將在國內(nèi)翻譯出版。 RTOS會更加深入人心,嵌入式應(yīng)用軟件開發(fā)由匯編、C向 RTOS發(fā)展。

            硬件設(shè)計(jì)

            單片機(jī),即一個芯片就是一個計(jì)算機(jī),代表著計(jì)算機(jī)小型化的理想。隨著超大規(guī)模高速集成電路 VHSIC(Very High Speed Integrated Circuit)的發(fā)展,專用集成電路 ASIC(Application Special Integrated Circuit)設(shè)計(jì)已使片上系統(tǒng) SOC(System On a Chip)的設(shè)計(jì)與制造正在或已經(jīng)成為現(xiàn)實(shí)。

            單片機(jī)和SOC是硬件設(shè)計(jì)高度集成化的產(chǎn)物。高度集成可以增加系統(tǒng)的可靠性、縮小體積并降低成本。集成電路產(chǎn)品的集成度,目前仍然保持每18個月增長一倍的發(fā)展速度(摩爾定律),而產(chǎn)品的生命周期卻日趨縮短,因此,迫切要求提高ASIC芯片的設(shè)計(jì)速度。其中最重要的是盡可能重復(fù)運(yùn)用已有的設(shè)計(jì)成果,采用具有知識產(chǎn)權(quán)的功能單元塊,即IP核(Intelligence Property Core)。

            因此,必須重視IP核的開發(fā)和重用。在設(shè)計(jì)方法上運(yùn)用電子設(shè)計(jì)自動化(EDA)工具,使用 VHDL和 Verilog硬件描述語言HDL(Hardware Description Language)進(jìn)行硬件的設(shè)計(jì)。VHDL支持行為級描述,并有IEEE 87和IEEE 93標(biāo)準(zhǔn),設(shè)計(jì)效率明顯高于Verilog,更加受歡迎。從集成電路的觀點(diǎn)看,單片機(jī)是IP核,常用接口芯片 8255、8250、8279等也有類似功能的IP核。8051單片機(jī)得到Philips、Atmel等眾多廠商的支持也得益于其IP核的互換和轉(zhuǎn)讓。內(nèi)含CPU的可編程邏輯器件已列入集成電路生產(chǎn)廠家的生產(chǎn)計(jì)劃。模數(shù)混合的集成電路還存在設(shè)計(jì)制造難度。

          目前,嵌入式應(yīng)用硬件設(shè)計(jì)采用滿足要求的單片機(jī)是理想的選擇,采用CPU+PLD+AD/DA模式是明智的選擇??删幊踢壿嬈骷陌l(fā)展經(jīng)歷了由GAL/PAL、EPLD向 CPLD/FPGA(復(fù)雜可編程邏輯器件/現(xiàn)場可編程邏輯器件)發(fā)展,集成度越來越高。Lattice、Altera、Xilinx、AMD等公司提供可編程邏輯器件和EDA設(shè)計(jì)工具,支持HDL文本輸入和原理圖輸入,配備編輯、編譯、仿真、綜合、芯片編程等功能。通過在系統(tǒng)編程ISP(In System Programming)或稱在線下載,利用微機(jī)并口配有的下載電纜和可編程器件的JTAG接口相連,即可修改系統(tǒng)中PLD部分的設(shè)計(jì),實(shí)現(xiàn)硬件設(shè)計(jì)的軟化。

            系統(tǒng)定制電路部分的設(shè)計(jì)已從ASIC集成電路設(shè)計(jì)的殿堂變成電子工程師的必備知識。集成電路的設(shè)計(jì)和電子電路的設(shè)計(jì)在融合。當(dāng)然,單片機(jī)外接的簡單邏輯也

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


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