• 沒有找到結果。

第三章 嵌入式影像系統之硬體實作

3.4 外部儲存連接介面(External Memory Interface,EMIF)

3.4.2 Flash

NOR 和 NAND 是目前兩種主要的儲存技術方式。Intel 起先開發出 NOR Flash 技術,更變了 EPROM 和 EEPROM 獨佔的情形。接著不久,東芝開發出 NAND Flash 的結構,強調減少了每儲存 1 bit 的成本,並且可以透過外部連接介面增加或替 換儲存設備。

因大多數情況下 Flash 只是用來存儲少量的檔案,這時 NOR 比 NAND 適合。

NAND 是儲存大量數據資料的解決方式其中之一;NOR 的特點是可在晶片內執行 (XIP, eXecute In Place),程式可以直接在 Flash 裡運行,不必再把所需要的 資料讀取到 RAM 中,且 NOR 在儲存空間不需要太大時有很高的成本效益,但很慢 的寫入和清除速度大大影響了它的性能。考量到此系統當中所使用的儲存裝置只 需要儲存 kernel 及 Filesystem、Boot-Loader 及其相關設定檔案,皆是不需要 常常更新的檔案,所以此系統使用的是 NOR Flash。

考量到需要 NOR Flash 存放 U-Boot 以及環境變數的儲存,所選的是

S29GL128P[11]當作 Flash 記憶體,此元件的存取速度並不用要求太快,因為只 負責儲存更新速度不是太快的資料,Kernel & Filesystem 就是一個典型的範例。

在此設計介面底下,可以用來進行存放及掛載 Kernel 及 Filesystem 的動作。下 圖為參考記憶體與 DM368 之晶片資料後的連結方式之一

在此系統當中類比及數位影像兩者皆可當作輸入;DM368 的影像輸出格式是兩種 皆備,故使用 USB 連結當作數位輸出,

3.5.1 數位影像輸入

此系統中,考慮的是 HD 高清攝影機,為 DM368 原有之功能模組,也考量到 HD 攝影機的模組光學研究並不是主要的研究部分,加上模組已有小體積的出現,

且取得方式並不困難,故數位影像直接使用現成的模組,型號為 LI-5M04CM,模 組輸出的格式為 YCbCr -16bits,把 DM368 YCbCr 同是 16bits 的 4:2:2 介面互 相對應,連結到外部的模組接頭上,利用此接頭與攝影機模組接合,即完成數位 影像的輸入端子部分。下圖當中為此設計的外部接頭示意圖

上圖之 CMOS_D0~CMOS_D7 分別為 DM368 的 CIN0~CIN7,CMOS_D8~CMOS_D11 及 CCD-DATA0~CCD-DATA3 分別為 DM368 的 YIN0~YIN7

3.5.2 類比影像輸入

由前項提及的DM368輸入影像格式雖然支援數位影像格式,但因考慮到如果 直接使用此項,在韌體控制層會複雜許多,因此使用額外的ADC晶片做轉換處理 的動作,從DM368所支援的輸入影像格式其中一項為8-bit YCbCr數位影像輸入格 式去尋找適合的ADC晶片,交叉比對後發現是互相吻合的,故選擇了ADV7180[12]

圖 3- 9 數位影像的輸入端子

為處理類比轉數位影像的晶片,該晶片的功能流程如下

因ADV7180的LLC時脈,必須與DM368的時脈為一致,所以把兩者的時脈相連 接,並且接上一個控制SW的IC,從ADV7180輸出的P0~P7、HS、VS有關數位影像 的輸出皆以相同的方式接上控制SW的IC,最後才接到DM368的輸入數位影像端,

以下為此提到的連接方式之示意圖:

圖 3- 10 處理類比轉數位影像的晶片[12]

3.5.3 類比影像輸出

影像輸出部分,DM368支援兩種類比格式,一種為Composite Video輸出,另 外一種則為YCbCr色差端子輸出,D1畫質(720x480)以下可直接使用Composite Video作為類比影像輸出端子;若解析度需要為720i以上,才需要使用到YCbCr 色差端子作為類比影像的輸出部分。

此系統設計只支援D1畫質的輸出,因此介紹的方式為DM368使用Composite Video作為輸出。下圖為DM368 Composite Video作為類比影像輸出端子的示範接 法

特別一提的是,1.8V及1.2V的部分也加入了穩壓IC,VREF的部分也放入了 1.8V的參考電壓值,並且把影像的地線以及電源的地線作區別,並且用0ohm的電 阻作為阻隔,防止互相干擾彼此的電壓準位。使用0ohm電阻的理由是,無阻抗但 是擁有電阻的阻隔特性,0ohm相當於很窄的電流通路,能夠限制環路電流,得到 抑制。

3.5.4 UART

UART 是一種通用串列資料的匯流排,用於非同步通信。此匯流排雙向通信,

可以實現全雙工傳輸和接收。微處理器把準備輸出資料放到 UART 的暫存器中,

圖 3- 12 DM368 Composite Video 作為類比影像輸出端子的連接方法之一

再通過 FIFO,如果沒有 FIFO,資料就無法順利存取。在此設計中,UART 用來與 個人電腦通訊,用於控制個人電腦與系統的晶片,UART 處理從滑鼠及鍵盤發出 的訊號(滑鼠及鍵盤是串列設備),可以處理電腦與外部串列設備的同步管理問 題。DM368 也包含了 UART 功能,在此系統中,由於 DM368 輸出的電壓準位為正 負 3V,必須透過額外的驅動晶片把電壓準位拉拔至 RS232 介面所需要的電壓準 位,並把 RS232 送出的訊號轉換至 TTL 的電壓準位,接著把 DM368 的 TX、RX 端 透過驅動晶片連結到外部的接頭,並且在外部接頭的外殼部分安插上了穩定訊號 之的設計,如下圖表示

UART0 TXD 及 UART0 RXD 分別為 DM368 的 TX、RX 拉出至驅動晶片,並且由 驅動晶片端輸出準位處連接到外部接頭,並加上 R103、R104 的小電阻抗雜訊,

C110 為外殼的穩定訊號之電容

圖 3- 13 RS232 外部連結裝置

3.6 電路圖設計完成後續步驟

考量面積必須小,元件功率相對低,因此Surface Mount Technology (SMT) 的相關元件,為大多數採用的元件類型,同一類型的晶片使用不同的外包裝,面 積甚至差異10倍,下圖為DIP包裝以及SOP包裝的實體圖

挑選元件需要靠的是經驗累積,一樣功能的晶片在不同廠商來說,接腳不一定相

3.6.2 電路邏輯設計之製作

電路設計的部分完成後,為了確保腳位是否對應、是否重複、元件跨頁連接 時是否無誤、是否誤值數字等等一些人為因素,以利後續的電子化製作,比喻為

「Compile」的動作,確實的完成此項動作後才可以進行佈局、洗板、上件等等 的動作。

佈局首要步驟,參考各個元件晶片資訊,並把每個元件確切的尺寸使用 PowerPCB描繪出來,並且把元件擺放於希望的位置,所要注意的是,外部接頭與 相關晶片盡可能的擺放在一起,以降低布局走線時的彼此間訊號干擾,此階段描 繪出來的樣式,即是最後成品的樣式,此系統的「元件佈局」如下圖所示

圖3- 15 正面及反面最後成品的樣式圖

圖3- 16 洗板後的裸板正面及反面

圖 3- 17 上件完成正面及反面

第四章 嵌入式影像系統之應用軟體實作

在此章節當中,將介紹如何使韌體控制硬體,並且使用 DM368 之影像處理子 系統組合成易於軟體開發者之子程式,並且盡可能的符合 RTOS,並且列出使用 於嵌入式影像平台演算法,在最後利用上述之修改之韌體相互連結組合成應用程 式-「電子牆」。

4.1 韌體架構

此節介紹系統中使用的周邊驅動韌體。硬體設施完成後,啟用硬體所支援的 架構,在 OS 系統中大多都會透過韌體層作為硬體層與應用軟體層中間的溝通媒 介,此系統也是使用相同的概念。

4.1.1 韌體架構簡介

韌體所使用的為Leopard Imaging Inc所使用的Embedded Camera Dev Kit (ECDK) [13]作為基底,藉由這些基底來發揮DM368晶片中的部分特性,實現影像 前處理的部分功能,以利達成RTOS的精神。

此系統中,修改ECDK成為一個利於使用者及應體層接合的應用程式,可以讓 使用者自行操作影像的訊號相關處理,以及實現DM368中的硬體演算法。整合的 系統中,允許使用者修改此韌體內的參數及確切想要的方式。

下圖為此系統修改後的韌體層之功能結構圖

應用範圍僅只於Algorithm Libaries層以及Wrapper Libaries層,接著下來 , 單利用韌體其實並不夠連結硬體,還有最底層喚醒硬體周邊,控制著是否要發送 訊號、開關控制等等的周邊控制—OS作業系統。

4.1.2 Boot-Loader

硬體開始運作後,微處理器並不知道要從何處開始運行OS,從Flash、UART、

SD卡等等裝置皆可以當作開機位置,進而發展一套想法,首先微處理器讀取的皆 是Boot-Loader,接者從Boot-Loader當中的設定環境執行OS、查看硬體裝置、管 理運行開機部分等等,這是一種典型的作法,彈性也很大,從Flash內載入OS到 從網路載入OS皆可完成,也就是說上電後最先讀取的是「主要載入程式」,在由 此項管理轉向各個OS的Booting位置又或者是直接轉項OS的開機位置,下圖為 Boot-Loader的常見之功能用解釋。

Flash內的資料並不會因為電力消失而遺失,因此是此系統Boot-Loader的存 放位置,燒入環境為TI的開發環境平台- CCStudio v3.3,值得一提的是,在此 是使用DM365[14]的工具燒入DM368,原因在於目前DM365與DM368分別是前後代的 產品,DM368僅有部分功能加強(如1080p H.264影像編碼),故Boot-Loader之程 式及其工具使用DM365即可。

圖 4- 2 載入 U-boot 的流程

當 Boot-Loader 燒入成功後,啟動的部分便是 OS 了,在 OS 下控制的就是硬 體的許多控制,藉由這些控制階段,便可以達到開發者所希望的動作。

開機後Boot-Loader把Booting位置指向Kernel,接著 Kernel啟動周邊設備並 且連結上Filesystem即完成Booting動作,後續的處理就屬於「應用軟體層面」, 下圖表示Booting後並且掛載上Filesystem後,並且執行程式的畫面

Software System

Boot-Loader

Kernel

&

Filesystem Processing

圖4- 3 DM368燒入Boot-Loader過程畫面

圖 4- 4 掛載 OS 系統之軟體層架構

4.2 系統中使用硬體演算法

Task 輸入端所有的資料,都統稱叫做「Capture Stream」,也就是影像捕捉串流,

處理尚未壓縮過的影像資料;在編碼 Task 中的資料到串流 Task 端所有的資料,

這段流程內的影像訊號都統稱叫做「Encode Stream」,也就是經過各個影像格式 的編碼後,處理已經壓縮過的影像資料。

正常的狀況下,此套韌體最多可支援 4 組「Capture Stream」及「Encode Stream」,也意味著,在微處理器運算能力負載內,並且透過適當的配置,相當 等於四台獨立的影像處理系統,也同時在「Capture Stream」及「Encode Stream」

的關係中,不必一對一的對應關係,不過在此系統只使用了一組「Capture Stream」

及「Encode Stream」的串流。

影像資訊從 IPIPE(Image PIPE) [15]進入系統後,隨著 Stream 至第一層,

做了 VS(Video Stabilization) [15]、H3A(Auto White Balance、Auto Exposure、

Auto Focus) [15]及 LDC(Lens Distortion Correction) [15] 這些使影像穩定 的前處理之 Task 後,進入下一層實行 OSD(On Screen Display)功能,作為標記、

顯示各種資料之用,接著最後使用所需要的影像編碼格式,作為傳輸或是儲存資

顯示各種資料之用,接著最後使用所需要的影像編碼格式,作為傳輸或是儲存資

相關文件