请选择 进入手机版 | 继续访问电脑版
查看: 2053|回复: 1

[分享] 基于 i.MX6ULL 的扫码枪行业应用方案

[复制链接]
  • TA的每日心情
    开心
    前天 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3296

    主题

    6541

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    31903
    最后登录
    2024-3-28
    发表于 2020-8-7 16:51:49 | 显示全部楼层 |阅读模式
    基于 NXP i.MX6ULL 的扫码枪行业应用方案


    扫码枪是用来扫描条码的设备,俗称扫码器、扫描器、扫描枪等。是光学、机械、电子、软件应用等技术
    紧密结合的高科技产品,是键盘、鼠标之后的主要电脑输入设备。从直接的图片、照片、胶片等图纸到文稿都可用扫码枪输入到计算机中,实现信息处理、管理、使用、储存或输出。适用于物流、工厂、码头等工作环境恶劣,且工作负荷较高的行业。
    2.png
    i.MX 6ULL系列具有一个单核Cortex-A7平台,运行频率最高可达900 MHz,配备128KB L2缓存和16位DDR3/DDR3L/LPDDR2支持,是一个高效率、高性价比应用处理器系列。


    ? i.MX6ULL应用处理器方框图
    3.png
    硬件设计说明:




        i.MX 6ULL开发板的功能电路及接口非常丰富,针对于扫码枪,硬件部分我们只需要在上面做减法,保留开发板方框图中的黄色部分。


    ? i.MX6ULL开发板部分原理图
    4.png
    ? i.MX6ULL开发板PCB Layout
    5.png


    软件设计说明:


          本软件系统采用的是Linux系统,Linux具有开源、快速移植、应用广泛的特点,整个系统包括uboot、Linux Kernel、rootfs。由于将uboot、kernel、rootfs都放在16或32MB SPI Nor Flash中,并且要求快速启动,因此软件设计的一个任务是要对Linux系统进行裁剪使尽可能小。本章节主要对uboot、kernel、rootfs的移植裁剪以及应用程序测试说明。


    1、Uboot


        uboot是bootloader,主要任务是初始化ARM、时钟、外部DDR3、QSPI Nor Flash等,以及将Kernel从SPI Nor Flash中复制到DDR3中运行引导起来。
        i.MX6ULL上电启动过程中首先是执行ROM Boot,读到QSPI启动方式设置后(硬件电路需先设置成QSPI启动),先执行spiflash中的uboot,为了更快地运行uboot,需要对uboot进行移植裁剪,同时删除一些不必要的功能。
    (1)uboot配置和修改


    uboot配置通过窗口菜单的形式可以配置,在uboot当前路径中执行以下命令:
    export CROSS_COMPILE=arm-linux-gnueabihf-
    export ARCH=arm
    make menuconfig
    然后会弹出下图窗口:
    6.png
       


           在窗口中菜单中进行配置,选择SPI Flash驱动,同时将一些不必要的功能去掉如net、fs、I2C等,将delay参数改成0,另外可以对uboot的源码进行删减,以尽可能地加快uboot的启动。


    (2)uboot编译


       export CROSS_COMPILE=arm-poky-linux-gnueabi-
       export ARCH=arm
       make clean
       make u-boot.imx
       最后编译出u-boot.imx,可以用于下载到spi flash中。


    2、Linux Kernel


          Linux Kernel是整个系统的核心部分,其可靠性和稳定性与否决定了整个系统的可行性,硬件驱动程序也其中。NXP同样提供基于i.MX6ULL的Linux源码,在此基础上进行移植裁剪。


      (1)Linux移植
      export CROSS_COMPILE=arm-poky-linux-gnueabi-
      export ARCH=arm
      make imx_v7_defconfig
      打开配置窗口,执行以下命令:
      make menuconfig
      然后会弹出以下配置窗口:
    7.png


    增加I2C、Carmera ov5640以及spi flash驱动,并将一些不要的net和驱动去掉。
    Ov5640驱动配置在Device Drivers--->Multimedia support-->V4L platform devices
    另外,需要在设备树文件imx6ull-14x14-evk.dts中的I2C增加ov5640的一些参数配置,如下图所示:
    8.png
    (2)Linux Kernel编译
      执行以下命令编译
      make
      最后会编译出zImage 和imx6ull-14x14-evk.dtb,可以用于下载到spi flash。


    3、rootfs


       为了执行应用程序,需要移植rootfs,通过buildroot可以裁剪出最小的rootfs,rootfs以initramfs形式通过
    kernel引导起来。
    (1)下载buildroot源码:
      git clone git://git.buildroot.net/buildroot
    (2)配置和编译
      make menuconfig
      make
      然后会编译出最小的rootfs
      将rootfs放在kernel同级目录,在Linux Kernel中配置initramfs,可以与kernel编译在一起。


    4、下载


        使用NXP提供的uuu工具将uboot和zImage以及imx6ull-14x14-evk.dtb下载到spiflash中
      uuu  uuu-spi
      下载成功后然后上电启动后,调试串口输出一些启动信息:
    9.png
    5、测试摄像头


    执行以下命令:


    # /usr/mx6s_v4l2_capture.out -m 1


    然后会在LCD屏上显示摄像头采集的图像:
    10.png
        在扫码枪的应用中,需要另外开发识读二维码算法或者购买第三方的算法移植,以实现扫码的功能。





    ► 场景应用图
    sceneryUrl
    ► 产品实体图
    12.png
    ► 展示版照片
    13.png
    ► 方案方块图 14.png
    ► 核心技术优势
    ●PCB板层:核心板4层,外围板2层;
    ●工作温度:工业级-40 ℃ ~ 105 ℃;
    ●封装:14x14mm, 0.8mm间距,和9x9mm, 0.5mm间距,两种BGA封装可选;
    ●功耗低:深度睡眠模式,10.7mW; 系统空闲模式,20.6mW,详见附件文档AN5345.pdf.
    ●可扩展性好,IO接口丰富;
    ●启动速度快:约2S(从上电开始到应用程序加载之前)。


    ► 方案规格
    ●工作电压:DC5V±10%;
    ●扫描条码类别:一维码,二维码。
    ●识读精度:≥4mil.

    11.png
    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 1334 天

    [LV.10]以坛为家III

    88

    主题

    4290

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9020
    最后登录
    2024-3-28
    发表于 2020-8-7 21:26:33 | 显示全部楼层
    这个东西是不是大材小用了啊
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-3-28 18:14 , Processed in 0.124896 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表