【正文】
1 的音頻輸出。當(dāng)需要顯示下一幅圖片時(shí),只需要修改 SSA 即可。 W I G G L EnT R S TT D IT M ST C KT D OnR E S E TR 3 0 1 1KR 3 0 21KR P 3 0 1 10KnT R S TT C KT M ST D InT R S TV D D 33 圖 JTAG調(diào)試接口 24 視頻采集電路 USB 接口電路: USB 模塊集成在 S3C2440 芯片中,所以使用 2440 時(shí),可以直接調(diào)用其中的USB 模塊,外圍電路上有一個(gè) 和 DEVICE 接口, USB 接口電路如下: V B U S1D2D+3GND4S111S212C O N 50 1AU S B _H O S TV B U S5D6D+7GND8S19S210C O N 50 1BU S B _H O S TR50415KR50315KR 50 1 22RR 50 2 22RV D D 50D P 0DN0R50815KR50715KR 50 5 22RR 50 6 22RV D D 50D P 1_ HD N 1_ H 圖 USB接口 電路 OV511 攝像頭: 筆者是利用 OV511 標(biāo)準(zhǔn) USB 接口連接 S3C2440 的外圍電路,連接起來(lái)比較方便, S3C2440 支持熱插拔?;?2440 的 JTAG 調(diào)試電路如圖 所示。 JTAG 基本原理是在器件內(nèi)部定義一個(gè) TAP(Test Access Port,測(cè)試訪問(wèn)端口 ),通過(guò)專用的 JTAG 測(cè)試工具對(duì)進(jìn)行內(nèi)部進(jìn)行測(cè)試。 X T Ir t cX T Or t cX112MX T OpllX T IpllC422PC122PC322PC222PX2 圖 晶振電路 3. 復(fù)位電路 2440 需要穩(wěn)定和精確的復(fù)位信號(hào),故通過(guò)外接 MAX8115 復(fù)位芯片提供準(zhǔn)確的 電壓、 100uA 靜態(tài)電流、 200ms 時(shí)間延遲的復(fù)位信號(hào)。 21 圖 IP可視電話硬件總體架構(gòu) 硬件詳細(xì)設(shè)計(jì) 硬件平臺(tái)詳細(xì)設(shè)計(jì)包括 2440 最小系統(tǒng)電路和相關(guān)的外圍模塊電路的設(shè)計(jì),外圍電路主要包括攝像頭采集電路、 LCD 接口電路、語(yǔ)音采集和播放電路、以太網(wǎng)接口電路和 UART 接口電路。 (5) LCD 接口連接 LCD 顯示器,用于視頻的顯示。 基于 S3C2440 芯片的外圍接口,設(shè)計(jì)了可視 IP 電話終端的硬件系統(tǒng)總體結(jié)構(gòu)圖,如圖 所示,包括如下幾個(gè)部分: (1) USB 讀取 CMOS 攝像頭圖像幀, I2C 控制攝 像頭工作,實(shí)現(xiàn)視頻采集功能。目前,全世界有幾十家著名的半導(dǎo)體公司使用 ARM 公司的授權(quán),既使 ARM 技術(shù)獲得更多的第三方工具、制造、軟件的支持,又使整個(gè)系統(tǒng)成本降低,使產(chǎn)品更容易進(jìn)入市場(chǎng)并被消費(fèi)者所接受。命令格式如下: – 配置參數(shù) ./rootfs o 3) 修改內(nèi)核啟動(dòng)參數(shù) 通過(guò)內(nèi)核配置菜單 Boot options 選項(xiàng)修改內(nèi)核啟動(dòng)參數(shù)為從 NAND Flash 第 3 個(gè)分區(qū)掛載根文件系統(tǒng) ,修改后的內(nèi)容如下: CONFIG_COMLINE= “ noinitrd console=ttymxc0,115200 root=/dev/mtdblock3 rw rootfstype=jffs2 mem128M” 18 第三章 S3C2440 的 IP 可視電話硬件設(shè)計(jì) 硬件是整個(gè)系統(tǒng)的物理基礎(chǔ),為軟件的運(yùn)行提供了平臺(tái)。 然后,將適當(dāng)?shù)膬?nèi)容復(fù)制到各個(gè)子目錄中, /lib 目錄下要復(fù)制 glic 庫(kù)文件; /dev 目錄下要建立系統(tǒng)中所有的設(shè)備文件; /etc 目錄下建立相關(guān)的系統(tǒng)啟 17 動(dòng)配置文件。 1) 根文件系統(tǒng)的位置 當(dāng)目標(biāo)板上開(kāi)始運(yùn)行 Linux 之后,可以在串口超級(jí)終端中輸 cat/proc/mtd 16 命令查看當(dāng)前 Linux 內(nèi)核所在的存儲(chǔ)器的文件系統(tǒng),命令執(zhí)行結(jié)果如下: EmbedSky cat /proc/mtd dev: size erasesize name mtd0: 00020200 00020200 IPLSPL mtd1: 00400000 00020200 mtd2: 03b00000 00020200 mtd3: 0c0e0000 00020200 通過(guò)命令的執(zhí)行結(jié)果可以看出該目標(biāo)板的存儲(chǔ)器上一共有四個(gè)分區(qū), 分別為: (1) IPLSPL: IPLSPL 是 Freescale 開(kāi)發(fā)的一種 Bootloader; (2) : Linux 內(nèi)核; (3) :根文件系統(tǒng); (4) :用戶空間,可以存放其他數(shù)據(jù)。 15 圖 Linux 內(nèi)核配置界面 2) 內(nèi)核編譯 筆者使用的內(nèi)核版本是 , makefile 功能已經(jīng)足夠智能,只需要簡(jiǎn)單執(zhí)行 make 命令就可以生成內(nèi)核的 zImage 文件和可加載驅(qū)動(dòng)模塊。 Linux 內(nèi)核具有很強(qiáng)的平臺(tái)獨(dú)立性,可以被很容易地移植到不同的硬件平臺(tái)上,支持絕大多數(shù)硬件平臺(tái)。常見(jiàn)的 Bootloader 有 UBoot、 RedBoot 和 ARMBoot 等,這些 Bootloader 具有較強(qiáng)的可移植性, 14 支持很多硬件平臺(tái)。從主機(jī)下載的文件會(huì)被 Bootloader 寫(xiě)入到目標(biāo)機(jī)的非易失性存儲(chǔ)器中,該模式通常會(huì)給用戶提供一個(gè)簡(jiǎn)單的命令行接口,用于產(chǎn)品開(kāi)發(fā)階段。而 Stage2 通常用 C 語(yǔ)言來(lái)實(shí)現(xiàn),可以實(shí)現(xiàn)復(fù)雜的功能且具有很好的可讀性和移植性。 (4) 編譯安裝完整的 gcc:由于在第 2 步生成的 armlinuxgcc 是沒(méi)有g(shù)libc 的支持下完成的,所以缺少了很多功能,故當(dāng)?shù)?3 步建立完 glibc 之后,可以編譯生成完的 armlinuxgcc。手工建立交叉編譯工具鏈?zhǔn)且粋€(gè)相當(dāng)復(fù)雜的過(guò)程,不過(guò)現(xiàn)在很多平臺(tái)都有現(xiàn)成的工具鏈可以直接使用。 構(gòu)建嵌入式 Linux 系統(tǒng)的步驟 構(gòu)建嵌入式 Linux 系統(tǒng)的目的是給上層應(yīng)用程序的開(kāi)發(fā)搭建了一個(gè)平臺(tái) ,具體步驟包括交叉編譯工具鏈的配置、 Bootloader 的移植、 Linux 內(nèi)核移植和根文件系統(tǒng)的制作,下面分別加以闡述。 11 圖 嵌入式 Linux的軟件結(jié)構(gòu) 嵌入式 Linux 的軟件開(kāi)發(fā)模式 在沒(méi)有操作系統(tǒng)的嵌入式開(kāi)發(fā)中,一般的開(kāi)發(fā)模式是在一臺(tái)稱為宿主機(jī)的PC 上通過(guò)交叉編譯器編譯出目標(biāo)板平臺(tái)的可執(zhí)行程序,然后通過(guò)寫(xiě)入器寫(xiě)入到目標(biāo)板執(zhí)行。 (4) 基于 Linux 平臺(tái)的大量免費(fèi)開(kāi)源軟件 ,可以被移植到嵌入式系統(tǒng)中,大大加快了新項(xiàng)目的開(kāi)發(fā)進(jìn)度。這一特點(diǎn),正好能適用于存儲(chǔ)資源有限的嵌入式系統(tǒng)中。 構(gòu)建嵌入式 Linux 系統(tǒng) 操作系統(tǒng)是一組計(jì)算機(jī)程 序的集合,用來(lái)有效地控制和管理計(jì)算機(jī)的硬件和軟件資源,它合理的對(duì)資源進(jìn)行調(diào)度,為用戶提供方便的應(yīng)用接口,為應(yīng)用軟件 10 提供運(yùn)行環(huán)境。 ( 5) UDP 使用 盡最大能力交付 ,即不保證可靠交付,因此主機(jī)不需要維持復(fù)雜的鏈接狀態(tài)表(這里面有許多參數(shù))。在發(fā)送端, UDP 傳送數(shù)據(jù)的速度僅僅是受應(yīng)用程序生成數(shù)據(jù)的速度、計(jì)算機(jī)的能力和傳輸帶寬的限制;在接收端, UDP 把每個(gè)消息段放在隊(duì)列中,應(yīng)用程序每次從隊(duì)列中讀一個(gè)消息段。在進(jìn)入 2020 年后,具有足夠能力處理 的具有經(jīng)濟(jì)成本效益的處理器將很常見(jiàn)。 圖 可視電話體系結(jié)構(gòu) 當(dāng)今應(yīng)用處理器的處理能力的增加使得我們能使用先進(jìn)的操作系統(tǒng)環(huán)境,例如嵌入式 Linux 來(lái)有效地將 V2IP 系統(tǒng)中需要的控制和媒體處理進(jìn)行劃分。 8 第二章 總體設(shè)計(jì)方案及相關(guān)技術(shù)概要 IP 可視電話的體系結(jié)構(gòu) 自從第一代的 IP 可視電話推出以來(lái),通用應(yīng)用處理器的處理能力已經(jīng)提高到能將所有通常用 DSP 實(shí)現(xiàn)的語(yǔ)音處理器任務(wù)由應(yīng)用處理器實(shí)現(xiàn)。 第三章首先給出了硬件平臺(tái)的總體設(shè)計(jì)和芯片的選型,接下來(lái)詳細(xì)闡述了S3C2440 芯片以及各個(gè)功能模塊的硬件原理圖,最后結(jié)合硬件測(cè)試過(guò)程給出了Bootloader 和 Linux 內(nèi)核的移植方法。 3)可擴(kuò)展的處理器結(jié)構(gòu),以能最迅速地開(kāi)發(fā)出滿足應(yīng)用的最高性能的嵌入式微處理器。 嵌入式系統(tǒng)的核心是嵌入式微處理器。 基于上述 IP可視電話架構(gòu)的分析,我選擇的是三星公司可視電話 成熟方案,選擇三星公司生產(chǎn)的 S3C2440 作為主控芯片,外部連接鍵盤(pán),麥克風(fēng),喇叭,以太網(wǎng)接口, 寸的 LCD 顯示器,再外連 OV511 攝像頭,這樣形成一個(gè)大體的意向框架,能有力地促進(jìn)下一步硬件環(huán)境的測(cè)試與軟件架構(gòu)的搭建。 ketlx 預(yù)覽版。 鍵盤(pán)音 頻 編 解 碼 器應(yīng) 用 處 理 器以 太 網(wǎng) 接 口麥 克 風(fēng) 喇 叭視 頻 加 速處 理L C D 顯 示 器攝 像 頭 圖 嵌入式可視 IP 電話終端結(jié)構(gòu)圖 終端之間的通信過(guò)程如下:首先是發(fā)送方通過(guò) 鍵盤(pán)輸入適當(dāng)?shù)暮艚忻?,處理單元通過(guò)運(yùn)行呼叫信令協(xié)議和響應(yīng)者建立連接;連接建立后,發(fā)起方和接收方把各自的麥克風(fēng)和攝像頭捕獲的音視頻數(shù)據(jù)壓縮處理后通過(guò)網(wǎng)絡(luò)發(fā)送到對(duì)方,同時(shí)也將對(duì)方發(fā)送過(guò)來(lái)的音視頻數(shù)據(jù)解碼后播放與顯示。 系統(tǒng)設(shè)計(jì)思路 5 可視 IP電話技術(shù)是指在發(fā)送方將音視頻數(shù)據(jù)編碼和打包處理,通過(guò) IP 網(wǎng)絡(luò)進(jìn)行傳輸,然后在接收方還原出音視頻的一種技術(shù),嵌入式可視 IP 電話終端則同時(shí)擔(dān)當(dāng)了其中發(fā)送方和接收方的角色,需要完成音視頻采集、編碼、通過(guò) IP網(wǎng)絡(luò)發(fā)送、顯示視頻和播放語(yǔ)音等的功能。 協(xié)議標(biāo)準(zhǔn)不統(tǒng)一,影響市場(chǎng)推廣。 編解碼芯片技術(shù)是可視電話發(fā)展的關(guān)鍵,沒(méi)有核心編解碼芯片,可視電話只能是無(wú)源之水、無(wú)本之木。 早在上個(gè)世紀(jì)五六十年代就有人提出可視電話的概念,認(rèn)為應(yīng)該利用電話線傳輸語(yǔ)音的同時(shí)傳輸圖像。 In software implement, with porting the Linux kernel to the bottom level, using the Semaphore mechanism to effectively solve multichannel video codec. Meets the telephone terminal’s requirement of video encoding and decoding at the same time. by drawing Linux39。 本文首先概述了可視 IP 電話技術(shù)的發(fā)展歷史并通過(guò)對(duì)當(dāng)前市場(chǎng)上同類(lèi)產(chǎn)品發(fā)展現(xiàn)狀的分析,指出了這些產(chǎn)品具有硬件設(shè)計(jì)復(fù)雜、圖像分辨率低、占用帶寬過(guò)大和價(jià)格過(guò)高等特點(diǎn),闡明了設(shè)計(jì)和實(shí)現(xiàn)一款高性能和低成本的 嵌入式可視IP 電話終端的意義,提出了以 ARM 多媒體處理器 S3C2440 作為主控芯片的單芯片設(shè)計(jì)方案并研究了該方案的軟硬件實(shí)現(xiàn)方法,最后初步完成了可視 IP 電話在局域網(wǎng)內(nèi)部視頻通信。早期的可視電話基于公共電話交換網(wǎng),但由于傳輸速率不能滿足高性能視頻通信的要求,已經(jīng)逐步退出了歷史舞臺(tái) 。 In software design, using of the hierarchical design method of “top down, and gradually refining” to dividing the software into applicationlayer, middleware, and the bottom level, so the software will have a strong transplantation and scalability, can be used in the same product’s development and Video IP Phone’s secondary development。很少有用戶終端經(jīng)過(guò)幾十年的研制和發(fā)展仍基本停留在書(shū)本上,未能獲得大規(guī)模應(yīng)用,而可視電話恰恰就處于這不幸的行列。直到 80 年代后期,隨著芯片技術(shù)、傳輸技術(shù)、 數(shù)字通信 、視頻編解碼技術(shù)和集成電路技術(shù)不斷發(fā)展并日趨成熟,適合商用和民用的可視電話才得以浮出水面,走向人們的視野。傳統(tǒng)的電話線是普通的雙絞線,主要用來(lái)傳輸語(yǔ)音,視音頻同時(shí)傳輸時(shí),其傳輸速率僅能達(dá)到 ,所以在普通電話線的支持下,不能傳輸清晰連貫的圖像。 正因?yàn)榧夹g(shù)、線路和行業(yè)管理 等方面存在問(wèn)題,所以造成了可視電話幾十年仍遠(yuǎn)離用戶,市場(chǎng)沒(méi)有起色。麥克風(fēng)和喇叭用于音頻數(shù)據(jù)的捕獲和播放、顯示器和攝像頭用于視頻數(shù)據(jù)的捕獲和顯示、而鍵盤(pán)則主要用于用戶輸入各種呼叫和控制命令。博利思軟件公司在這方面做了一些有益的嘗試,并于最近推出了一個(gè)嵌入式 Linux 操作系統(tǒng) Po。與傳統(tǒng)的嵌入式系統(tǒng)相比, PooketIX采用標(biāo)準(zhǔn)的 Linux 結(jié)構(gòu),所有運(yùn)行在標(biāo)準(zhǔn) Limix