《基于嵌入式AI处理器的图形化编程机器人设计 (2).doc》由会员分享,可在线阅读,更多相关《基于嵌入式AI处理器的图形化编程机器人设计 (2).doc(57页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于嵌入式AI处理器的图形化编程机器人设计学 院 工业自动化学院专 业:姓 名:指导老师:机械与电子工程李楷学 号:职 称:13005310686李琳 讲师中国珠海二二 年 五 月北京理工大学珠海学院2020届本科生毕业设计诚信承诺书本人郑重承诺:本人承诺呈交的毕业设计基于嵌入式AI处理器的图形化编程机器人设计是在指导教师的指导下,独立开展研究取得的成果,文中引用他人的观点和材料,均在文后按顺序列出其参考文献,设计使用的数据真实可靠。本人签名: 日期: 年 月 日基于嵌入式AI处理器的图形化编程机器人设计摘 要图形化编程机器人是一种融合了机械电子、嵌入式计算机、自动化等多种学科技术、面向快速开
2、发及教学的产品。图形化编程具有应用门槛低、使用简单等特点,作为学习机器人的一种载体,方便用户快速上手编程控制机器人,学习机器人开发。图形化编程在机器人领域中逐渐受到关注和认同,具有广阔的应用前景。目前的机器人产品几乎没有关于人工智能(AI)的教学应用,随着人工智能渗入到人们生活的方方面面,对于学习 AI 的重要性逐渐突显出来。为普及学习机器人AI应用,设计一款功能强大、价格低廉、满足教学和开发双重需求的图形化编程机器人,让不同层次的用户学习机器人、人工智能应用开发,是本文研究和解决的重点。本设计利用Python编程语言的特性应用于机器人,将MicroPython编程与图形化编程相结合,提高了机
3、器人编程系统的通用性,并将AI融入到其中,使用户能够以一种新的模式学习AI机器人编程,降低AI的学习门槛。另外编程环境支持图形化编程、MicroPython和语言三种编程方式,为用户提供更加灵活的编程空间,适用于不同层次用户。关键词:机器人;AI;图形化编程;嵌入式;MicroPythonGraphical Programming Robot Design Based on Embedded AI ProcessorAbstractThe graphical programming robot is a product that integrates various disciplines a
4、nd technologies such as mechatronics, embedded computers, and automation, it is oriented to rapid development and teaching. As a carrier of learning robots, graphical programming has the characteristics of simple operation and low application threshold,it is convenient for users to quickly start pro
5、gramming robots and learning robot development. The graphical programming has gradually received attention and recognition in the field of robotics, and has broad application prospects.At present, robot products have almost no teaching application of artificial intelligence (AI). As artificial intel
6、ligence permeates into all aspects of peoples lives, the importance of learning AI is gradually highlighted. In order to popularize AI application of learning robot, it is the focus of this paper to design a powerful, low-cost graphical programming robot that meets the dual demands of teaching and d
7、evelopment, which enables users at different levels to learn the application development of the robot and artificial intelligenceThis design uses the characteristics of Python programming language to apply to robots, through the combination of MicroPython programming and graphical programming, it ha
8、s enhanced the versatility of the robot programming system, and integrates AI into it, which enables users to learn AI robot programming in a new mode and reduces the learning threshold of AI. In addition, the programming environment supports three programming methods: graphical programming, MicroPy
9、thon and C language, which provides users with more flexible programming space and is suitable for users at different levels.Keywords: Robot; AI; Graphical Programming; Embedded; MicroPython目 录摘 要IAbstractII第1章 前言11.1研究背景11.2图形化编程机器人的国内外现状21.3研究意义31.4研究内容4第2章 图形化编程机器人整体设计分析52.1系统需求分析52.2关键技术分析52.2.1
10、嵌入式AI62.2.2 MicroPython与图形化编程7第3章 机器人硬件平台设计93.1硬件平台选型93.2硬件平台结构103.2.1嵌入式AI处理器113.2.2 PMU电源管理123.2.3三轴加速度计133.2.4全彩LED143.2.5硬件IO接口143.3硬件外设选型153.3.1机器人摄像头153.3.2机器人无线通信163.3.3机器人底盘电机163.3.4机器人云台电机173.3.5机器人动力能源183.3.6多路DC-DC分电板19第4章 嵌入式系统软件设计204.1软件开发环境搭建204.2固件开发224.2.1图形化菜单配置(menuconfig)224.2.2固件
11、裁剪及优化224.3机器人驱动开发234.3.1移动机器人运动学模型234.3.2二轴云台驱动控制264.4 MicroPython移植274.4.1 Python标准库和微库284.4.2 机器视觉库284.4.3 MicroPython类库294.5无线图传314.6人脸口罩识别与检测应用324.6.1准备训练数据集334.6.2配置训练参数334.6.3训练模型344.6.4测试模型354.6.5转换模型354.6.6部署模型364.6.7推理模型37第5章 图形化编程机器人系统测试40第6章 总结与展望456.1总结456.2展望45参考文献46谢 辞48附 录49附录1 人脸口罩识别
12、MPython源代码49附录2 图形化编程软件50附录3 人脸口罩识别效果50IV第1章 前言1.1研究背景机器人技术涵盖了计算机科学、嵌入式、自动化、机械电子等诸多学科和前沿领域。多年来一直处于世界学术研究领域前沿,广泛应用到社会生产的多个方面。随着人工智能与机器人的迅速发展和普及,机器人由起初的工业生产应用,过渡到人们生活中的各个方面,其在教育领域的应用也逐步得到重视。由于机器人需要通过高级编程语言来控制实现功能,对计算机编程缺乏专业知识的人来说,抽象的编程语言不便于理解,学习编程语言来控制机器人显然有一定的难度,编写代码过程中遇到的错误和问题,久而久之会打消学习的积极性和主动性。为了使编
13、写程序的体验能像搭积木一样简单、有趣,逐渐衍生出一种新的编程方式图形化编程。图形化编程又称可视化编程,与基于文本的编程语言不同,它封装了底层的文本编程语言,使用者只需拖放编程模块和组件,组成积木式的程序,就可以实现复杂逻辑的编程任务,同时,机器人硬件的参数设置和操作更加简洁明了。图形化编程软件如图1.1所示。图1.1机器人图形化编程软件使用图形化和模块化的编程方式,其门槛低、操作简单等特点,更容易被接受。在儿童教育领域,由于图形化编程方式简单易懂,加上美观的图形容易吸引儿童注意力,比起文本编程的方式更容易被儿童接受,这更能够激发他们学习编程的热情,为将来学习更复杂的编程知识打下坚实基础1;而在
14、工业领域,广泛应用于系统早期开发仿真。一个图形化编程工具促进了开发与执行的结合,用户通过图形化编程软件搭建仿真模型,在前期设计中发现潜在问题并验证设计的可行性2,缩短时间和成本。随着应用领域的不断扩大,图形化编程的应用前景将越来越广阔。随着人工智能逐渐地应用到机器人,AI可以赋予机器人学习与感知、语言理解和逻辑推理等能力,使得机器人可以解决更复杂的问题,这对于学习 AI 的重要性逐渐突显出来。目前的机器人教学产品几乎不是人为智能的,没有AI硬件的支持,功能相当有限,对处理视频和音频等信息量较大的数据有局限性。AI允许机器人执行更高级复杂的任务,但作为一项高门槛的技术且学习成本昂贵而无法普及。因
15、此在这种背景下研究出一款基于AI硬件、方便实用、功能丰富、价格低廉,适用不同人群教学和开发使用的机器人,不仅推动人工智能与机器人技术的普及,同时顺应新时代的人才培养需求。1.2图形化编程机器人的国内外现状随着图形化编程技术的发展,逐渐地被应用在机器人领域,国内外已有多款图形化编程机器人产品,如:丹麦的乐高机器人、韩国的ROBOROBO、德国的慧鱼、美国的RB5X 机器人以及国内的广茂达能力风暴机器人、中鸣机器人、南京紫光机器人等等。主要代表产品如图1.2所示。(a)乐高机器人 (b)广茂达能力风暴图1.2图形化编程机器人产品下面对主要的图形化编程机器人产品分析优缺点。如表1.1所示。乐高机器人
16、作为目前国际上最受欢迎的机器人平台之一,图形编程系统成熟,非常适合用于机器人控制,该系统可以实现许多逻辑上复杂且用途广泛的机器人控制,但在编程中不支持多线程同步。它的主要缺点是不够开放,产品完全封装,并且其价格高昂。慧鱼机器人模型与现实中使用的机械模型比较接近,其组合模型拥有良好的拓展性,以“六面可拼接体”的拼接方式,可以通过各种零件组合出各式各样的机器模型,熟悉掌握各类机器人、自动化设备等工作原理。该模型的编程环境不够人性化,而且昂贵的价格也限制了其推广程度,开放性低。广茂达的能力风暴机器人,拥有较为简便的图形化软件开发界面,模块丰富且种类齐全,但是结构件及接口封闭以及性能存在局限性。中鸣机
17、器人开发平台采用基于scratch2的图形化编程软件,编程风格简洁,产品类型丰富,与比赛教学结合,但是其产品技术和性能上有一定的局限性,平台不开放,而且零件不具备通用性3。表1.1 图形化编程机器人产品国家公司代表产品主要特点缺点丹麦乐高EV3结合模型搭建和计算机编程;图形编程系统成熟产品完全封装;对用户不开放;价格偏高德国慧鱼机器人套装较为现实的机械结构件;拓展性高软件编程界面不友好;交互性差;结构复杂;价格昂贵中国广茂达能力风暴机器人种类比较齐全;图形化界面友好;六面搭建积木开放性差;编程系统不易操作;产品完全封装;价格偏高中鸣机器人中鸣scratch教学结合性相对较好;价格适中外观简陋;
18、不具备通用性目前图形化编程机器人迅速发展,有不少产品可以选择,但这些也存在着问题:(1) 机器人构造复杂:许多产品的零件数量达几十至上百,这对用户的想象力和空间思维能力要求较高,通常进行组装和拼接需要花费很长时间。(2) 现有的图形编程系统子系统之间的耦合度很高,不利于修改和改进,缺乏跨平台以及对拓展编程组件的支持。(3) 产品开放性低:大多数机器人产品形式单一,只能通过说明书等资料学习和搭建固定的一些形态,不能进行二次开发,这不利于用户的发散思维和创新。(4) 各种图形编程系统缺乏统一性。对于不同的系统实现,有不同的语法定义。目前,每个制造商都有自己的图形编程语言,但是还没有形成相对成熟的规
19、范。1.3研究意义通过对当前热门的图形化编程机器人产品及开发平台的研究,各平台虽然都比较成熟,但仍然存在局限性,大多数产品缺乏规范性,品牌繁杂且自成体系。有的产品出于保护,对某些模块完全封装,降低了开放性,导致用户无法根据自己的需求在产品基础上二次开发,降低了拓展性;还有的设计体型又大又重、结构模型复杂,组装麻烦,不适合低年龄段的用户。大部分平台只有单用户程序,不能根据现场环境选择不同的用户程序来完成特定任务。为满足不同用户的需求,机器人软硬件系统需功能强大、拓展性高,目前普遍存在价格昂贵、通用性不高、与教学结合性较差等问题,几乎没有对于人工智能的教学应用。而研究设计一款开放易用、适用广泛、价
20、格低廉、满足学习研究与开发等多重需求的图形化编程机器人,对机器人教学的发展具有深远意义。随着人工智能的兴起,相对于其他编程语言的Python,由于其可扩展、可移植和可嵌入等特性,成为学习人工智能的首选编程语言,但不能运行在小型系统或受限的环境中。因此,诞生了专门为嵌入式系统设计和优化的开发语言MicroPython。MicroPython是运行在微控制器硬件上的Python编译器,通过硬件串口连接提供给用户一个交互式提示符(REPL)来直接控制硬件,让零基础的初学者也能自己做智能硬件,开发简单的机器人应用,它更适合人工智能机器人教育4。MicroPython不仅包含了核心Python库,还拥有
21、访问底层硬件的模块。将MicroPython应用于机器人,大大降低开发周期,避免重复造轮子。将MicroPython与图形化编程软件工具相结合,用户可以更好的掌握机器人编程,对促进机器人教学和开发具有重要意义。1.4研究内容在研究分析国内外现状、以及对机器人结构、编程控制的特点深入了解的基础上,针对现有产品存在的问题,结合对嵌入式系统设计的经验,加上对基于图形化设计的嵌入式开发的理解,将适用于初学者的图形化编程方式结合解释型编程语言并应用到机器人开发。本文基于开源的AI硬件平台,设计出支持图形化编程、MicroPython和语言三种编程方式且集高通用性和易用性为一体的嵌入式AI机器人。降低人工
22、智能与机器人学习的门槛,让更多的人可以通过三种不同的编程方式,循序渐进,不断深入学习AI机器人。第2章 图形化编程机器人整体设计分析2.1系统需求分析 主要是明确硬件需求,同时兼顾软件需求。根据本文研究内容,对本设计机器人的嵌入式软硬件系统提出了一些需求: (1) AI功能性价比高且可学习性强的AI硬件平台。(2) 可移动性为了方便用户的使用,增加产品的灵活性,硬件平台还需要具有无线通信功能,与上位机图形化编程软件无线连接来控制机器人。(3) 高集成机器人体积小,机械结构简洁,方便组装学习,便于移动。(4) 端口资源可重构虽然目前的嵌入式处理器具有高集成度和丰富的引脚数量,但是机器人应用于教学
23、中对端口的需求是变化的,由于硬件系统固定的接口功能,导致系统对外部设备开放的端口资源是有限的,且端口的使用方法也是单一5。除了需要有足够的端口数量,还要具有丰富的端口类型。(5) 模块化和标准化系统要具备模块化,在方便安装和使用的基础上,自由组合或更换所需的硬件模块。标准化是为了增强模块的通用性,适配更多的硬件模块。(6) 开放性系统应具有一定的开放性,可以方便用户自行添加各式各样的通用模块,增强机器人嵌入式系统的柔性、可移植性,对创造创新提供有利的支撑。(7) 易用性硬件平台应采用简单易用的使用原则,避开复杂的设计流程,便于初学者入门学习和开发人员快速开发。2.2关键技术分析 目前人工智能是
24、机器人深入发展的关键技术之一,AI使机器人能够模仿人类大脑的思维活动,比如推理、判断和证明。让机器人拥有思考和行动的能力,这离不开AI相关技术的支持。随着人工智能芯片(IC)的发展,机器人具有更高的计算能力。根据摩尔定律,单位面积上IC可以容纳的晶体管个数持续增长,促进了IC小型化,从而提升AI加速计算能力Error! Reference source not found.。此外RISC-V 精简指令集架构等异构芯片的出现,也为提高人工智能芯片的计算能力提供了硬件支持。2.2.1嵌入式AI嵌入式是一种可适应应用并嵌入于装置或设备的专用计算机系统。嵌入式系统即软硬件结合体,最大特点就是可根据需求
25、进行软硬件裁剪。而嵌入式 AI,则是一种让 AI 算法可以在终端设备上运行的技术概念,在把 AI 技术部署于终端设备的过程中,嵌入式技术至关重要Error! Reference source not found.。所谓的嵌入式AI算法, 主要是基于深度学习算法衍生的各种结构的神经网络模型。神经网络是一种通过模拟人脑的神经元感知器来实现类人工智能的技术。目前的CNN卷积神经网络模型(Convolutional Neural Network) 通过局部感受野以及卷积层的权值共享,降低整个神经网络的参数数量,大大减小网络的空间复杂程度Error! Reference source not found
26、.,在资源受限的小型嵌入式平台中广泛应用CNN模型。卷积神经网络的概念体系如图2.1所示。图2.1 CNN概念体系CNN运算的场景分为两个部分,训练与推断。对于训练模型输入的数据量很大,需要较高的计算能力,通常在PC机上使用高性能GPU显卡来加速计算。对于模型推断,通常是在嵌入式设备终端上使用专用的加速模块,如神经网络处理器来加速模型推断运算。为什么不使用普通CPU、MCU等常规处理器来对模型推断运算,原因在于大部分应用场景下CNN模型的运算量对于普通CPU来说非常大。下面举例对640480大小的RGB彩色图进行分析。假设每一层网络单个通道就有12个33卷积核,一层网络需(640480123)
27、约为11M次计算。对33的矩阵做卷积计算,即9次乘加的周期。其中,把2个操作数加载到芯片的寄存器上,总共6个机器周期,乘法、加法、判断是否计算到9次、跳转等这四种操作分别各一个机器周期,总共90个机器周期(3+3+1+1+1+1)9)。所以计算一层网络需要用时11M90约为1G个机器周期,则使用主频为100MHz的MCU处理器计算一层需要花费10秒时间,而使用主频为1GHz的CPU处理器计算一层需要花费1秒时间。而一个实用的CNN模型通常达到十层以上,所以使用普通处理器直接计算CNN模型是非常耗时且很不实用。嵌入式AI算法的工作过程如图2.2所示。首先,基于一些开源的AI算法和框架,例如深度学
28、习,在PC端或服务器端去训练一种数据集,建立出神经网络算法模型。然后通过各硬件平台的模型转换工具,对模型的尺寸和参数做一些裁剪,转换成小模型并部署在终端上,这样设备端可以通过调用训练好的神经网络模型来快速实时地对新数据进行推理。图2.2深度学习工作过程2.2.2 MicroPython与图形化编程满足现有人工智能算法运算能力的嵌入式硬件平台显然是不够的,对于图形化编程机器人应用还必须搭配一个完全可编程的平台。图形化系统设计带来了结合硬件平台的软件平台。由于嵌入式芯片具有较少的内存(RAM)和外存(ROM)资源,一般使用C/C+编程语言来进行开发,这样会使产品的二次开发变得复杂,往往需要花费大量
29、时间来学习和掌握嵌入式系统的框架、结构以及API应用程序接口Error! Reference source not found.。MicroPython 是一种较为精密简化而且效率高的编程语言,它是由Python3 简化而来,附带Python标准库的子集,有效地优化和改善了微控制器,甚至是受限环境当中的运行状态Error! Reference source not found.。PC端编写的python程序可直接在微控制器或嵌入式系统上运行,来完成对硬件底层的访问以及操控。简单来说,MicroPython 大致相当于运行在嵌入式芯片上的Python解释器,通过编写并运行Python脚本来对硬件
30、进行操控。 (a)C/C+开发流程 (b)Micropython开发流程图2.2 MicroPython和C语言开发流程对比如图2.2所示,比较了MicroPython 和C 语言的特性, MicroPython让人们可以更专注于功能实现,明显提高了代码的可读性,加上脚本语言的特性,拥有交互式解释器环境(REPL),在PC端输入一行指令,即可传输到嵌入式端进行解析并执行一行指令,获得输出;也可以把写好的脚本文件上传,而无需经历仿真调试、烧写等过程,从而实现在线调试。虽然Python 具有代码简洁、编程开发速度快等优势,但与C 语言相比,其编译一行后运行一行,执行的速度要慢很多,在一些实时性要求
31、很高的情况下,必须采用C 语言来编写,因此也需要修改MicroPython 固件,添加相应的功能,然后再在Python 代码中调用11。 MicroPython语言的特性,更方便与图形化编程软件相结合。基于MicroPython的图形化编程软件能实现API接口统一,对于其他支持MicroPython的嵌入式系统同样适用,让初学者可以从图形化编程语言过渡到python脚本语言,再深入底层C语言,来全面地学习机器人编程。第3章 机器人硬件平台设计考虑到嵌入式AI硬件设计的复杂性及可行性,本设计基于市面现有的硬件平台来开发。针对图形化编程机器人的需求分析,通过各大硬件平台对比和分析,结合本设计的特点
32、,综合各方面来选择硬件平台,并对所选用的硬件平台及硬件资源进行详细介绍,最后根据机器人所需的其他外设如摄像头、电机等综合考虑并进行选型。3.1硬件平台选型当前大多半导体厂商推出了嵌入式AI硬件,平台众多且层出不穷,如何选择合适的硬件平台应用到图形化编程机器人上成为了一个难题。目前的嵌入式处理器,由于物理上的限制,功耗、性能和成本几乎无法实现平衡,在其他条件一定的情况下,性能和功耗成正比。大多数为兼顾其中两者的一些硬件平台:(1) 成本低,性能弱,功耗也低:各种微处理器如NXP等。(2) 成本低,性能强,制程低而功耗高:各种低端系统级芯片(SOC)如全志芯片H系列。(3) 成本高,性能强,制程先
33、进:代表的是在高端应用上使用的各种旗舰SoC,比如华为海思,但对于个体不开放。除了上述,还有树莓派和Movidius等等,性能强但价格昂贵,技术开放性低,单一的接口功能,不利于硬件外设的拓展。对此其他厂商推出基于ARM+FPGA体系结构的平台实现端口资源可重构,比如赛灵思,但是价格不菲且FPGA的开发难度大。对于图形化编程机器人,为了拓展性、适用性广泛、降低应用门槛,硬件平台除了要兼顾平衡上述三种参数,还得考虑其软件开发平台,是否支持多种机器人硬件外设。最后目标锁定在开放且易用的两大平台,MAIX与OPENMV,如表3.1所示。表3.1 两大平台对比平台MAIX系列OpenMV V4主控芯片K
34、210STM32H743芯片内核双核RISC-V 64bitARM Cortex-M7 32bit内存8MByte1MByteFlash16MByte2MByte神经网络算法速度数百GOPS(千倍于SMT32)数百MOPS视觉识别检测速度AI加速可达60帧约几帧价格79199499OpenMV基于意法半导体ST的STM32高性能系列主控,搭配OpenMV Cam摄像头,创建开放可拓展、Python语言驱动、简单易用的机器视觉模块。但由于价格偏高且性能一般,性价比不高,不考虑选其作为硬件平台。Sipeed公司旗下的MAIX硬件平台是基于嘉楠科技自主研发的双核64位RISC-V处理器勘智K210芯
35、片,一款高可用性、低功耗、低成本的系统级芯片(SoC),降低人工智能行业应用门槛。其主要特点如下:(1) 作为SoC的同时,使用和开发方法与MCU基本相同,开发难度低。(2) K210基于精简和灵活的RISC-V架构,一种简单、开放、自由的全新指令集架构,易于开发和移植。与ARM架构相比,精简的指令集意味着精简的开发文档,其基本指令只有四十多条,并使用模块化指令集,更方便了开发人员进行快速设计,而且特别适合代码量轻便、低功耗的嵌入式系统应用场景。另外还内置类似FPGA的一种新的架构FPIOA,支持每个外设随意映射到任意引脚。相对于复杂的ARM+FPGA体系结构,RISC-V+FPIOA满足了易
36、用性和端口资源可扩展性的要求。(3) 芯片中集成自研的KPU神经网络加速器。KPU专为低功耗且高效地进行卷积神经网络运算而设计。在AI算法的计算能力方面,K210芯片可在0.3W的低功耗工作状态下提供1TOPS(处理器每秒进行一万亿次操作)的计算能力。即使搭载一些外部设备如摄像头模块,其功耗也只有1W左右,性能强劲的同时却有着极低的价格,做到兼顾功耗、性能和价格。对比K210,OPENMV V4的算力只有不到K210的千分之一,价格却高出三倍左右。K210不仅兼顾功耗、性能和价格,各方面都更胜一筹,再加上MAIX已有的硬件平台资源,当选为图形化编程机器人的硬件平台再合适不过。3.2硬件平台结构
37、主要使用的MAIX硬件资源如图3.1所示。下面对各个部分进行介绍。图3.1 硬件平台3.2.1嵌入式AI处理器K210芯片包含RISC-V 64位双核CPU,400Mhz标准频率(可超频),每个核心内置独立FPU,可进行高性能硬件浮点计算,其包含用于计算卷积人工神经网络的KPU 与用于处理麦克风阵列输入的APU,同时K210具备快速傅里叶变换加速器,因此对于大多数机器学习算法,K210 具备高性能处理能力12。架构如图3.2所示。主要结构单元如下:图3.2 芯片系统架构KPU:Knowledge Processing Unit,或称为Neural Network Processor。它是芯片A
38、I处理部分专用的CNN加速器,内置了基础神经网络结构所具备的卷积、池化、批归一化、激活等运算单元且为合成一体的模块,不需要CPU干预。但对于新型神经网络结构,KPU没有矩阵运算单元,需要CPU进行额外操作。KPU工作原理如图3.3所示。 图3.3 KPU工作原理SRAM:静态随机存取存储器。SRAM包含两个部分,即片上通用SRAM与AI SRAM,分别为6MB和2MB的存储大小。其中,AI SRAM是专为KPU分配,当KPU 不在做CNN运算时才能使用。SRAM分布在连续的地址空间中,如表3.2所示,不仅可以通过经由CPU的缓存接口访问,而且可以通过非缓存接口直接访问。表3.2 SRAM映射分
39、布表名称映射类型开始地址结束地址空间大小通用SRAM经CPU缓存0x800000000x805FFFFF0x600000AI SRAM经CPU缓存0x806000000x807FFFFF0x200000通用SRAM非CPU缓存0x400000000x405FFFFF0x600000AI SRAM非CPU缓存0x406000000x407FFFFF0x200000DMAC:直接内存存取控制器。它是一种在硬件内部传输数据的外设。系统内部和外部存储器之间由一组专用总线连接到具备DMA的外设。其可以将外设获取的数据从源地址传送到目的地址,无需CPU去处理数据。这样降低CPU的占用率,从而提高系统资源的
40、工作效率。DMA通常用于数据量较大的外设,如视频、音频和通讯。DVP:Digital Video Port,数字视频接口。支持DVP接口的摄像头,支持图像同时输出到KPU和显示屏并检测到一帧开始或一帧图像传输完成时可向CPU发中断。IS:Integrated Interchip Sound,集成电路内置音频总线。连接麦克风等语音接受模块,通过APU实现语音增强和声源定向功能。FPIOA:Field Programmable Input Output Array,现场可编程输入输出阵列。FPIOA可以将系统255 个功能映射到48 个IO 接口中任意一个。通过少量的IO口支持大量不同种类的外部设
41、备,克服了原有IO口数量有限的缺点。K210 还具备其他的外设单元:GPIO、PWM、UART、IC、SPI、Timer、WDT、RTC、JTAG和OTP,类型丰富可满足大部分应用场景。3.2.2 PMU电源管理电源管理单元EA3036为系统输出提供各类所需的电源,实现电源统一管理,应用于直流5V供电,如图3.4所示。内置三路同步电源调整模块,每通道持续载电流2A,输出电压从0.6V至输入电压范围,用于K210芯片多种电源域的IO 信号,如表3.3所示。芯片提供了独立的使能端进行电源管理,不同电源域可使用不同的电压,提高系统电源效率,实现低功耗。图3.4 KPU内部结构表3.3 芯片电源分配
42、电源域电源名称额定电压(V)最大电流(mA)I/O 3.3V/1.8VVDDIO0A3.3 或1.8V200I/O 3.3V/1.8VVDDIO1A3.3 或1.8V200I/O 3.3V/1.8VVDDIO2A3.3 或1.8V200I/O 3.3V/1.8VVDDIO3B3.3 或1.8V200I/O 3.3V/1.8VVDDIO4B3.3 或1.8V200I/O 3.3V/1.8VVDDIO5B3.3 或1.8V200I/O 3.3V/1.8VVDDIO6C3.3 或1.8V200I/O 3.3V/1.8VVDDIO7C3.3 或1.8V200I/O 1.8VVDDIO181.8200O
43、TP 1.8VVDDOTP1.850Core 0.9VVDD0.92000PLL 0.9VVDDPLL0.9153.2.3三轴加速度计板载MSA300,是一款超低成本的三轴加速度传感器,它具有动态用户可选的2g /4g /8g /16g量程,并允许以1Hz至500Hz的输出数据速率进行加速度测量。本设计用以反馈机器人二轴云台所在平面与地面的角度关系,如图3.5所示。图3.5 三轴加速度计3.2.4全彩LEDWS2812全彩灯,是一种集成了电流控制芯片的RGB全彩灯,如图3.6所示。区别于普通LED,它有三种颜色通道,每一种的亮度可以通过脉冲宽度调制实现256级的分级控制。通过控制组合RGB的亮
44、度可以实现256种颜色。其最大特点是嵌入在LED的IC通过单总线通讯的控制方式,可以级联多个LED并同时控制。图3.6 WS28123.2.5硬件IO接口K210上有32个高速IO(GPIOHS0GPIOHS31)和8个通用IO(GPIO0GPIO7),即输入输出接口,特点如表3.4所示。通过硬件上的FPIOA,片上外设(GPIO、SPI、UART等)是可以映射到任意的IO口,而其他MCU如NXP等芯片的片上外设和IO口对应关系固定,只有部分接口可以复用。相比之下 K210 端口资源可重构,自由度更大。表3.4 两类IO的特点GPIOHSGPIO可配置输入输出信号可配置输入输出信号每个IO具有
45、独立中断源8个IO使用一个中断源中断支持边沿触发和电平触发可配置触发 IO 总中断,边沿触发和电平触发每个 IO 可以分配到 FPIOA 上 48 个管脚之一每个 IO 可以分配到 FPIOA 上 48 个管脚之一3.3硬件外设选型3.3.1机器人摄像头机器人摄像头是机器视觉系统必不可少的重要组成部分,主要根据处理器的配置支持来选型。K210带有数字视频接口(DVP),其特性如下:(1) 支持DVP接口的摄像头,DVP速度50MB/s。(2) 支持SCCB协议配置摄像头寄存器(3) 最大支持640*480 及以下分辨率,每帧大小可配置, 不使用KPU的情况下最高可输入分辨率1920*1023(
46、4) 支持YUV422 和RGB565 格式的图像输入硬件平台集成了24P摄像头接口,可以连接的有OV2640、OV3660、OV5640、OV7740等标准24P摄像头,这几者主要区别是分辨率、帧率、输出的图像格式、工作频率等等,综合考虑功能、成本和适配性,最终选择了OV2640。OV2640是OmniVision公司生产的CMOS图像传感器,具有200W像素,工作流程如图3.7所示,主要功能如下:(1) 输出图像格式包括RGB565、YUV以及压缩格式JPEG等。(2) 自动图像控制的功能包括对焦、白平衡、曝光等。(3) 根据功能配置图像的分辨率,输出帧率可调。图3.7 OV2640工作流程3.3.2机器人无线通信 移动机器人想要实现和外部设备交流通信,就需要进行无线通信。如图像传输系统,将机器人摄像头拍摄的画面传输到电脑屏幕上。从应用上以及所能提供的主从设备接口,综合考虑无线模块所需供电和功耗、性价比、传输速率和距离等进行选型。最后定位在ESP系列,是乐鑫信息科技公司