精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用S3C2410處理器和嵌入式Linux實(shí)現(xiàn)手持終端系統(tǒng)的應(yīng)用方案

電子設(shè)計(jì) ? 來(lái)源:微計(jì)算機(jī)信息 ? 作者:黨帥 , 王庫(kù) ? 2021-03-20 09:18 ? 次閱讀

1 引言

視頻監(jiān)控技術(shù)在國(guó)民生產(chǎn)的許多領(lǐng)域發(fā)揮著重要的作用。隨著嵌入式技術(shù)的逐漸發(fā)展和成熟,手持監(jiān)控終端成為可能。而手持監(jiān)控終端的可攜帶性和低功耗更極大地?cái)U(kuò)展了視頻監(jiān)控的應(yīng)用范同。本課題探索了一種手持監(jiān)控終端的設(shè)計(jì)方案。提供了簡(jiǎn)捷易用的圖形用戶界面.實(shí)現(xiàn)了對(duì)MPEG4格式視頻壓縮數(shù)據(jù)的解碼及其在LCD上的播放。

2 系統(tǒng)的硬件平臺(tái)

本系統(tǒng)的處理器選用三星公司生產(chǎn)的具有ARM9內(nèi)核的S3C2410.S3C2410是32位RISC CPU.內(nèi)部帶有全性能的內(nèi)存處理單元(MMU).主頻為203MHz,最高可達(dá)260MHz。芯片內(nèi)部集成了大量的功能單元.包括:外部存儲(chǔ)器控制器、LCD控制器以及8通道10位ADC和觸摸屏接口等。系統(tǒng)的電源模塊采用TI公司的TPS73HD3XX系列芯片進(jìn)行電壓轉(zhuǎn)換.可以分別獲得1.8V和3.3V電壓。根據(jù)應(yīng)用的需要.本系統(tǒng)選用了1M NOR Flash AM29LV800DB,64M NAND Flash U-K9F1208UDM-YC80和兩片32M SDRAM K4S561632C-TC75。液晶采用的是320x240的TFT真彩(65536色,16位)液晶屏。觸摸屏采用的是四線制電阻式觸摸屏。系統(tǒng)的硬件結(jié)構(gòu)框圖如圖1所示。

采用S3C2410處理器和嵌入式Linux實(shí)現(xiàn)手持終端系統(tǒng)的應(yīng)用方案

圖1 系統(tǒng)硬件框圖

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

本手持終端選用嵌入式Linux作為操作系統(tǒng)。在此基礎(chǔ)上運(yùn)用了兩個(gè)開源軟件:圖形用戶界面庫(kù)MiniGUI和視頻編解碼庫(kù)ffmpeg。

3.1 基于MiniGUI的圖形用戶界面

MiniGUI是由北京飛漫軟件技術(shù)有限公司豐持的一個(gè)自由軟件項(xiàng)目.它為基于Linux的實(shí)時(shí)嵌入式系統(tǒng)提供一個(gè)輕量級(jí)的罔形用戶界面支持系統(tǒng)。本系統(tǒng)的圖形用戶界面使用了這個(gè)庫(kù)來(lái)實(shí)現(xiàn),它負(fù)責(zé)運(yùn)用和管理FrameBuffer幀緩存驅(qū)動(dòng)、觸摸屏和鍵盤驅(qū)動(dòng)程序。通過(guò)MiniGUI庫(kù)。系統(tǒng)圖形用戶界面相關(guān)的部分得到廠很好的實(shí)現(xiàn).成功的建立了包括按鈕、菜單和背景網(wǎng)片在內(nèi)的圖形用戶界面。特別需要指出的是.因?yàn)楸鞠到y(tǒng)的數(shù)據(jù)接收和實(shí)時(shí)視頻解碼的操作涉及到大量的數(shù)據(jù)處理,所以應(yīng)用程序會(huì)分別為這些操作新開線程,如果一個(gè)線程因?yàn)閿?shù)據(jù)的處理失敗而阻塞,圖形用戶界面線程仍可正常工作。用戶仍可以和軟件交互.終止阻塞的線程。

3.2 視頻解碼線程

本課題中。手持設(shè)備通過(guò)網(wǎng)絡(luò)接收MPEG4格式的視頻數(shù)據(jù)所以需要在手持設(shè)備上移植MPEG4的解碼庫(kù)。經(jīng)過(guò)對(duì)比和分析,選擇了ffmpeg開源項(xiàng)目作為這個(gè)手持設(shè)備的解碼庫(kù)。ffmpeg是自南軟件,為多媒體系統(tǒng)實(shí)現(xiàn)MPEG4流媒體技術(shù)提供了完整的解決方案.主要的組成部分是libavformat和libavcodec庫(kù)。libavcodec包含了很多常見的音視頻編解碼器.而libavformat則能夠很好的支持大部分的音視頻文件格式。

實(shí)時(shí)接收到的視頻數(shù)據(jù)可以作為一種特殊的流媒體文件.這種文件與一般的視頻文件相同。都有若干個(gè)基本的組成部分。首先,文件自身可以被叫做一個(gè)“容器”(container),“容器”的類型決定了視頻信息在文件中所處的位置。其次,文件包含有若干個(gè)“流”(stream);比如,通常有一個(gè)音頻流和一個(gè)視頻流(一個(gè)“流”只是一個(gè)對(duì)于一系列數(shù)據(jù)組成單位的形象的稱呼)。一個(gè)流中的數(shù)據(jù)組成單位叫做“幀”(frame)。每一個(gè)流由不同的“解碼器”解碼。從流中可以讀出“包”(packet)。包是一些數(shù)據(jù)塊,這些數(shù)據(jù)塊中包含了壓縮后的原始幀的數(shù)據(jù)。下面詳細(xì)地介紹一下利用ffmpeg的API函數(shù)進(jìn)行解碼的過(guò)程。

首先,利用av_register_all()函數(shù)進(jìn)行庫(kù)的初始化,向編解碼庫(kù)注冊(cè)所有可用的文件格式和編碼器,所以當(dāng)有對(duì)應(yīng)的格式的文件被打開的時(shí)候.相應(yīng)的解碼器可以被自動(dòng)地調(diào)用。通過(guò)av_open_input_file()函數(shù)打開視頻文件,把關(guān)于文件格式的頭和儲(chǔ)存信息讀到一個(gè)AVFormatContext結(jié)構(gòu)體中。接著,利用av_find_stream_info()函數(shù)檢查存儲(chǔ)在AVFormatContext結(jié)構(gòu)體中的文件的流信息,這個(gè)函數(shù)把正確的信息存儲(chǔ)在一個(gè)指針集合中.在這個(gè)集合中就可以找到需要的視頻流。關(guān)于流的編解碼器信息在AVCodecContext結(jié)構(gòu)體中,通過(guò)它就可以找到真正的編解碼器并且打開它。

利用avcodec_alloc_frame()函數(shù)分配一個(gè)用來(lái)存儲(chǔ)幀的空間pFrame。因?yàn)槭殖纸K端播放的視頻是565-bit的圖像,所以還需要把幀從原始格式轉(zhuǎn)化成RGB格式。ffmpeg提供了img_convert()函數(shù)做這個(gè)轉(zhuǎn)換。注意為轉(zhuǎn)換還需另外分配一個(gè)幀pFrameRGB用來(lái)存放轉(zhuǎn)換后的數(shù)據(jù)。接下來(lái)依次從視頻流中讀原始幀的數(shù)據(jù)包把數(shù)據(jù)包解碼到上面分配的pFrame中,一旦完成了一個(gè)幀的解碼,就把這個(gè)幀轉(zhuǎn)換成要求的RGB數(shù)據(jù)格式并且在液晶屏上顯示解碼后的視頻圖像。系統(tǒng)解碼的過(guò)程如圖2所示。

圖2 系統(tǒng)解碼的過(guò)程

3.3 數(shù)據(jù)接收線程

手持監(jiān)控終端通過(guò)SOCKET與視頻采集設(shè)備建立連接接收視頻數(shù)據(jù).但是接收到的MPEG4數(shù)據(jù),必須進(jìn)行一定量的緩沖.然后才能調(diào)用ffmpeg的API函數(shù)進(jìn)行解碼處理。本手持監(jiān)控終端在內(nèi)存中建立兩個(gè)隊(duì)列,一個(gè)是空閑的緩沖隊(duì)列,用以存放接收到的數(shù)據(jù):另一個(gè)是尚未處理的數(shù)據(jù)隊(duì)列.等待處理.兩個(gè)隊(duì)列頭尾相連組成一個(gè)環(huán)形緩沖列表。數(shù)據(jù)接收線程方面:當(dāng)手持監(jiān)控終端接收到一個(gè)包的數(shù)據(jù),就從緩沖隊(duì)列的頭拿出一個(gè)緩沖區(qū)塊,把接收到的數(shù)據(jù)存放到這個(gè)緩沖區(qū)塊中,然后將這個(gè)緩沖區(qū)塊加入到數(shù)據(jù)隊(duì)列的尾部等待視頻解碼線程的讀取。視頻解碼線程方面:從數(shù)據(jù)隊(duì)列的頭拿出一個(gè)緩沖區(qū)塊,讀取數(shù)據(jù),將讀完的緩沖區(qū)塊加到緩沖隊(duì)列的尾部,等待再一次地接收數(shù)據(jù)。經(jīng)過(guò)測(cè)試,選擇32個(gè)緩沖區(qū)塊,每個(gè)緩沖區(qū)塊的大小選為24KB,會(huì)獲得比較好的抗擾動(dòng),抗延時(shí)的播放效果。系統(tǒng)的軟件結(jié)構(gòu)框圖如圖3所示。

圖3 系統(tǒng)軟件框圖

4 結(jié)束語(yǔ)

本文針對(duì)S3C2410硬件平臺(tái)和Linux操作系統(tǒng),設(shè)計(jì)并完成了在手持監(jiān)控終端上對(duì)實(shí)時(shí)視頻的播放,基本上達(dá)到了,預(yù)期的要求。由于本課題只是借鑒了流媒體的思想,利用的不是真正的流媒體技術(shù)所以會(huì)產(chǎn)生一定的播放延時(shí),接下來(lái)的工作會(huì)探索流媒體技術(shù)在手持視頻終端上的應(yīng)用,進(jìn)一步減少延時(shí),以便可以更好的將流媒體技術(shù)利用到視頻監(jiān)控中。

創(chuàng)新點(diǎn):本文所提出的手持監(jiān)控終端的設(shè)計(jì)方案充分利用了S3C2410的功能,并且創(chuàng)新性的把ffmpeg視頻編解碼庫(kù)移植到了基于S3C2410的硬件平臺(tái)上.通過(guò)建立循環(huán)數(shù)據(jù)鏈表的方法實(shí)現(xiàn)了視頻數(shù)據(jù)的接收和解碼的同時(shí)運(yùn)行。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19159

    瀏覽量

    229115
  • 嵌入式
    +關(guān)注

    關(guān)注

    5068

    文章

    19014

    瀏覽量

    303232
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11225

    瀏覽量

    208917
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    S3C2410處理器

    S3C2410處理器通過(guò)GPD端口連接LED1-4四個(gè)燈,試著畫出其電路連接圖,并變成實(shí)現(xiàn)其逐一點(diǎn)亮功能。
    發(fā)表于 11-23 21:50

    嵌入式Linux2.6在S3C2410上的移植技術(shù)探析

    移植操作系統(tǒng)是開發(fā)嵌入式系統(tǒng)的前提和基礎(chǔ),通過(guò)將Linux 2.6 內(nèi)核移植到S3C2410目標(biāo)板上,提出了
    發(fā)表于 08-31 10:03 ?15次下載

    基于S3C2410嵌入式無(wú)線監(jiān)控系統(tǒng)的設(shè)計(jì)

    為了對(duì)無(wú)人職守的監(jiān)控現(xiàn)場(chǎng)進(jìn)行有效監(jiān)控,我們?cè)O(shè)計(jì)實(shí)現(xiàn)了基于三星的S3C2410 嵌入式處理器的監(jiān)控系統(tǒng), 同時(shí)利用GPRS/CDMA 無(wú)線技術(shù)
    發(fā)表于 09-09 16:25 ?31次下載

    基于S3C2410嵌入式串口通信設(shè)計(jì)

    本文通過(guò)基于S3C2410嵌入式串口通信的實(shí)現(xiàn),按照嵌入式系統(tǒng)的軟、硬件結(jié)構(gòu)組成,較為詳細(xì)地介紹了串行通信的硬件電路和軟件
    發(fā)表于 12-23 16:11 ?120次下載

    基于S3C2410手持監(jiān)控終端的研究與設(shè)計(jì)

    本文介紹了一種基于S3C2410嵌入式Linux 操作系統(tǒng)手持監(jiān)控設(shè)備的設(shè)計(jì)方案。文中首先
    發(fā)表于 01-25 15:39 ?59次下載

    S3C2410處理器 Bootloader(Vivi)源代碼

    S3C2410處理器 Bootloader(Vivi)源代碼分析 這邊的2410開發(fā)板提供的光盤上已附交叉編譯工具:arm-linux-
    發(fā)表于 02-09 15:39 ?22次下載

    嵌入式Linux系統(tǒng)開發(fā)技術(shù)詳解-基于ARM

    本章以S3C2410處理器的GPS手持設(shè)備開發(fā)過(guò)程為例,介紹了嵌入式Linux系統(tǒng)軟硬件的設(shè)計(jì)與
    發(fā)表于 06-12 15:32 ?71次下載

    基于S3C2410嵌入式車載定位系統(tǒng)設(shè)計(jì)

    本文從實(shí)際應(yīng)用出發(fā),為嵌入式Linux在車載GPS導(dǎo)航定位系統(tǒng)中的應(yīng)用研究提供了一種新的設(shè)計(jì)思路。以ARM處理器S3C2410為硬件核心,在
    發(fā)表于 07-14 17:18 ?77次下載

    Windows CE.NET在S3C2410處理器上的移植

      本文分析了嵌入式操作系統(tǒng)Windows CE。NET的特點(diǎn),并利用工具Platform Builder 4。2完成了其在以ARM920T為核心的S3C2410處理器上的定制。  
    發(fā)表于 08-27 14:41 ?613次閱讀
    Windows CE.NET在<b class='flag-5'>S3C2410</b><b class='flag-5'>處理器</b>上的移植

    S3C2410處理器特性

    S3C2410處理器是Samsung公司基于ARM公司的ARM920T處理器核,采用0.18um制造工藝的32位微控制
    發(fā)表于 10-10 11:52 ?5539次閱讀

    基于S3C2410和Windows CEnet的智能移動(dòng)終端設(shè)計(jì)

    本文介紹 S3C2410處理器的性能以及 Windows CE. net 作為嵌入式操作系統(tǒng)的開發(fā)流程 。闡述基于 S3C2410芯片和
    發(fā)表于 04-18 10:46 ?0次下載

    基于S3C2410處理器對(duì)Windows CE 5.0操作系統(tǒng)實(shí)現(xiàn)BSP移植

    ,是一種硬實(shí)時(shí)嵌入式操作系統(tǒng),它可以在多種處理器架構(gòu)(如x86、MIPS、ARM和 SH4)上運(yùn)行,Windows CE支持ARM體系結(jié)構(gòu),這是基于S3C2410
    發(fā)表于 03-06 10:10 ?1037次閱讀
    基于<b class='flag-5'>S3C2410</b><b class='flag-5'>處理器</b>對(duì)Windows CE 5.0操作<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>實(shí)現(xiàn)</b>BSP移植

    基于在S3C2410處理器平臺(tái)上實(shí)現(xiàn)Windows CE.NET的應(yīng)用設(shè)計(jì)

    本文分析了嵌入式操作系統(tǒng)Windows CE.NET的特點(diǎn),并利用工具Platform Builder 4。2完成了其在以ARM920T為核心的S3C2410處理器上的定制。
    的頭像 發(fā)表于 09-24 10:03 ?2536次閱讀
    基于在<b class='flag-5'>S3C2410</b><b class='flag-5'>處理器</b>平臺(tái)上<b class='flag-5'>實(shí)現(xiàn)</b>Windows CE.NET的應(yīng)用設(shè)計(jì)

    基于S3C2410處理器實(shí)現(xiàn)USB網(wǎng)卡無(wú)線網(wǎng)絡(luò)功能的實(shí)現(xiàn)

    目前,嵌入式技術(shù)已廣泛應(yīng)用于工業(yè)控制、消費(fèi)類電子產(chǎn)品、通信系統(tǒng)等各類市場(chǎng)產(chǎn)品。并且隨著互聯(lián)網(wǎng)的日益發(fā)達(dá),具有無(wú)線接入功能的嵌入式系統(tǒng)更加具有發(fā)展前景。本文將介紹支持IEEE 802.1
    的頭像 發(fā)表于 05-05 17:04 ?1974次閱讀
    基于<b class='flag-5'>S3C2410</b><b class='flag-5'>處理器</b><b class='flag-5'>實(shí)現(xiàn)</b>USB網(wǎng)卡無(wú)線網(wǎng)絡(luò)功能的<b class='flag-5'>實(shí)現(xiàn)</b>

    基于S3C2410處理器Linux實(shí)現(xiàn)嵌入式網(wǎng)關(guān)的設(shè)計(jì)

    介紹了一種基于ARM9的嵌入式以太網(wǎng)的設(shè)計(jì)方案?;贏RM內(nèi)核微處理器S3C2410的功能特點(diǎn)及其外擴(kuò)組成部分,分析了以太網(wǎng)控制芯片RTL
    的頭像 發(fā)表于 06-22 14:28 ?2590次閱讀
    基于<b class='flag-5'>S3C2410</b>微<b class='flag-5'>處理器</b>和<b class='flag-5'>Linux</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>嵌入式</b>網(wǎng)關(guān)的設(shè)計(jì)