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

          新聞中心

          EEPW首頁 > 網絡與存儲 > 設計應用 > ARM在數字化遠程視頻監(jiān)控系統(tǒng)的應(05-100)

          ARM在數字化遠程視頻監(jiān)控系統(tǒng)的應(05-100)

          ——
          作者:北京郵電大學電信學院 廖日坤 紀越峰 深圳市文錦渡職業(yè)技術學校 黃小迅 時間:2009-02-20 來源:電子產品世界 收藏

            控制CMOS圖像采集,然后從圖像緩沖SRAM中讀取圖像數據到內部的LCD顯示存儲區(qū),顯示到LCD屏上。這也就打通了整個數據前向通道,ARM獲取了圖像后就可以進一步做壓縮處理和傳輸。

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

            ARM程序開發(fā)

            ARM視頻監(jiān)控系統(tǒng)配備512KB的FLASHROM,用于程序存儲器,所以應用程序與原始數據的總和必須小于512KB。以下是ARM程序開發(fā)流程:

            軟件的編寫與調試

            針對應用編寫所需的各種程序,使用ADS(ARMDeveloperSuite)建立工程文件,把編寫好的匯編程序*.s文件、C語言程序*.c文件、*.h文件加入到工程中。然后對編譯參數進行相應設置,編譯工程文件,編譯通過后生成可執(zhí)行二進制代碼。使用ADW調試已編譯工程,軟件調試只能調試ARM指令,無法仿真外圍設備;調試通過后,準備下載可執(zhí)行二進制代碼,進行硬件測試。

            程序下載的實現

            通過bootloader程序來實現對FLASH程序存儲器的編程,bootloader程序是自己編寫的基于內啟動方式下的小程序。

            (1)首先讓EP7312以內啟動方式運行,PC通過串口1(9600bps)接收到"<"標志,

            (2)然后PC從串口發(fā)送2KB的bootloader程序到EP7312。

            (3)這時bootloader程序開始運行,PC通過串口1(115200bps)發(fā)送"0x79"與EP7312再次建立連接,隨后PC發(fā)送"0xFF0xFA"命令,EP7312返回"Len:",PC再發(fā)送四字節(jié)的要下載的文件長度數據。接著PC繼續(xù)發(fā)送整個要下載的程序,發(fā)送完成后將接收到"Ok!",然后編程結束后將接收到"Done!"表明下載編程操作成功完成。

            (4)此時重新以外啟動方式啟動EP7312就可以運行剛下載的程序。

            以上是以工程方式來進行ARM應用程序開發(fā)的基本流程,在實際使用過程中如果應用到新器件還需要一個硬件調試階段,在硬件調試通過以后才可以進一步開發(fā)應用程序。

            有關硬件調試的軟件方法

            在沒有硬件開發(fā)工具的情況下,可以通過串口來進行硬件的調試,EP7312與外圍硬件的連接基本上有三種方式:直接總線連接、與EP7312的片內外設專用引腳連接、連接EP7312的通用I/O引腳。

            以總線方式連接的外設可以通過總線讀寫來訪問;專用外設可以通過內部專門的控制寄存器來訪問;經通用I/O擴展的外設則可以通過對內部通用I/O設置寄存器的控制來訪問。由于內部專用寄存器都對應固定的總線地址,所以這三種方式都可以通過ARM的總線操作對指定地址的訪問來實現調試。

            軟件設計

            在ARM處理器硬件復位以后,需要運行匯編啟動代碼完成系統(tǒng)初始化,主要包括:中斷向量設置、各種處理器模式下的堆棧設置、系統(tǒng)寄存器設置、SDRAM、LCD等外圍部件的設置。以下是其部分程序代碼:

            ldrr1,=DRAMControlvalue;設置SDRAM參數

            ldrr12,=rSDCONF;rSDCONF= 0x8000.2300

            strr1,[r12]

            ldrr12,=rSYSCON2

            strr0,[r12];rSYSCON2= 0x8000.1100

            ldrr1,=DRAMConfigvalue;設置SDRAM刷新速度

            ldrr12,=rSDRFPR

            strr1,[r12];rSDRFPR= 0x8000.2340

            ;------------------------------------------------

            ldrr1,=0x06;設置系統(tǒng)時鐘為74MHz

            ldrr12,=rSYSCON3

            strr1,[r12];rSYSCON3= 0x8000.2200

            ;-----------------------------------------------

            MemConfig1valueEQU0x0202023c;nCS0 = NOR FLASH, 8-bit, 0 wait states

            MemConfig2valueEQU0x0000023f;nCS4 = for , 16-bit, 0 wait states

            ldrr1,=MemConfig1value;配置存儲器位寬格式與等待狀態(tài)

            ldrr12,=rMEMCFG1

            strr1,[r12];MEMCFG1= 0x8000.0180

            ldrr1,=MemConfig2value

            ldrr12,=rMEMCFG2

            strr1,[r12];MEMCFG2= 0x8000.01c0

            ;-----------------------------------------------

            ldrsp,=SVCStack;設置堆棧

            圖2是ARM主程序流程圖。ARM處理器從獲取圖像信息,執(zhí)行壓縮程序,壓縮后的文件通過公共電話線路傳遞到監(jiān)控主機端。由于系統(tǒng)采用相同的圖像分辨率和常量表,所以文件頭都相同,為了減少傳輸數據量,不傳送文件頭,文件頭在監(jiān)控主機端由軟件自動添加。

            

           

           

            圖2 ARM主程序流程圖

            本系統(tǒng)還使用調制解調器通過公共電話網來建立遠程數據連接,在遠程圖像監(jiān)控終端處的調制解調器處于待命狀態(tài),它使用"ATS0=3&D0W&W1"命令設置為自動應答方式,在3次振鈴后自動摘機,經歷"數據風暴"以后與主叫方建立連接。監(jiān)控中心的調制解調器由監(jiān)控軟件控制撥號建立連接或者掛斷連接。

            數據聯(lián)接建立好ARM會接收到“CONNECT”字符串表明通訊線路連接成功,此時就可以像使用普通串口一樣使用調制解調器建立的遠程數據連接。ARM接收到從監(jiān)控中心發(fā)來的采集命令后,依次完成圖像采集、壓縮處理,然后通過串口以ASC碼形式直接發(fā)送圖像數據到監(jiān)控中心,完成一次操作后等待下一個采集命令。

            結語

            本文是完全針對低設備成本、低運行成本和超遠距離的圖像監(jiān)控系統(tǒng)應用提出的解決方案,前端使用便宜的一體化高集成數字化視頻采集模塊,簡化了系統(tǒng)前端的設計,大大降低了前端成本;信號處理使用由高速、高性能的ARM處理器與芯片構建的,通過軟件來實現圖像壓縮;最后經由公共電話網來實現同城范圍內的全數字化遠程圖像監(jiān)控。在降低系統(tǒng)成本的同時,提高了系統(tǒng)的靈活性。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();