您好,欢迎进入 官方网站!

您现在的位置: 首页 新闻资讯>> 新闻头条>> MCU相关知识:指令集,内存保护单元等
新闻资讯
NEWS INFORMATION

MCU相关知识:指令集,内存保护单元等

发布时间:2019-05-22
一个处理器达到 200 DMIPS的性能,这是个什么概念? DMIPS全称叫Dhrystone MIPS 这项测试是用来计算同一秒内系统的处理能力,它的单位以百万来计算,也就是(MIPS) 上面的意思也就是,这个处理器测整数计算能力为(200*100万)条指令/秒。
MIPS
Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。这是衡量CPU速度的一个指标。像是一个Intel 80386 电脑可以每秒处理3百万到5百万机器语言指令,既我们可以说80386是3到5MIPS的CPU。MIPS只是衡量CPU性能的指标。
DMIPS
DMIPS是我最近才去深入了解的一个单位,以前看到都不求甚解了,汗一下...
D是Dhrystone的缩写,他表示了在Dhrystone这样一种测试方法下的MIPS,Dhrystone是一种整数运算测试程序。下面是在FOLDOC上的解释:
Dhrystone
A short synthetic benchmark program by Reinhold Weicker weicker.muc@sni.de, weicker.muc@sni-usa.com, intended to be representative of system (integer) programming. It is available in ADA, Pascal and C.The current version is Dhrystone 2.1. The author says, "Relying on MIPS V1.1 (the result of V1.1) numbers can be hazardous to your professional health."
Due to its small size, the memory system outside the cache is not tested. Compilers can too easily optimise for Dhrystone. String operations are somewhat over-represented.
(2002-03-26)
(c) Copyright 1993 by Denis Howe
DMIPS为每秒百万次整数运算指令,MFLPS为每秒百万次浮点运算指令,对我们这些搞单片机的人来说,这两个参数希望记住了
ARM中的MIPS和MHz联系
 MIPS即Million Instruction Per Second 的简写--计算机每秒钟执行的百万指令数。是衡量计算机速度的指标。
  现如今CPU的频率越来越高,又是流水线又是超标量计算又是双核多核的,单纯以时钟频率来衡量计算机的速度已经不再科学,用MIPS来衡量相对比较合理。
  以ARM7为内核的S3C44B0X的推荐最高工作频率为66MHz,按照ARM公司提供的技术资料,ARM7类CPU的运算速度可按如下公式计算:MIPS=0.9×MHz,由此可得出,S3C44B0X的最大运算速度大约为0.9×66MHz=59.4MIPS。6M的51单片机通常是12 或24个时钟周期才能完成1条指令,乘法和除法指令更需要48个时钟周期。这样,我初步估算6M的51单片机的运算速度应该在0.2~0.5MIPS之间。可见8位机与32位机的运算速度还是有巨大的差异的。
  再以AVR为例,它的数据吞吐率可达1MIPS/MHz,即1MHz的震荡频率可达1MIPS。
  综上,用MIPS衡量计算机速度很合理,对于不同的cpu,它的最高工作频率不同,数据吞吐率也不同,所以不可一概而论。

DSP instruction set

DSP指令集

简单的说,M4相当于M3+DSP指令,呵呵。如果用一句官方对cortex-M4的说法,就是”Cortex-M4处理器完美融合了高效的信号处理能力以及Cortex-M 系列处理器诸多无可比拟的优势,包括低功耗、低成本和易于使用,旨在满足那些新兴的、灵活多变的解决方案的需求”,够官方吧,呵呵。Cortex-M4核具有一个单时钟周期乘法累加(MAC)单元、优化的单指令多数据(SIMD)指令、饱和运算指令和一个可选的单精度浮点运算单元(FPU),因此我们说其为简单的DSC也不为过。

(1) 对数字信号处理来说,饱和算法是很重要的一个功能(没听过饱和算法的可以到谷歌一下,呵呵,要恶补啊),上图,从左到右为原始波形信号,标准CPU算法(瞧瞧,完全失真了,这就是因为饱和之后溢出造成的运算错误,以致于严重失真),带有饱和算法的dsp指令(可以看出来,溢出部分顶多被滤掉,其他部分正常)。看出效果来了吧,呵呵,咱的Cortex-M4核当然属于第三种,厉害吧,哈哈~

(2)Cortex-M4核支持的数据类型,定点数据M4支持8位、16位、32位和64位,浮点数据支持8位、16位、32位。

(3)Cortex-M4核支持的部分DSP指令,包括饱和指令(上面提到的)、乘加指令(MAC,单周期哈)、单指令多数据指令(SIMD)。

(4)算法支持上,包括滤波算法(最常用的FIR,IIR算法了),域之间的转换(频率到时域,时域到频率等,FFT,DCT等),闭环控制等等。

不过最后要说的是,Cortex-M4虽然带有DSP扩展指令集,不过它只具有简单的DSP特点,比那些功能强大的专用DSP片子差距还是灰常大的,不过毕竟市场定位不一样,咱也不能太期望它给咱们太大的DSP享受,那些对DSP功能要求敏感的项目,这款片子不是好的选择,不过对一些简单的电机控制类而且对成本敏感的项目,注意了哈,这个该是不错的选择吧~

zero-wait state flash memory

Memory Protection Unit (MPU)

内存保护单元

内存保护单元(MPU)是ARM中配备的有效保护系统资源硬件的一种,提供了内存区域保护功能。

一些嵌入式系统使用多任务的操作和控制。这些系统必须提供一种机制来保证正在运行的任务不破坏其他任务的操作。即要防止系统资源和其他一些任务不受非法访问。嵌入式系统有专门的硬件来检测和限制系统资源的访问。它能保证资源的所有权,任务需要遵守一组由操作环境定义的、由硬件维护的规则,在硬件级上授予监视和控制资源程序的特殊权限。受保护系统主动防止一个任务使用其他任务的资源。因此使用硬件主动监视系统比协调加强的软件历程,提供了更好的保护。
内存保护单元(MPU)是ARM中配备的有效保护系统资源硬件的一种,提供了内存区域保护功能。

零等待状态快闪存储器

这个意思是说程序读取很快,FLASH和RAM都一样的速度

下方的案例可以做个参考:

片内FLASH如果系统时钟是72M,需要有2个等待,在reference manual里面说到了,摘录如下:

Note: 1 These options should be used in accordance with the Flash memory access time. The wait
states represent the ratio of the SYSCLK (system clock) period to the Flash memory access
time:
zero wait state, if 0 < SYSCLK ≤ 24 MHz
one wait state, if 24 MHz < SYSCLK ≤ 48 MHz
two wait states, if 48 MHz < SYSCLK ≤ 72 MHz

160/96 KB SRAM, including 32 KB external SPI Flash cache

160 SRAM 包括32 KB外部SPI闪存缓存

4 KB Secure Protection ROM

4 KB的ROM的安全保护

– 8 KB Key Protection ROM

8 KB的ROM重点保护


– 3 KB One-Time-Programmable ROM

OTP(One Time Programable)是MCU的一种存储器类型
MCU按其存储器类型可分为MASK(掩模)ROM、OTP(一次性可编程)ROM、FLASH ROM等类型。MASK ROM的MCU价格便宜,但程序在出厂时已经固化,适合程序固定不变的应用场合;FLASH ROM的MCU程序可以反复擦写,灵活性很强,但价格较高,适合对价格不敏感的应用场合或做开发用途;OTP ROM的MCU价格介于前两者之间,同时又拥有一次性可编程能力,适合既要求一定灵活性,又要求低成本的应用场合,尤其是功能不断翻新、需要迅速量产的电子产品。
OTPROM(One Time Programmable Read-Only Memory),可以进行片内编程操作,而且可以增强加密功能。然而OTP ROM MCU的OTPROM 存在一个缺点:不可擦除,也就是说只能编程一次,不能实现重复编程,不利于大量普及使用。当程序从仿真器移植到单片机的OTPROM 时,并不能保证程序的一次成功性,由于单片机的不可擦除性,若程序脱机一次就使用一片单片机,显然将造成巨大的资源浪费。另一方面,对于复杂系统,16 KB的OTPROM容量如果不够,则需要采用扩展外部存储器,为了保证有效实现加密功能,应保留一部分程序在片内OTPROM,此时便涉及到单片机内、外存储器的衔接问题。
如果内部存储器容量不够或因为其他方面需要,要求扩展外部存储器时,当然可以选择容量较大的外部存储器,而不使用内部存储器,但这样一来,程序的保密性将难以实现。而且浪费了单片机内部的存储器空间。使用内、外结合的方法既可以满足容量需求,又能方便的实现加密操作。

Cyclic Redundancy Calculation Unit

循环冗余码的计算单位

16-channel Peripheral DMA Controller

16通道的外设DMA控制器

DMA(Direct Memory Access,直接内存存取) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。

External Bus Interface

外部总线接口– 液晶并行接口,I80模式

Clock
– 4 to 24 MHz crystal oscillator
– 32 kHz crystal oscillator for RTC
– Internal 12 MHz RC oscillator
– Internal 10 kHz RC oscillator
– Internal PLL up to 480 MHz

RTC
– Independent VBAT power pin
– 80 bytes of battery-powered backup registers

RTC – Independent VBAT power pin – 80 bytes of battery-powered backup regi

RTC–VBAT引脚独立电力

80字节的电池供电的备份方案

Power Management
– Active: 175 μA/MHz at 25°C/3.3V (peripheral off)
– VBAT for RTC: 1.2μA

VBAT是什么意思备份电源,一般接电池,如果不用电池也可直接与VCC相连

严格来说,不用RTC和电池备份RAM就可以不接,但是推荐你不用的情况下都接到3.3V的数字Vcc,要备份的,接备份电池或者超级电容(要接充电电路)。

Timer & PWM
– Four 32-bit timers, each supports up to 2 PWM (Total 8 PWM)


– Twelve Enhanced PWM with twelve 16-bit timers


– Twelve Basic PWM with two 16-bit timers


– One 24-bit count-down SysTick timer


– One watchdog timer


– One window watchdog timer

12个具有12位时钟预分频的16位计数器,用于12个192 MHz PWM输出通道

Basic PWM (BPWM)

  • 多达12个独立的输入捕捉通道,16位分辨率计数器
  • 支持最大12位预分频比的死区时间
  • 上,下或上下PWM计数器类型
  • 支持3种互补配对PWM输出通道的互补模式
  • 相位控制的同步功能
  • 计数器同步启动功能
  • 具有自动恢复机制的制动功能
  • 每个PWM通道的屏蔽功能和三态输出
  • 能够触发EADC或DAC开始转换

定时器和PWM

- 四个32位定时器,每个定时器最多支持2个PWM(总共8个PWM)
- 具有12个16位定时器的12个增强型PWM
- 具有两个16位定时器的十二个基本PWM
- 一个24位倒计时SysTick计时器
- 一个看门狗定时器
- 一个窗口看门狗定时器

脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。
PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振波开关技术将会成为PWM控制技术发展的主要方向之一。其根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。

WDT是英语Watchdog Timer的缩写字母,Watchdog Timer 中文名看门狗,是一个定时器电路。
Watchdog Timer 中文名看门狗。是一个定时器电路,一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。

STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效。

看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号) 。

窗口看门狗(WWDG)通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在 T6 位 (WWDG->CR 的第六位)变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU 复位。在递减计数器达到窗口配置寄存器(WWDG->CFR)数值之前,如果 7 位的递减计数器数值(在控制寄存器中)被刷新, 那么也将产生一个 MCU 复位。这表明递减计数器需要在一个有限的时间窗口中被刷新。

模拟外设
- 一个12位,高达16通道5MSPS SAR ADC
- 两个12位1MSPS DAC
- 两个轨到轨比较器
- 最多三个运算放大器

模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。

将模拟信号转换成数字信号的电路,称为模数转换器(简称a/d转换器或adc,analog to digital converter),A/D转换的作用是将时间连续、幅值也连续的模拟量转换为时间离散、幅值也离散的数字信号,因此,A/D转换一般要经过取样、保持、量化及编码4个过程。在实际电路中,这些过程有的是合并进行的,例如,取样和保持,量化和编码往往都是在转换过程中同时实现的。

Cryptography Accelerator密码加速器;

– ECC-192, 256
– AES-128, 192, 256 / DES / 3DES
– SHA-160, 224, 256, 384, 512 / HMAC
– Random number generator

Communication Interface(通信接口

– Up to 9 UART interfaces, including ISO-7816, LIN and IrDA interfaces
– Three I2C interfaces (Up to 3.4 Mbps)
– One SPI Flash interface (Up to 96Mbps) supports quad mode
– One Quad-SPI interface (Up to 48MB/s)
– Up to 4 SPI/I2S interfaces (SPI up to 96Mbps, I2S up to 6Mbps)
– One I2S interface (Up to 12Mbps)
– Two configurable USCI interfaces for UART / SPI / I2C
– Two CAN 2.0B interfaces (Up to 1Mbps)
– Two Secure Digital Host Controllers (Up to 50Mbps)

ESD(Electro-Static discharge)的意思是“静电释放”。ESD是20世纪中期以来形成的以研究静电的产生、危害及静电防护等的学科。因此,国际上习惯将用于静电防护的器材统称为ESD,中文名称为静电阻抗器。
EMI
EMI是指电子产品工作会对周边的其他电子产品造成干扰,与此关联的还有EMC规范。是电子电器产品经常遇上的问题。干扰种类有传导干扰和辐射干扰。

System on Chip,简称Soc,也即片上系统。从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲, SoC是一个微小型系统,如果说中央处理器(CPU)是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。国内外学术界一般倾向将SoC定义为将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,它通常是客户定制的,或是面向特定用途的标准产品。
SoC定义的基本内容主要在两方面:其一是它的构成,其二是它形成过程。系统级芯片的构成可以是系统级芯片控制逻辑模块、微处理器/微控制器CPU 内核模块、数字信号处理器DSP模块、嵌入的存储器模块、和外部进行通讯的接口模块、含有ADC /DAC 的模拟前端模块、电源提供和功耗管理模块,对于一个无线SoC还有射频前端模块、用户定义逻辑(它可以由FPGA 或ASIC实现)以及微电子机械模块,更重要的是一个SoC 芯片内嵌有基本软件(RDOS或COS以及其他应用软件)模块或可载入的用户软件等。系统级芯片形成或产生过程包含以下三个方面:
1) 基于单片集成系统的软硬件协同设计和验证;
2) 再利用逻辑面积技术使用和产能占有比例有效提高即开发和研究IP核生成及复用技术,特别是大容量的存储模块嵌入的重复应用等;
3) 超深亚微米(VDSM) 、纳米集成电路的设计理论和技术。
10/100MS

10/100Mbps这是什么意思了?

这是快速以太网向后兼容的一种做法。 因为传统以太网速度是10Mbps,现在已基本满足不了需求,所以升级为快速以太网,即100Mbps以太网,但是考虑到原有传统以太网已经大面积覆盖Internet, 所以,IEEE 802.3委员会在制定快速以太网标准时,采取了向后兼容,即快速以太网与传统以太网的桢格式,媒体访问控制方法都是一样的,两种以太网是可以在一个网络内相互操作的。 这也是有些NIC,即网卡标为10/100Mbps的原因 上边某兄弟说“MB是兆字节(即million bit),PS是每秒(即per second).所以100MBPS就是指每秒传输100MB的数据量.”这是大错特错的 通信系统中的Mb与存储系统中的MB是不同的,通信系统的Mb是指兆位,即1000000bit数据流,而存储系统中的MB是指1024X1024Byte,即1024X1024X8bit数据流

1.概述

MII即“媒体独立接口”,也叫“独立于介质的接口”。它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。RMII全称为“简化的媒体独立接口”,是IEEE-802.3u标准中除MII接口之外的另一种实现。(此处内容来源于网络)

2.独立于介质的接口(MII)

独立于介质的接口(MII)用于MAC与外接的PHY互联,支持10Mbit/s和100Mbit/s数据传输模式。MII的信号线如下图所示:

RMII

3.精简的独立于介质的接口(RMII)

精简的独立于介质接口(RMII)规范减少了以太网通信所需要的引脚数。根据IEEE802.3标准,MII接口需要16个数据和控制信号引脚,而RMII标准则将引脚数减少到了7个。RMII具有以下特性:

  • 时钟信号需要提高到50MHz。
  • MAC和外部的以太网PHY需要使用同样的时钟源
  • 使用2位宽度的数据收发

上一篇:ARM漏洞

下一篇:冒泡排序法

联系方式 0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Baidu
map