tag 标签: arm

相关帖子
相关博文
  • 2024-4-19 15:27
    0 个评论
    近年来,我国工业机器人产业的发展势头强劲,年产量呈现出令人瞩目的增长。从2015年的3.3万台剧增至2023年的43.0万台,年均复合增长率达到了惊人的37.8%。这一显著的数据增长,充分体现了我国在工业机器人领域的快速发展。 市场研究机构MIR预测,我国工业机器人行业将步入第二个发展高峰期。在这一轮新的发展浪潮中,市场竞争的焦点将转向存量市场的争夺和细分增量市场的占据。各企业不仅需要加强和扩大现有市场份额,更要在细分市场中发掘新的增长动力,以适应更加激烈的市场竞争环境。 飞凌嵌入式作为一家专注嵌入式核心控制系统研发与制造的高新技术企业,经过多年的研发与积累,产品已广泛应用于机器人控制系统当中。那么今天,我们就通过多轴工业机器人来聊聊机器人控制系统以及控制器的实现。 1、机器人控制系统 机器人控制系统相当于机器人的大脑,是决定机器人功能和性能的主要部分,它一般分为 机器人控制器(运动控制) 、 伺服驱动器 、 IO模块 和 电源系统 4个部分。 机器人控制系统 机器人控制器是机器人的核心部分,主要控制机器人在工作空间中的运动位置、姿态和轨迹,以及操作顺序等;机器人的每个关节都需要实时同步协调运行,实现这些复杂的动作离不开伺服驱动器的支持;IO模块将数字输入信号与系统的控制信号关联起来, 这样就可以实现对机器人系统的控制;最后,稳定的电源系统是机器人安全运行的保证。 其中,机器人控制器作为工业机器人最为核心的零部件之一,对机器人的性能起着决定性的影响,在一定程度上直接影响着机器人的发展。那么机器人控制器的功能是如何实现的呢? 2、机器人控制器实现方案 前面提到了,机器人控制器的主要作用是完成多轴运动的计算与控制,因此机器人控制器的主控就需要拥有高性能的CPU、内置实时操作系统、支持EtherCAT工业总线以及丰富的功能接口。 机器人控制器 基于以上需求,飞凌嵌入式推荐使用 FET3568J-C工业级核心板 作为机器人控制器的主控平台。 (1)高性能处理器 飞凌嵌入式FET3568J-C核心板基于瑞芯微RK3568J工业级处理器设计开发,四核64位Cortex-A55架构主频高达1.8GHz,可提供强大的性能支撑,且内置1TOPS算力的NPU,可满足轻量级端侧AI计算。不仅如此,FET3568J-C核心板实现了100%的电子元器件国产化率,供应更稳定、更放心。 (2)多样化的操作系统 飞凌嵌入式FET3568J-C核心板支持多种操作系统,配合飞凌专业的技术团队的支持,可让用户在使用FET3568J-C核心板开发产品过程中规避众多技术难题,并满足工业领域中不同应用对于实时的要求。 (3)功能接口丰富 FET3568J-C核心板支持2路千兆网,客户可根据自己的需求选择和移植EtherCAT,如果需要2路以上,可通过USB扩展方案实现;配备3路CAN,CAN2.0两种方式;10路UART、4路SPI、16路PWM、5路IIC、USB3.0、4G/5G、WiFi、LVDS和HDMI等等,丰富的高速接口,使功能扩展和连接更为高效、简单。 以上就是基于飞凌嵌入式FET3568J-C核心板的工业机器人控制器方案,希望能够对您的项目选型有所帮助。
  • 热度 1
    2024-3-22 14:51
    283 次阅读|
    0 个评论
    国产化ARM实验室建设背景 实验室建设必要性 根据中共中央总书记、国家主席、中央军委主席习近平的重要文章《加强基础研究 实现高水平科技自立自强》,加强基础研究,是实现高水平科技自立自强的迫切要求,是建设世界科技强国的必由之路。近年来,我国着力打造世界一流科技期刊、建成一批大国重器,基础研究支撑平台建设取得长足进步,但是从根本上破解“两头在外”问题还任重道远。要协同构建中国特色国家实验室体系,科学规划布局前瞻引领型、战略导向型、应用支撑型重大科技基础设施,打好科技仪器设备、操作系统和基础软件国产化攻坚战。 根据教育部发展规划司发布《关于教育领域扩大投资工作有关事项的通知》,明确专项贷款重点支持范围包括:高校教学科研条件及仪器设备更新升级、学校数字化建设,包括校园网络及信息管理系统提档升级,高性能计算系统,信息中心建设,智慧校园,智慧教室,数据中心的国产代替、实验实训等资金的投入建设。 核心技术和设备受制于人是最大的隐患。只有发展自主可控技术,推进国产化替代进程,才能促进国家安全问题的解决。国内科技企业经过多年的自主研发、技术积累,创新能力、产品质量大幅提升,整体产业呈现出由大向强转变的趋势,实现了从无到有,从可用到好用的发展,与国际水平差距逐渐缩小,自主自强能力进一步提升。近年来在国家大力引领下,国产操作系统得到了蓬勃发展,桌面服务器和嵌入式操作系统等为代表的国产软件推动了我国基础软件自主发展的步伐,实现了补短板、国产化替代的目的。目前国产嵌入式操作系统已快速成长与壮大,在军事、通信和安全等领域实现了规模化应用。 因此,不论从教学还是学生的实际需求等方面来说都很有必要建立国产化嵌入式ARM实验室。嵌入式系统已经普遍应用于国防电子、数字家庭、工业自动化、医疗机械、无线通讯等行业。高校建设满足国产化要求的嵌入式ARM实验室,有助于推动当今形式下教学的改革,有助于提高学生的专业技能与专业素养,培养出符合地方经济和社会发展的应用型和实用型人才;此外,实验平台的建设,也为教师提供了教学平台和科研平台,推动教学和科研工作的开展。 ARM技术概述 ARM处理器全称为Advanced RISC Machine,因小尺寸、低功耗、性能强的特点而闻名。ARM架构是小端(little-endian)即低位字节排在内存的低地址端(至少在iOS平台是这样),和x86一样。它和MIPS、PowerPC等一样用的都是RISC,并且很长时间都是32位,但是后来有了叫做ARM64的64位扩展。 ARM7:ARMv4架构 ARM9:ARMv5架构 ARM11:ARMv6架构 ARM-Cortex 系列:ARMv7架构 ARM7没有MMU(内存管理单元),只能叫做MCU(微控制器),不能运行诸如Linux、WinCE等这些现代的多用户多进程操作系统,因为运行这些系统需要MMU,才能给每个用户进程分配进程自己独立的地址空间。ucOS、ucLinux这些精简实时的RTOS不需要MMU,当然可以在ARM7上运行。 ARM9、ARM11,是嵌入式CPU(处理器),带有MMU,可以运行诸如Linux等多用户多进程的操作系统,应用场合也不同于ARM7。 到了ARMv7架构的时候开始以Cortex来命名,并分成Cortex-A、Cortex-R、Cortex-M三个系列。三大系列分工明确: “A”系列面向尖端的基于虚拟内存的操作系统和用户应用; “R”系列针对实时系统; “M”系列对微控制器。 简单的说Cortex-A系列是用于移动领域的CPU,Cortex-R和Cortex-M系列是用于实时控制领域的MCU。 瑞芯微电子有限公司是国内独资的专业集成电路设计公司和经国家认定的集成电路设计企业,专注于数字音视频、移动多媒体芯片级的研究和开发。瑞芯微以市场为导向,技术创新为核心,致力于为客户提供多层次、多平台、多场景的专业解决方案,赋能消费电子、智能硬件、机器视觉、行业应用等多元领域。 ARM教学需求 嵌入式系统是一门综合性非常强的课程,对于嵌入式系统的学习,不仅仅是对理论知识的掌握,更多的是实际开发能力提升,这就需要通过学校建立支撑专业需要的嵌入式ARM实验室,可以对学生基础知识的掌握、综合素质的提高和应用创新能力培养起到较为重要的作用。 目前,许多院校先后建立了不同规模的实验室,目前大部分嵌入式ARM实验室都存在以下问题: 1、学校实验室现有的软硬件环境无法覆盖全面,无法实现准确高效实现项目开发。 2、目前大部分的指导教学都缺乏零基础入门的指导。 3、基础的教学案例无法满足高校科研的需求。 针对以上问题,创龙为高校提供了丰富的教学实验和开发例程,以及相应的视频教程,让高校能够轻松教学和科研。 产品设计及使用上具有以下特点: 1、创龙的嵌入式实验箱在硬件上引出 CPU 全部资源信号引脚,二次开发极其容易,用户只需要专注上层运用,降低了开发难度和时间成本。 2、创龙的嵌入式实验箱配备了开发过程中所需的所有配件和完整的平台开发包,节省软件整理时间,同时提供软件安装教程,上手容易。 3、提供的入门教程实验指导手册包括实验目的、原理、步骤及源码解析等,注重实验的过程,内容详实且丰富,可以帮助学生打好专业基础,快速入门上手,也有利于教师教学计划的开展。 建设目标 适用课程 Cortex-A55 ARM嵌入式实验箱主要用于《ARM 系统开发》、《ARM 应用开发》《物联网通信技术》、《嵌入式系统设计》、《移动互联网技术》、《无线传感器网络》、《物联网设计方法与应用》、《人工智能》等课程。 适用专业 Cortex-A55 ARM嵌入式实验箱主要面向电子信息工程专业方向,同时也可适用于通信工程、电子科学与技术、光电信息工程、计算机科学与技术、自动化、人工智能等相关专业教学。Cortex-A55系列的ARM可以满足自动化、通信等领域的应用需求,可应用于工控,电力,通讯,医疗,媒体,安防,车载,金融,消费电子等领域。 预期目标 ARM嵌入式实验室建设拟达成的预期教学培养目标如下: 学生理解嵌入式ARM系统的基本原理; 学生了解嵌入式ARM微处理器的结构和组成; 学生掌握嵌入式ARM系统开发的过程和基本方法; 学生掌握学会Linux开发的基本知识、程序架构、开发流程; 培养学生嵌入式系统设计能力、实践动手能力、嵌入式系统分析与调试能力。 Cortex-A55 国产化ARM教学平台 产品特点 TL3568-PlusTEB是创龙是一款基于瑞芯微 RK3568J处理器设计的四核 ARM Cortex-A55 全国产嵌入式教学实验箱,提供了丰富的教学实验,适合高校以及研究所等实验机构。 其中, SOM-TL3568 是一款基于瑞芯微 RK3568J处理器设计的四核 ARM Cortex-A55 全国产工业核心板,主频高达 1.8GHz。核心板 CPU、ROM、RAM、电源、晶振、连接器等所有器件均采用国产工业级方案,国产化率 100%。RK3568J是一款采用ARM架构的通用型SoC,主要应用于智能硬件和工业应用。CPU采用四核A55架构处理器,集成Mali G52图形处理器和独立的人工智能NPU处理器。RK3568J支持三屏异显,支持CAN、UART、SPI、IIC、IIS.SATA等接口,适合工控类应用,支持鸿蒙OS、安卓、Linux、Ubuntu、 Debian等操作系统,非常适合二次开发。 TL3568-PlusTEB的产品特点如下: 基于瑞芯微 RK3568J,四核 ARM Cortex-A55处理器,主频1.8GHz。 实验箱含实验板、7寸触摸屏、7寸全键盘,可选多种拓展模块。 实验箱支持:音频输入输出接口、摄像头接口、4G、NVMe接口、ADC、波形发生器、Ethernet、RS232、RTC、LCD、HDMI、USB HOST、USB OTG、SPI、IIC、GPIO、PWM、SD等外设与接口。 实验箱支持翼辉操作系统显示界面。 适用于嵌入式系统、物联网、无线传感器、人工智能等教学领域。
  • 热度 3
    2024-3-15 11:22
    255 次阅读|
    0 个评论
    SPI(Serial Peripheral Interface)通信总线以其高速、全双工、同步的特性而被广泛应用,它只需要四根线就能实现数据传输,有效地节约了芯片管脚的数量,同时为PCB布局带来了空间上的优化和便捷。正因为它简单易用的特点,现在越来越多的芯片选择集成SPI通信协议。 作为TI Sitara™产品线新一代MPU产品,TI AM62x处理器特别配备了多达4路的SPI接口以及1路OSPI接口(有时也称为QSPI),丰富的SPI接口配置使得该处理器能够同时与多个设备进行通信连接,大大提高了系统的扩展性和灵活性。 在飞凌嵌入式推出的搭载了AM62x处理器的OK6254-C开发板上,NOR Flash存储器正是通过连接到处理器的OSPI总线上进行工作的。这样的设计充分利用了SPI通信协议的高速传输和全双工特性,保证了开发板在数据处理和存储方面的效率。本文就通过OK6254-C开发板为大家介绍一下AM62x的SPI。 1、SPI的工作流程和时序 我们首先需要了解一下SPI是如何工作的——通常SPI通过4个引脚与外部器件相连: (1) MISO:主设备输入/从设备输出引脚 该引脚在从模式下发送数据,在主模式下接收数据; (2) MOSI:主设备输出/从设备输入引脚 该引脚在主模式下发送数据,在从模式下接收数据; (3) CLK:串口时钟 作为主设备的输出,从设备的输入; (4) NSS:从设备选择 这是一个可选的引脚,用来选择从设备。 SPI的工作流程是这样的: (1) 主机先将NSS信号拉低,这样保证开始接收数据; (2) 当接收端检测到时钟的边沿信号时,将立即读取数据线上的信号,这样就得到了一位数据; (3) 由于时钟是随数据一起发送的,因此指定数据的传输速度并不重要,尽管设备将具有可以运行的最高速度; (4) 主机发送到从机时,主机产生相应的时钟信号,然后数据一位一位地将从MOSI信号线上进行发送到从机; (5) 主机接收从机数据时,如果从机需要将数据发送回主机,则主机将继续生成预定数量的时钟信号,并且从机会将数据通过MISO信号线发送。 SPI工作时序图如下: 2、AM62x处理器中SPI总线的特点 在AM62x这款芯片中,TI将SPI的MISO与MOSI设计为d0和d1,具体哪一个作为输入,哪一个作为输出,是由设备树中的 ti,pindir-d0-out-d1-in= 来设置的。 默认属性值为0,即d0是输入,d1是输出; 当属性值为1时,d0为输出,d1为输入。 3、AM62x的SPI应用 (1)menuconfig配置: 将该项选中,SPI驱动将编译进内核中。 makemenuconfi Usermode SPI device driver support (注:在飞凌嵌入式OK6254-C开发板中,SPI驱动编译已进去。) (2)设备树配置: 1) 选择需要使用的spi,这里我们用spi0,节点为&main_spi0; 2) 将该节点所用的引脚复用为相应的功能。 spi0_pins_default: spi0-pins-default { pinctrl-single,pins = < AM62X_IOPAD(0x1B4, PIN_OUTPUT, 0) /* (A13) SPI0_CS0 */ AM62X_IOPAD(0x1B8, PIN_OUTPUT, 0) /* (C13) SPI0_CS1 */ AM62X_IOPAD(0x1C0, PIN_INPUT, 0) /* (B13) SPI0_D0 */ AM62X_IOPAD(0x1BC, PIN_OUTPUT, 0) /* (A14) SPI0_CLK */ AM62X_IOPAD(0x1C4, PIN_INPUT, 0) /* (B14) SPI0_D1 */ ; }; 3) 描述节点的属性,具体配置项的功能见注释。 &main_spi0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = ; /* 描述引脚复用节点 */ ti,spi-num-cs = ; /* 描述片选的数量 */ ti,pindir-d0-out-d1-in = ; /* 描述输入输出分别是哪个 */ /* 描述子节点spidev0设备 */ spidev@0 { spi-max-frequency = ; /* 描述spidev0设备的最大频率 */ reg = ; /* 描述spidev0设备所用的片选,这里是第0个 */ spi-cs-high; /* 描述spidev0设备高有效 */ compatible = "rohm,dh2228fv"; /* 描述spidev0设备所用驱动 */ }; /* 描述子节点spidev1设备 */ spidev@1 { spi-max-frequency = ; reg = ; compatible = "rohm,dh2228fv"; }; }; (3)编译烧录: 在源码路径下输入以下命令: . build.sh sudo ./build.sh kernel 没有报错即为编译成功。 将源码路径下的image中的OK6254-C.dtb文件放到开发板的/boot目录中,重启开发板即可。 (4)SPI测试: 将spi0_D0和spi0_D1短接 重启开发板后,在/dev目录下看到多出两个spidev设备。 使用我们的测试程序 fltest_spidev_test -D /dev/spidev3.0 -s 42000 有如下打印信息即为成功: spimode: 0 bitsper word: 8 maxspeed: 42000 Hz (42 KHz) FFFF FF FF FF FF 4000 00 00 00 95 FFFF FF FF FF FF FFFF FF FF FF FF FFFF FF FF FF FF DEAD BE EF BA AD F00D 4、总结 TI AM62x处理器有着丰富的SPI资源,而SPI又可以作为许多设备的总线,这使得AM62x能够接入许多SPI接口的设备,因此在那些对SPI有着比较多需求的应用场景下,TI AM62x无疑是一个非常好的主控选择。
  • 热度 2
    2024-3-15 09:40
    179 次阅读|
    0 个评论
    完美落幕 | 回顾飞凌嵌入式的CIES之行
    2024年3月13日,备受瞩目的第十四届中国国际储能大会暨展览会(简称CIES)完美落幕。本次大会以“共建储能生态链,共创储能新发展”为主题,汇聚了业内众多的杰出企业共同探讨和分享储能领域可持续发展项目的应用案例、创新产品以及解决方案的深化应用。 飞凌嵌入式携多款广泛应用于储能与电力行业的嵌入式智能主控产品亮相本次大会。 飞凌嵌入式深耕储能与电力行业,推出的产品在能耗监测、储能网关、EMS、通讯管理机、局放、网闸、充电桩、巡检机器人、电能质量分析仪等众多设备上有着广泛应用。 飞凌嵌入式的展位上整齐地摆放着多款智能主控产品,如FET3568-C、FET113i-S、FETMX6ULL-C和FET6254-C等热门的嵌入式核心板以及FCU2601和FCU1104等储能EMS网关,这些产品都是飞凌嵌入式近年来在储能与电力行业得到广泛应用的主控产品,吸引了众多参观者的目光。 此外,飞凌嵌入式还与多家储能与电力行业的伙伴进行了交流和学习,彼此分享最新的市场趋势前沿、技术研发动态以及未来发展方向。通过交流,飞凌嵌入式不仅了解了行业的最新动态,还找到了更多的合作机会。 CIES 2024已经落下帷幕,展望未来,飞凌嵌入式将继续深耕储能与电力行业的技术研发和产品创新,与更多行业伙伴携手面对机遇和挑战,赢得更多发展新机会,把握新未来。
  • 热度 3
    2024-3-8 11:37
    413 次阅读|
    1 个评论
    B y Toradex 胡珊逢 简介 Verdin iMX8M Plus 具有四个串口,其中 UART3 是用于 A53 核心上的系统如 Linux 的默认调试串口,出于设计需要可能需要将调试口换到其他串口,文章将介绍如何使用 UART1 作调试串口。 硬件介绍 Verdin iMX8M Plus 的四个串口 UART1 ~ UART4 中, UART3 为默认的 A53 调试串口, UART4 为 M7 调试串口,其余两个作为通用 UART 使用。 Verdin 系列的模块均使用 1.8V TTL 电平,在连接外部设备时请先检查电压。本次测试使用的是 Dahlia 底板,在 X20 扩展接口 Pin12 和 Pin13 分别将模块的 UART1_RXD 和 UART1_TXD 引出。四个串口的物理地址如下: UART 起始地址 结束地址 UART1 0x3086_0000 0x3086_FFFF UART2 0x3089_0000 0x3089_FFFF UART3 0x3088_0000 0x3088_FFFF UART4 0x30A6_0000 0x30A6_FFFF 软件修改 调试串口更改的软件涉及到三个部分, ATF 、 U-Boot 和 Linux 。 ATF 会和 U-Boot 等其他文件如 DDR 固件一起打包成用于 NXP i.MX 8M Plus 处理器的启动文件。这些文件的下载和编译请参考 该网页 。文章使用到的完整补丁请从 这里下载 。 ATF ATF 代码的 imx8mp_bl31_setup.c 中,把 RDC_PDAP_UART1 划分到 A53 所在的 D0 域。 --------------------------- --- a/plat/imx/imx8m/imx8mp/imx8mp_bl31_setup.c +++ b/plat/imx/imx8m/imx8mp/imx8mp_bl31_setup.c @@ -53,7 +53,7 @@ static const struct imx_rdc_cfg rdc = { - MX8MP_PAD_UART3_RXD__UART3_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL), - MX8MP_PAD_UART3_TXD__UART3_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL), + MX8MP_PAD_UART1_RXD__UART1_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL), + MX8MP_PAD_UART1_TXD__UART1_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL), }; imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads)); - init_uart_clk(2); + init_uart_clk(0); return 0; } --------------------------- 在 include/configs/verdin-imx8mp.h 将 CONFIG_MXC_UART_BASE 的地址也设置为 UART1 。同时修改 console 。 --------------------------- --- a/include/configs/verdin-imx8mp.h +++ b/include/configs/verdin-imx8mp.h "boot_script_dhcp=" BOOT_SCRIPT "\0" \ - "console=ttymxc2\0" \ + "console=ttymxc0\0" \ "fdt_board=dev\0" \ @@ -111,7 +111,7 @@ #define PHYS_SDRAM_2_SIZE (SZ_4G + SZ_1G) /* UART */ -#define CONFIG_MXC_UART_BASE UART3_BASE_ADDR +#define CONFIG_MXC_UART_BASE UART1_BASE_ADDR /* Monitor Command Prompt */ #define CONFIG_SYS_CBSIZE SZ_2K --------------------------- Linux Linux 的 device tree 同样也需要做修改。在 freescale/imx8mp-verdin-dev.dtsi 中取消 UART1 默认配置下的 RS485 功能。 --------------------------- --- a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi /* Verdin UART_1, connector X50 through RS485 transceiver */ &uart1 { + /* linux,rs485-enabled-at-boot-time; rs485-rts-active-low; rs485-rx-during-tx; + */ status = "okay"; }; --------------------------- imx8mp-verdin.dtsi 中更改 stdout-path 调试串口输出至 UART1 ,并删除 RTS 和 CTS 功能引脚。 --------------------------- --- a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi @@ -8,7 +8,7 @@ / { chosen { - stdout-path = &uart3; + stdout-path = &uart1; }; aliases { @@ -891,7 +891,7 @@ &snvs_pwrkey { &uart1 { pinctrl-names = "default"; pinctrl-0 = ; - uart-has-rtscts; + /* uart-has-rtscts; */ }; /* Verdin UART_2 */ @@ -1331,8 +1331,8 @@ pinctrl_sai3: sai3grp { pinctrl_uart1: uart1grp { fsl,pins = - , /* SODIMM 135 */ - , /* SODIMM 133 */ + /* , SODIMM 135 */ + /* , SODIMM 133 */ --------------------------- 修改完毕上述文件后重新编译 flash.bin ( imx-boot )和 device tree 文件,并将其放入支持 Toradex Easy Installer 烧录的镜像文件中。同时也需要修改镜像文件中的 u-boot-initial-env-sd ,将 console 改为 console=ttymxc0 。该文件会在烧录系统时配置 U-Boot 环境变量。安装完镜像后,在 UART1 即可看到启动日志。 总结 通过上述几个文件的修改,可以切换 A53 调试串口。对于 Linux 系统通常建议保留一个调试串口,这将有利于调试和后期其他问题排查。
相关资源