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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP/ARM的網(wǎng)絡(luò)硬盤錄像機(jī)的設(shè)計(jì)方案

          基于DSP/ARM的網(wǎng)絡(luò)硬盤錄像機(jī)的設(shè)計(jì)方案

          作者: 時(shí)間:2012-11-15 來源:網(wǎng)絡(luò) 收藏

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

            在本中,硬盤控制器芯片使用Silicon Image公司的SiI3512雙口SATA 控制器來實(shí)現(xiàn)SATA 功能。

            SiI3512 直接掛載在S3C2510 的PCI 總線上為系統(tǒng)提供SATA 接口。連接方式如圖2 所示:

          圖2 SiI3512 與S3C2510 的連接方式

          圖2 SiI3512 與S3C2510 的連接方式。

            2.4 電源模塊

            2.4.1 供電電路

            整個(gè)電路板采用+5 V 電壓供電,可以從外部引入,也可以從擴(kuò)展的PCI 接口引入。DM642 芯片需要2 個(gè)獨(dú)立的電壓,CPU 內(nèi)核電壓GVDD(+1.4 V)和外圍I/O 電壓DVDD(+3.3 V)。這兩個(gè)電壓在供電時(shí)需要嚴(yán)格按照順序進(jìn)行,即GVDD 要比DVDD 上電早,至少不能晚于DVDD.中采用2 片TI 公司專為高性能DSP、FPGA、ASIC 和微處理器的應(yīng)用而的電源芯片TPS54310,分別給DM642 提供CVDD 和DVDD 電壓。在電路連接上將TPS54310(1)的PWRGD引腳和TPS54310(2)的SS/EN引腳相連。

            當(dāng)(1)的輸出電壓高于1.2 V 時(shí),芯片(2)開始工作;當(dāng)這個(gè)值達(dá)到穩(wěn)定的+1.4 V 后,PWRGD 引腳輸出高電平送到芯片(2)的SS/EN 引腳。這就保證了CPU 內(nèi)核的上電時(shí)間早于I/O 的上電時(shí)間,如圖3 所示:

          圖3 電源電路。

          圖3 電源電路。

            2.4.2 電源監(jiān)測(cè)電路

            為了保證DM642 芯片在電源未達(dá)到要求的電平時(shí),不會(huì)產(chǎn)生不受控制的狀態(tài),而且允許系統(tǒng)中的各個(gè)芯片在任意時(shí)刻可以通過復(fù)位來調(diào)整工作狀態(tài),這就需要在系統(tǒng)中加入一個(gè)電源監(jiān)測(cè)電路,.該電路能確保在系統(tǒng)的加電過程中,CVDD 和DVDD 達(dá)到要求的電平之前,DSP 始終處于復(fù)位狀態(tài)。選用了TI 公司生產(chǎn)的TPS3823-33 芯片,其固定復(fù)位信號(hào)時(shí)間長(zhǎng)達(dá)200 ms,能滿足系統(tǒng)中所有芯片的復(fù)位需求。芯片帶有一個(gè)看門狗電路,通過WDI 引腳接收來自CPU 的定時(shí)信號(hào),避免發(fā)生系統(tǒng)程序跑飛的情況。

            3 系統(tǒng)的軟件設(shè)計(jì)

            3.1 系統(tǒng)的軟件設(shè)計(jì)

            該系統(tǒng)的軟件主要包括三個(gè)部分:?jiǎn)?dòng)程序,內(nèi)核與根文件系統(tǒng),專業(yè)芯片驅(qū)動(dòng)及應(yīng)用。為了開發(fā)和升級(jí)的方便,我們將根文件系統(tǒng)作成RAMDISK 的格式。據(jù)此我們將FlashROM 分為3 個(gè)區(qū):1 Cramfs,2 Boot-Loader,3 Kernel+RAMDISK.本系統(tǒng)的啟動(dòng)程序用的是DENX 的U-boot-1.1.0.它的主要工作是初始化硬件,為加載操作系統(tǒng)準(zhǔn)備必要的環(huán)境及其參數(shù),同時(shí)可以與開發(fā)主機(jī)通訊,下載程序到SDRAM 和Flash.通過修改它的一些配置文件,可以完成對(duì)目標(biāo)系統(tǒng)Memory Controller,memory map以及I/O,PCI,Flash,Ethernet controller,Serial等硬件設(shè)施的初始化。

            對(duì)于芯片驅(qū)動(dòng)程序的編寫,一些通用設(shè)備驅(qū)動(dòng),如以太網(wǎng)卡驅(qū)動(dòng)已經(jīng)在內(nèi)核中,對(duì)于系統(tǒng)的一些專業(yè)芯片的驅(qū)動(dòng)由于其特殊性,將其和應(yīng)用做成Cramfs文件系統(tǒng)格式,在目標(biāo)板的的操作系統(tǒng)啟動(dòng)時(shí)以module 的形式進(jìn)行加載,方便修改和升級(jí)。編寫驅(qū)動(dòng)程序可以按照Linux 下編寫驅(qū)動(dòng)程序的規(guī)則來編寫。編寫的驅(qū)動(dòng)程序應(yīng)該具有以下功能:a)對(duì)設(shè)備的初始化和釋放:b)數(shù)據(jù)從內(nèi)核傳到硬件和從硬件讀取數(shù)據(jù):c)讀取應(yīng)用程序傳遞給設(shè)備文件的數(shù)據(jù)和回應(yīng)應(yīng)用程序請(qǐng)求的數(shù)據(jù):d)檢測(cè)和處理設(shè)備出現(xiàn)的錯(cuò)誤。

            設(shè)備驅(qū)動(dòng)程序的實(shí)質(zhì)就是中斷處理。Linux 中斷處理程序分為上半部和下半部。上半部即一般的中斷服務(wù)程序, 由硬件中斷觸發(fā),一般運(yùn)行在關(guān)中斷的方式下,應(yīng)當(dāng)盡可能的短小,處理盡可能的快:下半部運(yùn)行在開中斷和任務(wù)串行化的環(huán)境下,處理需要較長(zhǎng)時(shí)間的任務(wù)。驅(qū)動(dòng)程序上半部在處理完實(shí)時(shí)性很強(qiáng)的任務(wù)后,用Queue-task 函數(shù)將下半部處理函數(shù)掛入立即隊(duì)列,用mark-bh 函數(shù)來激活立即隊(duì)列,下半部就可以最優(yōu)先的被執(zhí)行。

            3.2 應(yīng)用程序的設(shè)計(jì)

            應(yīng)用程序的設(shè)計(jì)可以采用多線程或者多進(jìn)程的方式。多線程的優(yōu)點(diǎn)在于線程比進(jìn)程要小,可以使應(yīng)用更輕量,線程間通訊方便,缺點(diǎn)就在于由于線程使用同一個(gè)地址空間,如果一個(gè)線程出了問題,將可能影響到整個(gè)系統(tǒng);多進(jìn)程各自占有一份內(nèi)存空間,因此可以增強(qiáng)系統(tǒng)的健壯性,但是多進(jìn)程增加了系統(tǒng)的開銷,同時(shí)進(jìn)程間通訊較復(fù)雜。結(jié)合我們系統(tǒng)的實(shí)際,考慮到各個(gè)線程通訊的重要性,我們采取多進(jìn)程多線程的方式,在軟件上增加一個(gè)與主進(jìn)程并行的守護(hù)進(jìn)程,在硬件上設(shè)置看門狗,以增強(qiáng)系統(tǒng)的健壯性。

            4 遠(yuǎn)程控制與通信鏈路的建立

            本設(shè)計(jì)采用PPP 串行通信接口協(xié)議方式。PPP(PointtoPointProtocal,點(diǎn)對(duì)點(diǎn)協(xié)議)協(xié)議中包含3 個(gè)部分:

            在串行鏈路上封裝IP 數(shù)據(jù)報(bào)的方法;建立、配置及測(cè)試數(shù)據(jù)鏈路的鏈路控制協(xié)議(LCP);不同層協(xié)議的控制協(xié)議(NCP)。PPP 具有很多優(yōu)勢(shì);支持循環(huán)冗余檢測(cè)、支持通信雙方進(jìn)行IP 地址動(dòng)態(tài)協(xié)商、對(duì)TCP 和IP 報(bào)文進(jìn)行壓縮、認(rèn)證協(xié)議支持(CHAP 和PAP)等。

            PPP 的實(shí)現(xiàn)可以通過2 個(gè)后臺(tái)任務(wù)來完成,協(xié)議控制任務(wù)和寫任務(wù)。協(xié)議控制任務(wù)控制各種PPP的控制協(xié)議,包括LCP、NCP、CHAP 和PAP.它用來處理連接的建立、連接方式的協(xié)商、連接用戶的認(rèn)證以及連接中止。寫任務(wù)用來控制PPP 設(shè)備的數(shù)據(jù)發(fā)送。數(shù)據(jù)報(bào)的發(fā)送過程,就是通過寫任務(wù)往串行接口設(shè)備寫數(shù)據(jù)的過程,當(dāng)有數(shù)據(jù)報(bào)準(zhǔn)備就緒,PPP 驅(qū)動(dòng)通過信號(hào)燈激活寫任務(wù),使之完成對(duì)串行接口設(shè)備的數(shù)據(jù)發(fā)送過程。PPP 接收端程序通過在串行通信設(shè)備驅(qū)動(dòng)中加入hook程序來實(shí)現(xiàn)。在串行通信設(shè)備接收到1 個(gè)數(shù)據(jù)之后,串行設(shè)備的中斷服務(wù)程序(ISR)調(diào)用PPP 的ISR.當(dāng)1 個(gè)正確的PPP數(shù)據(jù)幀接收之后,PPP 的ISR 通過調(diào)度程序調(diào)用PPP輸入程序,然后PPP 輸入程序從串行設(shè)備的數(shù)據(jù)緩存中將整個(gè)PPP 數(shù)據(jù)幀讀出,根據(jù)PPP 的數(shù)據(jù)幀規(guī)則進(jìn)行處理,也就是分別放入IP 輸入隊(duì)列或者協(xié)議控制任務(wù)的輸入隊(duì)列。

            5 總結(jié)

            我們采用ARM 和DSP 芯片的雙核結(jié)構(gòu)組建了一種視頻服務(wù)器。以DM642 和S3C2510 分別作為視頻板和主機(jī)板的核心芯片,H.264 作為視頻壓縮,操作系統(tǒng)選用了uclinux.本系統(tǒng)充分利用了ARM 和DSP 的各自特點(diǎn),充分發(fā)揮ARM 的事件處理控制能力和DSP 對(duì)數(shù)字視頻大吞吐量要求,同時(shí)通過優(yōu)選主要芯片,努力提高整機(jī)性價(jià)比。本系統(tǒng)可同時(shí)輸入16 路視頻信號(hào),在保障視頻質(zhì)量的前提下,適于當(dāng)前不同帶寬的網(wǎng)絡(luò)要求。


          上一頁 1 2 下一頁

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