DSP嵌入式視頻監測
系統的軟件部分包括三部分,嵌入式uClinux(操作系統,圖像傳感器0V7660和網絡控制器CS8911A的驅動程序,系統的應用程序。
2.1 嵌入式uClinux操作系統
本系統采用開源、可剪裁、安全性和實時性好的嵌入式uClinux操作系統作為軟件開發平臺,保證了系統的穩定性和數據的快速準確傳輸,并提供了完善的網絡支持。uClinux并為應用程序的設計提供了眾多API接口函數,方便了編程實現過程。
嵌入式uClinux系統是由Boot Loader引導程序、系統內核、根文件系統組成。軟件交叉編譯環境為Windows系統下的coLinux,該操作環境具有模擬uClinux操作系統的功能,在擁有colinux環境的基礎上,選擇合適的開發工具可以加快開發速度,節省開發成本。軟件編程語言為標準C語言,具有良好的可移植性。
2.2 OV7660和CS8911A驅動程序
Blackfin533 uClinux kernel中帶有一些硬件驅動模塊,縮短了開發周期。系統上電后,將自動檢測視頻設備OV7660,視頻設備被檢測到后,將自動調用在配置內核時已經加載到uClinux中的OV7660的驅動程序模塊PPI_ov7660。
圖像數據的網絡傳輸在Linux的平臺上采用服務器/客戶端模型,網絡控制器CS8911A的驅動程序因為已經很成熟了并且對外公開,直接采用了開發好并已經移植到uClinux內核中的設備驅動程序。
2.3 系統應用軟件設計
本系統的應用軟件設計分為圖像采集設備初始化、數據格式轉化和圖像的捕捉三部分。視頻圖像采集的程序流程圖如圖3。
對于uClinux操作系統,它將設備看作文件,因此,想對設備進行讀寫等操作,應首先打開設備,完成操作后再關閉設備。設備文件的初始化主要針對PPI的/dev/ppifcd設備。本系統可以從4個步驟進行。
(1)打開視頻設備 利用open()函數實現打開PPI視頻設備。
fd_ppi=open(“/dev/ppifcd”,O_RDWR)
fd_ppi為設備文件描述符。
(2)獲取設備信息 利用相應的ioctl()函數取得設備文件的相關信息,包含設備的基本信息參數(設備名稱、支持的最大最小分辨率、信號源信息等);
ioctl(fd_ppi,CMD_PPI_GET_VIDEOIN,&video_in)
(3)獲取影像信息 利用相應的ioctl()函數取得影像支持信息,包含設備采集圖像的各種屬性參數(色調、亮度、飽和度、對比度、色相等);
ioctl(fd_ppi,CMD_PPI_SET_0V7660,&pictures)
(4)關閉視頻設備利用close()函數關閉PPI視頻設備。
if(fd_ppi)close(fd_ppi);
2.3.2 數據格式的轉化
本系統開始采集攝像頭數據,將數據轉化為YUV420格式,在PC上顯示的時候采用的是RGB565格式,因此在采集完畢之后必須進行圖像數據的格式轉換。
RGB與YUV之間可以相互轉化,對應關系如下:

其反變化公式如下

根據上述關系可以通過編程實現數據格式的轉化。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論