基於S3C2440的USB攝像頭應用簡單實現之應用層框架(一)

目的:在嵌入式系統中,視頻採集主要採用兩種接口:一種是標準攝像頭接口,一種是USB接口(USB1.1)。標準的攝像頭接口,接口複雜,但傳輸速度快,適合高質量視頻採集,而USB接口,接口簡單,但有性能瓶頸,只能用於低質量的視頻採集。我採用的是mini2440開發板,內爲S3C2440芯片,S3C2440自帶USB1.1主機接口和CMOS攝像頭標準接口。所以mini2440開發板的兩種視頻採集方式都可以,這裏主要介紹基於USB攝像頭的視頻採集。

設備:
1.筆記本電腦(操作系統:win10)
2.虛擬機(VMware Workstation12 )
3.Linux系統(Fedora24)
4.mini2440開發板
5.USB攝像頭(十幾塊錢的山寨攝像頭,視頻輸出格式爲YUYV,接口爲USB2.0接口兼容USB1.1)

應用層框架解析:

首先由USB攝像頭輸出數據,其格式爲YUYV格式,無法直接顯示在LCD上,需先轉化爲RGB格式。

數據流向圖

因此,應用程序框架應爲(僞代碼):

int main()
{
    1.LCD_DeviceInit();    //LCD初始化
    2.Video_DeviceInit();  //USB攝像頭初始化

    while1)
    { 
        3.Video_GetData();        //獲取USB攝像頭輸出數據
        4.Yuv2RgbConvert();       //將YUYV數據轉換爲RGB格式
        5.LcdSetData2FrameBuf();  //輸入至LCD顯示
    }
    return 0;
}

下一步:解析LCD應如何初始化

發佈了22 篇原創文章 · 獲贊 7 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章