chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

基于SMP8654芯片和嵌入式Linux實現(xiàn)智能導診統(tǒng)的設計

牽手一起夢 ? 來源:單片機與嵌入式系統(tǒng)應用 ? 作者:黃偉,楊習偉 ? 2021-05-05 14:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

過研究基于MIPS架構(gòu)的SMP8654芯片的硬件架構(gòu),并且利用芯片內(nèi)部的圖形加速引擎GFX的方式實現(xiàn)了具有高清視頻顯示和圖片文字處理功能的播放器。系統(tǒng)以嵌入式Linux和MiniGUI為平臺設計了智能導診統(tǒng),提高了醫(yī)院的導診就醫(yī)的服務效率。智能導診系統(tǒng)能夠播放醫(yī)院相關的健康宣傳資料、專家排班信息。

MIPS微處理器是指無內(nèi)部互鎖流水級的處理器,它是由斯坦福大學的Hennessy教授領導的研究小組研制出來的 。MIPS微處理器采用RISC(Reduced][nstructionSet Computer)的設計原則,只支持有限的機器指令以及簡單的算術指令,通過提供大量的內(nèi)部寄存器減少內(nèi)存訪問次數(shù)。MIPS有32個通用寄存器,每個寄存器擁有32位的地址空間 。系統(tǒng)通過研究基于MIPS架構(gòu)的SMP8654芯片,設計和實現(xiàn)了高清播放器的視頻播放以及圖片字體顯示功能。SMP8654解決方案是Sigma公司依據(jù)MIPS設計公司指導的全新設計方案,是Sigma公司專為滿足高清視頻播放應用需求而設計的全新芯片。和

基于ARM 架構(gòu)的低端芯片相比,SMP8654的視頻處理能力更加優(yōu)越。

1 基于SMP8654芯片的高清播放器

1.1 SMP8654硬件介紹

SMP8654芯片的內(nèi)部,有一個MIPS 24kf系列的主CPU芯片,工作頻率為500 MHz。在主CPU芯片的內(nèi)部,具有1個32 KB的指令Cache和1個32 KB的數(shù)據(jù)Cache、2個可編程計時器以及3個獨立的中斷控制器和2路UART(Universal Asynchronous Receiver/Transmitter)。主CPU 內(nèi)部采用雙總線結(jié)構(gòu),G—bus是主總線,CPU通過此總線訪問外部功能單元的各狀態(tài)寄存器,而對主CPU芯片內(nèi)部的中斷控制器、計時器等的訪問是通過將L—bus映射到G—Bus上的方式進行的。主CPU 內(nèi)部有一個高效的乘除運算單元(Multip1y/Divide Unit)及浮點數(shù)運算單元(FPU),還有一個增強的JTAG調(diào)試模

塊,用于調(diào)試應用程序及內(nèi)核代碼 。

SMP8654芯片內(nèi)部有一個IPU(Interrupt ProcessingUnit)。這個MIPS 24kf系列的32位處理器專門處理那些需要低延時的應用需求。它主要處理從視頻處理子系統(tǒng)(Video Processing Subsystem)所產(chǎn)生的中斷。它的時鐘頻率為333 MHz,而且還有16 KB的指令Cache和16KB數(shù)據(jù)Cache。

SMP8654芯片包含兩個DDR-DRAM 控制器,每一個控制都支持高達512 MB的DDR2內(nèi)存,這些外部存儲器可以為音頻、視頻以及數(shù)據(jù)提供緩沖區(qū),并且能存放硬件模塊的臨時數(shù)據(jù)。

1.2 SMP8654的視頻及音頻處理

1.2.1 視頻解碼子系統(tǒng)

SMP8654的視頻解碼子系統(tǒng)(Video Decoder Subsystern)可以解碼HDSMPTE、H.264、HD WMV9、AVS、MPEG1、MPEG2等視頻格式的視頻文件。SMP8654的視頻解碼系統(tǒng)執(zhí)行特定解碼算法,它是一種基于處理器和電路邏輯方式的混合架構(gòu)。能同時解碼的視頻文件數(shù)目是由視頻的格式以及所要呈現(xiàn)的分辨率決定的。SMP8654可以支持包括IPTV、AVCHD、MSTV 的視頻解碼要求。視頻處理引擎是一個16位的RISC處理器,視頻解壓算法的密集計算部分是由此部分處理的。

1.2.2 視頻處理子系統(tǒng)

視頻處理子系統(tǒng)(Video Processing Subsystem)從內(nèi)存中檢索圖形和視頻圖像,將這些圖像混合并且縮放至某個顯示器所要求的分辨率并且將其呈現(xiàn)出來。視頻處理子系統(tǒng)可以控制顏色、分辨率以及色彩飽和度,并且能處理視頻數(shù)據(jù)轉(zhuǎn)換,選擇視頻的輸出模式(模擬信號的輸出模式包括RGBYPbPr)。視頻處理子系統(tǒng)還有一個2D圖形加速功能模塊。智能導診系統(tǒng)利用此GFX引擎實現(xiàn)了文字和圖片的高清顯示功能。

1.2.3 音頻處理子系統(tǒng)

SMP8654芯片的集成音頻處理子系統(tǒng)(Audio Processing Subsystem)是一個為用戶專門設計的32位數(shù)字信號處理器,音頻的解碼和操作是由這個專用的DSP處理的。這個DSP工作在333 MHz的時鐘頻率下,指令和數(shù)據(jù)是分開存儲的,DSP通過系統(tǒng)總線取得指令,通過數(shù)據(jù)總線獲取需要解碼的音頻數(shù)據(jù)。和基于ARM 架構(gòu)的處理器一樣,它有一個32位的指令系統(tǒng),同時與之對應了一個16位的指令集,通過Load/Store從內(nèi)存裝載數(shù)據(jù)到DSP的相關寄存器中進行處理。

1.2.4 高清播放機硬件架構(gòu)

高清播放機硬件架構(gòu)如圖1所示。高清播放器實現(xiàn)的功能主要包括視頻處理以及圖片文字顯示。硬件架構(gòu)中的重要部分包括視頻解碼子系統(tǒng)、視頻處理子系統(tǒng)、音頻處理子系統(tǒng)。這里的HDD表示可選的硬盤,通過內(nèi)部的SATA接口控制。提供對USB2.0協(xié)議支持以及802.11n協(xié)議的支持,也就是說播放器可以從網(wǎng)絡中讀取各種視頻資源,從硬盤或者是USB等移動盤中獲得數(shù)據(jù)。視頻處理子系統(tǒng)中的GFX代表的是圖形加速引擎,通過Sigma公司提供的SDK可以很容易地操作這些硬件,實現(xiàn)硬件加速功能。在智能導診系統(tǒng)的軟件部分,介紹了如何利用硬件特性加速文字和圖片的繪制過程。在智能導診系統(tǒng)中,醫(yī)院HIS系統(tǒng)中的病人掛號信息通過TCP/IP傳遞到此硬件播放器,然后再由硬件播放器處理,將病人信息排隊到相關隊列中,這樣病人就可以在專門的等候區(qū)休息等候了。

2 基于嵌入式Linux和MiniGUI的主控程序

2.1 嵌入式Linux

Linux是一個完全免費的開源操作系統(tǒng),內(nèi)核可以被裁剪到134 KB左右。Linux是一個能夠適應多種CPU和硬件平臺的操作系統(tǒng),裁剪之后的Linux系統(tǒng)用于這些設備中執(zhí)行資源管理、任務調(diào)度、存儲空間分配等任務 。嵌入式應用系統(tǒng)的開發(fā)一般可以分為如下幾個步驟:交叉編譯工具的建立,Bootloader的編譯和燒寫,編譯內(nèi)核并移植到開發(fā)板,文件系統(tǒng)的編譯和燒寫。交叉編譯是嵌入式系統(tǒng)開發(fā)中需要用到的一個常見技術,其主要特征是嵌入式設備上的可執(zhí)行程序通常是在另外一臺機器上編譯生成的。通常將前者稱為目標機器(Target),后者稱為主機(Host)。主機擁有的資源豐富很適合在上面編譯機器相關的代碼,這種技術為軟件的不同平臺移植創(chuàng)造了便利條件。交叉編譯工具配置在主機(Host)上編譯及配置環(huán)境變量后,就可以用來編譯Bootloader、內(nèi)核和文件系統(tǒng)。Bootloader是一個啟動加載Linux內(nèi)核的固件程序,有點類似于PC機的BIOS程序,在完成硬件初始化以及內(nèi)存映射等操作之后,通常會將外部存儲介質(zhì)上存放的內(nèi)核鏡像加載到RAM 中,然后跳轉(zhuǎn)到指定的內(nèi)存位置執(zhí)行。

2.2 M GUl用戶界面

GUI(Graphical User Interface)是指采用圖形方式顯示的計算機操作用戶界面。系統(tǒng)中所要闡述的高清播放機上需要提供人機交互界面,控制諸如視頻的暫停、播放、文件更新以及播放機的聲音控制和開關機控制等圖形界面。智能導診系統(tǒng)中使用的圖形用戶界面采用的是MiniGUI。MiniGUI是一個跨平臺的面向嵌入式系統(tǒng)的輕量級圖形用戶界面支持系統(tǒng),可在Linux/ptClinux、eCos、

“c/os—II、VxWorks、pSOS、ThreadX 等操作系統(tǒng)以及Win32平臺上運行,廣泛應用于手持信息終端、機頂盒、工業(yè)控制系統(tǒng)、便攜式多媒體播放器機等產(chǎn)品和領域 。

3 播放機軟件系統(tǒng)設計

3.1 智能導診系統(tǒng)的軟件架構(gòu)

sMP8654為應用開發(fā)提供分層服務架構(gòu),軟件系統(tǒng)設計主要根據(jù)SMP8654分層服務模型,找出最優(yōu)化的設計方案。智能導診通過研究DCC 的控制邏輯,及Sigma公司的SDK文檔,設計出了如圖2所示的SMP8654高清播放機的軟件系統(tǒng)架構(gòu)。智能導診系統(tǒng)首先對硬件平臺初始化,接著初始化有線或者無線網(wǎng)絡(這部分主要作用是網(wǎng)絡接口卡初始化操作,日志部分初始化是跟蹤和調(diào)試應用程序的重要組成部分);接著創(chuàng)建MiniGUI主窗口,最后進入消息循環(huán)。

當MiniGUI接收到MSG_CLOSE消息時,由HWND— DESKTOP向主窗El發(fā)送退出消息,至此程序結(jié)束,播放機被關閉;當播放機接收到圖片顯示命令時,將命令消息存人到消息隊列中,這里要創(chuàng)建消息隊列是因為MiniGUI在接收到用戶的各種不同命令時,都會將命令解析并且存入到任務隊列中,由任務派發(fā)器將任務發(fā)送到不同模塊處理。MiniGUI的主程序會根據(jù)用戶選擇的視頻及音頻文件,選擇將消息發(fā)送到視頻解碼進程處理,當用戶選擇打開某個高清的圖片時,消息隊列中會保留圖片大小、圖片格式、圖片的顯示時間等控制信息。這里要使用任務隊列的原因其實很簡單,分離出播放器的一個個任務,讓不同的軟件服務模塊處理。如果要播放視頻,調(diào)度程序會將任務隊列中的視頻播放任務派發(fā)給視頻解碼進程處理。如果要使用GFX引擎高效率繪制圖片,則任務被分派到高清圖片處理進程處理。

智能導診系統(tǒng)服務進程主要負責從醫(yī)院HIS信息系統(tǒng)的接口函數(shù)中獲得當前病人的掛號信息,并且通過TCP發(fā)送到高清播放機上,最后通過MiniGUI的Draw—Text函數(shù)將相關病人信息以列表的方式顯示在預先定義的排隊隊列中。這里的視頻解碼進程是獨立的進程,主控程序和此進程的通信是通過Linux的消息隊列機制實現(xiàn)的。消息隊列是一種內(nèi)核標示,兩個進程之間的交互是通過調(diào)用msgsnd和msgrecv這樣的函數(shù)實現(xiàn)的,只要兩個進程的消息隊列標識是一致的,進程之間就可以交互 ]。當MiniGUI接收到退出消息時,會向視頻解碼進程發(fā)送退出消息,讓視頻解碼進程清空所占用的系統(tǒng)資源。

SMP8654分層服務模型如圖3所示。最下面的一層是相關硬件,如CPU、視頻解碼器、音頻解碼器、并行I/0接口。中間的一層MRUA (Movimiento rectiline unitormemente acelerado)提供了訪問這些硬件的抽象接口,另外DCC(Decoding Chain Contro1)是通過訪問MRUA的接口實現(xiàn)對視頻播放控制、音頻解碼的操作。最頂層是軟件播放器,可以基于DCC實現(xiàn)網(wǎng)絡流媒體應用,或者定制自己的軟件播放器。

3.2 利用圖形加速引擎優(yōu)化文字和高清圖片顯示

DCC是為應用程序提供的編程接口,而MRUA面向底層硬件,為上層的DCC提供硬件抽象和功能接口。在深入理解了DCC是如何控制硬件顯示文字、處理圖片以及播放視頻之后,智能導診系統(tǒng)利用MRUA庫函數(shù)直接操作硬件特性,加快字體顯示、圖片處理效率,以及提升視頻播放等各方面性能。DCC提供的多個對象為應用程序完成實際的功能提供函數(shù)接口,這些對象包括:

① Route??梢詫oute理解為某個具體的媒體內(nèi)容(Content)到硬件視頻混合器(Hardware Video Mixer)的數(shù)據(jù)通道,它只負責把具體的媒體內(nèi)容傳送到硬件視頻混合器中。

② Surface??梢詫urface理解為視頻對象層(Video Object layer)。視頻信息,屏幕顯示以及字幕組成了一個完整的Content。在每一個Route對象中,通常會存在相同類型的多個Surface對象。

③ VideoSource??梢詫ideoSource理解為一個專為Surface生成圖片的生產(chǎn)者,這個生成者可能是一個硬件視頻解碼器(Hardware MPEG decoder)。

④ AudioMixer??梢詫udioMixer理解為一個類似Route的東西,它代表的也是一個數(shù)據(jù)通道,只不過它只負責將AudioSource這個音頻生產(chǎn)者生成的音頻幀信息組合成一個輸出。

⑤ AudioSource??梢詫udioSource理解為音頻幀的生產(chǎn)者。

⑥ DemuxSource。它是一個可分離流,并且將數(shù)據(jù)發(fā)送到視頻、音頻解碼器的一個對象。當然也可以將它理解為一個生成者,負責將流(stream)數(shù)據(jù)分離出音頻和視頻信息,并發(fā)送到相關處理單元處理。

如圖3所示,流解析器從內(nèi)存中檢索到與文件有關的信息之后,將數(shù)據(jù)流分解,然后組包成視頻解碼器以及音頻解碼器所處理的數(shù)據(jù),并且交由DSP和Display Engine這樣的設備進行處理。這些都可以由DCC控制,是由MRUA層抽象出的相關硬件功能。只要通過DCC層去控制相關硬件設備,便可以實現(xiàn)圖片和文字的高清顯示。下面將介紹如何通過DCC去控制GFX引擎實現(xiàn)圖片和文字的顯示。

GFX在圖中沒有畫出,它是某個具體的圖形加速設備。當要播放一個高清的圖片或者繪制文字時,通常要經(jīng)過幾個步驟:

RUA 實例初始化,DCC實例初始化,設置圖片的顯示窗口,初始化GFX 引擎,執(zhí)行繪制,清空資源并退出。下面以偽碼的方式給出其具體實現(xiàn)過程:

int main(int argc,char*argv[])(

創(chuàng)建RUA實例;

創(chuàng)建DCC對象實例;

初始化圖片的顯示選項;

初始化視頻的顯示選項;

初始化播放控制選項;

從命令行參數(shù)獲得欲顯示的文件信息以及圖片、視頻播放控制選項(如果沒有就使用默認值)

裝載相關硬件單元微碼;

創(chuàng)建硬件混合器Mixer;

創(chuàng)建Scaler對象;

//scaler=EMHWL1B MODULE(DispGFXMultiScaler,O);

為當前的Mixer對象創(chuàng)建一個關聯(lián)Scaler對象的索引

初始化GFX引擎;

設置GFX對象的各通道屬性;

開始在GFX上投遞繪制請求;

關閉GFX引擎,并依次關閉DCC實例對象,RUA實例對象;

}

結(jié)語

智能導診系統(tǒng)基于MiniGUI和SMP8654的SDK 完成了視頻播放、文字圖片顯示的功能?;鵐iniGUI的圖形及文字繪制函數(shù),如CreateI ogFont、DrawText、LoadBitmap等的使用以及利用與硬件相關的圖形加速引擎繪制圖片和文件相結(jié)合的方式,增加了系統(tǒng)的圖形繪制效果,提升了智能導診系統(tǒng)性能 。

綜上所述,系統(tǒng)基于MIPS架構(gòu)設計實現(xiàn)了高清播放機所要完成的視頻播放以及圖片文字顯示功能。通過研究基于MIPS架構(gòu)下的高清播放機最終選擇了速度比較好的高清播放機芯片SMP8654,使得視頻處理更加穩(wěn)定,圖片的加速解碼及顯示的速度更快?;诖思軜?gòu)的系統(tǒng),可以擴展到各種信息發(fā)布系統(tǒng)中,如醫(yī)院的信息發(fā)布系統(tǒng)、車載娛樂系統(tǒng),具有很好的應用前景。

責任編輯:gt

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

    關注

    462

    文章

    53221

    瀏覽量

    454759
  • 嵌入式
    +關注

    關注

    5177

    文章

    19992

    瀏覽量

    325067
  • Linux
    +關注

    關注

    88

    文章

    11577

    瀏覽量

    217001
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何去設計嵌入式SMP系統(tǒng)?

    如何去設計嵌入式SMP的硬件系統(tǒng)?如何去設計嵌入式SMP的軟件系統(tǒng)?
    發(fā)表于 04-27 06:56

    什么是嵌入式Linux?

    之有運行程序的能力與作用。在很多智能家電開發(fā),智能產(chǎn)品的研究上有著主導的作用。(對個人、團隊開發(fā)產(chǎn)品有興趣的朋友一定要看看嵌入式?。?linux
    發(fā)表于 10-11 13:47

    基于嵌入式Linux的來電判決模塊的設計與實現(xiàn)

    基于嵌入式Linux 的來電判決模塊的設計與實現(xiàn)-Design and lmplementation of Calling Determination Module Ba ed on Embedded
    發(fā)表于 02-09 10:41 ?18次下載

    基于Linux操作系統(tǒng)的嵌入式網(wǎng)關的實現(xiàn)

    基于Linux操作系統(tǒng)的嵌入式網(wǎng)關的實現(xiàn)
    發(fā)表于 03-28 09:48 ?29次下載

    基于Linux嵌入式LCD設計

    本文介紹了基于Linux嵌入式LCD 設計的實現(xiàn),以ARM 處理器S3C2410X 嵌入式芯片為平臺,設計了
    發(fā)表于 09-01 09:50 ?18次下載

    嵌入式Linux

    嵌入式Linux隨著Linux的迅速發(fā)展,嵌入式Linux現(xiàn)在已經(jīng)有許多的版本,包括強實時的嵌入式
    發(fā)表于 06-17 00:36 ?1069次閱讀

    嵌入式LINUX開發(fā)基礎知識

    嵌入式LINUX簡介,嵌入式LINUX開發(fā)平臺簡介,嵌入式LINUX開發(fā)流程,建立
    發(fā)表于 07-31 21:34 ?261次下載

    LinuxSMP系統(tǒng)上的移植研究

    硬件平臺下的啟動流程、任務調(diào)度策略、任務間同步與互斥、中斷處理等問題,結(jié)合自主研發(fā)嵌入式應用的實際需求,得到解決上述問題的方案,完成嵌入式LinuxSMP系統(tǒng)上的移植,并
    發(fā)表于 11-14 16:09 ?11次下載
    <b class='flag-5'>Linux</b>在<b class='flag-5'>SMP</b>系統(tǒng)上的移植研究

    嵌入式linux怎么學?linux教程之《嵌入式Linux應用程序開發(fā)標準教程》

    自由開源軟件在嵌入式應用上,受到青睞,Linux 日益成為主流的嵌入式操作系統(tǒng)之一。隨著摩托羅拉手機 A760、IBM 智能型手表 WatchPad、夏普 PDA Zaurus 等一款
    發(fā)表于 09-11 15:47 ?38次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>怎么學?<b class='flag-5'>linux</b>教程之《<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>應用程序開發(fā)標準教程》

    嵌入式】基于ARM的嵌入式Linux開發(fā)總結(jié)

    前言嵌入式知識點復習一嵌入式知識點復習二 --體系結(jié)構(gòu)嵌入式知識點復習三 --ARM-LINUX嵌入式開發(fā)環(huán)境
    發(fā)表于 10-19 18:32 ?28次下載
    【<b class='flag-5'>嵌入式</b>】基于ARM的<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>開發(fā)總結(jié)

    嵌入式 Linux

    自由開源軟件在嵌入式應用上,受到青睞,Linux 日益成為主流的嵌入式操作系統(tǒng)之一。隨著摩托羅拉手機 A760、IBM 智能型手表 WatchPad、夏普 PDA Zaurus 等一款
    發(fā)表于 10-21 11:21 ?4次下載
    <b class='flag-5'>嵌入式</b> <b class='flag-5'>Linux</b>

    嵌入式Linux(基礎篇)】從標準Linux嵌入式Linux + 嵌入式Linux知識架構(gòu)

    主要介紹了GNU/Linux的誕生,標準Linux是如何應用在嵌入式系統(tǒng)中的,最后講述了嵌入式Linux知識架構(gòu)。
    發(fā)表于 11-02 09:51 ?34次下載
    【<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>(基礎篇)】從標準<b class='flag-5'>Linux</b>到<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b> + <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>知識架構(gòu)

    嵌入式Linux network

    文章目錄前言網(wǎng)絡通信簡介服務器程序客戶端程序運行微信公眾號前言這是前篇:嵌入式Linux i.MX開發(fā)板嵌入式Linux NFS嵌入式
    發(fā)表于 11-02 10:51 ?15次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b> network

    嵌入式Linux路線

    嵌入式linux開發(fā)環(huán)境搭建、嵌入式linux開發(fā)模型、linux內(nèi)核移植和文件系統(tǒng)、嵌入式
    發(fā)表于 11-02 11:51 ?19次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>路線

    視頻教程-嵌入式Linux開發(fā)基礎-嵌入式

    嵌入式Linux開發(fā)基礎 嵌入式工程師、嵌入式講師、10多年
    發(fā)表于 11-02 13:21 ?30次下載
    視頻教程-<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>開發(fā)基礎-<b class='flag-5'>嵌入式</b>