那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創信息技術CSI攝像頭接口及在英創主板上的應用簡介

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2020-02-06 11:13 ? 次閱讀

目前,英創公司在低成本核心板ESM6800的基礎上,推出了支持攝像頭的版本ESM6800V,ESM6800V是在ESM6800H的基礎上,去掉了一路網口和6路擴展串口,增加了一路CSI(COMS Sensor Interface)信號接口。ESM6800V的其它系統及接口配置與ESM6800完全相同。CSI是一個標準的視頻輸出接口,視頻處理芯片可以直接輸出,不需要涉及到USB接口攝像頭所需的視頻壓縮芯片以及USB接口芯片,所以較市面上普通的USB攝像頭來說,CSI接口的攝像頭更便宜,配合ESM6800V形成了一個低成本的圖像應用方案。

ESM6800的內核版本為Linux-4.1.15,同時英創公司在ESM6800上移植了基于xcb(X11)平臺的Qt-5.8.0,關于Qt和X11的介紹,可以參考網站文章《ESM6802 X11桌面圖形系統簡介》。CSI攝像頭選用Omnivision公司130萬像素的ov9652(最高分辨率1280×1024)和500萬像素的ov5640(最高分辨率2560×1920),在ESM6800V的系統中已經集成了這兩款攝像頭的驅動,并且能夠自動識別并加載相應的驅動,加載驅動后會自動生成設備節點:“/dev/video0",應用程序可以操作該設備節點對攝像頭進行圖像的采集和控制。

CSI攝像頭都是用了V4L2驅動提供的標準API來操作的。Video for Linux 2簡稱V4L2,是V4L的改進版。本例中采集的圖像分辨率為640×480,接下來就來介紹一下主要的操作,首先打開設備文件:

int fd;

fd=open("/dev/video0",O_RDWR);

設置視頻的制式和幀格式,制式包括PAL,NTSC,幀的格式個包括寬度和高度等:

/*set the form of camera capture data*/

tv_fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; /*v4l2_buf_typea,camera must use V4L2_BUF_TYPE_VIDEO_CAPTURE*/

tv_fmt.fmt.pix.width = 640; /*設置圖形分辨率,水平:640 像素*/

tv_fmt.fmt.pix.height = 480; /*設置圖形分辨率,垂直:480 像素*/

tv_fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV; /*V4L2_PIX_FMT_YYUV*/

tv_fmt.fmt.pix.field = V4L2_FIELD_NONE; /*V4L2_FIELD_NONE*/

if (ioctl(fd, VIDIOC_S_FMT, &tv_fmt)< 0)

{

fprintf(stderr,"VIDIOC_S_FMT set err ");

exit(-1);

close(fd);

}

向驅動申請幀緩沖,一般不超過五個:

struct v4l2_requestbuffers req;

req.count=2;

req.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;

req.memory=V4L2_MEMORY_MMAP;

//申請幀緩沖

ret=ioctl(fd,VIDIOC_REQBUFS,&req);

if(ret<0)

{

printf("failture VIDIOC_REQBUFS ");

return -1;

}

將申請到的幀緩沖映射到用戶空間,這樣就能夠直接操作幀緩沖了:

for (n_buffers = 0; n_buffers < req.count; ++n_buffers)

{

struct v4l2_buffer buf;

memset(&buf,0,sizeof(buf));

buf.type =V4L2_BUF_TYPE_VIDEO_CAPTURE;

buf.memory =V4L2_MEMORY_MMAP;

buf.index =n_buffers;

// 查詢序號為n_buffers 的緩沖區,得到其起始物理地址和大小

if (-1 == ioctl(fd, VIDIOC_QUERYBUF, &buf))

{

printf("failture VIDIOC_QUERYBUF ");

return -1;

}

buffers[n_buffers].length= buf.length;

// 映射內存

buffers[n_buffers].start=mmap (NULL,buf.length,PROT_READ | PROT_WRITE ,MAP_SHARED,fd, buf.m.offset);

if (MAP_FAILED == buffers[n_buffers].start)

{

printf("failture mmap ");

return -1;

}

}

開始視頻的采集:

type =V4L2_BUF_TYPE_VIDEO_CAPTURE;

ioctl (fd,VIDIOC_STREAMON, &type);

struct v4l2_buffer camera_buf;

CLEAR (camera_buf);

camera_buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;

camera_buf.memory = V4L2_MEMORY_MMAP;

//取出一個緩沖幀

i1 = ioctl (fd, VIDIOC_DQBUF, &usr_buf);

if(i1<0)

{

printf("failture ");

return -1;

}

例程的效果如下:

所以通過這一套通用的V4L2接口來操作攝像頭的工作流程就能夠讀取攝像頭的數據了,基于CSI接口攝像頭,英創公司提供了一套完整的應用方案,有興趣的客戶請點擊下載:《ESM6800V支持CSI接口攝像頭》。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210385
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6086

    瀏覽量

    35611
收藏 人收藏

    評論

    相關推薦

    米爾瑞芯微RK3576實測輕松搞定三屏八攝像頭

    能力和豐富的接口資源,非常適合用于高端顯控系統的開發和優化。 綜上所述,RK3576以其卓越的計算能力、多屏幕支持、強大的視頻編解碼能力和高效的協處理器,多屏多攝像頭應用場景中表現出色。米爾
    發表于 01-17 11:33

    多光譜火焰檢測攝像頭

    隨著工業化進程的加快,火災安全問題日益受到重視。傳統的火焰檢測技術主要依賴于溫度傳感器和煙霧探測器,但這些方法某些情況下存在響應慢、誤報率高等缺陷。為了解決這些問題,多光譜火焰檢測攝像頭應運而生
    的頭像 發表于 12-11 10:50 ?238次閱讀
    多光譜火焰檢測<b class='flag-5'>攝像頭</b>

    飛凌嵌入式-ELFBOARD OV5640攝像頭講解第2期

    CSI_HSYNC、CSI_VSYNC:作為攝像頭的行場掃描模式信號,提供行場信息; IIC_SDA和IIC_SCL:用來配置攝像頭設備
    發表于 12-02 13:35

    攝像頭及紅外成像的基本工作原理

    ,是這樣: ? ? 手機攝像頭設計后的外觀是這樣: ? 紅外攝像頭設計后的外觀是這樣: ? 如何將外界的圖像真實地呈現在芯片? ? ? 對于芯片來說,外界圖像可以按不同區域進行拆解,圖像按區域拆解后是這樣: ? 拆解后的圖片對
    的頭像 發表于 11-25 09:28 ?818次閱讀
    <b class='flag-5'>攝像頭</b>及紅外成像的基本工作原理

    飛凌嵌入式-ELFBOARD OV5640攝像頭簡介第二期

    CSI_HSYNC、CSI_VSYNC:作為攝像頭的行場掃描模式信號,提供行場信息; IIC_SDA和IIC_SCL:用來配置攝像頭設備
    發表于 11-25 08:53

    飛凌嵌入式-ELFBOARD-OV5640攝像頭簡介

    (自動聚焦控制)等功能。如下是OV5640攝像頭的功能框圖: 圖2 OV5640功能框圖 可見其內部結構復雜,我們將重點放在輸出接口上。首先攝像頭采集圖像數據,經過內部一系列的處理(放大、數字信號轉換等
    發表于 11-18 11:14

    飛凌嵌入式-ELFBOARD-OV5640攝像頭簡介第一期

    (自動聚焦控制)等功能。如下是OV5640攝像頭的功能框圖: 圖2 OV5640功能框圖 可見其內部結構復雜,我們將重點放在輸出接口上。首先攝像頭采集圖像數據,經過內部一系列的處理(放大、數字信號轉換等
    發表于 11-18 11:09

    中科達榮獲2024年軟件和信息技術服務優秀企業

    近日,由中國電子信息行業聯合會主辦的第二十六屆中國國際軟件博覽會(簡稱“軟博會”)天津國家會展中心成功舉行。在此次盛會上,中國電子信息行業聯合會發布了“2024年軟件和信息技術服務企
    的頭像 發表于 10-30 11:44 ?557次閱讀

    武漢傳媒學院聯合龍教儀建設DSP教學實驗箱,基于DSP C6000平臺搭建

    首先要使能緩存,接著進行DSP中斷初始化和LCD的初始化,然后初始化配置I2C和OV2640攝像頭,初始化VPIF總線。最后攝像頭采集接收數據,灰度轉換后將數據顯示LCD。 本實
    發表于 09-12 14:43

    荊州學院聯合龍教儀建設DSP教學實驗箱案例分享

    OV2640攝像頭采集圖像,并顯示LCD。 三、實驗原理:OV2640簡介 OV2640 是世界上第一個 1/4 英寸 2 百萬像素視頻傳感器,同時是 OmniVision 最新的
    發表于 09-12 14:29

    基于RK3588J的6路MIPI CSI視頻采集案例分享,多路視頻系統必看!

    等比例拼接形式采集畫面,且攝像頭幀率需統一,因此攝像頭分辨率幀率均使用1920x1080@30fps。 RK3588J的MIPI CSI介紹RK3588J的MIPI CSI
    發表于 08-22 11:51

    基于FPGA的攝像頭心率檢測裝置設計

    裝置, 通過網絡攝像頭獲取人臉視頻圖像,通過 FPGA 進行分析處理,得到心跳信號, 并將計算得出心率值實時顯示 HDMI 屏幕。 1.2 應用領域 本作品應用范圍廣泛,可應用于眾多需要檢測心率
    發表于 07-01 17:58

    esp32是如何與攝像頭連接的呢?

    新手。看了esp32的模組中沒有攝像頭的硬件接口,請問它是如何與攝像頭連接的呢
    發表于 06-28 15:01

    探討車載攝像頭ESD問題的成因及解決策略

    車載攝像頭整體結構主要由前蓋(鏡頭)、后蓋(接口)和硬件(電路)三大部分組成。其中,內部電路是攝像頭的核心部分,不同協議的攝像頭電路略有區別。
    發表于 02-27 14:26 ?1846次閱讀

    高清網絡攝像頭多媒體智能屏

    。同時,屏幕顯示攝像頭畫面可直接通過DGUS開發來實現,十分快捷。硬件接口展示:產品特點支持通過以太網、WiFi(2.4GHz、5GHz均可)連接網絡
    的頭像 發表于 02-19 13:21 ?652次閱讀
    高清網絡<b class='flag-5'>攝像頭</b>多媒體智能屏
    菲律宾百家乐官网娱乐网| 澳门百家乐官网娱乐城网址| 百家乐高手看百家乐| 大发888娱乐场怎么才能赢到钱| 百家乐官网如何投注法| 土豪百家乐的玩法技巧和规则| 网上的百家乐官网怎么才能赚钱| 哪家百家乐官网优惠最好且信誉不错| 大发888娱乐场登陆| 百家乐德州桌| 百家乐官网如何打公式| 大发888送体验金| 百家乐大天堂| 百家乐官网金海岸| 宜宾县| 大发888客服电话多少| 半圆百家乐桌布| 致胜百家乐官网的玩法技巧和规则| 河池市| 大发888怎么| 日博娱乐| 伟易博百家乐娱乐城 | 百家乐官网赢的方法| 大发888娱乐场出纳| 什么百家乐平注法| 百家乐官网网上真钱娱乐| 全讯网hg8599.com| 属兔做生意门面房朝向| 百家乐官网国际娱乐平台| BET365官方网| 大发888黄金版娱乐场| 百家乐过滤软件| 百家乐最佳打| 百家乐怎么| 玩百家乐输澳门百家乐现场| 开店做生意的风水摆件| 属猪与属狗 做生意| 百家乐官网喜牛| 百家乐官网怎么玩能赢钱| 百家乐官网高手投注法| 汽车|