搞定ARM指令集(二)

发布者:BlissfulMoon最新更新时间:2022-07-26 来源: csdn关键字:ARM  指令集 手机看文章 扫描二维码
随时随地手机看文章

一、ARM 微处理器的指令的分类与格式  

ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。ARM微处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令六大类。下面是ARM微处理器的基本指令。


助记符    指令功能描述

ADC    带进位加法指令
ADD    加法指令
AND    逻辑与指令
B    跳转指令
BIC    位清零指令
BL    带返回的跳转指令
BLX    带返回和状态切换的跳转指令
BX    带状态切换的跳转指令
CDP    协处理器数据操作指令
CMN    比较反值指令
CMP    比较指令
EOR    异或指令
LDC    存储器到协处理器的数据传输指令
LDM    加载多个寄存器指令
LDR    存储器到寄存器的数据传输指令
MCR    从ARM 寄存器到协处理器寄存器的数据传输指令
MLA    乘加运算指令
MOV    数据传送指令
MRC    从协处理器寄存器到ARM 寄存器的数据传输指令
MRS    传送CPSR 或SPSR 的内容到通用寄存器指令
MSR    传送通用寄存器到CPSR 或SPSR 的指令
MUL    32 位乘法指令
MLA    32 位乘加指令
MVN    数据取反传送指令
ORR    逻辑或指令
RSB    逆向减法指令
RSC    带借位的逆向减法指令
SBC    带借位减法指令
STC    协处理器寄存器写入存储器指令
STM    批量内存字写入指令
STR    寄存器到存储器的数据传输指令
SUB    减法指令
SWI    软件中断指令
SWP    交换指令
TEQ    相等测试指令
TST    位测试指令
--------------------------------------------------------------------------------------------------------------------------
二、指令的条件域

当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件的执行。当指令的执行条件满足时,指令被执行,否则指令被忽略。


每一条ARM指令包含4位的条件码,位于指令的最高4位[31:28]。条件码共有16种,每种条件码可用两个字符表示,这两个字符可以添加在指令助记符的后面和指令同时使用。16种条件标志码中只有15种可以使用,标志码1111 保留不用。


条件码    助记符后缀 标 志     含 义
0000    EQ    Z 置位     相等
0001    NE    Z 清零     不相等
0010    CS    C 置位     无符号数大于或等于
0011    CC    C 清零     无符号数小于
0100    MI    N 置位     负数
0101    PL    N 清零     正数或零
0110    VS    V 置位     溢出
0111    VC    V 清零     未溢出
1000    HI    C 置位Z 清零    无符号数大于
1001    LS    C 清零Z 置位    无符号数小于或等于
1010    GE   N 等于V    带符号数大于或等于
1011    LT    N 不等于V    带符号数小于
1100    GT    Z 清零且(N 等于V) 带符号数大于
1101    LE    Z 置位或(N 不等于V) 带符号数小于或等于
1110    AL    忽略     无条件执行
-------------------------------------------------------------------------------------------------------------------------
三、ARM 指令的寻址方式

1、立即寻址   操作数在指令中直接给出

ADD R0,R0,#1 ;R0←R0+1
ADD R0,R0,#0x3f ;R0←R0+0x3f

2、寄存器寻址   操作数在寄存器

ADD R0,R1,R2 ;R0←R1+R2

3、寄存器间接寻址 操作数的地址在寄存器

ADD R0,R1,[R2] ;R0←R1+[R2]
LDR R0,[R1] ;R0←[R1]
STR R0,[R1] ;[R1]←R0

4、基址变址寻址   操作数地址 = 基址寄存器 + 指令中给出的地址偏移

LDR R0,[R1,#4] ;R0←[R1+4]
LDR R0,[R1,#4]! ;R0←[R1+4]、R1←R1+4
LDR R0,[R1] ,#4 ;R0←[R1]、R1←R1+4
LDR R0,[R1,R2] ;R0←[R1+R2]

5、多寄存器寻址   类似寄存器寻址,此处是多个寄存器而已

LDMIA R0,{R1,R2,R3,R4} ;R1←[R0]
     ;R2←[R0+4]
     ;R3←[R0+8]
     ;R4←[R0+12]

6、相对寻址   目标地址 = pc 当前值 + 指令给出的标号偏移地址

BL NEXT ;跳转到子程序NEXT 处执行
......
NEXT
......
MOV PC,LR ;从子程序返回

7、堆栈寻址

ARM 微处理器支持这四种类型的堆栈工作方式。

- 满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生成。
- 满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生成。
- 空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成。
- 空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成。
-----------------------------------------------------------------------------------------------------------------------
四、ARM 指令集

1、跳转指令

— 使用专门的跳转指令。     32MB 地址空间
— 直接向程序计数器PC 写入跳转地址值。   4GB 地址空间

— B 跳转指令
— BL 带返回的跳转指令
— BLX 带返回和状态切换的跳转指令
— BX 带状态切换的跳转指令

B{条件} 目标地址 其他的类似


2、数据处理指令
数据处理指令可分为数据传送指令、算术逻辑运算指令和比较指令等。

数据传送指令用于在寄存器和存储器之间进行数据的双向传输。

算术逻辑运算指令完成常用的算术与逻辑的运算,该类指令不但将运算结果保存在目的寄存器中,同时更新CPSR 中的相应条件标志位。


比较指令不保存运算结果,只更新CPSR 中相应的条件标志位。


数据处理指令包括:

— MOV 数据传送指令   MOV{条件}{S} 目的寄存器,源操作数

MOV R1,R0     ;将寄存器R0 的值传送到寄存器R1
MOV PC,R14     ;将寄存器R14 的值传送到PC,常用于子程序返回
MOV R1,R0,LSL#3    ;将寄存器R0 的值左移3 位后传送到R1

— MVN 数据取反传送指令   MVN{条件}{S} 目的寄存器,源操作数

MVN R0,#0     ;将立即数0 取反传送到寄存器R0 中,完成后R0=-1

— CMP 比较指令    CMP{条件} 操作数1,操作数2

CMP R1,R0     ;将寄存器R1 的值与寄存器R0 的值相减,并根据结果设置CPSR 的标志位
CMP R1,#100     ;将寄存器R1 的值与立即数100 相减,并根据结果设置CPSR 的标志位

— CMN 反值比较指令   CMN{条件} 操作数1,操作数2

CMN R1,R0     ;将寄存器R1 的值与寄存器R0 的值相加,并根据结果设置CPSR 的标志位
CMN R1,#100     ;将寄存器R1 的值与立即数100 相加,并根据结果设置CPSR 的标志位

— TST 位测试指令   TST{条件} 操作数1,操作数2

TST R1,#%1     ;用于测试在寄存器R1 中是否设置了最低位(%表示二进制数)
TST R1,#0xffe    ;将寄存器R1 的值与立即数0xffe 按位与,并根据结果设置CPSR 的标志位

— TEQ 相等测试指令   TEQ{条件} 操作数1,操作数2

TEQ R1,R2     ;将寄存器R1 的值与寄存器R2 的值按位异或,并根据结果设置CPSR 的标志位

— ADD 加法指令    ADD{条件}{S} 目的寄存器,操作数1,操作数2

ADD R0,R1,R2     ; R0 = R1 + R2
ADD R0,R1,#256    ; R0 = R1 + 256
ADD R0,R2,R3,LSL#1    ; R0 = R2 + (R3 << 1)

— ADC 带进位加法指令   ADC{条件}{S} 目的寄存器,操作数1,操作数2

ADDS R0,R4,R8    ; 加低端的字
ADCS R1,R5,R9    ; 加第二个字,带进位
ADCS R2,R6,R10    ; 加第三个字,带进位
ADC R3,R7,R11    ; 加第四个字,带进位

— SUB 减法指令    SUB{条件}{S} 目的寄存器,操作数1,操作数2

SUB R0,R1,R2     ; R0 = R1 - R2
SUB R0,R1,#256    ; R0 = R1 - 256
SUB R0,R2,R3,LSL#1    ; R0 = R2 - (R3 << 1)

— SBC 带借位减法指令   SBC{条件}{S} 目的寄存器,操作数1,操作数2

SUBS R0,R1,R2    ; R0 = R1 - R2 - !C,并根据结果设置CPSR 的进位标志位

— RSB 逆向减法指令   RSC{条件}{S} 目的寄存器,操作数1,操作数2

RSB R0,R1,R2     ; R0 = R2 – R1
RSB R0,R1,#256    ; R0 = 256 – R1
RSB R0,R2,R3,LSL#1    ; R0 = (R3 << 1) - R2

— RSC 带借位的逆向减法指令 RSC{条件}{S} 目的寄存器,操作数1,操作数2

RSC R0,R1,R2     ; R0 = R2 – R1 - !C

— AND 逻辑与指令   AND{条件}{S} 目的寄存器,操作数1,操作数2

AND R0,R0,#3    ; 该指令保持R0 的0、1 位,其余位清零。

— ORR 逻辑或指令   ORR{条件}{S} 目的寄存器,操作数1,操作数2

ORR R0,R0,#3    ; 该指令设置R0 的0、1 位,其余位保持不变

— EOR 逻辑异或指令   EOR{条件}{S} 目的寄存器,操作数1,操作数2

EOR R0,R0,#3    ; 该指令反转R0 的0、1 位,其余位保持不变。

— BIC 位清除指令   BIC{条件}{S} 目的寄存器,操作数1,操作数2

BIC R0,R0,#%1011    ; 该指令清除 R0 中的位 0、1、和 3,其余的位保持不变。


3、乘法指令与乘加指令

ARM 微处理器支持的乘法指令与乘加指令共有6 条,可分为运算结果为32 位和运算结果为64位两类,与前面的数据处理指令不同,指令中的所有操作数、目的寄存器必须为通用寄存器,不能对操作数使用立即数或被移位的寄存器,同时,目的寄存器和操作数1 必须是不同的寄存器。


乘法指令与乘加指令共有以下6 条:

— MUL 32 位乘法指令   MUL{条件}{S} 目的寄存器,操作数1,操作数2

MUL R0,R1,R2     ;R0 = R1 × R2
MULS R0,R1,R2    ;R0 = R1 × R2,同时设置CPSR 中的相关条件标志位

— MLA 32 位乘加指令   MLA{条件}{S} 目的寄存器,操作数1,操作数2,操作数3

MLA R0,R1,R2,R3    ;R0 = R1 × R2 + R3
MLAS R0,R1,R2,R3    ;R0 = R1 × R2 + R3,同时设置CPSR 中的相关条件标志位

— SMULL 64 位有符号数乘法指令 SMULL{条件}{S} 目的寄存器Low,目的寄存器低High,操作数1,操作数2

SMULL R0,R1,R2,R3    ;R0 = (R2 × R3)的低32 位
     ;R1 = (R2 × R3)的高32 位

— SMLAL 64 位有符号数乘加指令 SMLAL{条件}{S} 目的寄存器Low,目的寄存器低High,操作数1,操作数2
SMLAL R0,R1,R2,R3    ;R0 = (R2 × R3)的低32 位 + R0
     ;R1 = (R2 × R3)的高32 位 + R1

— UMULL 64 位无符号数乘法指令 UMULL{条件}{S} 目的寄存器Low,目的寄存器低High,操作数1,操作数2

UMULL R0,R1,R2,R3    ;R0 = (R2 × R3)的低32 位
     ;R1 = (R2 × R3)的高32 位

— UMLAL 64 位无符号数乘加指令 UMLAL{条件}{S} 目的寄存器Low,目的寄存器低High,操作数1,操作数2

UMLAL R0,R1,R2,R3   ;R0 = (R2 × R3)的低32 位 + R0
     ;R1 = (R2 × R3)的高32 位 + R1

4、程序状态寄存器访问指令

ARM 微处理器支持程序状态寄存器访问指令,用于在程序状态寄存器和通用寄存器之间传送数据,程序状态寄存器访问指令包括以下两条:

— MRS 程序状态寄存器到通用寄存器的数据传送指令    MRS{条件} 通用寄存器,程序状态寄存器(CPSR 或SPSR)

MRS R0,CPSR ;传送CPSR 的内容到R0
MRS R0,SPSR ;传送SPSR 的内容到R0

— MSR 通用寄存器到程序状态寄存器的数据传送指令    MSR{条件} 程序状态寄存器(CPSR 或SPSR)_<域>,操作数

MSR CPSR,R0 ;传送R0 的内容到CPSR
MSR SPSR,R0 ;传送R0 的内容到SPSR
MSR CPSR_c,R0 ;传送R0 的内容到SPSR,但仅仅修改CPSR 中的控制位域


5、加载/存储指令

ARM 微处理器支持加载/存储指令用于在寄存器和存储器之间传送数据,加载指令用于将存储器中的数据传送到寄存器,存储指令则完成相反的操作。常用的加载存储指令如下:

— LDR 字数据加载指令   LDR{条件} 目的寄存器,<存储器地址>

LDR R0,[R1]     ;将存储器地址为R1 的字数据读入寄存器R0。
LDR R0,[R1,R2]    ;将存储器地址为R1+R2 的字数据读入寄存器R0。
LDR R0,[R1,#8]    ;将存储器地址为R1+8 的字数据读入寄存器R0。
LDR R0,[R1,R2] !    ;将存储器地址为R1+R2 的字数据读入寄存器R0,并将新地址R1+R2 写入R1。
LDR R0,[R1,#8] !    ;将存储器地址为R1+8 的字数据读入寄存器R0,并将新地址R1+8 写入R1。
LDR R0,[R1],R2    ;将存储器地址为R1 的字数据读入寄存器R0,并将新地址R1+R2 写入R1。
LDR R0,[R1,R2,LSL#2]! ;将存储器地址为R1+R2×4 的字数据读入寄存器R0,并将新地址R1+R2×4 写入R1。
LDR R0,[R1],R2,LSL#2 ;将存储器地址为R1 的字数据读入寄存器R0,并将新地址R1+R2×4 写入R1。

— LDRB 字节数据加载指令 LDR{条件}B 目的寄存器,<存储器地址>

LDRB R0,[R1]     ;将存储器地址为R1 的字节数据读入寄存器R0,并将R0 的高24 位清零。
LDRB R0,[R1,#8]    ;将存储器地址为R1+8 的字节数据读入寄存器R0,并将R0 的高24 位清零。

— LDRH 半字数据加载指令 LDR{条件}H 目的寄存器,<存储器地址>

LDRH R0,[R1]     ;将存储器地址为R1 的半字数据读入寄存器R0,并将R0 的高16 位清零。
LDRH R0,[R1,#8]    ;将存储器地址为R1+8 的半字数据读入寄存器R0,并将R0 的高16 位清零。
LDRH R0,[R1,R2]    ;将存储器地址为R1+R2 的半字数据读入寄存器R0,并将R0 的高16 位清零。

— STR 字数据存储指令   STR{条件} 源寄存器,<存储器地址>

STR R0,[R1],#8    ;将R0 中的字数据写入以R1 为地址的存储器中,并将新地址R1+8 写入R1。
STR R0,[R1,#8]    ;将R0 中的字数据写入以R1+8 为地址的存储器中。

— STRB 字节数据存储指令 STR{条件}B 源寄存器,<存储器地址>

STRB R0,[R1]     ;将寄存器R0 中的字节数据写入以R1 为地址的存储器中。
STRB R0,[R1,#8]    ;将寄存器R0 中的字节数据写入以R1+8 为地址的存储器中。

— STRH 半字数据存储指令 STR{条件}H 源寄存器,<存储器地址>

STRH R0,[R1]     ;将寄存器R0 中的半字数据写入以R1 为地址的存储器中。
STRH R0,[R1,#8]    ;将寄存器R0 中的半字数据写入以R1+8 为地址的存储器中。


6、批量数据加载/存储指令


ARM 微处理器所支持批量数据加载/存储指令可以一次在一片连续的存储器单元和多个寄存器之间传送数据,批量加载指令用于将一片连续的存储器中的数据传送到多个寄存器,批量数据存储指令则完成相反的操作。常用的加载存储指令如下:

— LDM 批量数据加载指令
— STM 批量数据存储指令

LDM(或STM) 指令
LDM(或STM) 指令的格式为:
LDM(或STM) {条件}{类型} 基址寄存器{!},寄存器列表{∧}
LDM(或STM) 指令用于从由基址寄存器所指示的一片连续存储器到寄存器列表所指示的多个寄存器之间传送数据,该指令的常见用途是将多个寄存器的内容入栈或出栈。其中,{类型}为以下几种情况:

IA 每次传送后地址加1;
IB 每次传送前地址加1;
DA 每次传送后地址减1;
DB 每次传送前地址减1;
FD 满递减堆栈;
ED 空递减堆栈;
FA 满递增堆栈;
EA 空递增堆栈;

{!}为可选后缀,若选用该后缀,则当数据传送完毕之后,将最后的地址写入基址寄存器,否则基址寄存器的内容不改变。


基址寄存器不允许为R15,寄存器列表可以为R0~R15 的任意组合。

{∧}为可选后缀,当指令为LDM 且寄存器列表中包含R15,选用该后缀时表示:除了正常的数据传送之外,还将SPSR 复制到CPSR。同时,该后缀还表示传入或传出的是用户模式下的寄存器,而不是当前模式下的寄存器。

STMFD R13!,{R0,R4-R12,LR} ;将寄存器列表中的寄存器(R0,R4 到R12,LR)存入堆栈。
LDMFD R13!,{R0,R4-R12,PC} ;将堆栈内容恢复到寄存器(R0,R4 到R12,LR)。

[1] [2]
关键字:ARM  指令集 引用地址:搞定ARM指令集(二)

上一篇:搞定ARM指令集(一) --- 数据存储装载指令
下一篇:u-boot2011.12在mini2440上的移植1

推荐阅读最新更新时间:2024-11-17 11:44

基于μC/OS—II操作系统的数据采集控制系统
0 引言     随着计算机技术、电子技术和控制技术的发展,智能化、自动化、精确化的灌溉和施肥技术正逐渐取代传统的灌溉方式。在施肥过程中,需要在线检测肥料溶液的酸碱度和电导率以及灌溉压力、管道流量等,然后根据这些参数来控制电磁阀和水泵的运行达到自动灌溉施肥的目的。目前,常用的数据采集控制系统都是为某一实际应用而设计的,通用性和可扩展性差、数据存储能力不足,价格昂贵。因此基于周立功公司的ARM7核心板设计了一种通用的数据采集控制系统,并且已经应用到自动灌溉施肥系统中,能够满足稳定性,实时性以及大容量的数据存储的要求。该数据采集控制系统采用模块化设计,可以很方便的扩展和剪裁模块,同时只要对软件进行少量修改就可以方便的移植到其它应用
[嵌入式]
ARM CEO:ARM被英伟达收购要好于独立上市
7月5日消息,据国外媒体报道,近日,芯片设计公司ARM首席执行官(CEO)西蒙•西格斯(Simon Segars)表示,该公司被英伟达收购要好于独立上市。    西格斯表示:“与英伟达合并将给我们带来所需的规模、资源和灵活性,从而使未来的机会最大化。”    2020年9月份,软银集团和英伟达宣布,双方已达成确定性协议。根据协议,软银将把ARM出售给英伟达,交易价值为400亿美元。    对于这笔交易,ARM联合创始人赫尔曼•豪瑟(Hermann Hauser)在去年9月中旬表示,这是一场灾难,将摧毁ARM的商业模式,应该予以阻止。    此外,这笔交易还遭到包括英特尔、高通等多家芯片供应商以及特斯拉在内的硅谷多家科技巨头的反对。
[半导体设计/制造]
ARM单片机入门-推荐
推荐书籍: Keil Cx51 V7.0单..用实践 深入浅出ARM7 ARM嵌入式系统基础教程 嵌入式Linux应用开发..手册 Windows CE嵌入式系统 Windows CE 嵌入式高级编程及其实例详解 ARM入门最好的文章 一 首先说说ARM的发展 可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。 广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。 客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。 DSP因为数字处理与通信领域的空前发展而火暴,小到MP3 射象头,大到我们**里的控
[单片机]
ARM汇编:加载和存储指令集(六大类)
ARM微处理器支持加载/存储指令用于在寄存器和存储器之间传送数据,加载指令用于将存储器中的数据传送到寄存器,存储指令则完成相反的操作。常用的加载存储指令如下: — LDR 字数据加载指令 — LDRB 字节数据加载指令 — LDRH 半字数据加载指令 — STR 字数据存储指令 — STRB 字节数据存储指令 — STRH 半字数据存储指令 1、LDR指令 LDR指令的格式为: LDR{条件} 目的寄存器, 存储器地址 LDR指令用于从存储器中将一个32位的字数据传送到目的寄存器中。该指令通常用于从存储器中读取32位的字数据到通用寄存器,然后对数据进行处理。当程序计数器PC作为目的寄
[单片机]
Google Glass拟改用英特尔芯片 恐动摇ARM移动霸主地位
Google计划在2015年以英特尔(Intel)芯片取代Google Glass上的安谋(ARM)芯片,可望使英特尔成为穿戴式装置主力芯片厂商,更显示出英特尔新芯片效能已逐渐赶上安谋。若其他移动装置厂商效法Google,恐憾动安谋目前在移动装置市场的独霸地位。 据The Motley Fool报导,华尔街日报(WSJ)指出,Google Glass将在2015年以英特尔芯片取代原先经安谋授权的德州仪器(TI)处理器,为市场投下震撼弹。 过去由于业界普遍认为ARM芯片成本较低且更省电,英特尔迟迟无法在移动装置市场取得进展。虽然英特尔持续改良Atom芯片,但苹果(Apple)、三星电子(Samsung Electronics)、
[半导体设计/制造]
基于ARM11+CPLD的小型无人机飞行控制器设计
1 引言 小型无人机具有重量轻、使用费用低、机动灵活等特点,在军用、民用领域有着广泛的应用。在民用领域,无人机可搭载不同任务载荷完成诸如国土资源保护、城市规划、电视台航拍、大气监测、交通监察、边境及海岸线巡逻、灾情监视等任务;在军事上,可以执行空中侦察、充当靶机、导弹攻击、充当诱饵、战场损伤评估和电子站等任务,已成为许多国家军队的主要武器装备。 飞行控制器承担着无人机的姿态控制、导航控制、与地面控制站的通信、任务载荷控制等任务,是小型无人机的核心。评价小型无人机的飞行控制器的优劣的指标之一是其控制的精度。提高飞行控制器的控制精度的方法有:提高获取飞机状态信息的精度;采用先进的控制算法提高控制性能 ;提高控制指令输出的实时性等。而要
[单片机]
基于<font color='red'>ARM</font>11+CPLD的小型无人机飞行控制器设计
三星宣布与 Arm 合作,以 GAA 代工技术优化下一代 Cortex-X CPU 内核
2 月 20 日消息,三星电子旗下芯片代工部门宣布与 Arm 合作,共同开发、优化下一代 Cortex-X 核心。据介绍,此次合作涉及通过使用 Arm 最新 Cortex-X 设计和三星 GAA 工艺,旨在提升 CPU 性能和能效表现。 也就是说,Arm 下一代 Cortex-X 系列 CPU 架构将针对三星电子的 Gate-All-Around(GAA)芯片制造技术进行优化,这意味着基于下一代 Cortex-X 系列架构的 CPU 在使用三星 2nm 和 3nm GAA 工艺制造时可获得进一步优化,从而提供更高的性能和更低的功耗。 IT之家查询相关资料获悉,GAA 是目前业界公认的下一代技术,相比 FinFET 进一步改进了半导
[嵌入式]
基于ARM与MEMS器件的微惯性测量装置设计
   摘要 开发一种生物运动微惯性测量装置,以基于ARM7的LPC2129为核心处理单元,采用MEMS陀螺和MEMS加速度计为测量传感器。该装置实现了对SPC-III机器鱼尾鳍拍动参数的精确测量,为活体鱼尾鳍拍动参数测量实验打下了基础。    关键词 微惯性测量 LPC2129 MEMS器件 尾鳍拍动   在仿生推进机理的研究中,精确测量鱼类尾鳍拍动参数对于鱼类仿生推进机理研究及工程应用具有重要的意义;然而,目前研究者大多采用分析高速摄像机拍摄的图像获得参数的观测方法。这种方法受到环境与设备的限制,结果精确度较差。本设计是一种基于MEMS器件的生物运动微惯性测量装置。利用该装置实现了对SPC-III机器鱼尾鳍拍动参数的精确测量
[工业控制]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved