• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      遠(yuǎn)程視頻監(jiān)控系統(tǒng)軟件平臺的構(gòu)建

      2014-10-21 14:22:20王建華郭敬慧
      數(shù)字化用戶 2014年20期
      關(guān)鍵詞:宿主機(jī)內(nèi)核嵌入式

      王建華 郭敬慧

      【摘 要】隨著圖像壓縮編碼技術(shù)以及無線通訊技術(shù)的發(fā)展,視頻監(jiān)控系統(tǒng)逐步邁入移動化,在特定場合下,如自然災(zāi)害地質(zhì)查詢,邊防空中監(jiān)控等,需要突破物理上的二維限制,借助小型無人飛行器和無線數(shù)字視頻監(jiān)控系統(tǒng)在低空進(jìn)行遠(yuǎn)程實(shí)時(shí)監(jiān)控。本文構(gòu)建了基于Linux系統(tǒng)的軟件開發(fā)平臺,完成了基于無人飛行器的遠(yuǎn)程視頻監(jiān)控系統(tǒng)實(shí)現(xiàn)的初步工作。

      【關(guān)鍵字】視頻監(jiān)控系統(tǒng) 嵌入式系統(tǒng) Linux 軟件開發(fā)平臺

      一、 嵌入式系統(tǒng)的定義及特點(diǎn)

      嵌入式系統(tǒng)是以應(yīng)用為中心,軟硬件可裁減的,適用于對功能、可靠性、成本、體積、功耗等綜合性嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)[1,2]。

      嵌入式系統(tǒng)的特點(diǎn)可從功能和性能兩個層面來衡量。

      首先,在功能上,它是以應(yīng)用為中心的專用系統(tǒng),區(qū)別于個人計(jì)算機(jī)等通用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)面向的是行業(yè)中的某項(xiàng)應(yīng)用,因此嵌入式產(chǎn)品的個性化很強(qiáng),軟硬件結(jié)合非常緊密,軟件開發(fā)過程中需要針對硬件做出移植或者優(yōu)化。例如,本系統(tǒng)隸屬于無線視頻數(shù)字監(jiān)控產(chǎn)品,并且以無人飛行器為載體,完成特定場合下的視頻采集與實(shí)時(shí)傳輸?shù)裙δ?。在搭建本系統(tǒng)的軟件平臺時(shí),需要根據(jù)需求選取合適的操作系統(tǒng),并根據(jù)硬件方案進(jìn)行驅(qū)動的移植和開發(fā)。開發(fā)應(yīng)用程序時(shí),需要考慮到底層硬件的性能和實(shí)際運(yùn)行情況,如根據(jù)無線網(wǎng)絡(luò)傳輸情況,動態(tài)調(diào)整視頻壓縮質(zhì)量等。

      其次,在性能上,嵌入式系統(tǒng)資源受限,軟硬件必須是可裁剪的,另外嵌入式產(chǎn)品結(jié)構(gòu)緊湊,用途固定,因此在成本、體積、功耗以及可靠性上也必須嚴(yán)格考究。以本系統(tǒng)為例,整個系統(tǒng)以小型的無人飛行器為載體,在硬件設(shè)計(jì)上須采用核心加擴(kuò)展的方式,核心板的體積要做到盡可能的小,以安放在飛行器內(nèi)部,而攝像頭以及CDMA模塊則通過擴(kuò)展的方式,結(jié)合飛行器本身來進(jìn)行整合。另外,雖然資源的受限使得核心板上自身所擁有的內(nèi)存和Flash芯片容量不會太大,但可采用基于擴(kuò)展的設(shè)計(jì),如通過外接SD卡的方式來轉(zhuǎn)儲相關(guān)的數(shù)據(jù)(如用作存證的視頻數(shù)據(jù)等)。在軟件層面上,需要對移植的Linux內(nèi)核做出剪裁,根據(jù)系統(tǒng)本身的需求量身配置,以使最后編譯產(chǎn)品的內(nèi)核映像體積最小。應(yīng)用程序開發(fā),如視頻采集與編碼模塊,也需注意保證程序運(yùn)行的穩(wěn)定性,盡可能避免因?yàn)檐浖蛩貛淼臄嗑€,內(nèi)存溢出,死循環(huán)等錯誤。

      二、 嵌入式Linux系統(tǒng)的軟件組成

      一個嵌入式 Linux 系統(tǒng)從軟件層次的角度看通??梢苑譃樗膫€層次[3]:1. 引導(dǎo)加載程序:即Boot Loader程序。2. Linux 內(nèi)核:特定于嵌入式開發(fā)板的定制內(nèi)核以及內(nèi)核的啟動參數(shù)。3. 文件系統(tǒng):包括根文件系統(tǒng)和建立于 Flash 內(nèi)存設(shè)備之上的文件系統(tǒng)。4. 用戶應(yīng)用程序:特定于用戶的應(yīng)用程序。

      典型的嵌入式Linux系統(tǒng)存儲設(shè)備的空間分配如圖1所示。

      在本系統(tǒng)中,選用一塊32MB的NOR Flash存儲芯片,用于存放引導(dǎo)加載程序,Linux內(nèi)核和包含應(yīng)用程序的文件系統(tǒng)。其中,引導(dǎo)加載程序和內(nèi)核的占用空間分別規(guī)劃為256KB和2MB。下面各小節(jié)詳細(xì)闡述了嵌入式視頻服務(wù)器上軟件平臺的構(gòu)建過程,這個基本的軟件運(yùn)行平臺是系統(tǒng)開發(fā)和應(yīng)用的基礎(chǔ)。

      三、 嵌入式視頻服務(wù)器軟件平臺的構(gòu)建

      1 系統(tǒng)開發(fā)模型

      嵌入式系統(tǒng)開發(fā)的兩大特點(diǎn)是分布式開發(fā)以及交叉編譯。鑒于嵌入式系統(tǒng)資源受限的特點(diǎn),不能在嵌入式產(chǎn)品上直接進(jìn)行開發(fā),而是選擇硬件和軟件資源豐富的宿主機(jī)進(jìn)行分布式開發(fā),通常是PC機(jī),而嵌入式產(chǎn)品作為目標(biāo)機(jī)。由于兩者的硬件體系結(jié)構(gòu)一般不相同(如本系統(tǒng),宿主機(jī)基于x86,而目標(biāo)機(jī)基于ARM),因此在宿主機(jī)上開發(fā)的程序需要經(jīng)由交叉工具鏈進(jìn)行編譯和鏈接,最后通過通信手段送至目標(biāo)機(jī)上運(yùn)行。本系統(tǒng)的開發(fā)模型如圖2所示。

      在本系統(tǒng)開發(fā)中,宿主機(jī)和目標(biāo)機(jī)有三種通信手段:

      1. 串口通信。用于兩機(jī)的信息交互,在經(jīng)過波特率等屬性協(xié)商后,目標(biāo)機(jī)上的信息經(jīng)由串口輸出到宿主機(jī)的串口客戶端進(jìn)行顯示,反饋給用戶,同時(shí)用戶也可通過串口客戶端輸入相關(guān)的控制命令到目標(biāo)機(jī)上,用以操縱目標(biāo)機(jī)上的軟件參數(shù)及流程。

      2. JTAG通信。用于裸機(jī)上的程序燒寫,宿主機(jī)可通過Multi-ICE仿真器與目標(biāo)機(jī)上的JTAG調(diào)試接口相接,通過調(diào)試代理,將制作生成的引導(dǎo)加載程序映像串行燒寫至目標(biāo)機(jī)Flash芯片中;

      3. 網(wǎng)絡(luò)通信。制作好的內(nèi)核以及文件系統(tǒng)映像一般體積較大,可先通過網(wǎng)絡(luò)下載到目標(biāo)機(jī)內(nèi)存中,再通過已做好的燒寫程序和驅(qū)動進(jìn)行脫機(jī)燒寫,這樣可大舉提高燒寫速率。

      因此,基于本系統(tǒng)的開發(fā)模型,在宿主機(jī)上需要首先搭建好開發(fā)環(huán)境。

      2 主機(jī)環(huán)境的搭建

      本系統(tǒng)開發(fā)中,宿主機(jī)上選用的開發(fā)環(huán)境為Fedora 19。主機(jī)環(huán)境搭建主要包括了三個方面的內(nèi)容[4]:交叉工具鏈的安裝,TFTP服務(wù)器的配置以及NFS服務(wù)器的配置。

      1. 交叉工具鏈的安裝。

      嵌入式交叉工具鏈由一套用于編譯、匯編、鏈接、二進(jìn)制工具及庫的組件組成。主要包括了編譯器arm-linux-gcc,匯編器arm-linux-as,連接器arm-linux-ld,二進(jìn)制工具如arm-linux-nm, arm-linux-strip等,基于交叉編譯的庫glibc等。

      交叉工具鏈的選擇上,一般需要根據(jù)編譯目標(biāo)的版本,選擇既有的成熟工具鏈。工具鏈和被編譯對象的版本匹配很重要,否則容易引起因?yàn)榧嫒菪詫?dǎo)致的編譯問題。在本系統(tǒng)中,使用Freescale公司提供的成熟工具鏈,用于對3.10.1版本的內(nèi)核進(jìn)行編譯。其中,編譯器版本為4.1.1,GNUC庫glibc版本為2.9。安裝過程如下:

      (1)建立工作目錄

      [root@localhost ~]#mkdir /root/MX27project/

      (2)將交叉工具鏈壓縮包拷貝至工作目錄并解壓

      [root@localhost MX27project]#tar xjvf gcc-4.1.1-glibc-2.4.tar.bz2

      (3)導(dǎo)入環(huán)境變量使工具對shell可見

      在/root下的.bash_profile最后,加上:

      export PATH=/root/MX27project/gcc/arm-linux/bin:$PATH

      2. TFTP服務(wù)器的配置

      TFTP協(xié)議基于傳輸層UDP協(xié)議,是用來下載遠(yuǎn)程文件的最簡單的網(wǎng)絡(luò)協(xié)議,在開發(fā)過程中主要用于獲取內(nèi)核映像及文件系統(tǒng)映像。通常在目標(biāo)機(jī)上運(yùn)行的引導(dǎo)加載程序中,包含有TFTP的客戶端,因此需要在宿主機(jī)上配置和開啟TFP服務(wù)器。TFTP服務(wù)器的核心配置過程如下:

      建立TFTP服務(wù)器根目錄

      [root@localhost MX27project]mkdir /tftpboot

      修改TFTP配置文件

      主要對/etc/xinetd.d/tftp做出修改,在service tftp中,將disable設(shè)置成no,將server_args設(shè)置成-s /tftpboot

      打開TFTP服務(wù)器

      [root@localhost MX27project]chkconfig tftp on

      [root@localhost MX27project] /etc/init.d/xinetd restart

      3. NFS服務(wù)器的配置

      通過NFS可以在宿主機(jī)和目標(biāo)板之間共享文件,目標(biāo)板通過掛載NFS文件系統(tǒng)能直接運(yùn)行位于宿主機(jī)上的用戶程序,省去了Flash燒寫的過程。因此,NFS文件系統(tǒng)是開發(fā)態(tài)使用的根文件系統(tǒng)。在宿主機(jī)上配置和開啟NFS服務(wù)器的主要過程如下:

      (1)配置NFS服務(wù)器

      配置文件是/etc/exports,設(shè)置內(nèi)容如下:

      /nfsroot 192.168.1.*(rw,sync,no_root_squash)

      其中,/nfsroot為NFS服務(wù)器的根目錄,192.168.1.* 為允許掛載該NFS服務(wù)器的IP,rw,sync,no_root_squash表示服務(wù)器訪問限制。

      (2)啟動NFS服務(wù)器

      [root@localhost MX27project]service nfs start

      3 RedBoot的移植

      移植的總體思路為:先添加硬件開發(fā)平臺相關(guān)硬件的驅(qū)動代碼支持(已提供),然后在配置文件中添加目標(biāo)平臺,指定包配置,進(jìn)行代碼樹的構(gòu)建和編譯,最后將生成的redboot映像燒寫進(jìn)系統(tǒng)Flash芯片中。

      4 Linux內(nèi)核的移植

      就嵌入式Linux系統(tǒng)而言,有各種體系結(jié)構(gòu)的處理器和硬件平臺,用戶根據(jù)自己的需要定制硬件平臺并做一些移植工作。由于Linux內(nèi)核具備可移植性的特點(diǎn),并且已經(jīng)支持了很多種目標(biāo)板,可以從中找到跟自己硬件平臺類似的目標(biāo)板,參考內(nèi)核已經(jīng)支持的目標(biāo)板來進(jìn)行移植工作。這里選用的Linux內(nèi)核是針對Freescale i.MX27參考開發(fā)平臺的Linux Platform Support for i.MX27,內(nèi)核版本號是Linux 3.10.1。

      內(nèi)核剪裁,配置和移植的主要步驟如下:

      解壓內(nèi)核,修改頂層Makefile。

      修改或添加相關(guān)代碼到內(nèi)核源碼樹中。

      配置內(nèi)核。

      在內(nèi)核源碼根目錄下,鍵入make menuconfig命令,出現(xiàn)內(nèi)核配置界面,通過圖形化的方式進(jìn)行內(nèi)核的剪裁配置。

      編譯內(nèi)核。

      配置完畢后,保存退出,在內(nèi)核源碼根目錄下,鍵入make zImage命令進(jìn)行內(nèi)核的編譯。編譯成功后,在arch/arm/boot目錄下會生成zImage內(nèi)核壓縮映像。將zImage放置在前面配置好的TFTP服務(wù)器根目錄下。

      燒寫內(nèi)核到Flash芯片中。

      啟動嵌入式視頻服務(wù)器系統(tǒng),進(jìn)入RedBoot命令模式,設(shè)置系統(tǒng)及宿主機(jī)IP地址為同一個網(wǎng)段:

      ip_address –l 192.168.1.2 –h 192.168.1.1

      首先,從宿主機(jī)上下載內(nèi)核壓縮映像到系統(tǒng)內(nèi)存中:

      load –r –b 0x00100000 zImage

      然后,將內(nèi)核映像燒寫到NOR Flash芯片中:

      fis create –b 0x100000 –l 0x200000 –f 0xC0040000 kernel

      其中,規(guī)劃內(nèi)核占據(jù)的Flash芯片偏移起址為0x40000,大小為2MB。

      5 文件系統(tǒng)的制作

      為建立根文件系統(tǒng),首先需要遵照Linux文件系統(tǒng)的架構(gòu),建立必備的空目錄樹,如bin及sbin目錄用于存放二進(jìn)制執(zhí)行文件,etc目錄用于存放配置腳本,lib目錄用于存放程序運(yùn)行所需要的動態(tài)庫,dev目錄用于存放設(shè)備文件等等。然后在相應(yīng)的空目錄下填充內(nèi)容,如編寫啟動腳本rcS放置于etc目錄中,將交叉工具鏈中提供的庫拷貝到lib目錄中,建立必備的設(shè)備文件放置于dev目錄中,而對于二進(jìn)制執(zhí)行文件,如果是用戶自行添加的應(yīng)用程序,可直接放入bin目錄中(或sbin目錄中),如果是內(nèi)置命令,則可借助開源的第三方軟件生成,本軟件開發(fā)平臺利用開源軟件BusyBox。

      四、結(jié)束語

      本文介紹了基于無人飛行器視頻監(jiān)控系統(tǒng)基本軟件平臺的搭建過程。首先分析了典型的嵌入式系統(tǒng)的特點(diǎn),結(jié)合Linux操作系統(tǒng)的優(yōu)點(diǎn),為系統(tǒng)選擇基于嵌入式Linux操作系統(tǒng)的解決方案。然后討論了嵌入式Linux系統(tǒng)的軟件組成,并針對組成成分進(jìn)行無線監(jiān)控設(shè)備軟件平臺的構(gòu)建,包括了主機(jī)環(huán)境的搭建,RedBoot的移植,Linux內(nèi)核的移植和文件系統(tǒng)的制作等,為后續(xù)無人飛行器的遠(yuǎn)程視頻監(jiān)控系統(tǒng)功能的實(shí)現(xiàn)提供了一個基本的軟件平臺。

      參考文獻(xiàn):

      [1] 楊宗德, 嵌入式ARM系統(tǒng)原理與實(shí)例開發(fā), 北京大學(xué)出版社, 2007.

      [2] Dejan Milojicic, Embedded Systems, IEEE Concurrency, 2000, Vol.8.

      [3] 詹榮開, 嵌入式BootLoader技術(shù)內(nèi)幕, IBM DW, 2003.

      [4] 韋東山,嵌入式Linux應(yīng)用開發(fā)完全手冊,人民郵電出版社,2008.

      作者簡介:王建華,男,成都理工大學(xué)工程技術(shù)學(xué)院(614007),講師,主要研究方向:計(jì)算機(jī)網(wǎng)絡(luò),空間數(shù)據(jù)庫管理,E-mail:344516913@qq.com;郭敬慧,女,成都理工大學(xué)工程技術(shù)學(xué)院(614007),碩士,主要研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。

      猜你喜歡
      宿主機(jī)內(nèi)核嵌入式
      萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
      群眾路線是百年大黨成功之內(nèi)核性制度因素的外在表達(dá)
      強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      Linux內(nèi)核mmap保護(hù)機(jī)制研究
      搭建基于Qt的嵌入式開發(fā)平臺
      虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室在農(nóng)村職校計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)教學(xué)中的應(yīng)用研究
      嵌入式計(jì)算機(jī)軟件測試關(guān)鍵技術(shù)的思考
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
      嵌入式計(jì)算機(jī)軟件測試關(guān)鍵技術(shù)研究
      Altera加入嵌入式視覺聯(lián)盟
      阳信县| 佛学| 乐陵市| 宕昌县| 西畴县| 平度市| 桂阳县| 济宁市| 四平市| 桓台县| 兰州市| 禹城市| 肥东县| 盈江县| 浪卡子县| 东乡县| 女性| 元氏县| 双桥区| 安福县| 运城市| 育儿| 绍兴市| 遵化市| 抚松县| 彭山县| 大丰市| 宁南县| 宜丰县| 蓝山县| 南宫市| 嘉峪关市| 龙州县| 鲁甸县| 奈曼旗| 买车| 沈丘县| 乌拉特中旗| 漳平市| 凌源市| 旅游|