2016 第2章 msp430微控制器体系结构_47200263_第1页
2016 第2章 msp430微控制器体系结构_47200263_第2页
2016 第2章 msp430微控制器体系结构_47200263_第3页
2016 第2章 msp430微控制器体系结构_47200263_第4页
2016 第2章 msp430微控制器体系结构_47200263_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 MSP430微控制器体系结构第1节第2节第3节第4节MSP430 MCU 概述MSP430 MCU的基本结构(CPU, ROM/RAM, GPIO)MSP430 CPU 的寻址方式MSP430 CPU 的指令系统本章课程目标:1. 掌握MSP430的基本结构(CPU, ROM/RAM, GPIO)2. 掌握常用的MSP430的寻址方式和指令系统3. 熟悉EW430开发环境的使用方法(通过实验)第1节MSP430 MCU 概述MSP430单片机简介MSP430系列单片机是美国德州仪器公司Ti 的16位超低功耗的混合信号处理器(Mixed Signal Processor) ,针对实际应用

2、需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供实际应用的“单片”解决方案。MSP430单片机各系列无段式LCD控制器系列MSP430x 3xx 、4xx、6xx带段式LCD控制器系列 MSP430 x 1xx 、2xx、5xx注用户手册详细描述该系列MCU内部模块功能、使用方法等如 MSP430x2xx Family User Guider.pdfMCU数据手册详细描述该MCU内部的配置、引脚功能等如MSP430G2x53.pdfMSP430 MCU命名规则MSP430 F 1 4 9IPM封装类型双列直插各种系列PDIP最高8MHz1xxDWSOIC20最高16MHzQFP

3、64(1mm间距)2xxPM3xxOTP最高16MHzQFP64(0.5mm间距)PJM4xx带LCD控制最高25MHz5xx温度范围最高25MHz 带LCD控制6xx-40+85I-40+105T存储器ROM类型CROMPOTPFFLASHFRFRAMGFLASHValue line器件配置I/O 端口数串口类型/个数ADC类型/ 个数DAC 类型/ 个数段式LCD控制器硬件乘法器定时器类型/个数ROM大小RAM大小几款MSP430MCU配置比较型号MSP430F135MSP430F149MSP430F169Flash ROM16KB60KB60KBSRAM512B2KB2KBI/O引脚数4

4、84848TimerA333TimerB377USART122ADC12有有有硬件乘法器MPY无有有DAC12无无有I2C无无有DMA无无有电源电压检测SVS无无有MSP430x13x功能结构图XIN XOUT AVcc Avss VREF+ VeREF+ VREF-/VeREF-P1 P2P3 P4P5 P6888888XT2INXT2OUTACLKSMCLK振荡器系统时钟Port 1/2带中断Port3/4Port5/6RAMFlashROMADC12DVccDVssMCLKMAB16-bit16位RSICCPURST/NMIJTAGMCB调试模块MDBMDB 16-bit8-bit4TM

5、STCK TDI/TCLK TDO/TDITimerB3TimerA3比较器AWDTPORUSART0总线控制MSP430x14x功能结构图XIN XOUT AVcc Avss VREF+ VeREF+ VREF-/VeREF-P1 P2P3 P4P5 P6888888XT2INXT2OUTACLKSMCLK振荡器系统时钟Port 1/2带中断Port3/4Port5/6RAMFlashROMADC12DVccDVssMCLKMAB16-bit16位RSICCPURST/NMIJTAGMCB调试模块总线MDBMDB 16-bit8-bit控制4TMSTCK TDI/TCLK TDO/TDI硬件

6、乘法器TimerB7TimerA3比较器AWDTPORUSART0USART1MSP430x16x功能结构图XIN XOUT AVcc Avss VREF+ VeREF+ VREF-/VeREF-P1 P2P3 P4P5 P6888888XT2INXT2OUTACLKSMCLK振荡器系统时钟Port 1/2带中断Port3/4Port5/6RAMFlashROMADC12DAC12DVccDVssMCLKMAB16-bit16位RSICCPURST/NMIJTAGMCB调试模块总线MDBMDB 16-bit8-bit控制4TMSTCK TDI/TCLK TDO/TDI硬件TimerB7Time

7、rA3比较器ADMAWDTPORSVSUSART0USART1乘法器课后练习:阅读msp430x15x-16x.pdf 第5页,比较msp430x15x和MSP430x16x 内部模块有何不同?MSP430G2x13功能结构图P1(XIN/P2.6XOUT/P2.7)P2P3DVccDVssRST/NMITEST仅28引脚、32引脚的MSP430G2x13有端口3模块20引脚的MSP430G2x13无端口3模块888ACLKPort 1Port 2Port 3SMCLK带中断带中断MCLK16位MAB 16-bitRSICJTAGMCBCPU调模块试MDB 16-bit总MDB线8-bit控制

8、USCIA0 USCIB0WDT+Timer0 Timer1掉电比较器(UART(SPI2BPA3A3保护A+SPI)IIC)SBWRAM 512B256BFlash 16KB8KB4KB2KB1KB振荡器系统时钟MSP430G2x53功能结构图P1(XIN/P2.6XOUT/P2.7)P2P3DVccDVssRST/NMITEST仅28引脚、32引脚的MSP430G2x53有端口3模块20引脚的MSP430G2x53无端口3模块888ACLKPort 1Port 2Port 3SMCLK带中断带中断MCLK16位MAB 16-bitRSICJTAGMCBCPU调模块试MDB 16-bit总M

9、DB线8-bit控制USCIA0 USCIB0WDT+Timer0 Timer1掉电比较器(UART(SPI2BPA3A3保护A+SPI)IIC)SBWADC10RAM 512B256BFlash 16KB8KB4KB2KB1KB振荡器系统时钟MSP430的体系结构与特点16-bit RISC CPU;丰富的peripherals模块(外设,I/O接口); 灵活的时钟系统,支持各种低功耗运行方式;各模块通过内部三大总线(AB,DB,CB)互连;I/O接口与存储器采用统一编址方式; 27条核心指令,7种寻址方式;CPU中的寄存器均可以进行读和写操作(单周期);无需寄存器中介的存储器之间的数据传送

10、; 内含常数发生器,可缩短代码长度;内嵌JTAG调试模块,方便开发调试;RISC(Reduced Instruction Set Computer), 精简指令集计算机CISC(Complex Instruction Set Computer), 复杂指令集计算机第2节MSP430 MCU的基本结构(CPU, ROM/RAM, GPIO)1. MSP430 MCU 的CPU16-bit RISC architecture 16个16位的寄存器27条核心指令7种寻址方式16-bit地址总线MSP430 CPU原理图AB16-bit数据总线DBCB控制总线通用寄存器指令指针寄存器堆栈指针寄存器常数

11、发生器运算ALU器状态SR寄/R存2 器指令译码与控制逻辑数据输入输出电路R2/R3SP/R1PC/R0R4R5R15地址输出电路MSP430 CPU 的寄存器MSP430 CPU的编程结构仅从编程的角度看待CPU的组成,主要是指CPU中的寄存器及其使用方法,而不关心其硬件实现的具体细节150R15General PurposeR14General PurposeR5General PurposeR4General PurposeR3/CG2 Constant GeneratorR2/SR/CG1 StatusR1/SP Stack Point0R0/PC Program Counter0汇编

12、语言直接与CPU中的寄存器打交道MSP430汇编语言程序:因此在汇编语言程序中要频繁使用寄存器例:右图的MSP430 汇编语言程序使用了R6,R7,R8,R2(SR) 等寄存器使用SR寄存器Start: MOV#100 , R6 MOV#0 , R8 MOV#2000H , R7Again:ADDR7 , R8 INCR7DECR6JNZagainMSP430 的 PC、SP 和SR 寄存器取完指令后CPU根据该指令的字节数自动增量PC,因此PC的值指向下一条要执行的指令。PC总是指向偶地址(bit0=0)堆栈用于保存子程序的返回地址等重要信息。堆栈按先进后出原则进行操作,堆栈指针SP 指向堆

13、栈的栈顶(TOP)。SP总是指向偶地址(bit0=0),并且必须由用户初始化。状态寄存器SR用于指示ALU的运算结果状态以及CPU、时钟和中断控制等。SR只能用于寄存器寻址方式的.W指令中。150若用于其它指令中,则实际上用的是常数发生器CG1,而不是SR。(SR与CG1具有相同的寄存器地址,通过寻址方式来区分)通用寄存器R15General PurposeR5General PurposeR4General PurposeR3Constant Generator2R2SR Status Register/CG1R1SP Stack Pointer0R0PC Program Counter0在

14、IAR EW430下用View/ Registers 查看寄存器的内容在IAR下用修改寄存器的内容 程序计数器PC( Program Counter)CPU到存储器取指令时, PC给出指令所在存储器单元的首址,即: 取指令的地址由程序计数器PC决定取完一条指令,PC将自动加上该指令的长度, 指向下一条指令(自动本能)在EW430查看程序执行和PC的变化View/registers/CPU Registers复位本能:复位(上电、按键、看门狗等)后,MCU自动从一固定(或预先设定)的地址(复位向量)开始取指并执行程序。在EW430查看程序执行和PC的变化View/registers/CPU Re

15、gisters操作F10, 单步执行在EW430查看程序执行和PC的变化View/registers/CPU Registers操作F10, 单步执行MSP430 CPU的状态寄存器SR/R2159876543210rw-0方式位(Mode Bits): SCG1SCG0 OSCOFF CPUOFFGIE (General Interrupt enable)用于控制时钟、CPU 和中断状态位(Status Bits): V (Overflow Flag)N (Negative Flag) Z (Zero Flag)C (Carry Flag)记录指令运算结果的状态信息。常作为后续转移指令的控制

16、条件,又称为条件码reservedVSCG1SCG0OSC OFFCPU OFFGIENZC加法运算对状态标志的影响举例159876543210被加数8位加数8位被加数1 0 1 1 0 1 0 11 0 0 0 1 1 1 1+进位1 0 1 1 1 1 1 1和8位0 1 0 0 0 1 0 0加数和最高位D7位产生进位:相加的结果为44H, 不为0: 结果为正:结果有溢出:C=1Z=0 N=0V=1运运算 算器器SRreservedVSCG1SCG0OSC OFFCPU OFFGIENZC利用EW430查看标志位:View/registers/CPU Registers/SRMOV.B#

17、10110101B,R4ADD.B#10001111B,R4执行前的状态C=0, Z=0, N=0, V=0利用EW430查看标志位(续) :View/registers/CPU Registers/SRMOV.B#10110101B, R4ADD.B#10001111B,R4执行后的状态, C=1, Z=0, N=0, V=1常用状态标志C 和Z 的含义及其使用C:进位标志(Carry Flag)加法时,若最高位有进位则C1,否则C0 减法时,若最高位有借位则C0,否则C1(此处C为“被减数”+ “减数补码”时的进位位,以简化全加器的设计)例:CMP指令与C标志结合可判断两数的大小:CMPx

18、 , y; y-xJClseq;若 C=1(无借位) , xy 运行此指令lseq:; lseq处的指令Z:零标志(Zero Flag)若运算结果为 0 时,则Z1,否则Z0例:CMP指令与Z标志结合测试两个操作数是否相等:CMPx , y;y-xJNC great;若 C=0(有借位) , xy , 转great处运行JZequal;若 Z=1 , x=y , 转equal处运行;否则xy 运行此指令great:equal: 与TST指令结合用Z测试某位是0还是1:1xxx xxxxB1000 0000B0xxx xxxxB1000 0000B例:测试R5的D7 是0还是1?与与1000 0

19、000BZ=00000 0000BZ=1TSTR5 , 1000 0000B;两个操作数相“与”JZzero;若 Z=1 则R5的D7=0,转 zero处运行;否则R5的D7=1,运行此指令zero: ; zero处的指令2. MSP430 MCU 的存储器与I/O 组织 MSP430 采用冯诺依曼结构(也称普林斯顿体系结构): 程序存储器和数据存储器使用同一组地址和数据总线 I/O接口与存储器采用统一编址方式,总寻址空间64KBACLK外围外围外围SMCLK模块模块模块MCLK16MAB 16-bit位JTAGMCBRSIC调试CPU模块MDB 16-bitMDB8-bit4WDT外围外围外

20、围外围外围模块模块模块模块模块总线控制外围模块RAMFlash ROM振荡器MSP430的存储器与I/O 组织ABDBCB64K高低控制电路数据缓冲地址译码ROM程序和常数RAM变量与堆栈I/O SFR通用寄存器指令指针寄存器堆栈指针寄存器运算ALU器控制逻辑SR/R2状态寄存器指令译码器指令寄存器数据暂存器SP/R1R4R5R15PC/R0地址寄存器MSP430 64KB 字节可寻址空间的组织word/byte , read onlyword/byte , read onlyM0word/byte , read/writeword , read/writebyte , read/write

21、byte , read/write0FFFFh0FFE0h0FFDFhROM的最高地址都是0FFFFH, 起始地址随CU型号而不同interrupt vector table(32B)FLASH/ROMRAM起始地址都是200H, 末地址随MCU型号而不同;0200hRAM01FFh外围模块寄存器都在001FFH处0000h16-bit peripheral modules8-bit peripheral modulesSFRsMSP430F135/149 /169的存储器结构 不同型号MCU的存储器ROM和RAM容量不一样, ROM的最高地址都是0FFFFH, RAM起始地址都是0200H,

22、RAM的末地址= 该器件数据RAM 容量+ 0200H-1; 中断向量地址、外围模块地址、特殊功能寄存器地址范围相同MSP430F135MSP430F149MSP430F169ROM大小16KB60KB60KB中断向量地址32B, FFFFFFE0H代码存储器地址FFDFC000HFFDF1100HFFDF1100HRAM大小512B2KB2KBRAM地址03FF0200H09FF0200H09FF0200H16位外围模块地址01FF0100H8位外围模块地址00FF0010H特殊功能寄存器地址000F0000HMSP430G2xx3的存储器结构 不同型号MCU的存储器ROM和RAM容量不一样

23、, ROM的最高地址都是0FFFFH, RAM起始地址都是0200H,RAM的末地址= 该器件数据RAM 容量+ 0200H-1; 中断向量地址、外围模块地址、特殊功能寄存器地址范围相同MSP430G2153 G2113G2253 G2213G2353 G2313G2453 G2413G2553 G2513ROM容量1KB2KB4KB8KB16KB中断向量64B,0xFFFF0xFFC0代码存储器0xFFBF x0FC000xFFBF0xF8000xFFBF0xF0000xFFBF0xE0000xFFBF0xC000信息存储器256B, 0x10FF0x1000RAM容量256B256B256

24、B512B512B范围0x02FF0x02000x03FF020016位外围模块01FF0100H8位外围模块00FF0010H特殊功能寄存000F0000HMSP430 的存储格式(读/写模式)采用小端格式( Little Endian )高字节存储在高地址低字节存储在低地址byte可以在奇地址或偶地址word高字节只能在奇地址低字节只能在偶地址地址对齐对比大端格式( Big Endian )MSP430的存储器读/写模式采用小端模式(Little Endian)字操作必须从偶地址开始,否则实际存储结果与预想的不一样,在仿真执行过程中将报错0200h0201h0202h0203h预想结果例:

25、MOV#1234h,&0201h0200h0201h0202h0203h实际结果34h12h34H12H3. MSP430 MCUGeneral-purpose digital I/OGPIOMSP430 General-purpose digital I/O GPIO MSP430 具有丰富的端口资源,端口数随型号不同而不同, 最多可达8个8位端口。例:MSP430x11xx 有 2 个 端 口 P1P2 MSP430x12xx 有 3 个 端 口 P1P3 MSP430x13x/14x/15x/16x有6个端口P1P6MSP430G2xx有3个端口P1P3,其中20个引脚封装只有P1P2

26、目前 MSP430 MCU 的总线不对外开放,仅通过GPIO 的引脚对行输入/输出。通过操作GPIO的控制寄存器,可设置该GPIO的方向、功能等,且可进行位操作,即每位(引脚) 都可单独设置(思考:芯片外扩?) MSP430 操作GPIO的方法与操作存储器单元相同,只是两者的地址不同MSP430x14x/16x GPIOsP1P2P3P4P5P6ACLK SMCLKMCLKAB DB CBUSART0& USART1POR&COMP AADC12Timer A & Timer BWatchdogTimerCPURISCSRAMFlashI/O Port 1/216 I/OsI/O Port 1

27、/216 I/OsI/O Port 1/216 I/OsOSCSystem ClockP5P6P4P2引脚复用P3P1MSP430x14x/16x GPIO 的编程结构(不考虑中断功能)ABCBDBPxSEL : 功能选择寄存器。PxDIR : 方向选择寄存器。PxIN: 输入寄存器。PxOUT : 输出寄存器。0: I/O功能;0: 输入;0: 输入低电平;0: 输出低电平;1: 外设模块功能1: 输出1: 输入高电平1: 输出高电平x=16PxOUT数据缓冲PxIN输入输出电路PxDIRPxSEL地址译码控制电路CPUMSP430G2x53 GPIOsP1(XIN/P2.6XOUT/P2.

28、7)P2P3DVccDVssRST/NMITEST注:仅28和32引脚的MSP430G2x53有Port3,20引脚的无Port3888ACLKPort 1Port 2Port 3SMCLK带中断带中断MCLK16位MAB 16-bitRSICJTAGMCBCPU调试总模块MDB 16-bit线MDB8-bit控制USCIA0 USCIB0WDT+Timer0 Timer1掉电比较器(UART(SPI2BPA3A3保护A+SPI)IIC)SBWADC10RAM 512B256BFlash 16KB8KB4KB2KB1KB振荡器系统时钟20引脚双列直插式MSP430G2553DVCCP1.0/T

29、A0CLK/ACLK/A0/CA0 P1.1/TA0.0/UCA0RXD/UCA0SOMI/A1/CA1 P1.2/TA0.1/UCA0TXD/UCA0SIMO/A2/CA2 P1.3/ADC10CLK/CAOUT/VREF-/VEREF-/A3/CA3 P1.4/SMCLK/UCB0STE/UCA0CLK/VREF+/VEREF+/A4/CA4/TCK P1.5/TA0.0/UCB0CLK/UCA0STE/A5/CA5/TMSP2.0/TA1.0P2.1/TA1.1 P2.2/TA1.11234567891020191817161514131211DVSSXIN/P2.6/TA0.1 XOUT/P2.7 TEST/SBWTCK #RST/NMI/SBWTDIOP1.7/CAOUT/UCB0SIMO/UCB0SDA/A7/CA7/TDO/TDI P1.6/TA0.1/UCB0SOMI/UCB0SCL/A6/CA6/TDI/TCLK P2.5/TA1.2P2.4/TA1.2 P2.3/TA1.0Port1 , Port2参看 MSP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论