第二章 TSSA 模組架構
2.1 模組架構
模組 ( Component ) 是一個具備某種特定功能的影像處理單元,例如影像擷取、影 像編碼、影像解碼、影像輸出……等,依據影像資料處理的類型來分成多個各具功能的 模組。由於在 TSSA 系統上支援多重程序執行 ( Multitasking ) 的作業方式,因此每個影 像處理模組都具備自己的執行緒 ( thread,在程式中稱之為 task ),而這些具備執行緒的 模組在 TSSA 架構上又稱為 Active Component,系統在執行上會依照各模組所設定的優 先順序來進行控制權的轉換。
其中模組在架構上會具備兩大資料結構 Capabilities 以及 Instance,各模組的特性則 會藉由在這兩個資料結構上不同的設定值來描述;同時在模組上還必須具備相關的執行 函式,來設定或運算資料結構的內容,因此在模組中依據執行的內容來區分並定義了以 下八個函式:GetCapabilities( )、Open( )、GetInstanceSetup( )、InstanceSetup( )、Start( )、
InstanceConfig( )、Stop( )、Close( ),函式詳細的執行內容會在 2.3 節中做介紹。而在 TSSA 的架構上,具備一組操作所有模組的核心程式稱為 Default 層函式,各模組會以上述所 提及的八個函式做為模組的操作介面,來與 Default 層連結。為了讓程式在操作上能夠 更有系統,在模組上定義了兩層介面函式,分別提供給應用程式以及 Default 層函式來 連結,其中提供給應用程式操作的介面函式稱為 OL 層( Operation Layer )函式,提供給 Default 層操作的介面函式稱為 AL 層( Abstraction Layer )函式,層次之間的結構關係如 圖 2.1 所示。
4
接下來就以模組函式在收到應用程式傳入參數後所執行的程序,來探討模組的運作 流程,以及各層面的函式在模組運作上所執行的內容。首先在應用程式上,若要對模組 進行資料結構的設定或函式的操作時,就會將參數傳入模組所提供的 OL 層介面函式上,
交由各模組來進行處理。而在模組 OL 層上的函式通常不具備資料運算或處理的功能,
主要是做為模組在應用程式與 Default 層系統函式之間的溝通介面,模組實際處理影像 資料的部分會寫在 AL 層的函式裡。因此當模組 OL 層上的函式收到應用程式傳入的參 數時,就會接著將這些傳入的指標或設定值傳入 Default 層中,同時也會把該模組於 AL 層上的影像處理函式指標一併傳入,交由 Default 層函式來做一些預設的執行程序,例 如資料結構的初始值設定,並提供了 AL 層的介面函式位址來給 Default 層操作。
Default 層管理了在應用程式中使用到的所有模組,包括影像處理模組以及傳輸模組,
同時也定義了所有模組在運作上皆會使用到的資料結構以及函式,讓模組能夠以這些預 設好的資料結構或函式來設定參數,並提供模組在執行上一套固定的流程。因此當 Default 層在收到由模組 OL 層傳入的資料後,Default 層上的相關函式則會針對傳入的 指令來判斷所要執行的內容,若所要執行的內容是模組中特定的處理程序,則會利用 OL 層所提供的 AL 層函式位址,連結到模組 AL 層的函式上,來取得相關的資料結構設 定以及處理函式。
圖 2.1 模組的分層結構 Application 應用程式
Hardware 硬體層
Multitasking OS Device Layer Board Support Layer
軟體層
Operating Layer (OL)
Abstraction Layer (AL) OS Abstraction Layer Default Layer
5
而模組的 AL 層又可稱為訊號處理層( Signal Processing Layer ),是存放模組特定資 料結構的設定值以及影像處理函式所在的層面。模組中的 AL 層是一個純粹的影像處理
Task-ISR 同步機制、傳輸序列( Queue )、計時器、Interrupts 的順序、Semaphores、
Mutexes……等。
Default Layer Function Component
6
四章裡繼續討論。