最佳体验请使用Chrome67及以上版本、火狐、Edge、Safari浏览器 ×

创建银行
创建开票

    瑞萨RA8D1 CEU介绍与使用说明

    编者:陈芳@电子发烧友 阅读484 来源: 电子发烧友 2024/02/21 06:46:02 文章 外链 公开

    随着Cortex CM85内核RA8系列MCU的发布,各界保持对RA8系列高度关注。说到如今最流行的科技话题——AI,RA8在AI应用方面也不甘落后。RA8有着丰富的接口去连接所需要的外设,比如RA8拥有视觉类应用所需要用到的摄像头接口。作为MCU届的“当红炸子鸡”,本文我们将对RA8的特色模块CEU一睹为快。

    瑞萨RA8D1 MCU系列是业界首款基于Arm Cortex-M85 (CM85) 内核的32位图形微控制器 (MCU),能够在480 MHz频率下实现超过3000 CoreMark分数的突破性性能,可支持高分辨率显示和视觉AI应用的卓越图形功能。此系列属于通用型MCU器件,适用于工业自动化、家用电器、智能家居、消费品、楼宇/家居自动化和医疗/保健细分市场中的各种高性能和计算密集型应用场景。

    RA8D1 MCU集成了高性能CM85内核和大内存,以及丰富的外设集,包括带并行RGB和MIPI-DSI接口的高分辨率TFT-LCD控制器、2D绘图引擎、16位摄像头接口和多个外部内存接口,经过优化可满足各种图形和视觉AI应用的需求。此类MCU采用176引脚和224引脚封装。内置类似Secure Element的功能,搭配先进的加密安全IP、不可变存储、真实安全启动和防篡改保护功能,实现真正安全的物联网。

    RA8D1 MCU由灵活软件包(FSP)和一整套软硬件开发工具提供全面支持。

    一

    CEU特点

    捕获引擎单元(CEU)是一个捕获模块,可以获取外部输入的图像数据并将其传输到内存中。CEU通过总线桥模块连接到系统总线。它具备以下特性:

    1

    图像数据获取

    从外部模块采集图像,同时可以把采集到的YCbCr图像数据分离成Y数据和CbCr,并分别把Y数据和CbCr数据写入内存。

    2

    采集JPEG和RGB565数据

    以两个field单位或一个field单位获取交错源图像,并将其写入内存。在两种field捕获中,图像都可以作为帧图像存储在存储器中。

    3

    滤波处理

    可以通过内部的滤波器对图像进行缩小处理和去除高频分量(仅在水平方向)。图像缩小不能超过VGA格式。只能对YCbCr数据进行滤波。

    4

    格式转换

    把YCbCr422输入格式转换成YCbCr420并写入内存。

    二

    硬件配置

    下面介绍一下EK-RA8D1和camera模组OV7670的硬件连接。从原理图分析得知,camera信号通过CAM_OE_L控制是否于MCU连通,所以在使用camera时,需要把CAM_OE_L使能,在EK上SW1-3需要切换到“ON”。具体连线图可以参考EK-RA8D1原理图。

    4bb426ce-cfa5-11ee-a297-92fbcf53809c.png

    4bc2f744-cfa5-11ee-a297-92fbcf53809c.png

    图1 实际连接和效果图

    CEU引脚配置

    4bce643a-cfa5-11ee-a297-92fbcf53809c.png

    从上表可以看出,CEU最大data size可以支持16bit。

    三

    在FSP里面配置CEU

    如图2,通过点击Stacks->New Stack->Graphics->Capture Engine Unit(r_ceu) 添加CEU,然后对CEU的属性进行配置,主要包括模式、引脚配置等,如下图3。

    4bdb8c0a-cfa5-11ee-a297-92fbcf53809c.png

    图2 CEU模块

    4bed9490-cfa5-11ee-a297-92fbcf53809c.png

    图3 CEU属性配置

    在生成CEU代码后,FSP提供了如下API,如图4。

    4bf9fd7a-cfa5-11ee-a297-92fbcf53809c.png

    图4 CEU APIs

    我们可以利用以上API去对摄像头进行操作,采集图像。下面通过配置CEU驱动OV7670做一个讲解。

    首先确定摄像头采集的模式,这次采用RGB565,对应CEU的capture mode设为Data Enable Fetch,这种模式下需要配置Data Enable Buffer Size的大小,这个大小根据摄像头分辨率设定,比如OV7670的分辨率为640*480,本次实验设置的Buffer Size为614400。如果采集的是RGB格式的数据,capture mode可以设为Data Synchronous Fetch,此时Data Enable Buffer Size需要设为0。

    4c0b107e-cfa5-11ee-a297-92fbcf53809c.png

    图5 摄像头初始化代码

    从代码来看,对CEU的初始化也是非常简单,只需调用R_CEU_Open() 即可完成初始化,其他是对摄像头的配置,通过I2C完成,具体细节不做介绍。完成摄像头和CEU配置后,即可进行数据的读取,由于FSP已经配置好,对数据的读取也是非常的简单易用,如图6。

    4c242b54-cfa5-11ee-a297-92fbcf53809c.png

    图6 CEU采集数据

    当调用R_CEU_CaptureStart(),CEU完成后会产生一个中断把g_capture_ready置位,然后把数据写到bsp_camera_buffer中。整体代码调用如图7。至此,我们可以完成一个简单的摄像头数据采集。

    4c3b4514-cfa5-11ee-a297-92fbcf53809c.png

    图7 CEU采集摄像头整体流程

    四

    CEU特色功能

    CEU相比于传统的并行数据采集模块,比如PDC,不仅在速度上有了很大的提高,而且多了一些基本的图像处理功能,比如图像缩小,剪切等。顾名思义,图像缩小就是按照一定比例将一幅原始图像压缩,达到减小存储空间的目的。如下图。

    4c4c666e-cfa5-11ee-a297-92fbcf53809c.png

    图8 CEU缩小图像示意图

    其中图像缩小的比例可以由以下公式计算:

    4c574bba-cfa5-11ee-a297-92fbcf53809c.png

    MANT和FRAC为CEU的寄存器,SCL是用户想要的缩小比例。如果不考虑小数点,其中MANT和FRAC可以按照以下公式计算:

    4c631c92-cfa5-11ee-a297-92fbcf53809c.png

    图像裁剪,如图9,CEU可以对输入的一幅图像做裁剪。对HFCLP和VFCLP写入对应的值就可以完成图像的裁剪,不过要注意一些限定条件:垂直方向剪切大小必须以4像素为单位,水平方向必须以8像素为单位。

    4c6ce1aa-cfa5-11ee-a297-92fbcf53809c.png

    图9 CEU裁剪图像示意图

    五

    RA8D1 CEU VS. RA6M3 PDC

    4c856e3c-cfa5-11ee-a297-92fbcf53809c.png

    六

    总结

    RA8D1 CEU除了在并行接口采集摄像头数据上给用户提供了丰富的用法外,基于120MHz的像素时钟,还可以支持一些高帧率的摄像头,同时支持图像处理的一些基本Filter。如前面介绍,图像的缩小,裁剪,以及去除一些高频分量等。相信这些功能在如今相对小memory size的MCU上做一些图像的采集和处理时,可以发挥非常重要的作用。


    声明:本网站部分内容来源于网络,版权归原权利人所有,其观点不代表本网站立场;本网站视频或图片制作权归当前商户及其作者,涉及未经授权的制作均须标记“样稿”。如内容侵犯了您相关权利,请及时通过邮箱service@ichub.com与我们联系。
     0  0

    微信扫一扫:分享

    微信里点“+”,扫一扫二维码

    便可将本文分享至朋友圈。

      
    
    
    分享
     0
      验证