当前位置:首页 > 嵌入式开发
  • 瑞萨电子针对亚太物联网市场推出Renesas Synergy™ 平台

      2016年7月20日,中国,北京讯——瑞萨电子(中国)有限公司今日宣布Renesas Synergy™ 平台开始在亚太市场正式上线。Renesas Synergy是一种经过验证的完善平台,融合了全面集成软件、一系列可扩展的微控制器(MCU)以及统一的开发工具,帮助嵌入式系统开发人员加快物联网设备应用的创新产品开发,并缩短上市时间。Synergy软件包(SSP)是Synergy 平台的核心组成部分,经过瑞萨技术验证,并由瑞萨提供支持、和维护服务。SSP包含实时操作系统(RTOS)、广泛的中间件和通信栈等,均可通过稳健的应用程序编程接口(API)进行访问,让用户无需在低层次的细节问题上浪费时间。开发人员可直接在API层级开始MCU软件的开发过程,从而使其能够专注地研究如何开发出差异化的产品,而避免做一些无差别的重复性工作。此外,该平台还能够降低系统开发人员的总成本,帮助其消除影响创新设计开发的诸多阻碍因素。   东南亚、澳大利亚和新西兰的系统开发人员现在可通过Synergy Gallery网站(只需点击授权许可)直接下载专业软件和开发工具(无需支付费用或版权费)。该平台将于今年10月在中国大陆/香港地区及台湾地区上线,实现Synergy平台在全球范围的全面上线。   Synergy平台于2015年6月在美国市场首次推出,随后又相继在欧洲和日本上线,其通过持续扩增功能和拓展业务合作,不断强化技术实力,并凭借独特的价值理念在市场中实现增长。   Synergy平台由五大要素组成,提供最优化的功能和最佳的用户经验,这些要素包括Synergy软件,Synergy微控制器,Synergy 工具和套件, Synergy解决方案,Synergy Gallery。   今年10月27日Renesas DevCon China  — 瑞萨全球开发者大会将在深圳举办。届时Synergy平台将首次在中国正式亮相。   关于瑞萨电子(中国)有限公司   瑞萨电子(中国)有限公司是瑞萨电子株式会社(TSE:6723)(2010年4月由NEC电子公司(TSE:6723)和株式会社瑞萨科技合并成立)在中国成立的独资公司,公司业务覆盖了面向各种应用的设计、开发、销售和技术支持。瑞萨电子以世界占有率No.1的MCU为中心,提供系统LSI、模拟与功率半导体器件等产品,以及适合汽车电子、工业、消费类电子、网络通信、办公自动化等各种应用的解决方案。 欲了解更多信息,敬请访问网站:www.cn.renesas.com

    时间:2020-08-25 关键词: 嵌入式开发 物联网 瑞萨

  • 分配中断向量表,浅谈ARM的硬件启动程序设计

    分配中断向量表,浅谈ARM的硬件启动程序设计

    众所周知,ARM要求中断向量表必须防放置在从0x00000000地址开始的连续32字节的空间内。ARM9定义的中断向量在向量表中的地址如下面所示,当中断发生后,ARM处理器会强制把PC指针指向中断向量表中对应的终端类型的地址处。 中断向量表的程序设计如下: CODE32 AREA Startup,CODE,READONLY ; /* 异常向量表 */ Vectors LDR PC, ResetAddr ;把ResetAdde地址上的存储器的内容装载到PC上 LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr DCD 0 LDR PC, IRQ_Addr LDR PC, FIQ_Addr ResetAddr DCD ResetInit;为ResetAddr分配以ResetInit地址值, UndefinedAddr DCD Undefined SWI_Addr DCD SoftwareInterrupt PrefetchAddr DCD PrefetchAbort DataAbortAddr DCD DataAbort Nouse DCD 0 IRQ_Addr DCD IRQ_Exception FIQ_Addr DCD FIQ_Handler 对ResetAddr而言,此时ResetAddr实质上只作为一个指针(指向ResetInit),没有分配空间,ResetAddr地址的存储器上装载的是ResetInit的地址。 ResetInit BL InitStack ; 初始化堆栈 BL TargetBusInit ; 总线系统初始化 (函数中不允许堆栈操作) BLTargetResetInit; 针对目标板的系统初始化 以ResetInit为例,存储器空间分配如下所示: 注意中断向量表要存放在代码段startup的开始处(Entry开始),而程序被链接时,该startup代码段被链接在整个程序的入口地址。

    时间:2020-07-17 关键词: ARM 嵌入式开发

  • 嵌入式开发需要什么准备?选择ARM7还是ARM9?

    嵌入式开发需要什么准备?选择ARM7还是ARM9?

    众所周知,一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成, 嵌入式图标 嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。 ARM公司设计了许多处理器,它们可以根据使用的不同内核划分到各个系列中。系列划分是基于ARM7、ARM9、ARM10、ARM11和Cortex内核。后缀数字7、9、10和11表示不同的内核设计。数字的升序说明性能和复杂度的提高。嵌入式定制 ARM7系列处理器是英国ARM公司设计的主流嵌入式处理器ARM7内核是0.9MIPS/MHz的三级流水线和冯·诺伊曼结构;ARM9内核是5级流水线,提供1.1MIPS/MHz的哈佛结构。ARM7没有MMU。 ARM7系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T。该系列处理器提供Thumb16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。 ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用门的数量也很少。它属于精简指令集计算机(RISC),比复杂指令集计算机(CISC)要简单得多。这样的简化实现了:高的指令吞吐量;出色的实时中断响应;小的、高性价比的处理器宏单元。三级流水线:ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。ARM7TDMI的流水线分3级,分别为:取指、译码、执行。正常操作过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.8~2.2倍。 ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM9TDMI和ARM9E-S等系列。 ARM9采用哈佛体系结构,指令和数据分属不同的总线,可以并行处理。在流水线上,ARM7是三级流水线,ARM9是五级流水线。由于结构不同,ARM7的执行效率低于ARM9。平时所说的ARM7、ARM9实际上指的是ARM7TDMI、ARM9TDMI软核,这种处理器软核并不带有MMU和cache,不能够运行诸如linux这样的嵌入式操作系统。而ARM公司对这种架构进行了扩展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等带有MMU和cache的处理器内核。 ARM7与ARM9的区别 1.时钟频率的提高 虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构;,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz以上。 2指令周期的改进 指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。 3.MMU(内存管理单元) ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。ARM9一般是有MMU的,ARM9940T只有MPU,不是一个完整的MMU。 这一条很重要,MMU单元是大型操作系统必需的硬件支持,如linux;WINCE等。这就是说,ARM7一般只能运行小型的实时系统如UCOS-II,eCOS等,而ARM9无此限制,一般的操作系统都可以移植。其实即使ARM720T能支持LINUX;WINCE等系统,也鲜有人用,因为以ARM7的运行速度跑这种大型操作系统,实在有点吃力。再者两者的应用领域明显不同,也无此必要。 4.ARM7比ARM9提供了更好的性能-功耗比。它包含了THUMB指令集快速乘法指令和ICE调试技术的内核。 5.在从ARM7到ARM9的平台转变过程中,有一件事情是非常值得庆幸的,即ARM9E能够完全地向后兼容ARM7上的软件;并且开发人员面对的编程模型和架构基础也保持一致。 如果是一般性控制系统或仅仅用来替换8获16位机,ARM7显然是首选;但如果用在网络通信或大型的音视频处理等,则ARM9较合适。

    时间:2020-04-12 关键词: ARM 嵌入式开发

  • Google开源注册Pigweed,涉足嵌入式开发?

    Google开源注册Pigweed,涉足嵌入式开发?

    3月21日,Google 不久前在官方博客上宣布了开源 Pigweed 的消息。Pigweed 是啥?一个月前,Google 向美国专利商标局注册了 PIGWEED 商标,类别是“计算机操作软件”。 当时社区里认为这是 Google 继 Android、Chrome OS、Fuchsia 之后的第 4 个操作系统。 然而官方消息出来,它并不是操作系统,而是一组用于嵌入式开发的工具模块的集合,特别是针对如 STM32 这样的微控制器。它是为嵌入式开发工程师和创客而设计的。 嵌入式开发的挑战是需要不断的调试设备和切换环境。而 Pigweed 提供的模块正是满足在整个生命周期内加速嵌入式开发的需求,比如包含了必需的工具,简化环境设置;通过分布式测试加快了编译、开发板测试的周期;预先设置了代码格式检查,保证快速进行代码提交。 【雷锋网注:上图为 Pigweed 的设置启动环境】  所有这些开发工作都可以在代码编辑器里自动完成,还可以在多个设备上并行测试,节省了很多时间。 【雷锋网注:上图为 Pigweed 的代码编辑器界面】 虽然 Google 的说法非常低调,声明这只是帮助开发人员方便启动新项目的工具集合,但毕竟这是从 Web 开发领域涉足到嵌入式开发领域,谁知道 Google 的下一步呢? 谷歌特别注明,Pigweed 还在早期开发阶段,目前并不适合用于生产。Pigweed 含义是一种营养丰富、快速生长的杂草,团队认为这个名字有趣、好玩,反映出项目的成长。

    时间:2020-03-22 关键词: 开源 嵌入式开发

  • 在不就的未来,嵌入式 FPGA 编程只需简单一步即可完成

    在不就的未来,嵌入式 FPGA 编程只需简单一步即可完成

    我们都知道,FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。嵌入式 FPGA 将不再是梦想。根据 Achronix,未来,芯片设计者只要简单地将线对线互连加进其 SoC 设计即可。 Achronix Semiconductor 营销副总裁 Steve Mensor 表示,这款被称为 Speedcore 的嵌入式 FPGA (eFPGA) IP 产品目前已经就绪且正出货中。尽管并未透露出货数字以及客户名称,该公司表示这款产品现在已经提供给客户使用了。 Speedcore 象征着该公司首次进军 IP 业务。Achronix 自 2013 年以来一直在生产其旗舰级 FPGA 产品——Speedster 22i。因此,对于 Achronix 来说,这是一条漫长的道路,因为该公司在 4 年以前才首次宣布开发 eFPGA IP 的计划。 尽管如此,Achronix 在此看到了一线曙光,预计今年可望首次盈利,营收上看 1,200 万美元。根据 Mensor 表示,该公司预计其销售额将在 2017 年成长超过 4,000 万美元,进一步使 eFPGA IP 业务成为带动 Achronix 成长的“重要驱动力”。 设计工具 Speedcore 采用与 Achronix Speedster 22i FPGA 相同的高性能架构。专为运算和网络加速应用而设计的 Speedcore eFPGA IP 将整合至其他公司的 ASIC,应用于数据中心、无线基础设施和网络设备。 Mensor 认为,eFPGA 的最大优势在于其设计工具。多年来,Achronix 了解到客户需要更好的设计工具,为其带来优质的结果、简单易用性以及第三方整合,而这些特点都是“Achronix CAD 环境”(ACE)所能提供的一部份。 为了成为系统的一部份,eFPGA IP 必须具备易于整合于 SoC 的功能设计。Achronix 提供了可让客户直接整合于其 SoC 的 GDS II 版 Speedcore IP,以及可让客户用于设计、验证与编程 Speedcore eFPGA 功能的 ACE 工具客制版。 CPU 投片? 整个电子产业都知道 FPGA 极其热门。只要看看微软(Microsoft)的 Project Catapult 就知道了。 微软解释,这项计划是专为“加速微软在网络、安全、云端服务和人工智能(AI)等方面的超级运算基础”而打造的,并作为其于“后 CPU”(post-CPU)的各种技术——包括 GPU、FPGA 与 ASIC 的最大睹注。 微软这项 Project Catapult 的关键就在于 Altera Stratix V D5 FPGA。Mensor 强调,整个电子产业普遍存在的看法是,微软的计划促成了英特尔(Intel)决定收购 Altera。 藉由 AlphaGo,Googler 的客制 Tensor 处理器单元也激励了许多工程师,促使他们开始考虑从 ASIC 到 GPU 和 DSP 的一切。Mensor 解释说,他们正在寻找能够更有效率处理“加速非结构性搜寻、机器学习与人工智能”的技术。 Achronix 在其中看到了机会。     FPGA 应用领域以及成长阶段 FPGA 从 1990 年代中期作为“胶合芯片”(glue chip)开始流行于市场上,如今正重新定义其价值,成为 CPU 的协同处理器。在这个角色上,FPGA 可加速加密 / 解密、压缩 / 解压缩,或甚至是预处理资料封包,以便只让有关的共享资料可被传送与进行处理。 当进行非结构化搜寻时,FPGA 的平行环境经证实是十分有效的。例如,相较于专为划分功能成为较小部份以及依顺序作业而设计的 CPU 而言,FPGA 能以平行方式,在单一频率周期完成整个任务。 当无线基础设施必须涵盖多个地理区时,FPGA 是可编程数位前端和地理区客制化的一张备用王牌。 在芯片之间布线 尽管在 SoC 中嵌入 FPGA 总能为设计者带来不错的设计想法,但对于 FPGA 供应商而言,要实现这个愿望并不容易。 “在不同芯片之间布线是非常困难的,”Mensor 说。成功整合 eFPGA IP 的关键在于尽可能降低延迟并提高吞吐量。该公司强调,Achronix 最先提供了具有嵌入式系统级 IP 的高密度 FPGA。 对于“希望将 ASIC 设计的所有效率以及 eFPGA 可编程硬件加速器的灵活性结合于同一芯片”的公司,Achronix 为其提供相同的 eFPGA 技术。 而对于 IP 供货商而言,整合极具挑战之处在于客户对于特定应用所要求的优化芯片尺寸、功耗与资源分配总有不同的想法与方法。他们还自行定义了查找表数目、嵌入式内存模块女以及 DSP 模块的数量。 但问题并不一定是客户的不同建置方式,而是他们经常使用不同的方法进行芯片测试与验证。Mensor 解释,客户并不知道 IP 供货商的工具如何与其搭配作业。例如,“我们经常听到客户问:‘如何才能用你们的 IP 关闭计时功能?’” 虽然 Achronix 并未为客户整合其 IP,其业务取决于所提供的工具是否足以让客户快速完成设计     Achronix NT31P1 Achronix 也向外收购了一些第三方 IP,包括接口协议、可编程 IO、SerDes 和 PLL 等。那么在开发 FPGA 和满足客户需求时,Achronix 是否遇到困难?Mensor 说:“我们总会试着把遇到的每个问题都转化为一次机会。” 对于 Achronix 来说,其关键在于整合该公司的 FPGA 架构。最终的结果是一款更精简的 Speedster 22i,其可编程 IO、SerDes 和接口控制器占用的空间更少,相形之下,竞争对手的高阶 FPGA 通常使用了大约 50%的芯片面积。     Achronix NT31P2 FPGA 芯片尺寸比较 提高延迟和传输速率 Achronix 认为,能够与 SoC 实现线对线连接的 Speedcore eFPGA,有助于消除大量的可编程 IO 缓冲器,从而使功耗降低一半。此外,Speedcore 的芯片尺寸也比标准 FPGA 更小,使得 eFPGA 的成本可降低 90%以上。 然而,Mensor 强调,“对于大多数客户而言,最大的决定因素在于延迟和吞吐量方面的问题。”根据 Achronix,相较于独立的 FPGA,eFPGA 具有更高的接口性能,可望提高 10 倍的吞吐量和延迟性能。

    时间:2020-01-12 关键词: FPGA 嵌入式 SoC achronix 嵌入式开发

  • 一文读懂,基于 STM32 和 CAN 总线的温度监控系统的设计方法

    一文读懂,基于 STM32 和 CAN 总线的温度监控系统的设计方法

    小编为大家总结了一篇基于 STM32 和 CAN 总线的温度监控系统的设计,通过上位机与下位机的通信,实现对温度数据的监控,并经初步实验达到了设计的要求。 1 系统总体方案概述 系统总体框图如图 1 所示,本系统采用主站+从站的结构,CAN 主站主要实现温度数据的存储以及 CAN 总线协议和串口协议之间的桥接,CAN 从站主要实现温度的采集。CAN 从站采集的温度,经过 CAN 总线传送到 CAN 主站,主站将各从站的温度值传送到系统上位机中。上位机对各点的数据进行实时曲线显示并进行存储,上位机可以设定报警值,当节点温度超过设定值的时候,上位机发出报警声。在没有上位机的场合,主站将数据以文本文档的形式存储在主站的 SD 卡中。     图 1 系统总体框图 2 系统硬件设计 2.1 CAN 主站硬件设计 主站电路如图 2 所示,主要有电源模块、STM32 模块、CAN 收发器模块、RS232 串口模块和 SD 卡模块。 其中 STM32 模块由 STM32F103RBT6 和周边时钟、复位、调试等组成。电源模块由外部输入+5V 电压,经线性压降 AMS1117-3.3V 后供 STM32 使用。CAN 收发器模块采甩 NXP 的高速收发器 TJA1040,TJA1040 是 PCA82C250 的替代品,它完全符合 ISO 11898 标准,具有高速、低功耗、低电磁辐射的优点。RS232 电平转换芯片采用 MAX3232,它具有低功耗、高数据速率以及增强型 ESD 保护等特性。采用专有的低压差发送输出级,+3.0 V 至+5.5V 供电时利用内部双电荷泵保证 RS-232 性能。工作时,电荷泵仅需要四个 100 nF 的小电容。SD 卡模块采用四线制 SPI 总线与 SD 卡相连接。 2.2 CAN 从站硬件设计 从站电路如图 3 所示,主要有电源模块、STM32 模块,CAN 收发器模块,PT100 模块和从站地址选择模块。     图 2 CAN 主站电路框图                图 3 CAN 从站电路框图 其中电源模块、STM32 模块和 CAN 收发器模块与 CAN 主站相同。PT100 模块,采用传感器测量电桥,为了保证电桥输出电压信号的稳定性,电桥的输入电压通过 TL431 稳至 2.5V。从电桥获取的差分信号通过两级运放放大后输入 STM32 的 AD 输入口。从站地址选择模块由 8 位拨码开关组成,连接到 STM32 I/O 的 PC6-PC13。 3 系统软件设计 本系统软件由 CAN 主站软件、从站软件以及 Delphi 上位机软件构成。其中 CAN 主站和从站程序用 C 语言编写,上位机程序用 Obieet Pascal 编写。 3.1 CAN 主站软件设计 CAN 主站的功能是发送远程帧向从站查询数据、通过 AD 的转换结果计算芯片内部温度传感器的温度值、接收从站发送的数据帧、发送温度数据到上位机或存储数据到 SD 卡。CAN 主站程序如图 4 所示。     图 3 CAN 主站程序流程图 图 5 写 SD 卡程序流程图 写 SD 卡部分程序流程图如图 5 所示,SD 卡部分主要用到了移植的 FATFS 文件系统提供的访问 FAT 卷的应用接口(Application Interface)。主要用到了以下函数: ·f_mount- 注册/注销一个工作区域 ·f_open- 打开/创建一个文件 ·f_close- 关闭一个文件 ·f_lseek- 移动/写指针,扩展文件大小 ·f_puts- 写字符串 ·f_printf- 写一个格式化字符串 3.2 CAN 从站软件设计 CAN 从站的主要功能是通过 AD 转换器检测 PT100 电桥的差分输出电压,然后计算得出此节点的温度值,最后通过 CAN 总线传送给 CAN 主站。其中只有在 CAN 从站收到与自己节点号相同的主站发送的远程帧的时候,从站 CAN 控制器才发出一个数据帧。CAN 从站程序流程图如图 6 所示。     图 6 CAN 从站程序流程图 图 7 Delphi 实时曲线部分流程图 3.3 Delphi 上位机软件设计 本上位机软件主要实现了五个功能:实时曲线显示当前各从节点的温度;打印实时曲线;将实时曲线保存为图片;将实时曲线的数据保存为 TXT 文档以及实时温度超过报警值时报警。 本系统上位机串口通讯控件采用 SPCOMM,该控件具有丰富的与串口通信密切相关的属性及事件,支持多线程;提供了对串口的各种操作。图形控件采用 TChart,TCharc 是 Delphi 里面一个标准的图形显示控件。它可以静态设计(At Design TIme)也可以动态生成。该系统设计采用的版本为 TeeChart 7;实时曲线部分流程图如图 7 所示。上位机程序完成后界面如图 8 所示。     图 7上位机界面 4 结束语 本文介绍了基于 STM32 和 CAN 总线的温度监控系统的设计,初步实验证明,上述的硬件及软件设计基本达到了设计要求。本系统适用于多节点、远距离的场合,并具有实时性好、可靠性高的特点,具有一定的应用价值。

    时间:2019-12-24 关键词: can 电源模块 can总线 sd卡 嵌入式开发

  • 移动机器人选配功能有何应用价值?

    移动机器人选配功能有何应用价值?

    智能制造,源于人工智能的研究。一般认为智能是知识和智力的总和,前者是智能的基础,后者是指获取和运用知识求解的能力。智能制造的发展及智能物流的兴起,极大地带动了移动机器人产业的蓬勃发展。但是由于不同的使用场景对移动机器人的需求都不一样,导致80%以上的项目都是个性化、定制化需求,存在研发难度大、周期长、成本高的问题。 针对这样的情况,仙知机器人推出了移动机器人最强大脑SRC系列核心控制器,以超强适配性和强大的功能来满足用户定制化、个性化需求。一方面,标准版的SRC核心控制器可适配双轮差动基础运动车型,客户还可根据需要选择单舵轮、双舵轮、四驱麦克纳姆轮等多种高级运动车型,满足工业移动机器人、商用移动机器人、自动叉车的不同应用需求;另一方面,SRC核心控制器拥有全面且出色的基础功能与丰富实用的选配功能供用户自主选择搭配,助力客户一站式解决各类移动机器人应用难题。 那究竟有哪些选配功能?这些选配功能有何应用价值? 3D避障功     应对场景 当使用2D激光传感器进行定位导航时,由于2D激光雷达只能检测到激光水平面的障碍物,对地面上的坑洞、减速带、高于或低于激光水平面的立体障碍物或其它影响移动机器人安全运行的障碍等无法识别检测,存在一定的安全隐患,这时便需要选配3D避障功能。 使用价值 选配3D避障功能,通过加入3D视觉传感器能对机器人运行通道上的立体的障碍物进行识别检测,并根据配置让机器人选择停障或绕行,能够提升运输安全性,减少地面因素对移动机器人运行的制约。 激光反光板导航     应对场景 用户现场车间、仓库某些区域经常会有高动态的情况,车间变化大,导致采用激光自然轮廓进行定位导航时会失去参照物,需要增加固定的辅助定位标识。 使用价值 选配激光反光板导航功能,在激光自然轮廓导航的基础上融合激光反光板导航,通过在划定的高动态区域内进行激光反光板导航,其余区域恢复激光导航,两种导航方式自由切换保证机器人的定位和运行。 二维码导航功能     应对场景 在长廊或高动态的环境中,由于无线通信信号强度影响及环境变化的因素,会导致移动机器人出现定位丢失的情况。 使用价值 选配二维码导航功能,在激光导航的基础上融合二维码导航,在划定区域内进行二维码导航,其余区域恢复激光导航,实现导航方式自由切换的同时减少信号强度及环境变化对移动机器人运行的影响。 自动充电功能     应对场景 当移动机器人电量较低需要进行充电时,如果采用手动充电则需要人工的介入,而人工介入的时间具有不确定性。 使用价值 选配自动充电功能,由仙知提供自动充电的机器人端与充电桩设计方案,能够实现移动机器人自主充电,并且不需要人工参与。 栈板识别、料笼识别功能         应对场景 通常情况下栈板及料笼里的货物需要人工存放,导致栈板或料笼总会存在不同程度的偏移指定的具体位置,使得移动机器人难以完成在指定位置的料笼、栈板搬运。 使用价值 选配栈板功能或料笼识别功能,通过加入视觉识别传感器来识别栈板(料笼)的精确位置,能够使自动叉车始终准确叉取栈板及料笼。 货架识别及顶升随动功能     应对场景 当使用潜入顶升或潜伏牵引机器人进行货架搬运时,由于人工摆放货架总会与指定的位置有所偏差,导致移动机器人无法安全、顺利搬运货架。 使用价值 选配货架识别及顶升随动功能,可使移动机器人自主识别货架的精确位置,从而保证移动机器人钻入货架后处于货架的正下方;如果是潜入顶升机器人,顶升随动功能使得机器人搬运货架时无论直行还是转弯过程中,托盘上的货架不随底盘转动,有利于安全顺利的完成作业任务。 Wi-Fi漫游功能     应对场景 在面积较大的工厂车间,通常会有多个AP来保证设备之间的通信,但是移动机器人在多个AP间运行,由于网络延迟可能会导致数据丢失或导致调度系统不稳定的情况发生。 使用价值 选配Wi-Fi漫游功能,通过增加车载无线客户端,能够保证移动机器人在多个AP之间稳定运行。 功能模块化的设计,能让用户根据实际需求进行选择搭配,有利于用户个性化需求的实现,并减少不必要的开发成本与时间成本,同时也有利于仙知为更多的用户服务,创造更大的价值。 有关仙知 上海仙知机器人科技有限公司,是一家以移动机器人控制与调度为核心的高新技术企业。作为一站式移动机器人方案专家,仙知机器人掌握了具有自主知识产权的移动机器人核心技术,并在工业自动化领域内拥有丰富的项目经验。仙知机器人致力于服务各行业集成商,并为其提供包括移动机器人控制、调度与信息管理在内的一站式移动机器人解决方案。 目前,仙知机器人的产品、技术及解决方案已在汽车制造、家电制造、3C电子制造、半导体制造、食品烟草、电商仓储、安防巡检、商用服务、医疗教育等领域广泛应用。 仙知机器人积极践行企业使命—“让智能创造价值”,不断坚持技术创新,并以开放包容、合作共赢的姿态携手合作伙伴,最大程度地满足客户对产品、技术与解决方案的高品质追求,力争“成为机器人产业的创新者与引领者!”

    时间:2019-12-15 关键词: 移动机器人 wi-fi漫游 嵌入式开发

  • LED 的原理及应用

    LED 的原理及应用

    LED 已经融入到生活中的每一个角落,现在大街上随处可见的 LED 显示屏,还有装饰用的 LED 彩灯以及 LED 车灯,处处可见 LED 灯的身影。 1. 正向电压降低,暗光 A:一种是电极与发光材料为欧姆接触,但接触电阻大,主要由材料衬底低浓度或电极缺损所致。B:一种是电极与材料为非欧姆接触,主要发生在芯片电极制备过程中蒸发第一层电极时的挤压印或夹印,分布位置。 另外封装过程中也可能造成正向压降低,主要原因有银胶固化不充分,支架或芯片电极沾污等造成接触电阻大或接触电阻不稳定。正向压降低的芯片在固定电压测试时,通过芯片的电流小,从而表现暗点,还有一种暗光现象是芯片本身发光效率低,正向压降正常。     2. 难压焊:(主要有打不粘,电极脱落,打穿电极) A:打不粘:主要因为电极表面氧化或有胶 B:有与发光材料接触不牢和加厚焊线层不牢,其中以加厚层脱落为主。C:打穿电极:通常与芯片材料有关,材料脆且强度不高的材料易打穿电极,一般 GAALAS 材料(如高红,红外芯片)较 GAP 材料易打穿电极。D:压焊调试应从焊接温度,超声波功率,超声时间,压力,金球大小,支架定位等进行调整。 3. 发光颜色差异: A:同一张芯片发光颜色有明显差异主要是因为外延片材料问题,ALGAINP 四元素材料采用量子结构很薄,生长是很难保证各区域组分一致。(组分决定禁带宽度,禁带宽度决定波长)。B:GAP 黄绿芯片,发光波长不会有很大偏差,但是由于人眼对这个波段颜色敏感,很容易查出偏黄,偏绿。由于波长是外延片材料决定的,区域越小,出现颜色偏差概念越小,故在 M/T 作业中有邻近选取法。C:GAP 红色芯片有的发光颜色是偏橙黄色 4. 闸流体效应; A:是发光二极管在正常电压下无法导通,当电压加高到一定程度,电流产生突变。B:产生闸流体现象原因是发光材料外延片生长时出现了反向夹层,有此现象的 LED 在 IF=20MA 时测试的正向压降有隐藏性,在使用过程是出于两极电压不够大,表现为不亮,可用测试信息仪器从晶体管图示仪测试曲线,也可以通过小电流 IF=10UA 下的正向压降来发现,小电流下的正向压降明显偏大,则可能是该问题所致。 5. 反向漏电: A:原因:外延材料,芯片制作,器件封装,测试一般 5V 下反向漏电流为 10UA,也可以固定反向电流下测试反向电压。B:不同类型的 LED 反向特性相差大:普绿,普黄芯片反向击穿可达到一百多伏,而普芯片则在十几二十伏之间。C:外延造成的反向漏电主要由 PN 结内部结构缺陷所致,芯片制作过程中侧面腐蚀不够或有银胶丝沾附在测面,严禁用有机溶液调配银胶。以防止银胶通过毛细现象爬到结区。以上就是 LED 技术的相关知识,相信随着科学技术的发展,未来的 LED 灯回越来越高效,使用寿命也会由很大的提升,为我们带来更大便利。

    时间:2019-12-13 关键词: LED 显示屏 嵌入式开发

  • “软”实力嵌入式云平台

    “软”实力嵌入式云平台

    随着科技的发展,我们进入智能物联网时代,越来越多的智能硬件涌现,那么,智能硬件从何而来?主控采用更高的主频?更大的内存?都不是,数据上云才是关键!ZLG嵌入式核心板搭配ZWS云平台,“软”实力助您快速实现智能硬件开发! 什么是核心板软实力? 开始介绍之前,我们先来了解一下,什么是软实力。 所谓的软实力,指的就是硬件模块除一些硬件指标(如处理器主频、内存容量)之外的软件配套方案支持。我们都知道,一块核心板,出厂的时候,犹如新生的婴儿,啥也做不了,要想在IoT各行业成长为顶梁柱,则需要大量的软件开发工作,包括移植操作系统和驱动,写终端应用,开发业务服务器进行对接,以及开发对应的Web和App应用。 要完成以上工作,避免不了开发周期长、开发成本高、软件不稳定等致命的问题,那有没有更好的解决方案呢?有的,就是将上述各环节中有共性的地方抽取出来,由核心板厂商直接配套提供,那么,客户就可以只关注自己有差异的业务部分则可,整套应用系统的开发周期和成本会大幅度降低。 ZWS提升核心板软实力解决方案 ZWS云平台主要致力于解决设备端联网的共性问题。如用户使用ZLG致远电子的核心板,已经内置了ZWS的SDK,在设备端经过简易二次开发,就可以将设备接入到ZWS物联网云平台,并可以使用ZWS控制台系统提供的丰富管理功能,包括设备状态查看、设备数据分析、设备配置修改、设备远程实时控制、设备固件管理和升级等。     ZWS云平台系统架构 如果您没有特殊需求,无需再开发就可以直接使用了。如果您还有自己的特殊需求和业务,可以基于ZWS云平台提供的接口自行开发应用。如果您有第三发系统需要对接,ZWS的数据也支持透传给第三方系统,便于您统一管理。     ZWS云平台优势特点 M1052核心板接入ZWS云平台案例 以ZLG致远电子M1052核心板为例,我们来实际了解一下,ZWS是如何赋能和提升核心板软实力的。 操作步骤如下: 准备好一套基于M1052核心板的开发套件; 由于M1052核心板搭载的是ZLG致远电子自主研发的AWorks操作系统,已经内置有ZWS的SDK库,我们基于SDK,简单修改应用固件,实现数据上传逻辑和指示灯控制逻辑; 登录ZWS平台,添加对应的自定义设备类型,并基于此设备类型添加设备;     创建自定义设备类型     添加设备到系统 将M1052开发套件上电,联网,则可以在自己的帐号下远程管理和控制这套设备了。     查看设备数据     控制设备LED灯     设备LED灯控制实验

    时间:2019-12-02 关键词: 嵌入式 云平台 嵌入式开发

  • 意法半导体更新了STM32 微控制器

    意法半导体更新了STM32 微控制器

    近期,意法半导体宣布其更新了STM32 *微控制器TouchGFX用户界面软件框架,新增功能能够让图形用户界面变得更流畅,动态效果更好,并降低对存储器和CPU的需求。 TouchGFX是STM32生态系统中的一套免费软件工具,包括TouchGFX Designer PC(PC端工具)和TouchGFX Engine(设备端软件)。TouchGFX Designer PC用于设计和配置丰富多彩的用户界面,而TouchGFX Engine则运行在终端设备上,使用户界面实现高性能。最新的4.12版TouchGFX对这两个软件都进行了更新。用户现在可以在单片显示解决方案上构建先进的用户界面,无需外部RAM存储器或闪存,节能特性可以延长电池续航时间,简化的开发流程有助于加快产品入市。 现在,TouchGFX Engine的部分帧缓冲模式只占用6KB的RAM空间,全功能用户界面仅需要16KB的RAM空间,因此,小存储容量的STM32 MCU无需外部存储器也能为用户带来出色的图形界面体验。此外,新的8位亮度(L8)包含16位、24位和32位色深,降低了对闪存容量的需求。尽管存储容量较小,但是TouchGFX可利用STM32 Chrom-ART Accelerator™技术提高图形处理速度,处理复杂的视觉效果,最大限度地提高界面性能。新升级版还包括一个新的可缓存的含有动态位图的容器,可降低CPU高帧率运行流畅动画的负荷。 用户现在还可以选择6位色深,这样可以节省RAM和闪存的空间,同时还可以为创建入门级GUI提供64色。支持外部非内存映射闪存的也是新增功能,可以在紧张的系统资源预算内构建基本用户界面。 TouchGFX Designer更新包括在功能强大的可自定义微件集内新增的小程序,例如,Scale和Rotate这两个小程序使简单的拖放式编程功能变得更强大。自定义触发器和操作可以减少复杂功能创建对编程的依赖度,新的“图像”选项卡让用户可以快速配置单个属性,例如,图像格式、抖动算法和布局旋转。其它性能改进的地方包括加快自动代码生成和减少加载时间,以及新的好用的文本移动功能,例如,前进和后退。

    时间:2019-11-04 关键词: 微控制器 STM32 意法半导体 嵌入式开发

  • 英特尔和AMD最大的云威胁可能是X86指令集

    英特尔和AMD最大的云威胁可能是X86指令集

      现如今,全球据统计超过90%的云基础设施即服务(IaaS)实例类型是基于Intel Xeon处理器。那么,AMD的EPYC处理器会从英特尔手中夺走大量的云市场份额吗?还是会有其他的服务器处理器给AMD和英特尔在云市场带来实质性的竞争?     2005年前后,英特尔和AMD占领了服务器处理器市场。这发生在AMD将64位指令引入x86指令集及其Opteron处理器架构之后。随后英特尔在其核心处理器架构和Xeon产品中加入了AMD 64(现在是x86-64)指令。自那之后,AMD在2008-2018年的时间内失去了大部分服务器处理器市场份额。 AMD和Intel是目前唯一交叉授权使用彼此关键的x86-64专利的服务器处理器供应商。要构建一个现代的x86-64服务器处理器,AMD和Intel的专利都是必须的。 就在几年前,Arm认为它将在x86指令集上获得可观的市场份额。Arm的商业模式是将其Aarch64指令集授权给公司,然后这些公司再设计自己的服务器处理器。目前获得授权的Arm服务器处理器包括安培的eMAG、AWS的gravity on、华为鲲鹏和Marvell的ThunderX。 然而,AMD推出的基于EPYC芯片的x86设计让Arm及其授权商措手不及。显然,除了Arm,企业和云数据中心市场都低估了AMD的创新能力。 与此同时,加州大学伯克利分校的一群研究人员创建了RISC-V开源指令集,并由RISC-V基金会将其商业化。许多现有的和潜在的Arm服务器处理器设计人员正在评估基于RISC-V处理器的潜力。其中涵盖了一些如阿里巴巴集团和谷歌等大型IaaS云,以及一些目前不从事服务器处理器设计业务的芯片公司,如NVIDIA。 为了获得IaaS市场的份额,就像AMD和Arm都在尝试的那样,RISC-V必须同时展示企业级的质量和云工作负载性能价值。但RISC-V仍处于开发的早期阶段,在许多年内都不会成为云数据中心部署的成熟竞争者。 IBM最近开源其Power系列处理器的指令集架构。IBM的POWER9是一个企业级的服务器处理器。IBM在启动OpenPOWER基金会方面做得很好,它为POWER9创建了一个云服务器供应链生态系统。在过去的几年里,谷歌已经在各种活动中展示了基于openpower的POWER9。 而从商业角度出发,因为IBM不仅仅只是开源了POWER架构,同时还提供了一个平台,能让众多的团体可以在硬件、软件及调校工作上进行紧密合作。在过去几年,芯片设计和制造服务,已经成为IBM芯片部门的主要突破点之一。 看来我们还得在等一段时间,看看谷歌云是否将POWER9部署到它的公共IaaS中。如果是这样,还有其他人会效仿吗?     虽然开源的RISC-V和POWER指令集看起来像通配符,但最终的通配符可能是其他x86-64服务器处理器设计。创建一个可行的x86服务器处理器所需的许多专利要么已经过期,要么即将过期。AMD设计的AMD 64和Opteron处理器,距今已有20年了!英特尔的奔腾4和SSE指令集开始于1998年,并在2000年底引入市场。 AMD在2003年春季推出了Opteron处理器架构,采用的是Intel的Pentium 4 32位指令集、AMD 64位指令集扩展和Intel的SSE2多媒体指令集扩展。这一即将到期的知识产权组合将使新的市场进入者能够绕过Arm、RISC-V和POWER指令集面临的软件生态系统挑战。(专利过期是基于专利申请的日期,通常是在产品发布之前很久。) 对于任何处理器指令集来说,验证都是软件生态系统增长的最大驱动力。所有声称与指令集兼容的处理器,从操作框架和应用程序开发的角度来看,实际上都必须是兼容的。AMD和Intel有着令人印象深刻的x86-64验证套件,但这主要是为了解决在数据中心领域30年来遗留的企业操作系统和应用程序兼容性问题。云部署可能指定一个更轻量级的验证套件,这就降低了新加入的x86-64服务器处理器的门槛。 虽然现在还没有公开的迹象表明公司正在设计新的基于x86-64的处理器内核,但是设计和验证一个新的服务器处理器内核架构大约需要三到四年的时间。这意味着无论是基于x86-64、Arm Aarch64、POWER9还是RISC-V,我们都应该着手开发2022-ish服务器处理器产品。 对于非x86-64指令集,构建和维护具有竞争力的软件开发和操作框架需要大量的资金。因此,追随AMD的脚步似乎是个不错的策略,但它在x86-64软件兼容性方面已经足够满足一些主要的云提供商了。

    时间:2019-11-04 关键词: 英特尔 AMD x86指令集 嵌入式开发

  • 三星迫于日本的封锁,有望购买中国的半导体材料

    三星迫于日本的封锁,有望购买中国的半导体材料

    据11月2日消息,由于日本对韩国的封锁,其主要管制对象主要包括氟聚酰亚胺、光刻胶及蚀刻气体(氟化氢)这 3 类半导体关键材料,而韩国国内正积极寻求日本氟化氢替代方案。三星电子与 SK 海力士等半导体公司紧急派遣采购小组以寻找氟化氢厂商。除了海外企业外,也努力寻求本土企业以实现供应国家多元化。 日本采取出口限制的氟化氢大体可分为液体氟化氢和气体氟化氢两种。氟化氢可以去除半导体晶圆氧化膜以减少 chip 不良。液体氟化氢由日本的森田和 Stella 占据大部分市占率,而气体由日本昭和電工占据大部分市场。若日本限制时,韩国半导体制程将会亮起红灯。三星电子和 SK 海力士在过去一个月时间里,从最高领导层到采购职员都忙碌于在全球各地寻找其库存。截至目前来看,中国大陆和台湾为替代优选方案。据传,SK 海力士在和中国凯圣氟化学接触以协商供应案,而三星电子则在测试中国滨化集团的产品。两家企业皆为中国最知名的氟化氢企业。 三星电子为供应多元化也曾接触过国际化学企业 B 公司,但最终因条件不符导致中断协商。韩国材料业界人士表示:中华区企业的纯度并非为可替代日本 Stella 或森田的程度,应该需要先进行紧急采购后逐步进行调节。而也有相关人士认为:两家公司连供应 TSMC 的小供应量企业都不放过,以筹集氟化氢。除了中华区的供应外,两家公司也正在寻求韩国本土的替代方案。液体氟化氢的缺口部分将会有韩国 Soulbrain 弥补,位于忠南的新工厂计划于 9 月启动。据业界人士正式 Soulbrain 既有供应经验,而新设的工厂产能规模也是相当。 气体氟化氢的韩国本土替代方案则被传由 SK Materials 供应。公司目标年内供应 SK 海力士样品。三星电子也计划与本土气体制造商 F 公司和 M 公司合作进行测试。但关键还是在寻找氟化氢的完美替代方案之前可以撑多长时间。日本将出口审查时间定为 90 天,意味着至少要有足够库存撑到 9 月份,并在这期间迅速提升技术力。因半导体是一种精细制程,必须要慎重选择以避免良率影响。也有业界推测假设测试品结果满意的前提下,也依然需要至少 2~3 个月时间才能应用到制程中。而韩国认为选择中华区的替代方案也并非是完全可以放心的方案。若与中国厂商合作时,相当于是变相地扶持中国半导体材料企业,最终会使中国半导体厂商成为最大受益者。那么对此您怎么看呢?

    时间:2019-11-02 关键词: 半导体 氟化氢 嵌入式开发

  • 苹果在AR眼睛领域会步谷歌的后尘吗?

    苹果在AR眼睛领域会步谷歌的后尘吗?

    日前,苹果发布最新消息称可以将AR眼睛转换成VR 模式。简单说,就是使用具有不透明度的光致变色镜片,像智能窗户一样获得不同的进光度。 按照苹果的描述,镜片上有一层特殊材料,它可以利用紫外线调节镜片透明度。20 年前,太阳镜开始流行,它用到的原理与苹果专利有点类似,当我们戴着太阳镜出门时,它自动变成深色,如果进入室内,它会变得更透明。 苹果 AR 眼镜可以有选择将现实世界的部分光线调暗,镜片不一定非要全部变暗。微小的镜子引导紫外线直接进入镜片的单个像素,当显示屏生成的数字内容叠加到现实场景之上时,镜片可以调节亮度,甚至完全阻挡外部光线,增强对比度。 当前的 AR 眼镜通常都停留在单一级别的透镜透明度上,同时提供真实和数字元素的“混合”视图。假设苹果的系统具有专利所提供的功能,那么这些镜头可能会变得部分不透明,从而增强数字对象的亮度,或者可能变得完全不透明,类似于 VR 眼镜。 光致变色镜片是否出现在 Apple 的 AR 眼镜中还有待观察。该概念考虑了使用像素大小的微镜甚至可能使用加热元件,这可能会提高头显的成本,尺寸和电子复杂性,就像使用视网膜投影仪而不是基本屏幕。另一方面,实现此功能可以使眼镜在更多条件下可用。

    时间:2019-11-02 关键词: 苹果 谷歌 ar 嵌入式开发

  • CCWDM是什么?它该如何选择?

    CCWDM是什么?它该如何选择?

    WDM是将两种或多种不同波长的光载波信号(携带各种信息)在发送端经复用器(亦称合波器,Multiplexer)汇合在一起,并耦合到光线路的同一根光纤中进行传输的技术;在接收端,经解复用器(亦称分波器或称去复用器,Demultiplexer)将各种波长的光载波分离,然后由光接收机作进一步处理以恢复原信号。这种在同一根光纤中同时传输两个或众多不同波长光信号的技术,称为波分复用。 WDM是如何工作的? 波分复用(WDM)是指将多个不同波长的信号耦合在一条光纤上同时传输。它通常有合波和分波。合波器 MUX 的主要作用是在发送端将多个信号波长合在一根光纤中传输。分波器 DEMUX 的主要作用是在接收端将一根光纤中传输的多个波长信号分离出来。波分复用的主要目的是增加光纤的可用带宽。因此,波分复用系统被电信公司广泛采用,可在不需要铺设更多光纤的情况下通过 WDM 来扩容。 如何选择:CWDM, DWDM ? CWDM(Coarse Wavelength Division Multiplexer)是稀疏波分复用器,也称粗波分复用器。DWDM(Dense Wavelength Division Multiplexer)是密集波分复用器。 CWDM 和 DWDM 有个比较大的区别在两者的信道间隔不同。信道间隔(channel spacing)是指两个相邻信道的标称载频的差值,可以用来防止信道间干扰。CWDM 的信道之间的波长间隔为 20nm,而 DWDM 的信道间隔为 1.6/0.8/0.4 nm(200GHz/100 GHz/50 GHz),远远小于 CWDM。 信道间隔的不同也是导致 CWDM 和 DWDM 可承载的带宽和容量的不同。 DWDM 模块通过使用紧密间隔的波长在同一根光纤上可承载更多的信号来进一步提高系统带宽和容量。 CWDM 系统的最大优势在于成本低,器件成本主要表现在滤波器和激光器。20nm 的宽波长间隔同样给 CWDM 带来了对激光器的技术指标要求低、光复用器/解复用器的结构简化的优势。结构简化,成品率提高,故成本下降。DWDM 的成本增加主要是由于激光二极管的高成本以及用于保持波长稳定性的冷却激光技术。

    时间:2019-10-22 关键词: 光纤 ccwdm 嵌入式开发

  • 运用Python和PyQT开发嵌入式ARM的界面

    运用Python和PyQT开发嵌入式ARM的界面

    Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发 1). 简介 随着Python在互联网人工智能领域的流行,大家也慢慢感受到Python开发的便利,本文就基于嵌入式ARM平台,介绍使用Python配合PyQT5模块来开发图形化应用程序。 本文所演示的ARM平台来自于Toradex 基于NXP iMX6 ARM处理器的Apalis iMX6 ARM嵌入式平台。 2. 准备 a). Apalis iMX6Q ARM核心版配合Apalis Evaluation Board载板,连接调试串口UART1(载板X29)到开发主机方便调试。更多关于Apalis iMX6配合Apalis Evaluation Board载板的说明请参考Datasheet和开发上手指南。 b). Apalis iMX6Q 默认的Linux BSP是不包含Python,QT等支持的,需要重新编译。 ./ 基于Toradex Linux BSP release V2.8 ./ 参考这里搭建Openembedded 编译环境,然后适配下面patch,用于使本文测试需要的 libsoc适配 Python3。 https://github.com/simonqin09/libsoc-examples/blob/master/python/0005-libsoc-python3-support.patch ./ 修改 build/conf/local.conf 文件,增加需要的组件 -------------------------- #IMAGE_INSTALL_append = " python3 python3-pip python3-libsoc python3-pyqt5 rng-tools " -------------------------- ./ 适配下面patch,在标准image bb文件中增加QT5的支持 https://github.com/simonqin09/libsoc-examples/blob/master/python/0003-angstrom-qt5-lxde-image.patch ./ 重新编译image -------------------------- $ bitbake -k angstrom-qt5-lxde-image -------------------------- ./ 新生成的image位于 deploy/images/apalis-imx6/ 目录,参考这里的说明更新到Apalis iMX6模块上面 3). Python GPIO中断测试程序 a). 首先我们先不包含图形界面,单独通过Python来完成简单的GPIO中断测试程序,本程序通过调用 libsoc 来完成GPIO控制,关于libsoc的使用和说明请参考这里。 b). Apalis Evaluation Board载板硬件连接配置如下,X4 GPIO05(MXM3_11)对应系统中的GPIO号码是170,作为按键输入使用;X4 GPIO06(MXM3_13)对应系统中的GPIO号码是169,作为输出驱动LED使用。 X4 GPIO05 <-> X34 SW5 X4 GPIO06 <-> X34 LED1 c). 源代码请参考如下,分别实现了阻塞模式和非阻塞模式中断相应,实现功能就是按键交替点亮和关闭LED灯。 ./ 阻塞模式 – https://github.com/simonqin09/libsoc-examples/blob/master/python/gpiotest_block.py // main 函数作为主函数,实现打开GPIOs,同时设定初始化状态为高电平输出;test_interrupt_handler函数实现中断相应,采用 gpio_in.wait_for_interrupt 为阻塞式中断,捕获中断才会继续进行,捕获中断后做了简单的防误触处理。 ./ 非阻塞模式 – https://github.com/simonqin09/libsoc-examples/blob/master/python/gpiotest_nonblock.py // main 函数作为主函数,实现打开GPIOs,同时设定初始化状态为高电平输出;另外,在main函数里面采用gpio_in.start_interrupt_handler来使能中断相应,为非阻塞式;在main函数最后通过while来接收键盘输入实现退出应用;gpio_in.wait_for_interrupt依然作为中断处理函数相应中断并驱动LED状态改变。 d). 将Python代码直接复制到Apalis iMX6上面测试运行结果如下: ./ 阻塞模式下,最后是通过Ctrl-C强制退出程序 ----------------------- root@apalis-imx6:~# ./gpiotest_block.py The LED initial status is ON The LED turns OFF interrupt times is 1 The LED turns ON interrupt times is 2 ^Clibsoc-gpio-debug: Interrupted system call Traceback (most recent call last): File "./gpiotest_block.py", line 54, in main(gpio_input_id, gpio_output_id) File "./gpiotest_block.py", line 45, in main test_interrupt_handler(gpio_in, gpio_out) File "./gpiotest_block.py", line 12, in test_interrupt_handler gpio_in.wait_for_interrupt(-1) File "/usr/lib/python3.5/site-packages/libsoc/gpio.py", line 118, in wait_for_interrupt if api.libsoc_gpio_wait_interrupt(self._gpio, timeout) != 0: KeyboardInterrupt ----------------------- ./ 非阻塞模式下 ----------------------- root@apalis-imx6:~# ./gpiotest_nonblock.py The LED initial status is ON please enter 'Q' to quit The LED turns OFF The LED turns ON The LED turns OFF Q Do you really want to quit? yes or no yes root@apalis-imx6:~# ----------------------- 4). 使用PyQt5实现图形化界面GPIO中断程序 a). 硬件配置和连接和上面的测试场景一致。 b). 为了方便开发PyQt5界面,首先通过Qtcreator创建如下QWidget项目UI界面 // LED Status 右边的 QFrame 方框以及QLable用于显示LED当前的状态 // ‘Turn ON’和’Turn OFF’ 两个PushButton用于通过界面控制LED状态,’Exit’ PushButton用于退出程序 ./ 最终的UI源代码参考如下,将对应的mainwindow.ui文件复制到Apalis iMX6 Python应用相同路径下 https://github.com/simonqin09/libsoc-examples/blob/master/python/mainwindow.ui c). 程序源代码参考如下: https://github.com/simonqin09/libsoc-examples/blob/master/python/gpiotest_pyqt5.py 说明如下: ./ class ApplicationWindow 用于实现Qt5界面以及相关按键操作: // 首先通过 loadUi 函数来加载之前制作好的UI文件 mainwindow.ui,然后初始化界面显示,连接各个按键对应的处理程序 // 最后开启一个新的Qthread线程self.thread,用于处理外部GPIO按键中断相应,连接新线程反馈信号的处理程序,最后启动新线程 // LedStatusChange 函数为处理新线程反馈回来的LED状态变化信号而同步改变界面显示状态的函数 // Button_On_clicked 和 Button_Off_clicked 函数用于根据界面按键的点击来对应改变LED GPIO输出以及界面显示的函数 // Button_Exit_clicked 和 closeEvent 函数用于处理退出程序包括子线程的退出等相关的函数 ./ class gpioInterrupt 为用于处理GPIO中断同时对于改变LED GPIO输出以及将LED状态变化反馈给界面主程序 // 首先定义反馈信号,并初始化所需要使用的GPIO引脚 // run 函数部分基本就是上面第3章节的阻塞模式Python应用的代码,这里就不做赘述了 d). 测试运行结果如下: ----------------------- root@apalis-imx6:~# ./gpiotest_pyqt5.py The LED initial status is ON set LOW set HIGH The LED turns OFF button clicked for setting LOW The LED turns ON button clicked for setting HIGH root@apalis-imx6:~# ----------------------- 5). 总结 如上述示例,使用Python和PyQt5非常方便了创建一个嵌入式界面应用程序示例,相对于传统C语言开机要配置交叉编译环境,整个流程更加快捷方便,同时在实现比较简单的控制的时候其运行效率也是可以接受的,另外Python还可以集成大量的组件方便开发,就更加简化了比如设计机器视觉、人工智能等领域的嵌入式应用开发流程。

    时间:2019-10-22 关键词: ARM 嵌入式 python pyqt 嵌入式开发

  • 基于PLC的模拟I/O系统的实现

    基于PLC的模拟I/O系统的实现

    可编程逻辑控制器(PLC)和分布式控制系统(DCS)被用于监测和控制工业自动化应用中的智能(支持HART)和模拟现场仪器仪表。 图1所示的电路是一个简单的DCS系统,由一台主机、一个单节点、两个4通道隔离模拟输入板和两个4通道隔离模拟输出板组成,这些板由Arduino尺寸基板在本地管控。RS-485收发器连接至PC或其他主机,如此,用户可以使用Modbus协议与节点交换数据。 模拟输入数据从本地读取,通过使用行业标准Modbus协议的串行接口提供,确保在一系列软件应用和库中,保证数据完整性和可兼容性。同样地,模拟输出通过向Modbus寄存器写入来置位,然后被转换为模拟电压或电流信号。 每个节点可以支持4个模拟输入和输出板的组合。如图2所示,最多16个节点的多节点系统在设计时,可以使用提供的硬件和软件基础架构。该电路支持点对点HART通信,可以扩展为多分转站HART网络,在同一通道上集成多个HART器件。 每个板(4个一组)的模拟输入和模拟输出都实施电气隔离,模拟输入支持开路检测,简化了故障检测和诊断过程。在严峻的工业自动化环境中使用时,这些功能可以增强可靠性和耐用性。 图1.PLC(或单节点DCS)Modbus系统功能框图 图2.多节点DCS Modbus系统功能框图 电路描述 该应用侧重于展示受Modbus主机管控的PLC/DCS系统的开发,并且通过示例说明如何使用重要组件的最新功能。单节点系统通常被称为PLC,更大型的系统则通常被称为DCS。 每个节点可以管控多达16个模拟现场器件、传感器或驱动器(兼容HART或仅支持模拟),系统可以扩展,最多包含16个单独的节点。该系统也可用于通用精密模拟数据采集应用,例如仪器仪表、模拟数据记录,或测试和测量。 PLC/DCS拓扑 支持多个连接拓扑。在单节点(PLC,或单节点DCS)系统中,主机可利用micro-USB电缆,直接连接至EVAL-ADICUP3029平台板的USB串行端口,非常适合要求主机和节点之间距离小于2米的实验室测试和测量应用。 在这个点对点拓扑中,电路板四个一组的模拟输入和输出仍然与主机保持隔离。虽然一般来说与实验室设备不相关,但Modbus协议提供一种方便、标准的与节点通信的方法。HART连接支持对智能传感器和驱动器实施配置。 主机和节点之间的距离增大到2米以上时,信号完整度、噪音拾取和电气故障会成为更严重的隐患。在这些情况下,EVAL-CN0416-ARDZ为主机提供可靠的RS-485连接。在单节点、点对点系统中,支持在1 km以上距离中进行全双工或半双工通信,具体由波特率决定。 对于多节点系统(称为DCS更加合适),EVAL-CN0416- ARDZ提供菊花链端口,支持可切换的半/全双工操作和可切换的端电极,因此系统可以集成2到16个节点。 因为Modbus被用作串行通信协议,以通过串行链路,在器件之间发送信息,因此无论规模大小,都可以实现简单、可靠且耐用的系统。PLC/DCS应用的硬件协议栈包含三个不同的参考设计。 模拟输入板 图3所示的CN-0414用于测量4个全差分信号,或者测量8个单端电压和4个电流信号。该电路的核心是AD4111低功耗、低噪声24位Σ-Δ模数转换器(ADC),集成了±10 V和20 mA模拟前端。 其电压输入支持最高±10 V的输入范围。AD4111具有独特的特性,支持在±10 V电压输入上进行开路检测,同时采用5 V或3.3 V单电源供电,而之前的解决方案一般都需要大于±10 V的电源。 电流输入支持0 mA至24 mA输入范围。电路的输入阻抗为250 Ω(AD4111内部为60 Ω),所有输入都以绝缘接地为基准。电流输入上需要250 Ω输入电阻,以使符合HART要求的AD5700-1调制解调器可与AD4111配合使用。 电路的模拟前端AD4111和AD5700-1通过ADuM5411和ADuM3151与处理侧隔离,相比基于分立式变压器的解决方案,能够节省大量空间。 CN-0414板由9.5 V至36 V直流电源供电,这在工业自动化系统中非常典型,因此能够轻松集成到您的系统之中。 图3.模拟输入板 模拟输出板 图4所示的CN-0418是一款4通道电压和电流输出板,以具备动态功率控制功能的AD5755-1 DAC为基础构建。 此电路提供4 mA至20 mA电流输出,以及单极性或双极性电压输出(±10 V)。此板还配有AD5700-1 HART调制解调器,提供完整的支持HART连接的模拟输出解决方案。 同时还包括外部瞬变保护电路,这对恶劣工业环境中的应用极其重要。 电流输出和电压输出通过独立引脚提供,一次仅一个输出处于有效状态,因而允许将两个输出引脚连在一起并接到单个端口上。模拟输出受短路和开路保护。 AD5755-1集成基于DC-DC升压转换器电路的动态电源控制功能,在电流输出模式下可降低功耗。 AD5755-1有四个CHART引脚,分别对应于四个输出通道。HART信号可以耦合至这些引脚,并出现在对应的输出端(如果该输出已使能)。     图4.模拟输出板 RS-485收发器板 图5所示的CN-0416是一款隔离和非隔离式RS-485收发器板,能够在多个系统或节点之间轻松实施数据传输,尤其是在长距离下。 该电路使用ADM2682E RS-485收发器来进行隔离通信,使用LTC2865 RS-485来进行非隔离通信。 这两种器件都可以配置进行全双工或半双工操作,具备开路或端接传输线。 该电路采用板载式RJ-45插孔,因此能够使用常用的CAT5以太网电缆,快速和节点物理连接。端电极电阻被默认设置为CAT5电缆的特性阻抗100 Ω,但在配置之后,可以支持标准RS-485电缆的120 Ω阻抗。 ADM2682E的数据速率可以达到16 Mbps,提供真正安全的接收器输入和经过调整的差动电压阈值。它使用iCoupler数据通道,提供5 kV信号隔离,利用isoPower集成式DC-DC转换器,提供5 kV电源隔离。 LTC2865的数据速率可以达到20 Mbps,提供真正安全的接收器输入。由一个内部窗口比较器确定安全状况,无需调节差动输入电压阈值。     图5.RS-485收发器板 兼容HART的现场器件的接线     图6.兼容HART的现场器件的接线 HART网络 HART器件可在点对点或多分转站这两种网络配置中的一种运行。 在点对点模式下,4 mA至20 mA信号被用于传输一个过程变量,而额外的过程变量、配置参数和其他器件数据则通过HART协议以数字方式传输。4 mA至20 mA模拟信号不会受到HART信号影响,可用于实施控制。HART协议提供访问辅助变量和其他数据的权限,这些数据可用于实施操作、调试、维护和诊断。 Modbus协议 在EVAL-ADICUP3029上运行的软件采用Modbus协议——一种事实上的开放型工业通信标准。Modbus提供一种与单个节点交换数据的可靠方式,通过CRC误差检测来确保数据的完整性。作为一项开放标准,存在众多可用的开放源和商用Modbus软件库,适用于各种平台(例如Windows®、Linux®、嵌入式平台等)。 这些软件也提供简单的命令行接口(CLI)模式,使系统能够从串行端口手动验证,无需主机上装载任何额外的软件。 硬件和软件协议栈 PLC/DCS节点系统软件和硬件协议栈如图7所示。     图7.PLC/DCS节点系统软件和硬件协议栈 配置PLC/DCS硬件之后,用户一般会根据语言(例如C、Python、MATLAB)和主机平台(例如Linux、Windows、嵌入式平台)选择适用的Modbus库。然后,必须编写简单的测试应用程序,将模拟和HART参数转化为Modbus寄存器地址和值。 CN-0435用户指南提供此应用程序的Modbus寄存器映射的完整描述,并使用开源Modbus调试器来验证Modbus的合规性。 此外,还提供多个基于开源Modbus库的顶层应用,包括: 检测系统配置:查询所有Modbus节点,显示配置。 读写输出保持寄存器:检查或更改所有受检测板的输出保持寄存器的状态。 读取模拟输入寄存器:检查所有受检测板的输入寄存器的状态。 读取模拟数据:读取单个模拟输入或所有模拟输入,在控制台显示数据。 写入模拟数据:写入模拟输出,以产生电压或电流。 模拟回波:读取模拟输入板的模拟电压或电流,然后将相同数值的模拟电压或电流写入模拟输出板。 常见变化 CN-0435软件读取模拟输入值和写入模拟输出值,无需实施本地处理。该软件可以扩展包含故障检测和响应等功能,或者包含闭环PID控制环路,从主机上卸载这些功能,节省通信总线的带宽。 树莓派可以用作结构紧凑、价格低廉的主机解决方案。树莓派提供有线或无线以太网连接,可以直接连接至EVAL-ADICUP3029的USB-UART。 如今最常用的三种Modbus版本分别为:Modbus ASCII、Modbus RTU和Modbus TCP。所有Modbus消息都采用相同格式发送。这三种Modbus类型的唯一区别在于消息的编码方式。 可以通过Modbus连接的器件的数量由物理层和数据协议决定。如果RS-485物理层和Modbus RTU或Modbus ASCII数据协议一起使用,那么可以寻址的节点的最大数量为32,但是,如果以太网物理层和Modbus TCP数据协议一起使用,则可以寻址的节点为247个。 器件的地址是从0至247的数字。发送至地址0的消息(广播消息)会被所有从机接受,但1到247这些数值是特定器件的地址。 CN-0414和CN-0418的Arduino尺寸确保与支持广泛的其他自动化通信协议的开发平台兼容,包括过程现场网(PROFINET)、过程现场总线(PROFIBUS)、控制自动化技术的以太网(EtherCAT)、EtherNet/IP、Modbus Plus,以及其他协议。

    时间:2019-10-22 关键词: plc 模拟i/o系统 嵌入式开发

  • 在PCB板边走高频高速信号线的技巧

    在PCB板边走高频高速信号线的技巧

    记得在上高中的时候就知道安培的右手定则中导线电流沿着拇指的方向传播,则导线上会产生对应的磁场,磁场的方向与右手手指握拳的方向一致,而导体中的带电电荷会产生电场,电场和磁场为一对好基友,统称为电磁场。 按照麦克斯韦电磁场理论,变化的电场在其周围空间要产生变化的磁场,而变化的磁场又要产生变化的电场。这样,变化的电场和变化的磁场之间相互依赖,相互激发,交替产生, 并以一定速度由近及远地在空间传播出去,这就是电磁辐射。这便产生了两个截然相反的影响:好的方面,所有的RF通信、无线互联、感应应用都受益于电磁辐射的好处;而有害的方面则是,电磁辐射导致了串扰和电磁兼容性等方面的问题。 当电磁波频率较低时,主要籍由有形的导电体才能传递;当频率逐渐提高时,电磁波就会外溢到导体之外,不需要介质也能向外传递能量,这就是一种辐射。在低频的电振荡中, 磁电之间的相互变化比较缓慢,其能量几乎全部反回原电路而没有能量辐射出去。然而,在高频率的电振荡中,磁电互变甚快,能量不可能反回原振荡电路,于是电能、磁能随着电场与磁场的周期变化以电磁波的形式向空间传播出去。 根据以上的理论,每一段流过高频电流的导线都会有电磁辐射,辐射强度与频率成正比。PCB上有的导线用作信号传输,如DDR 时钟信号,LVDS差分信号传输线等,就不希望有太多的电磁辐射损耗能量并且对系统中的其他电路造成干扰;而有的导线用作天线,如PCB天线,就希望能尽可能地将能量转化为电磁波发射出去。 对于PCB上的高速信号传输线而言(如:DDR时钟信号,HDMI LVDS 高速差分传输线),我们总是希望尽量降低其信号传输时产生的辐射,降低信号传输线产生的电磁辐射的方法有砖家总结出了一些设计原则,如要降低信号传输线的EMI,则尽量使得该信号传输线与其构成信号回流路径的参考平面的间距尽量靠近,如果传输线的宽度W与参考平面的间距H的比值小于1:3,则能够显著降低该微带传输线的对外辐射强度。 对于微带传输线而言,采用宽而完整的参考平面也可以降低电场的对外辐射强度,微带传输线对应的参考平面至少要为传输线的3倍宽度以上,参考平面越宽越好。     而如果参考平面相对于微单传输线而言宽度不够大,则电场与参考平面的耦合就小,电场对外的辐射显著增加。     所以说,如果要降低高度信号传输微带线的电磁辐射,则需要是的微带传输线对应的参考平面尽量大,而如果该高速微带传输线靠近PCB板边来平行走线的话,相对而言,参考平面对于该高速信号线的耦合就变少了,自然就好造成电场对外辐射量显著增大。     同理,高速的IC,晶振等等也尽量远离板边放置,高速IC也需要完整而宽大的参考平面进行电磁耦合,以降低EMI。 而对于板载天线而言,我们则希望尽量多多的向空间中辐射电磁波,所以板载天线的设计与高速传输线的设计原则相反,板载天线需要放置在板边,而且天线区域所处的位置要禁止有铜箔平面,对,所有的层需要设置铜箔禁止区。而且天线要与PCB的地平面拉开距离。

    时间:2019-10-21 关键词: PCB 高频高速信号线 嵌入式开发

  • 嵌入式编程中函数返回类的一些问题

    嵌入式编程中函数返回类的一些问题

    在这几天,看到了之前经常关注的一个论坛上解释了函数返回类型设计的一些问题,我觉得说的很透彻,这里分享给大家! 不知从什么时候起,对函数返回值,有一种下意识的认识:“0”是成功、非“0”表示失败。 先讲个故事,就是项目移植时的一段小插曲—— 近期工作,使用一款新的芯片进行开发。移植过程中需调用官方的函数库接口,接口有uint32_t类型的返回值。根据手册的说明,函数返回值“0”表示成功,“-1”表示失败。这里的返回值比较简单,仅有成功、失败两种,一般采用“if(!ret){成功}else{失败}”判断。就这样,移植过程中,该芯片函数库绝大部分的接口返回值都是这两种,处理结果时图省事也就把“if(!ret){成功}else{失败}”复制粘贴了。 意外出现了,当我调用库的“比对”函数接口时结果一直错误,返回值总是“1”,也就是“真”的逻辑,于是上层接口一直对应用层向用户报错。翻阅手册检查了接口的输入参数,怀疑其他接口处理的数据错误,又检查该接口之前的其他被调用接口。可偏偏,手册里对本接口描述的返回值说明,因排版而放在下一页,你如何都无法想到,这里的函数返回值,竟然是成功时返回“1”,失败返回“0”! 回想起检查这一整个执行流程时,几乎花了一中午时间,万万没想到竟然忽略这个细节,真是“踏破铁鞋无觅处,得来全不费工夫”! 总而言之,芯片厂商提供的函数库接口,返回值设计的过于简单,也没达到完全的统一规范。说到底,只能怪自己对这么重要的细节没有留意到位。作为开发者,要多从自身找原因,确保自己的每一个环节不出异常。即使面对多么棘手的代码,你都可以应对自如。 此事对自己的教训只能是不要忽略细节。但有时候本可以做好的事情,为什么不一口气做到位呢!对于函数返回值的定义,其实可以做到相对规范一些,统一起来,对自己对他人都是有帮助的。 返回值可以有两种,一个是函数执行结束得到的数据,还有就是函数执行结束的状态结果。 返回数据就是把传入参数做了某一个运算后得到的结果;返回状态结果,主要指示函数是否正确执行。 返回数据,这种返回值不能表示是否正确执行,只能认为,有返回值了就是正确执行了。所以这样的函数执行时,不该有参数正确性判断,不管传什么样的参数应该都能执行。 最简单的例子就是一个求和运算函数: uint16_t func_sum(uint8_t val1, uint8_tval2) { Return (val1+val2); } 这样的返回值就是函数执行后得到的数据结果。这个没有必要做太多的讨论。 返回状态结果,比如在上文提到的芯片官方的库接口,利用“0”和“-1”表示执行后成功或失败的结果。 在《嵌入式硬件通信接口-使用RingBuffer处理数据(二)详细设计过程》一文中的“读一个字节”、“读多个字节”和后续的其他函数,执行结束后返回的状态结果有成功和不成功的其他多个状态,这些个状态都是rb_ret_t枚举类型里的成员。 比如写多字节接口,如果执行失败,可能是参数错误、空间不足,这时非常有必要对不同的错误返回不同的状态结果,因此返回码不再是“0”和“-1”了,而是零和非零的其他值。 如何设计返回状态,也是有讲究的。如果因为一时的冲动,一闭眼一跺脚就把返回状态码给定下来,并且同一层、同一类的接口,状态结果定义的还不一致,那就太随便了,这样的接口封装出来,如果没有逐个对接口说明,指不定哪天蒙了自己也坑到别人。 定义返回状态结果,可以设计为: 布尔型(bool)的真、假; 枚举类型的各种状态码; 布尔型,在C++中使用,只有真、假两个状态,如果在基于C的嵌入式开发里使用,还需要重新定义。 类似于STM32的V3.5.0标准库里的三个枚举定义,每个枚举都只定义了两种状态,也可称之为布尔类型。 在设计自己的系统时,也可以直接使用这种枚举来定义函数返回的状态结果。 但是这里的枚举中,成员的值“0”表示失败、非“0”表示成功。这种方式定义的,失败只有一个情况,对后续的应用扩展也是个麻烦,比如不同的失败原因,如何体现到不同的返回状态结果,因此再考虑引入枚举类型的各种状态码。 “0”表示成功、非“0”表示失败,这个思维也符合计算机“0”为假、非“0”为真的逻辑特点。在程序执行时,成功了就是成功了,没必要去考虑为什么执行成功了,但是失败的时候,总是存在问题导致失败,这时候就需要对失败做分析,那么失败原因很多,对计算机而言,逻辑“真”也很多,1、2、3、…、99、…、N只要不是“0”,就是非“0”的逻辑“真”。 枚举类型的各种状态码,主要是为了解决,在出现不同的失败原因时,返回错误码,可以方便上层应用对参数进行检查,尝试调整参数重新调用接口再次执行;或者对错误码分别处理后展示在用户交互接口,提示用户执行某一功能时返回的状态。 可见在C开发里,同样是枚举类型的返回值,为什么不扩展枚举的成员来表示复杂多样的执行结果呢。 同时在编写函数时,利用枚举类型定义函数的返回类型,对开发而言,查看枚举类型中的成员表,可快速知道,函数的执行结果可能会有什么样的状态,至少有个预期的判断。 这样一来就可以为每个模块、每个层封装好的函数,设计对应的返回类型。 总结,说到底这些都只是开发者日常的编程习惯罢了,或者接口设计的规范。返回值的类型定义,谈不上绝对的对和错,对错只有在程序执行的时候,判断的依据选择。但是一个好的编码规范、统一的对照表,这对代码的维护和迭代,都有非常关键的作用!

    时间:2019-10-20 关键词: 嵌入式 函数返回类 嵌入式开发

  • 啥是嵌入式技术?

    啥是嵌入式技术?

    在硬件系统中,嵌入式技术占据着举足轻重的地位,物联网应用技术中,嵌入式技术是至关重要的。但是,至少有60%的人不了解什么是嵌入式技术。物联网时代的到来,不管是从行业应用,还是智能硬件的爆发,亦或是大数据等等嵌入式技术都得到了史无前例的发展。 简单来说,嵌入式技术是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统技术。嵌入式系统是一种包括硬件和软件的完整的计算机系统,它的定义是:“嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可剪裁,适用于应用系统对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。”嵌入式系统所用的计算机是嵌入到被控对象中的专用微处理器,但是功能比通用计算机专门化,具有通用计算机所不能具备的针对某个方面特别设计的、合适的运算速度、高可靠性和较低比较成本的专用计算机系统。 举个简单的例子,你智能手机其实就是一个嵌入式系统,它的系统配置的一些硬件如存储,CPU、电池,但考虑到功耗,为智能手机特别定制了一个系统。试想一下,若智能手机还用台式电脑的CPU,那终成型产品得有几十斤,那样的手机还有人买吗?因此嵌入式系统就是针对产品需求而定制的系统。 嵌入式技术起源于单片机技术, 是各类数字化的电子、机电产品的核心,主要用于实现对硬件设备的控制、监视或管理等功能。进入21世纪计算机应用的各行各业中90%左右的开发将涉及到嵌入式开发。全球嵌入式软件市场年增长率超过12.5%,嵌入式系统带来的工业年产值达一万亿美无,未来三年嵌入式软件产业将保持40%以上的年复合增长率。 一个成熟的嵌入式工程师基本上要了解,应用开发,底层开发,当然这里又会包含很多很多。嵌入式系统的应用前景是非常广泛的,蒂蒙技术更多涉及到的工业领域的嵌入式系统控制。 工业嵌入式系统应用 基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的8、16、32 位嵌入式微控制器在应用中,网络化是提高生产效率和产品质量、减少人力资源主要途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。就传统的工业控制产品而言,低端型采用的往往是8位单片机。但是随着技术的发展,32位、64位的处理器逐渐成为工业控制设备的核心,在未来几年内必将获得长足的发展。 工业设备是机电产品中最大的一类,在目前的工业控制设备中,工控机的使用非常广泛,这些工控机一般采用的是工业级的处理器和各种设备,其中以X86的MPU最多。工控的要求往往较高,需要各种各样的设备接口,除了进行实时控制,还须将设备状态,传感器的信息等在显示屏上实时显示。这些要求8位的单片机是无法满足的,以前多数使用16位的处理器,随着处理器快速的发展,目前32位、64位的处理器逐渐替代了16位处理器,进一步提升了系统性能。采用PC104总线的系统,体积小,稳定可靠,受到了很多用户的青睐。不过这些工控机采用的往往是DOS或者Windows系统,虽然具有嵌入式的特点,却不能称作纯粹的嵌入式系统。另外在工业控制器和设备控制器方面,则是各种嵌入式处理器的天下。这些控制器往往采用16位以上的处理器,各种MCU,Arm、Mips、68K系列的处理器在控制器中占据核心地位。这些处理器上提供了丰富的接口总线资源,可以通过它们实现数据采集,数据处理,通讯以及显示(显示一般是连接LED或者LCD)。最近飞利浦和ARM共同推出32位RISC嵌入式控制器,适用于工业控制,采用最先进的0.18微米CMOS嵌入式闪存处理技术,操作电压可以低至1.2伏,它还能降低25%到30%的制造成本,在工业领域中对最终用户而言是一套极具成本效益的解决方案。 嵌入式技术在工业控制中显得尤其的重要,属于控制的核心环节。蒂蒙技术不断优化嵌入式系统,力求为用户打造一个高性能、高可靠性的非传统工业控制设备。

    时间:2019-10-20 关键词: CPU 嵌入式 嵌入式开发

  • 智能硬件编程应该如何正确操作

    智能硬件编程应该如何正确操作

    当前MCU的运用非常广泛,这就奠定了它集成度必须越来越高,体积越来越少,封装形式越来越多。编程是产品上市前至关重要的一道工序,采用什么样的编程方式才适合产品生产呢,本文为您解惑。 工业技术的大幅度提高,用户对电子产品性能的需求增加,使得电子产品的设计也趋于模块化,高集成度,高配置,小体积。利用BGA,QNF等小体积封装的MCU搭配必要的外围电路,一块只有纽扣电池大的线路板,也可以实现丰富的功能。 图1 小体积PCB板 芯片种类成千上万,芯片封装形式的多种多样,PCB板子的设计更是千变万化。选择什么样的烧录方式和生产工具,以及预留合适的烧录接口才能使生产更高效呢? 1.哪种编程方式才适合自己? 芯片的编程方式分两种,即离线编程和在线编程。离线编程是指芯片(裸片)放到烧录夹具中,通过编程器烧写程序后再贴到PCB板子上;在线编程是指芯片先贴板,然后通过PCB板上预留的仿真烧录接口烧写程序。两种编程方式截然不同,也各有优缺点。离线编程效率高,但烧录夹具是耗材,会增加一定的生产成本,并且编程完成后无法立即验证产品功能性;在线编程不需要烧录夹具等耗材,可通过烧录工装直接对PCB板上的芯片编程,编程后即可对板子进行功能测试,但烧录效率相对于离线烧录来说就没那么高。一般来说,对于Flash存储芯片,特别是大容量的NAND Flash,eMMC,此类芯片引脚较多,Flash存储容量比较大,编程时用到高速信号,此类芯片一般采用离线烧写,以保证烧录效率和稳定性。对于MCU,特别是BGA、QFN等小封装的MCU,本身体积小的特点不利于产线工人烧录,用到的精密烧录夹具价格也不菲,此类芯片适合贴板后再烧录,可减小生产成本;对于无线模块,蓝牙模块,智能家居产品等,这些产品都有个特点,即出货数量庞大,产品尺寸较小, 对烧录的良品率要求严格。此类产品适合在线编程的方式生产。 用户可根据自己的实际情况采用适合自己的编程方式。 2.哪种编程接口好? 在使用在线编程方式烧写芯片时,需要将编程接口引出,常用的有JTAG/SWD/SPI/UART/BDM/C2等,芯片的用户手册会介绍芯片相关的编程协议以及编程接口,用户只需根据手册设计相应的编程接口即可。有些芯片支持多种编程协议,如ST厂家的ARM芯片就有很多支持JTAG/SWD/UART三种编程协议烧写,用户只需预留其中一种编程器支持的接口即可。有些MCU,如NXP的LPC的ARM7系列,既支持JTAG/SDW协议,也支持UART协议,但在加密后只能通过UART协议擦除。如果用户考虑加密,并且需要二次升级程序的,需要将两种接口都预留出。 图2 芯片读保护功能 3.哪种烧录工装的效率更高? 通过芯片手册可以知道该留出何种编程接口。问题来了,要以什么方式预留呢?芯片原厂在评估板/开发板上一般都会预留出仿真接口,如ARM芯片的标准20P仿真接口;标准的仿真接口有利于研发工程师开发调试,但在实际产品中,为了节省器件成本和PCB板空间,一般不会将标准接口作为产品编程的预留接口,而是采用焊盘,排针,金手指等方式将编程接口引出,再通过烧录工装或其他专用的烧录夹具对PCB板子进行编程。 图3 评估板的仿真接口     图4 实际产品的烧录接口     图5 烧录工装 P800isp在线编程器支持JTAG/SWD/SPI/UART/BDM/C2等众多串行协议的在线编程,更有众多无线/蓝牙/汽车电子等智能硬件的成熟烧写案例。P800系列编程器支持在线,离线等多种烧写方式。 综上所述,编程的方式分为离线和在线,在线编程中编程接口的预留需要考虑MCU本身特性和生产需要。选择合适的编程方式,可以减少成本,提高效率

    时间:2019-10-19 关键词: 嵌入式 MCU 嵌入式开发

首页  上一页  1 2 3 4 5 6 7 8 9 10 下一页 尾页
发布文章

技术子站

更多

项目外包