當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]嵌入式系統(tǒng)的實(shí)時(shí)數(shù)據(jù)接口擴(kuò)展

摘要:介紹了一種以Samsung公司的ARM7TDMI CPU S3C4510B為核心、μCUnux 為操作系統(tǒng)的嵌入式系統(tǒng)應(yīng)用于MPEC-2或MPEG-4等實(shí)時(shí)多媒體數(shù)據(jù)的網(wǎng)絡(luò)傳輸所面臨的問(wèn)題,并提出了相應(yīng)的解決方案。

嵌入式系統(tǒng)目前已廣泛應(yīng)用于信息家電、網(wǎng)絡(luò)通信和工業(yè)控制等各個(gè)領(lǐng)域。典型的嵌入式系統(tǒng)主要由嵌入式硬件和軟件構(gòu)成,其中硬件部分的核心為嵌入式處理器。與通用處理器相比,其在功耗、體積、成本等方面都受到應(yīng)用要求的制約。嵌入式系統(tǒng)的軟件部分可以像計(jì)算機(jī)一樣使用操作系統(tǒng),目前已有許多成熟嵌入式操作系統(tǒng),如VxWorks、pSOS、Nucleus、Windows CE 以及嵌入式Linux 等。當(dāng)然,在一些簡(jiǎn)單應(yīng)用中許多嵌入式系統(tǒng)的軟件并沒(méi)有使用操作系統(tǒng),只有一些循環(huán)控制。這樣,軟件復(fù)雜度大大降低,從而減少存儲(chǔ)器的容量要求,但是這樣的軟件在重復(fù)使用、網(wǎng)絡(luò)支持等方面的能力相對(duì)較弱。

ARM系列內(nèi)核是目前嵌入式處理器中廣泛使用的內(nèi)核。采用ARM內(nèi)核的處理器具有體積小、功耗低、成本低和性能高的特點(diǎn)。在全球有眾多生產(chǎn)ARM內(nèi)核處理器的廠商。

Linux是一種很受歡迎的開(kāi)放源碼操作系統(tǒng),原先被設(shè)計(jì)應(yīng)用于桌面系統(tǒng),后被廣泛應(yīng)用于服務(wù)器。由于其開(kāi)放源碼和內(nèi)核可裁減等特性,Linux逐漸被修改用于嵌入式領(lǐng)域。目前已有多個(gè)嵌入式應(yīng)用的版本,μClinux 是其中的一個(gè)分支,最早被設(shè)計(jì)應(yīng)用于微控制領(lǐng)域。其最大特征就是沒(méi)有MMU(內(nèi)存管理單元),很適合于許多低端的、沒(méi)有MMU的嵌入式處理器。

本文設(shè)計(jì)了一種嵌入式系統(tǒng)用于多媒體實(shí)時(shí)數(shù)據(jù)的網(wǎng)絡(luò)傳輸。ARM內(nèi)核處理器與嵌入式 Linux 是目前嵌入式應(yīng)用中的一種典型組合,選用了 Samsung 公司的16/32位ARM7TDMI 內(nèi)核的網(wǎng)絡(luò)處理器 S3C4510B 為嵌入式硬件核心,μClinux 為操作系統(tǒng)。該系統(tǒng)支持完整的TCP/IP協(xié)議以及許多其它的網(wǎng)絡(luò)協(xié)議,同時(shí)它具有很低的成本。

1 嵌入式系統(tǒng)的構(gòu)成

1.1 硬件系統(tǒng)

嵌入式硬件系統(tǒng)主要由 CPU、Flash ROM、SDRAM、以太網(wǎng)物理層、FIFO以及CPLD等芯片構(gòu)成,如圖1所示。

(1) CPU

本系統(tǒng)采用了 ARM7TDMI 內(nèi)核的 RISC 處理器S3C4510B。該芯片具有如下一些主要特點(diǎn):

8/16/32位的外部總線支持 ROM、RAM、Flash 存儲(chǔ)器、DRAM 和外部I/O;

·8K 字節(jié)的 Cache;

·一個(gè)I2C 接口;

·一個(gè)帶 MII 接口的100Mbps/10Mbps 以太網(wǎng)控制器;

·兩個(gè) UART 通道;

·兩個(gè)通用 DMA 通道;

·兩個(gè) HDLC 通道;

·18個(gè)通用I/0通道;

·兩個(gè)32位定時(shí)器;

·共有21個(gè)中斷源,其中4個(gè)用于外部中斷;

·一個(gè)內(nèi)部 PLL 用于提供高頻率的系統(tǒng)時(shí)鐘,最高系統(tǒng)時(shí)鐘可達(dá)50MHz。

由此可見(jiàn),S3C4510B 很適用于低端的網(wǎng)絡(luò)設(shè)備,如集線器、交換機(jī)、家庭網(wǎng)關(guān)等。

(2)Flash ROM 和 SDRAM

Flash ROM 和 SDRAM 構(gòu)成了系統(tǒng)的存儲(chǔ)空間。其中Flash ROM 作為程序存儲(chǔ)器,用于存放操作系統(tǒng)、應(yīng)用程序等;SDRAM為系統(tǒng)內(nèi)存。

(3)以太網(wǎng)物理層和串行接口芯片

CPU 內(nèi)部的以太網(wǎng)控制器只提供了MAC(媒體接入控制器),需在外部接一個(gè)物理層芯片完成編解碼和時(shí)鐘恢復(fù)等功能。串行接口芯片主要完成串行線路接口的電平轉(zhuǎn)換。

(4)CPLD 和 FIFO

為了能使系統(tǒng)支持實(shí)時(shí)數(shù)據(jù)通信,需要在外設(shè)和嵌入式系統(tǒng)的外部總線之間加上 FIFO 和CPLD。FIFO 用于數(shù)據(jù)緩沖,CPLD 用于產(chǎn)生 FIFO控制邏輯和外部總線控制邏輯。

1.2 操作系統(tǒng)

ARM7TDMI 內(nèi)核已被眾多的嵌入式操作系統(tǒng)所支持,如 VxWorks、pSOS 及 Nucleus 等。這些商業(yè)化操作系統(tǒng)在網(wǎng)絡(luò)和用戶(hù)圖形界面等方面都有很好的支持,并且在穩(wěn)定性和實(shí)時(shí)性方面都有相應(yīng)的保證,但其價(jià)格也相當(dāng)高。這里選用了開(kāi)放源碼的嵌入式 Linux,它一般免費(fèi)或花較少的費(fèi)用就可得到,同時(shí)它在網(wǎng)絡(luò)和圖形界面方面也有很好的支持。另外,嵌入式 Linux 的高度模塊化使它可以根據(jù)實(shí)際應(yīng)用需要靈活配置,能有效精簡(jiǎn)內(nèi)核代碼。嵌入式 Linux 具有很高的穩(wěn)定性。在實(shí)時(shí)性方面,盡管 Linux 本身未作過(guò)多關(guān)注,但可通過(guò)打?qū)崟r(shí) Linux(RTLinux)補(bǔ)丁解決。[!--empirenews.page--]

針對(duì)所采用的 CPU 沒(méi)有 MMU,選用了目前在嵌入式系統(tǒng)中被廣泛使用的μClinux。μClinux 是從標(biāo)準(zhǔn)的Linux 2.0 內(nèi)核發(fā)展而來(lái)的,但其源代碼針對(duì)典型的嵌入式應(yīng)用已經(jīng)作了許多精簡(jiǎn)和修改,使得其內(nèi)核比標(biāo)準(zhǔn)的 Linux 內(nèi)核要小很多,不過(guò)它仍然保留了標(biāo)準(zhǔn) Linux的主要特色。

目前最新的μClinux 版本已經(jīng)支持 S3C4510B 及典型開(kāi)發(fā)板,如果所采用的 CPU 及開(kāi)發(fā)板沒(méi)有被支持,應(yīng)根據(jù)實(shí)際情況移植。此外,由于在外部總線接了 CPLD和 FIFO,為了使應(yīng)用程序能訪問(wèn)它,需要在μClinux 下開(kāi)發(fā)相應(yīng)的驅(qū)動(dòng)程序。

2 實(shí)時(shí)數(shù)據(jù)接口的擴(kuò)展

2.1 應(yīng)用要求

將上述嵌入式系統(tǒng)應(yīng)用于實(shí)時(shí)多媒體數(shù)據(jù)的網(wǎng)絡(luò)傳輸,如圖2所示。這里的實(shí)時(shí)多媒體可以是 MPEG-4或 MPEG-2 等,其數(shù)據(jù)流一般是連續(xù)、恒定碼率的。

2.2 硬件擴(kuò)展

根據(jù)上述數(shù)據(jù)流的特點(diǎn),需在嵌入式系統(tǒng)與外設(shè)(編、解碼器)之間加入數(shù)據(jù)緩沖控制單元。對(duì)于發(fā)送端和接收端,數(shù)據(jù)緩沖控制單元的設(shè)計(jì)有所不同,下面以MPEG-2 為例說(shuō)明。這里考慮系統(tǒng)的處理能力、網(wǎng)絡(luò)的承受能力以及圖像質(zhì)量,MPEG-2 的輸出為 4Mbps 的CBR(固定比特率)TS流。

2.2.1 發(fā)送端

編碼器送出連續(xù)、恒定速率的碼流。如果將此碼流直接送到 CPU 外部總線,將會(huì)導(dǎo)致操作系統(tǒng)頻繁地處理中斷,甚至?xí)a(chǎn)生中斷不能及時(shí)處理從而導(dǎo)致數(shù)據(jù)丟失。因此,有必要在編碼器與外部總線之間加上 FIFO,同時(shí)用 CPLD 實(shí)現(xiàn) FIFO 的讀寫(xiě)控制邏輯。編碼器送出的數(shù)據(jù)流連續(xù)不斷地以恒定速率寫(xiě)入FIFO;當(dāng)FIFO中的數(shù)據(jù)積聚到一定值后,每寫(xiě)入若干個(gè)數(shù)據(jù)就向CPU發(fā)一個(gè)中斷;CPU在收到中斷后通過(guò)外部總線讀入相當(dāng)量的數(shù)據(jù),并將其打包送入網(wǎng)絡(luò)。正常情況下,每個(gè)中斷讀數(shù)據(jù)個(gè)數(shù)是一定的,在一段時(shí)間內(nèi)FIFO寫(xiě)入和讀出將維持平衡,且不會(huì)產(chǎn)生“饑餓”狀態(tài);當(dāng)操作系統(tǒng)因處理別的任務(wù)而沒(méi)有及時(shí)響應(yīng)中斷時(shí),F(xiàn)IFO將暫時(shí)進(jìn)入“飽和”狀態(tài),但只要FIFO容量足夠大就不會(huì)產(chǎn)生數(shù)據(jù)溢出現(xiàn)象。由于CPU從FIFO讀取單位數(shù)據(jù)的速度大大高于外設(shè)向FIFO寫(xiě)單位數(shù)據(jù)的速度,“飽和”狀態(tài)一般能消除。由此,可以解決前述問(wèn)題。

2.2.2 接收端

在接收端,由于解碼器的輸入要求是一個(gè)連續(xù)、恒定速率的碼流,同樣要求在CPU外部總線與編碼器之間加上FIFO和CPLD。同時(shí),接收端的數(shù)據(jù)包由于經(jīng)過(guò)了網(wǎng)絡(luò),不可避免地會(huì)引入延時(shí),且數(shù)據(jù)包之間的延時(shí)是不確定的,甚至?xí)a(chǎn)生數(shù)據(jù)包的丟失。這些都需要在接收端予以考慮,增加了接收端數(shù)據(jù)緩沖控制單元的復(fù)雜度。

為了解決數(shù)據(jù)包到達(dá)延時(shí)及抖動(dòng)問(wèn)題(數(shù)據(jù)包的丟失將間接導(dǎo)致延時(shí)的增加),可以簡(jiǎn)單地靠增大FIFO容量解決。但增大FIFO將意味著從編碼器到解碼器之間延時(shí)的增加,影響了實(shí)時(shí)性。因此,為了保證一定的實(shí)時(shí)性,同時(shí)考慮成本因素,不能單純靠增大FIFO解決。

由于FIFO容量的限制,在出現(xiàn)大延時(shí)的情況下,F(xiàn)IFO將可能出現(xiàn)“空”狀態(tài)。這意味著送給解碼器的數(shù)據(jù)流會(huì)有中斷,從而可能導(dǎo)致解碼器的不正常工作并可能不能恢復(fù)(在數(shù)據(jù)流恢復(fù)正常后)。為此,需要在FIFO出現(xiàn)“空”狀態(tài)之前,即處于“饑餓”狀態(tài)時(shí)(可以設(shè)置一個(gè)閾值),由CPLD停止向FIFO讀數(shù)據(jù)而向解碼器發(fā)填充包。填充包中含有同步頭,可以維持解碼器的同步。短時(shí)間的插空包會(huì)使視頻圖像出現(xiàn)馬賽克,如果時(shí)間過(guò)長(zhǎng),可能會(huì)出現(xiàn)黑屏。在實(shí)際試驗(yàn)中,接收端視頻的質(zhì)量與網(wǎng)絡(luò)的負(fù)載情況有關(guān)。當(dāng)網(wǎng)絡(luò)負(fù)載較重時(shí),圖像會(huì)出現(xiàn)馬賽克,黑屏現(xiàn)象一般極少發(fā)生。

2.3 驅(qū)動(dòng)程序

為了使μClinux下的應(yīng)用程序能通過(guò)外部總線訪問(wèn)FIFO,需要編寫(xiě)相應(yīng)的驅(qū)動(dòng)程序。驅(qū)動(dòng)程序主要包括三個(gè)基本部分,即CPU相關(guān)寄存器的初始化設(shè)置以及CPU對(duì)外部I/O口的讀操作和寫(xiě)操作。其中,初始化設(shè)置主要包括中斷號(hào)及其類(lèi)型設(shè)置、外部I/O口數(shù)據(jù)位寬度和讀寫(xiě)時(shí)序設(shè)置等。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉