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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 智能保密柜嵌入式控制系統(tǒng)的設(shè)計與實現(xiàn)

          智能保密柜嵌入式控制系統(tǒng)的設(shè)計與實現(xiàn)

          作者: 時間:2011-04-08 來源:網(wǎng)絡(luò) 收藏


          中央處理器選用Atmel公司的AT91SAM9260芯片,它基于ARM926EJ-S內(nèi)核的32位處理器,工作頻率為190 MHz,指令運行速度為210 MIPS,內(nèi)帶8 KB指令和8 KB的數(shù)據(jù)高速緩存,8 KB的SRAM和32 KB的ROM,可在處理器與總線速度之間單周期訪問。具有豐富的外圍接口,包括USB全速HOST和Device接口、10M/100M BaseT、以太網(wǎng)MAC、圖像傳感器接口、多媒體卡接口(MCI)、同步串行控制器(SSC)、4個通用同步/異步收發(fā)器(USART)、2個兩線異步收發(fā)器(UARTs)、主/從串行外圍接口(SPI),以及1個三通道16 b定時控制器(TC)、2個兩線接E1(TWI)、4個10 b ADC、3個32 b并行I/O控制器,外設(shè)采用DMA通道。
          上位PC通過RJ-45接口電路接入ARM的UART1口,雙頻讀寫器、刷卡器、數(shù)字鍵盤和指紋儀接入RJ-45接口電路,再分別接入ARM的UART2-5口,攝像頭通過USB口連接ARM的USB主機端口。ARM輸出的電控鎖和報警器控制信號,經(jīng)過ULN2003A運放芯片控制直流小繼電器,驅(qū)動電控鎖和報警器工作。振動傳感器通過74L804反相輸出到ARM的輸入I/O管腳。NANDFLASH直接與ARM的I/O管腳連接。

          2 操作系統(tǒng)
          該系統(tǒng)由內(nèi)向外可分操作系統(tǒng)層、任務(wù)層和硬件電路層三層,如圖3所示。操作系統(tǒng)是系統(tǒng)軟硬件資源的控制中心,它組織多個任務(wù)共享嵌入式系統(tǒng)的資源。常見的嵌入式實時操作系統(tǒng)有Window CE,VxWorks,μC/OS-Ⅱ,Linux等,后兩種操作系統(tǒng)免費公開源代碼。


          2.1 嵌入式操作系統(tǒng)方案選擇
          為了選擇合適的嵌入式操作系統(tǒng),本文對開源的μC/OS-Ⅱ與Linux操作系統(tǒng)的進程調(diào)度、文件系統(tǒng)支持和系統(tǒng)移植等因素進行了分析比較,因為這是、應(yīng)用、移植嵌入式操作系統(tǒng)中的關(guān)鍵。
          (1)進程調(diào)度
          進程調(diào)度是操作系統(tǒng)協(xié)調(diào)調(diào)度系統(tǒng)中多任務(wù)對計算機系統(tǒng)內(nèi)部資源的爭奪使用。作為實時操作系統(tǒng),μC/OS-Ⅱ采用可剝奪型實時多任務(wù)內(nèi)核,它在任何時候都運行已就緒的最高優(yōu)先級任務(wù)。μC/OS-Ⅱ最多可以支持64個任務(wù),它通過就緒任務(wù)表尋找最高優(yōu)先級任務(wù),并進行任務(wù)切換。

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