MCU

MCU是Microcontroller Unit(微控制器单元)的缩写,它是一种集成了中央处理器(CPU)、存储器(ROM、RAM)、输入/输出端口(I/O)、定时器(Timer)、串行通信接口(UART、SPI、I2C等)和其他外围设备控制器的单个芯片。MCU通常用于嵌入式系统中,用于控制各种电子设备和系统。

由于其集成度高、体积小、功耗低以及成本相对较低等特点,MCU被广泛应用于各种嵌入式系统中,例如智能家居设备、医疗设备、汽车电子系统、工业自动化等。MCU的选择通常基于应用的需求,如处理性能、功耗、外设接口等因素。

在这个万物互联的时代,数据安全的“飓风”正在袭来。随着集成电路的广泛应用,安全问题也日益凸显。从芯片漏洞到硬件攻击,这些问题都给集成电路的应用带来了严峻的挑战。一旦安全防线被突破,智能设备的数字资产安全将面临威胁。

「筑牢信息安全防线刻不容缓」

未来,硬件黑客与安全攻防之间的博弈将愈演愈烈。所谓“知己知彼,百战不殆”,深入了解对手的战术和技巧,是赢得这场无形战争的关键。所以,本文将揭开“硬件黑客”的神秘面纱,带你解密芯片的破解与安全防护。

「揭秘:原来黑客是这么破解芯片的」

芯片破解,即利用技术手段突破芯片的加密保护机制,了解芯片破解的方法,可以帮助开发者识别芯片潜在的安全漏洞,设计出更坚固的防护措施。

非侵入式攻击

非侵入式攻击是通过分析芯片在运行过程中产生的可观测现象(如电磁辐射、功耗、时序信息等)来获取敏感信息或执行未授权的操作,通过逆向工程的手段,破解芯片的加密算法。

1. 电磁分析

通过捕捉设备在运行时产生的电磁辐射,分析这些辐射模式来获取敏感信息。

2. 功耗分析

通过监测设备在执行加密操作时的功耗变化,不同操作的功耗模式可能不同,攻击者可以通过分析这些模式来推断出加密过程中的某些信息。

3. 时序分析

通过测量设备在执行特定操作时的时间差异,攻击者可以推断出加密算法的某些特性,这在某些情况下可能导致密钥的泄露。

半侵入式攻击

半侵入式攻击是通过干扰芯片的正常运行,如通过激光错误注入、电压频率毛刺、电磁辐射等方式,诱导芯片产生错误,从而获取敏感信息或执行未授权的操作。

1. 激光错误注入

使用激光束精确照射芯片,通过光热效应或光子效应在芯片内部产生瞬时电压变化,诱导出错误操作。

2. 电压频率毛刺错误注入

通过改变供电电压或频率,造成芯片在不稳定的电源条件下运行,可能导致数据错误或逻辑混乱。

3. 电磁辐射错误注入

利用强电磁场干扰芯片的电磁环境,可能引起数据传输错误或逻辑错误。

4. 温度错误注入

通过改变芯片周围的温度,影响其内部电路的电气特性,可能导致数据损坏或逻辑错误。

5. 放射性错误注入

使用放射性物质产生的辐射,如α粒子、γ射线等,对芯片进行照射,可能引起半导体材料的电导率变化,导致错误。

侵入式攻击

侵入式攻击是通过化学腐蚀等手段使芯片的电路硅片暴露而进行攻击。

1. 焊盘直接访问

充分利用电路芯片中原有的封装Pad和内部预留的测试Pad,直接访问CPU或存储器的数据总线,获得相关的存储信息。

2. 微区探测修改以及截获

在无法直接访问的情况下,可以利用激光局部切割和微区探针检测的方法,对芯片中的关键数据通道进行探测或者修改和信息截获。

3. 间接分析获得

通过芯片的反向解剖工程,进行电路版图重构,同时借助各种辅助分析手段间接获得芯片中存储的信息。

「捍卫硬件安全:航芯还有什么隐藏绝技」

经过十六年的潜心打磨,航芯在信息安全领域构建了一套高标准的硬件安全防护技术,旨在为各领域面临的安全挑战提供坚实的硬件安全支持。

01. 安全启动与安全更新

利用芯片的硬件安全特性来保证启动代码和更新固件不被篡改,启动入口唯一。

02. 安全存储

安全存储主要就是保护存储区的代码和数据不被篡改以及非法获取。

安全存储区:可以用于保护特有的一些程序,安全存储区的大小可以进行配置,程序运行期间可以通过寄存器打开对这段安全存储区的保护,保护使能后则无法再次访问其中的任何内容。

存储数据加密:地址加扰主要就是对片内FLASH和SRAM上的数据进行加密存储,并且存储的地址也被串扰。

OTFDEC(在线外部存储解密):针对于部分代码和数据需要放在片外存储器的情况,航芯也有部分系列带有OTFDEC硬件,OTFDEC模块在总线与OSPI之间,可以实时地解密外部Flash上的密文代码和数据,只需要设置好相应的区域、密钥等,OTFDEC就可以自动解密被访问的密文数据,无需额外的软件参与解密,不需要将解密数据加载到内部RAM,可以直接运行片外Flash上的加密代码。OTFDEC模块也支持加密,但不是实时加密,数据首先被加密到RAM中,需要另外将RAM中的密文写回外部FLASH。

03. 读写保护

读取保护(RDP):用于全局Flash读保护,可保护嵌入式固件代码,避免复制、逆向工程、使用调试工具读出或其他方式的入侵攻击。

写保护(WRP):用于保护指定区域Flash数据,避免数据被恶意更新或擦除。写保护可应用于Flash内指定的内存空间。

专有代码读保护(PCROP):用于保护指定区域Flash代码,保护专有代码不被最终用户代码、调试器工具或恶意代码所修改或读取。

04. 权限管理

权限管理是利用内核本身自带的MPU单元,这个单元可以划分出几个region,每个region可以设置不同的访问属性,配合内核的User和Privilege模式,能够实现对敏感数据的访问控制,使得敏感数据不能够被恶意代码获取,这样隔离能够有效地降低软件漏洞带来的风险。

05. 密码学算法引擎

芯片内置HASH、AES、TRNG和CRC硬件模块,直接调用对应的API函数即可使用相应的算法功能,有效满足数据传输及其完整性校验中的密码需求。

06. 入侵保护

入侵保护主要是芯片可以检测遭受的物理入侵从而删除备份寄存器中的敏感数据,从而保护芯片敏感数据不会窃取。该功能主要由RTC和备份寄存器完成。

备份寄存器处于备份域中,待机模式唤醒或系统复位操作都不会影响这些寄存器,只有当被检测到有侵入事件和备份域复位时,这些寄存器才会复位。

RTC支持两个外部IO侵入事件检测,并可以记录侵入时间,并且需要输入私钥才允许对RTC寄存器进行写操作,避免攻击者篡改RTC寄存器。

07. 故障注入防护

环境检测:通过监测电压、温度和电磁场等关键参数,确保硬件在安全的环境中运行。任何超出正常范围的波动都可能触发警报,促使系统采取保护措施。

完整性校验:通过在数据存储和传输过程中应用校验码(如CRC或奇偶校验),来检测和修复数据错误。

08. 生命周期管理

生命周期管理主要针对芯片测试开发到芯片使用阶段中可能存在的一些安全风险,例如调用测试或者调试接口非法获取数据。具体对应的功能包括测试模式禁止,JTAG禁止和128位唯一序列号。

测试模式禁止:芯片测试完成之后将测试模式禁止,交给客户的芯片不能再返回到测试模式,这样攻击者就不能通过测试接口获取敏感数据;

JTAG禁止:当读保护(RDP)设置Level 1以上时,则会将JTAG功能禁止,使得攻击者不能通过调试接口获取敏感数据;

128位唯一序列号:128位唯一序列号绑定了芯片出厂的LOT/WAFER ID和坐标等。该序列号唯一且不可复制,开发者可将应用程序与该芯片的序列号绑定,这样可以使每个下载应用程序的芯片不可被复制。管理员需要管控好每颗芯片的序列号,这样便于产品的定位和追踪,防止安全产品的复制。

09. 安全生产

安全生产主要是保证交由第三方工厂进行烧写的代码或者数据不被盗取和篡改以及过量生产。

针对安全生产,航芯提供了一套安全的解决方案,全程代码加密烧录,并带动态校验码(动态校验码与芯片唯一序列号绑定),而且可以进行烧录计数,进行产量控制,避免过量生产。并且支持在线/离线烧录,远程交付和更新固件,在保证固件安全性的前提下极大方便客户进行烧录固件。

「航芯:智能设备的坚盾,全面战胜安全威胁」

航芯产品底层硬件具备优异的安全能力,并集成了强大的密码功能,为芯片抵御攻击提供了坚实的防线,助力打造设备端的信息安全,实现适合不同应用场景和行业需求的安全功能。

ACM32系列:性能与安全升级一步到位

航芯ACM32系列MCU兼具更高性能、更高集成度、更高安全性等性能优势,具备丰富的外设接口资源,支持国密算法认证和应用层数据认证等多种安全加密功能,可以保证Flash安全存储、加密下载、固件安全设计、Flash读写保护、防拆检测等,为智能设备提供进阶级硬件防护。

1.png

2.png

不同MCU抗攻击硬件资源对比及航芯建议

专为智能设备认证量身打造

随着智能设备的普及,产品的版权和安全性日益成为焦点。为了保障设备制造商的利益和品牌价值,以及确保消费者使用产品的质量和服务保障,智能设备的安全防护和防伪变得至关重要。

ACL16_AEC 设备认证芯片

该系列是航芯基于单总线通讯自主开发的设备认证类安全产品。单总线协议兼容 1-Wire 协议,支持 ECDSA 和 SHA-256 等硬件算法引擎、FIPS/NIST 兼容真随机数发生器(TRNG)、1KB 安全EEPROM 存储区、20 位仅递减计数器和唯一的 64 位 ROM 识别码(ROM ID)。  

ACL16_AHM 设备认证芯片

ACL16_AHM 设备认证芯片是航芯科技基于单总线通讯自主开发的设备认证类安全产品。单总线协议兼容 1-Wire 协议,支持 HMAC 和 SHA-256 等硬件算法引擎、FIPS/NIST 兼容真随机数发生器(TRNG)、128-byte 安全 EEPROM 用户存储区、20 位仅递减计数器和唯一的 64 位 ROM 识别码(ROM ID)。 

应用领域:

原装电池认证及充电周期跟踪、医疗设备认证、电子烟耗材认证、配件认证、电路防抄板、智能家居

车载方案让智能与安全并驾齐驱

随着整车智能化的不断升级,芯片所提供的安全保障至关重要。航芯聚焦智能汽车信息安全领域,推出一系列车载安全方案,旨在实现安全存储、身份验证和安全通信等核心功能,确保从设备到云端的全程数据安全。

T-BOX方案(ACL16系列)

ACL16系列安全芯片集成了多种加密算法,并通过了车规AEC-Q100 Grade 1认证,可对发送数据进行加密保护和身份签名,对接收数据实施解密和验签服务,实现数据采集、远程控制和安全通信等功能,为智能汽车的数据安全提供了坚实的保障。

ETC方案(ACL16系列)

OBE-SAM 产品是航芯自主开发的安全模块,通过车规AEC-Q100Grade1认证,主要应用于ETC(不停车收费)系统,内嵌于车载设备 OBU 中。OBE-SAM安全模块中保存了车辆相关信息,收费站出入口信息,以及交易记录等等,模块采用安全芯片作为载体,密钥及敏感信息存放在安全芯片中,更加安全可靠。

V2X方案(ACX200T系列)

ACX200T是面向5G车联网C-V2X应用的安全芯片,满足V2X场景下消息认证的专用安全芯片。该款芯片采用航芯自主研发的高速硬件加密引擎,支持国家标准SM1、SM2、SM3、SM4密码算法,同时支持国际ECDSA、AES、SHA-1密码算法。可实现网联汽车云端认证、安全数据通信、安全固件升级等需求,为车联网提供信息安全保障。

数字钥匙(eSE 安全芯片)

航芯数字钥匙方案,基于优异的安全芯片防护技术,融合NFC、BLE、UWB等技术,内嵌eSE安全芯片,通过精准的蓝牙或UWB定位、NFC等近场通信技术和更安全的钥匙管理,帮助用户实现“无钥匙”进入、启动、远程授权、上锁等安全便捷的车机互联体验。

安全存储为数据构建“坚固堡垒”

安全存储是信息保护的基石,它不仅抵御黑客侵袭,保护用户机密文件与商业资产,还确保关键数据不受损害,进而成为数据防御体系的坚强后盾。

ACL16 低功耗32位SoC安全芯片

ACL16片内集成多种安全密码模块,支持真随机数发生器,有两种容量类型(320K和256K)的片内 eFlash,16K字节的ROM,16K字节的片内 SRAM,4K字节算法专用SRAM,其中片内 ROM 提供各种算法接口程序供用户调用,使得开发效率大大提高,系统性能得到优化。

ACH512 高性能32位SoC安全芯片

这是一款基于安全算法的高性能SoC芯片,集成多种安全密码模块,具备大容量存储空间,兼容主流标准接口,采用安全可靠的芯片架构,具备抵抗多种外部攻击的安全机制,可全方位提升终端设备的安全能力。

应用领域:加密卡、加密机、加密U盘、USB KEY

携手共创智能安全的未来

未来,航芯将持续聚焦安全能力提升与技术创新,携手终端客户及合作伙伴共同拓展多样化的安全应用场景,为消费者提供高效的安全价值。

来源:上海航芯

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 10

基于MCU的嵌入式软件开发,可能在某些情况下没有多余存储空间,从而没有在本地有效保存调试和日志信息。

这时,通过某种方式把调试(Debug)和日志(Log)信息输出就显得有意义了。

下面就来讲讲关于嵌入式开发中输出调试和日志信息的几点内容。

标准库 printf 直接输出

在MCU嵌入式开发中,通过UART串口 printf 输出调试和日志信息的方式是最常见的一种。

在Linux、Windows这种大型系统中,使用标准C库没有问题,但在MCU这种资源有限的平台,通常使用微库。

1.使用微库配置方法

在使用的IDE中,比如 Keil 和 IAR 都需要在工程选项中进行配置才能正常使用微库。

Keil 使用微库:Project -> Options for Target -> Target,勾选"Use MicroLIB"

1.png

IAR 使用微库:Project -> Options for Node -> General Options -> Library

Configuration,选择"Full"

2.png

额外说明一下,IAR 中使用库有四个选择:

None:无Normal:选择常规配置的运行时库Full:选择完整配置的运行时库Custom:选择定制运行时库

2.重定义函数

你要输出信息,肯定要有路径才行啊,是UART,还是CAN。所以,就需要重定义函数才行。

以UART串口为例,最常见一种方式:

#include <stdio.h>

int fputc(int ch, FILE *f)
{  
    DEBUG_SendByte((uint8_t)ch);
   return ch;
}

int fgetc(FILE *f)
{  
    while(USART_GetFlagStatus(DEBUG_COM, USART_FLAG_RXNE) == RESET);
   
   return (int)USART_ReceiveData(DEBUG_COM);}

当然,串口里面具体的实现方式,与你底层有关。 

有以上配置,就可以直接使用 printf 函数了。

自定义 printf 输出

有些情况下,需要指定要求输出调试或日志信息,就需要自定义输出格式。
举例1:
比如:我要设置一个 “DBUGE 开关”,在开发测试阶段,我需要打开开关,产品量产后,我不需要开启调试信息输出。

#define DEBUG(Type, ...)   if(DEBUG_EN(Type)) \                           
                            { \                             
                              printf(__VA_ARGS__); \                           
                            }

说明:__VA_ARGS__它是一个可变参数的宏,就是将左边宏中“...” 的内容原样抄写在右边 __VA_ARGS__ 所在的位置。
举例2:
还比如:输出日志信息,添加“时间戳”:

#define DEBUG(Type, ...)   if(DEBUG_EN(Type)) \                           
                            { \                             
                              printf("%s:", GetTimeStr());\                             
                              printf(__VA_ARGS__); \                           
                            }

更多自定义:

实际项目可能有很多需求,还比如:针对不同类型的传感器,输出日志带有“传感器编号”的日志信息。

所以说,项目需求和复杂不同,其输出调试或日志信息可能有不同的方式,具体要不要实现,还需要综合评估。

SWO 输出

类似UART串口输出,SWO(Serial Wire Output)串行线输出也是其中的一种,但需要MCU支持SWO功能才行(目前很多MCU都支持)。

可以在线调试时,输出到IDE界面,比如:

3.jpg

还可以离线输出到一些工具界面,比如:

4.jpg

CLI调试输出信息

上面几种方式都是单纯的输出调试/日志信息,相对更高级一点的做法就是通过CLI(Command Line Interface)命令行的方式获取调试信息。

命令行相信大家不模式,做嵌入式开发的都知道,像Linux的终端就是一个命令行,只是我们这里说的命令行,相对Linux的终端来说要简单的多。但是原理类似,都是通过输入命令来查看数据或执行某个动作。

1.相对printf优势

通过CLI可以任意时刻查看指定信息,执行某种操作。

2.相对printf劣势

需要在代码中集成CLI组件,以及对应的(查看、执行动作等)代码,更占用资源。(当然,可以使用轻量级的CLI,相对不占资源那种)

比如我之前用的一种,估计占用Flash不到1K的空间:

5.gif

其实,很多RTOS都集成了CLI组件,想用其实也不是想象中的那么复杂,和移植RTOS差不多,甚至更简单。

由于时间和篇幅有限,就写到这里,关于CLI的内容还有很多,后面如果还有时间,争取多分享一些相关内容。

来源:嵌入式专栏

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 28

2024年3月4日,中国上海——芯原股份 (芯原,股票代码:688521.SH) 今日宣布先楫半导体 (简称“先楫”) 的HPM6800系列新一代数字仪表显示及人机界面系统应用平台采用了芯原的高性能2.5D图形处理器 (GPU) IP。

1.png

HPM6800系列产品基于RISC-V CPU内核,具备高算力、低功耗、高集成度和出色的多媒体功能,适用于汽车仪表、人机交互界面 (HMI),以及电子后视镜 (CMS) 等需要复杂图形处理、高分辨率显示和高性能多媒体用户界面的应用。

芯原支持OpenVG的2.5D GPU IP能够为MCU/MPU设备提供高能效的图形处理和优质的图像输出,同时显著降低CPU负载。凭借成熟的可扩展性,该GPU已广泛应用于领先的汽车、工业和可穿戴产品中。此外,芯原还与领先的GUI软件服务提供商展开合作,以丰富面向GPU关键应用的生态系统,有效加快客户产品的上市进程。

“HPM6800系列是先楫在已有的高性能MCU系列产品中的又一个创新与突破。”先楫CEO曾劲涛表示,“通过集成芯原先进的2.5D GPU IP,HPM6800不仅秉承了我们现有MCU产品一贯的强大算力、精准控制、卓越通讯等特点,还融合了高效的图形处理、高分辨率显示以及其他多媒体功能。我们期待看到更多搭载HPM6800高性能MCU的工业及汽车系统解决方案的推出。”

“此次合作将芯原功能丰富且低功耗的2.5D GPU IP与先楫基于RISC-V的高性能MCU相结合,旨在共同推出领先的优秀产品,以应对显示领域不断增长的市场机遇。”芯原执行副总裁、IP事业部总经理戴伟进表示,“在过去十多年里,芯原的2.5D GPU IP已经广泛应用于许多领先的汽车和工业产品中。我们非常期待能将这项成熟的图形处理技术引入RISC-V生态系统,满足更广泛的客户需求。”

关于先楫半导体

先楫半导体 (HPMicro) 是一家致力于高性能嵌入式解决方案的半导体公司,总部位于上海,产品覆盖微控制器、微处理器和周边芯片,以及配套的开发工具和生态系统。公司成立于2020年6月,总部坐落于上海市张江高科技园区,并在天津、苏州、深圳和杭州均设立分公司。公司已完成ISO 9001质量管理认证和ISO 26262/IEC 61508功能安全管理体系双认证,全力服务中国乃至全球的工业、汽车和能源市场。更多信息,请访问 https://hpmicro.com/

关于芯原股份

芯原微电子 (上海) 股份有限公司 (芯原股份,688521.SH) 是一家依托自主半导体IP,为客户提供平台化、全方位、一站式芯片定制服务和半导体IP授权服务的企业。在芯原独有的芯片设计平台即服务 (Silicon Platform as a Service, SiPaaS) 经营模式下,通过基于公司自主半导体IP搭建的技术平台,芯原可在短时间内打造出从定义到测试封装完成的半导体产品,为包含芯片设计公司、半导体垂直整合制造商 (IDM)、系统厂商、大型互联网公司和云服务提供商在内的各种客户提供高效经济的半导体产品替代解决方案。我们的业务范围覆盖消费电子、汽车电子、计算机及周边、工业、数据处理、物联网等行业应用领域。

芯原拥有多种芯片定制解决方案,包括高清视频、高清音频及语音、车载娱乐系统处理器、视频监控、物联网连接、智慧可穿戴、高端应用处理器、视频转码加速、智能像素处理等;此外,芯原还拥有6类自主可控的处理器IP,分别为图形处理器IP、神经网络处理器IP、视频处理器IP、数字信号处理器IP、图像信号处理器IP和显示处理器IP,以及1,500多个数模混合IP和射频IP。

芯原成立于2001年,总部位于中国上海,在中国和美国设有7个设计研发中心,全球共有11个销售和客户支持办事处,目前员工已超过1,800人。

来源:芯原VeriSilicon

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。


围观 19

RX72M是瑞萨电子适用于工业网络解决方案的高性能32位微控制器,高达240MHz主频和1396CoreMark的性能,带双精度浮点运算,专门针对马达控制的三角函数加速器,可实现sin、cos、反三角函数以及开方函数运算,支持6通道的Delta-sigma调制器接口,支持电流环反馈信号。RX72M除了常用的外设接口外,还集成了专用于EtherCAT的ESC接口,可以用于开发EtherCAT IO模组、EtherCAT网关、EtherCAT步进、伺服驱动器,是一款性价比高的EtherCAT从站硬件,本文将为您介绍瑞萨MCU RX72M在开发EtherCAT应用中的Q&A。

有关RX72M产品的更多介绍,您可识别下方二维码或复制链接到浏览器中打开查看:

RX72M

https://www.renesas.cn/cn/zh/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus/rx72m-high-performance-32-bit-microcontroller-industrial-network-solutions 

什么是EtherCAT jitter?为什么EtherCAT是low Jitter communication?

EtherCAT jitter分主站jitter和从站网络jitter;

主站jitter指的是master cycle time jitter,主站EtherCAT通讯周期抖动,同时该参数也是反映了主站发送EtherCAT报文帧抖动情况,主站发送报文帧的抖动情况通常可以通过特殊工具数据抓包来测试,反映的是主站的性能/稳定性,如下图是两个主站在master cycle time为500us时的抖动情况,图1有正负几十us抖动,图2是1个us抖动以内,明显抖动小于图1。

1.png

图1

2.png

图2

从站网络jitter,指的是从站网络的同步抖动,指的是从站网络中第一个DC从站和最后一个DC从站的SYNC信号的时间偏差,反映的是从站网络的同步性能(如图4两个SYNC信号时间偏差小于10ns)。

3.png

图3

4.png

图4

Master如何映射各个slaves?

从站网络中每个站点由于ESC的存在,物理地址和逻辑地址是对应的,当主站扫描后,所有的TxPDO数据和RxPDO数据就已经在整个报文帧中分配好了位置,报文帧会遍历所有站点去做数据交换(类似高铁到站上下车)。

5.png

图5

6.png

图6

SSC工具创建的代码后,如何修改PDO-Map,增加新的变量?

可以通过手动方式修改代码以及ESI文件,或者SSC工具创建新应用,编辑excel表格自动生成新文件。

7.png

图7

8.png

图8

Wireshark捕获ECAT数据正确方法?

通过专用的抓包工具接入网络中作为一个侦听器(硬件延时ns级别,可忽略不计),获取到的报文在PC端的wireshark上处理,参考:

https://www.ethercat.org.cn/memberarea/en/knowledge_base_E3DFFB9A73A146D...

9.png

图9

RX72M的ESC接口与PHY连接模式是MII还是RMII?

RX72M的ESC只支持MII模式(部分其他厂商的ESC也仅支持MII)。

10.png

图10

11.png

图11

RX72M EtherCAT同步功能如何使用,如何测试这个功能确实开启了,以及一些指标?

同步功能的使用,需要在主站端配置选择同步模式如图12,可以通过抓取数据包分析,如有周期性的ARMW的指令,就说明DC功能已经使能上了。

关于同步的指标,通常是测试从站网络的抖动,即使用示波器测试每个从站产生的同步信号SYNC,比较时间差,网络中第一个从站的SYNC和最后一个从站的SYNC的时间差及为最大的同步抖动。

12.png

图12

卡片式IO应用时,RX72M是否支持EBUS背板总线技术?

不支持,EBUS是德国倍福定义的数据传输标准,是基于LVDS(Low Voltage Differential Signal,低压差分信号)技术,属于倍福的专利技术,不过基于RX72M的卡片式IO之间也可以是EtherCAT的连接方式,通过PHY直连(不需要变压器)的方式连接。

13.png

图13

RX72M作为EtherCAT从站在通讯时,当断开线缆后重新连线,是否能重新进入op,自动恢复通讯?

具体取决于主站的功能和从站应用逻辑,下图是twincat主站和RX72M硬件板子数据收发测试,是可以恢复建立通讯。

14.png

图14

RX72M支持的最快的Master EtherCAT cycle time是多少?

EtherCAT数据帧经过RX72M的ESC接口是小于300ns,所以理论上评估值65us是ok的,但实际测试也取决于主站的性能,要求主站在极限测试条件下能够保持master cycle time稳定,如果主站周期抖动大,会影响实际测试效果。

RX72M上EtherCAT的DC同步机制是如何实现的?首先在硬件接口上是否能实现,是否需要Sync0/Sync1接口?目前我们的方案都没有接这两个管脚。其次在软件上我们现有的协议上是否已经能实现了?还需要增加什么内容吗?

RX72M硬件板子以及配套的开源的ECAT软件代码是支持DC功能的,DC功能的使用需要在主站端去使能DC配置;RX72M是MCU+ESC集成于一体的单芯片方案,不是MCU+单独ESC芯片方式,因此SYNC信号引脚不需要单独引出接MCU作为外部中断;软件中已支持sync0和sync0中断服务函数,只需要在主站中做DC配置,然后在sync中断服务函数中去做应用处理,比如数据更新发送等即可。

RX72M上DC同步应用中,不同厂商的应用算法不同导致时间开销也不同,比如不同厂商不同的电机算法时间,如何保证多轴同步运动?

EtherCAT同步机制可以使得从站网络不同节点产生SYNC信号时间偏差是ns级别,该SYNC信号作为MCU的中断信号,保证中断信号的同步,同时EtherCAT也支持通过设置调整SM中断和SYNC信号的间隔时间(the time between SM and the starting of SYNC)来保证留有足够时间,在SYNC信号产生之前,已处理完应用算法。

RX72M开发板上对EEPROM芯片大小和型号要求是什么?

EEPROM size和XML文件的大小密切相关,取决于ESI文件的内容多少。对于RX72M来说,仅关系到寄存器ESCMR的PROMSIZE位设定为0还是1(0:最大到16-Kbit,1:32-Kbit到4-Mbit)。在Smart Configurator中对应了r_ecat_rx Property > Configurations > EEPROM size的值,跟硬件匹配即可。

EEPROM推荐型号包括:R1EX24016 (16Kbit),R1EX24032 (32Kbit),M24C32 (32Kbit),没有任何限定,因EEPROM IIC通信都是通用协议,size符合应用需求即可。

RX72M硬件板上,PHY晶振选用独立的,还是用RX72M输出的25M信号?

选用独立的晶振或者RX72M输出25M都可以,瑞萨PHY型号为KSZ8081的硬件板开发板,使用的是RX72M输出的25MHz的时钟。

您可点击下方链接进入瑞萨技术论坛:

https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/ 

来源:瑞萨嵌入式小百科

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 17

Holtek 新推出 BS45F2345 Touch A/D Flash MCU,特点内建高精准度振荡器、精准的 ADC 参考电压、8 路触控按键及支持SLCD 功能。其中触控可通过 CS (Conductive Susceptibility) 10V 动态测试,且优化应用使得 ROM 空间可最大化利用,适合各类触控电子产品使用,如触控小家电、抽油烟机、电磁炉、咖啡机等。

0.jpg

BS45F2345 系统资源包含 4K×16 Flash ROM、256×8 RAM、128×8 EEPROM、8ch 触控按键、12-bit ADC、比较器、SPI/I2C 及 UART 接口等功能,内建 8/12/16MHz ±1% 高精准度 HIRC 振荡器,ADC 参考电压的精准度可达到 1.2V ±1%。

Holtek 有专业的技术团队提供支持,搭配完整的触控函数库及软硬件开发工具,能加速客户产品开发。BS45F2345 提供 28-pin SOP/SSOP 封装,给客户依产品需求选用。

来源:Holtek

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 3

基于LPC860 MCU的智能电池充电器解决方案,包括预充电、恒流充电、恒压充电和充电完成4种充电状态,在整个充电周期中提供智能化的电池管理,可用于手持打印机、对讲机等移动设备。

来源:NXP恩智浦中国

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 11

随着汽车电子、物联网、工业控制的蓬勃发展,MCU作为嵌入式控制的主控核心,其需求数量一直保持着持续增长,全球MCU市场规模从2021年的157亿美元增长至2023年超过200亿美元,而国产MCU在需求增长及技术创新的共同推动下,同样保持着连续增长势头。

澎湃微电子作为本土32位MCU芯片及解决方案供应商,凭借多年的核心技术传承和团队的持续耕耘,一直保持着强劲的发展势头,近年来,澎湃微电子陆续推出了具有技术优势的超低功耗、超值型、主流型、医疗电子、电机控制、水气表等通用及细分MCU产品系列,满足物联网、车联网、工业控制、电机控制、消费电子等应用领域需求,助力客户提升终端产品的竞争力。

1.jpg


近日,澎湃微电子产品再升级,全新的PT32F6系列高端MCU即将上市,率先推出的PT32F605系列产品在架构和外设上都做了多处创新,以适应高端嵌入式应用需求。PT32F605搭载了由ARM中国授权的Armv8-M架构国产“星辰”STAR-MC1处理器内核,主频可达200MHz以上,外设丰富,可扩展性强,适用于工业、汽车、IoT等应用场景。

PT32F605系列产品的最大亮点是,全系标配由ARM中国本土团队研发的“星辰”STAR-MC1国产处理器内核,有助于芯片从核心上实现真正的“国产替代”,该内核主要有三大优势:

1、更高性能

运行在同一主频下可以比M3、M4提升20%性能,且内置FPU和DSP,补足了M3在浮点和数学运算上的短板。

2、更灵活的扩展能力

搭载丰富的存储扩展接口,内置L1 I/D cache, 能够大幅提升执行效率,同时设置独立的TCM接口,大幅提升了存储访问并行度。

3、更高安全性

引入Trustzone安全方案,以及全面的内存保护,能可靠保护核心数据的安全。

因此,与市场上其他M4或者M3产品相比,由于PT32F605采用更先进的内核,能够覆盖更多高性能、高可靠性的应用场景;

2.jpg


PT32F605除了星辰处理器内核加持,还有以下主要特点:

1、标配128KB的大容量SRAM,内置双8通道DMA,能够满足语音、图像等类型的数据处理,双电机驱动,以及其他实时控制应用的算法加速需求;

2、丰富的模拟外设资源,芯片内置6个运放,7个比较器,2个独立的12bit ADC,2个独立的12bit DAC,能够满足工业控制、IOT、双电机控制等采样及控制需求;

3、灵活多样的通信接口,包括USB 2.0 OTG、2路CAN-FD、6路串口、2路低功耗串口、4路SPI、4路I2C,2路I2S和QSPI,能够灵活应用在工业、汽车、家电、消防等场景中;

4、可扩展性强,可以通过内置QSPI、SPI接口外扩大容量Flash,同时可通过FSMC连接外部并行接口设备,比如显示屏、SRAM、ROM,Nor Flash等。


3.png

目前,PT32F605即将送样,从芯片前期定义时收到的反馈来看,PT32F605应用面非常广,典型应用包括工业自动化、楼宇自动化、新能源BMS、汽车后装应用以及家电主控等。

来源:澎湃微电子

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 24

汽车滑门因侧开启方式与传统车门相比,具有易泊车、开启宽度大和方便乘员货物进出的优点,很受消费者的青睐。汽车市场上,无论是面向高端的商务豪华MPV,还是面向城市物流的轻型客车和低端客运微型车都采用了汽车机械滑门系统。

汽车电动滑门系统PSD(Power Slide Door)是在机械滑门的基础上,集成智能控制和执行技术的高级滑门系统,主要技术点:

(1)电动滑门ECU控制系统;

(2)独立的供电系统,保证滑门持续供电,不影响滑门开启;

(3)更高要求的车体精度,保证车体滑门系统的开闭平顺性。

某主流车厂商务车型的电动侧滑门,采用基于航顺芯片车规级MCU HK32AUTO39A上开发的电动侧滑门控制系统,该控制系统具有检测侧滑门车锁和侧滑门位置状态、防夹伤和手自开门切换等功能。

此方案是利用32位微控制器HK32AUTO39A内部高级定时器PWM输出控制侧滑门锁电机,带XYZ三轴加速度感测模块,检测车体倾斜度调整滑门锁电机速度,达到平顺开闭滑门的效果。

电动侧滑门控制系统原理框图和实物如下:

1.png

电动侧滑门控制板原理框图

2.png

电动侧滑门控制板实物图

基于航顺芯片车规级MCU HK32AUTO39A开发的电动侧滑门控制系统,在各种恶劣环境下都能稳定运行,系统的高可靠性和耐用性高。此方案不仅提升了车辆的智能化水平,更为乘客提供了更为安全、便捷的乘车体验。

强拓展性:HK32AUTO39A-3A 使用 ARM® Cortex®-M3 内核,具备良好的生态环境;其丰富的外设资源可最大限度满足平台的扩展需求。另外,HK32AUTO39A-3A 系列产品均包括LQFP64、LQFP48、QFN32和QFN28等多种封装可选。

高可靠性:HK32AUTO39A-3A通过了严格的AEC-Q100 Grade1可靠性和安全性认证,且产品品质符合零失效(Zero Defect)的供应链质量管理标准ISO/IATF 16949规范。今年,航顺芯片通过ISO 26262汽车功能安全最高等级ASIL D流程认证。此外,产品支持-40℃~125℃的环境温度,具有15年的设计寿命。

相比同等性能/资源的车规MCU,HK32AUTO39A-3A具有超高性价比,且具有更完整的生态配套。

3.png

汽车行业将继续朝着智能化、电动化、网联化的方向发展,电动侧滑门作为智能汽车的重要组成部分,其技术也将不断进步。航顺芯片持续投入研发资源,不断优化和迭代我们的产品,紧跟行业发展趋势,不断提升技术水平,以确保我们的车规产品能够满足汽车行业未来的市场需求,为客户提供更为优质的产品和服务。

来源:航顺芯片

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 14

问:如何在 8051 单片机上编程一个阻塞延迟函数?

大家可能熟悉Arduino IDE 中的 delay() 函数。这是一个简单的函数,它提供了一个适用于Arduino 微控制器系列中所有成员的阻塞延迟。当你过渡到裸机微控制器编程时,你可能会发现自己在寻找类似的代码。不幸的是,你不太可能 在8051 “标准库”中找到这样一个延迟函数。

在本文中,我们将简要探讨硬件延迟方法,然后使用一组严格定义的假设提出 8051 Busy Bee 解决方案。

这种明显的 delay() 遗漏的最大原因可能是灵活性。了解 Arduino 代码控制了底层微控制器的很大一部分。时钟速度和专用计时器都是预定义的,隐藏在后台。这种隐藏的一致性允许简单的编程体验,delay() 函数在所有平台上执行相同。否则需要 Arduino 程序员对外设的体系结构和操作有大量的了解。这样的行为违背了 Arduino 为初学者和业余爱好者提供可访问性的目的。

在典型的 8051 环境中,情况就大不相同了。没有什么是隐藏的,你通常需要配置所有必要的外围设备。你还可以负责时钟,并可以自由选择高速外部,内部,32.678 kHz 甚至深度睡眠,只有看门狗计时器定期唤醒微控制器。这些选项中的每一个都会损坏甚至停止一个函数,如 delay() 按预期运行。

找到一份 Busy Bee 参考手册,让我们开始吧。

技术贴士:术语阻塞意味着微控制器的主代码在整个延迟期间被阻塞(什么都不做)。对于小的延迟和简单的问题,这通常是可以接受的,但可能导致不可接受的操作。例如,当阻塞延迟正在进行时,微控制器将对按钮按下无响应。这个问题的替代方案包括中断和非阻塞延迟。

许多延迟选项是可用的

让我们首先认识到,在微控制器中构造延迟函数的方法有很多种。一个简短的列表可能包括:

  • 以 NOP (什么都不做指令)为特征的精心构造的汇编代码。在这里,程序员将根据每个汇编命令的特征计算微控制器的时钟周期。
  • 带有矢量中断的硬件定时器。与延迟相关的操作可以嵌入到中断服务例程( ISR )中,或者中断可以维持类似于 Arduino millis() 函数的系统时间。
  • 免费运行硬件定时器而不中断。这里硬件定时器是不断运行的。这类似于看一个带模数60运算的挂钟。假设当前时间是50秒,而你想要一个20秒的延迟。然后你会一直等到秒针到达10秒。在 8051 中,这样的解决方案将根据选择的计时器类型对 256 或 25536 取模。操作的“速度”取决于系统时钟和定时器的预量程配置。
  • 不使用中断的受控硬件定时器。使用这种方法,用户程序将停止定时器,预加载定时器到一个已知值,启用定时器,并等待溢出发生。

每种方法都有优点和缺点。选择在很大程度上取决于单个项目的需求、程序员的技能、未来的可维护性以及可用的硬件资源。例如,如果项目需要一致的心跳,带有矢量中断的硬件计时器就是一个非常好的解决方案。这种精确的周期性定时对于比例积分导数控制器或使用 DAC 生成波形来说是很好的。

阻塞延迟

在这篇文章中,我们将介绍一个使用无中断硬件计时器的解决方案。回想一下,微控制器的硬件计时器通常就像时钟的秒针一样计数。在此代码开发中使用的 Silicon Labs  EFM8BB1 8051 具有一个定时器集合,其中包括四个16位通用硬件定时器,向后兼容标准 8051。

16位定时器具有模数2^16运算。与从0到60计数的时钟一样,16位计时器在回滚到 0 之前也会从 0计数到 65535。这个溢出事件是特殊的,因为硬件会自动设置一个中断标志。这个操作建议在高度简化的图1框图中。

1.png
图 1 : Busy Bee 定时器 #2 的简化框图。

技术贴士:外设的中断标志不会自动启动中断。只有在中断或扩展中断使能电阻中设置了相关的中断使能位时,它才会这样做。

这个中断标志是本文所附代码中描述的阻塞延迟的关键。延时的操作描述如下:

  • 将合适预售和模式的定时器分别配置为 1:1 和16位自动重载。还要使用sbit操作符别名运行控制和中断标志。这些操作在while(1)超级循环之前执行一次。
  • 关闭定时器并清除中断标志。
  • 用期望的延迟值加载计时器。
  • 启用计时器的运行位。
  • 在 while 循环中旋转(什么都不做),直到中断标志。此操作将阻塞所有其他 main() 代码,直到设置该标志。

技术提示:最初的8051是一个独特的架构,能够在位级寄存器上操作。这导致了快速的代码,而不需要使用掩码来选择寄存器内的特定位。这是使用Keil C51特殊功能寄存器(Sbit)汇编器语句完成的。

在EFM8BB1等衍生产品中保留了这种向后能力。然而,较新的产品比最初的8051包含了更多的外设和相关的SFRs。不幸的是,并非所有的寄存器都是位可寻址的。只有以0x0或0x8结尾的寄存器才能使用这种方便快捷的位操作。仔细查看参考手册,可以发现地址为0xC8的TMR2CN0是位可寻址的。

调用和数字开销

在结束本文之前,我们需要考虑与调用函数和计算重载值相关的开销。例如,这一小段代码带来了一个严重的问题:

tmr_load = -((n_us * 49) >> 1);

它试图聪明地解释每微秒24.5个时钟节拍。它没有使用float类型来解释半比特,而是先乘以49,然后使用右移操作除以2;一个为高位,一个为低位,带进位。

最后一步是用216减去装弹值。简写就是对结果求反。换一种说法,在模65536环境中,65536 - x提供的答案与0 - x相同,因为65536 = 0(模65536)。这和60 = 0(模60)的时钟是一样的。

在下一行代码中,我们将100添加到tmr_load变量中。这是一个粗略的方法,用于计算函数调用开销以及计算tmr_load所需的时间。回想一下,Busy Bee没有硬件乘法器。因此,通过8位ALU执行8位乘16位乘法需要时间。

这个函数开销的一个牺牲品是接受小延迟的能力。它的开销大约为4us,因此不可能延迟更小的东西。如果需要这些小延迟,应该使用前面提到的带有NOP操作的手工编码汇编程序

真实世界的结果如图2所示,我们看到一个引脚为5 us高,5 us低,然后又高。对于相关的blk_ms_delay也获得了类似的结果,其中blk_ms_delay(2000)的调用在0.01 ms内,由 Digilent  471-060 (Analog Discovery)测量。你是否同意阻塞函数提供了合理的性能?

2.png
图 2 :示波器测量现实世界的信号,编程5路开和5路关。

结论

如前所述,所附代码高度依赖于Busy Bee的时钟、预分频和定时器配置。你将需要修改代码,以解释任何偏离此代码开发中所做假设的条件。

也许你会修改代码,使用较慢的振荡器来节省能量。还有一些技巧可以让微控制器进入深度睡眠状态。然后,你可能希望以尽可能高的速度唤醒微控制器,以便在返回睡眠之前快速执行操作。

这种灵活性使得微控制器裸机编程比你过去可能使用的高级编程更加困难。这也是解锁性能的关键。

来源:得捷电子DigiKey

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 13

页面

订阅 RSS - MCU