一个处理器达到 200 DMIPS的性能,这是个什么概念? DMIPS全称叫Dhrystone MIPS 这项测试是用来计算同一秒内系统的处理能力,它的单位以百万来计算,也就是(MIPS) 上面的意思也就是,这个处理器测整数计算能力为(200*100万)条指令/秒。
Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。这是衡量CPU速度的一个指标。像是一个Intel 80386 电脑可以每秒处理3百万到5百万机器语言指令,既我们可以说80386是3到5MIPS的CPU。MIPS只是衡量CPU性能的指标。
DMIPS是我最近才去深入了解的一个单位,以前看到都不求甚解了,汗一下...
D是Dhrystone的缩写,他表示了在Dhrystone这样一种测试方法下的MIPS,Dhrystone是一种整数运算测试程序。下面是在FOLDOC上的解释:
现如今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中配备的有效保护系统资源硬件的一种,提供了内存区域保护功能。
零等待状态快闪存储器
这个意思是说程序读取很快,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
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个独立的输入捕捉通道,16位分辨率计数器
支持最大12位预分频比的死区时间
上,下或上下PWM计数器类型
支持3种互补配对PWM输出通道的互补模式
相位控制的同步功能
计数器同步启动功能
具有自动恢复机制的制动功能
每个PWM通道的屏蔽功能和三态输出
能够触发EADC或DAC开始转换
Enhanced PWM (EPWM)
两个带12位时钟预分频的16位计数器,用于12个192 MHz PWM输出通道。
多达6个独立的输入捕捉通道,16位分辨率计数器
上,下或上下PWM计数器类型
计数器同步启动功能
3个互补配对PWM输出通道的互补模式
每个PWM通道的屏蔽功能和三态输出
能够触发EADC开始转换。
定时器和PWM
- 四个32位定时器,每个定时器最多支持2个PWM(总共8个PWM)
- 具有12个16位定时器的12个增强型PWM
- 具有两个16位定时器的十二个基本PWM
- 一个24位倒计时SysTick计时器
- 一个看门狗定时器
- 一个窗口看门狗定时器
STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效。
看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 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)
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的信号线如下图所示:
3.精简的独立于介质的接口(RMII)
精简的独立于介质接口(RMII)规范减少了以太网通信所需要的引脚数。根据IEEE802.3标准,MII接口需要16个数据和控制信号引脚,而RMII标准则将引脚数减少到了7个。RMII具有以下特性:
- 时钟信号需要提高到50MHz。
- MAC和外部的以太网PHY需要使用同样的时钟源
- 使用2位宽度的数据收发