Porto Alegre, maio de 2012 1. Introduo Quase todos os equipamentos que conhecemos atualmente possuem um dispositivo capaz de realizar clculos e os procedimentos necessrios para que o sistema funcione adequadamente. Este dispositivo, conhecido como microprocessador, est presente em inmeros eletrodomsticos, como, microondas, televises, DVD players, geladeiras, entre outros; e eletrnicos, como, celulares, smartphones, GPSs, etc. Tudo gira em torno destes, muitas vezes, pequenos dispositivos capazes de realizar milhes/bilhes de clculos por segundo. Diante disso, podemos introduzir o conceito de microcomputador, que nada mais do que um microprocessador somado memria e dispositivos I/O. Definimos ainda, o conceito de microcontrolador (a ser abordado neste documento), que um microcomputador em um nico chip. Existem inmeros microcontroladores, como o 8051, a famlia de microcontroladores PICs, e MSP430, entre outros. Na prxima seo, abordarei as principais caractersticas da famlia de microcontroladores MSP430X2, descrevendo instrues, modos de endereamentos entre outros aspectos relevantes acerca deles. Na seo 3, ser feita uma breve comparao da famlia MSP430 e do microcontrolador 8051. Por fim, feita uma concluso, destacando os pontos principais abordados no documento.
2. A Famlia MSP430X2
2.1. Aplicaes da Famlia Os dispositivos da Famlia MSP430X2, da Texas Instruments, foram desenvolvidos tendo como principal foco o baixo consumo de energia. Devido a este fator e s peculiaridades de cada modelo, estes dispositivos so altamente usados em equipamentos mdicos portteis, comunicaes wireless, captao de energia, dentre outros. 2.2 Padro nos nomes Existem diversos modelos de microcontroladores da famlia MSP430X2, um deles o MSP430F2618ATZQWT-EP. Reparou no quantidade de letras e nmeros que formam este modelo? Pois bem, veremos abaixo um figura que ilustra o que significa cada um desses nmeros e letras que formam o modelo. Como trataremos de microcontroladores da famlia 2, podemos ver que os dispositivos trabalham com frequncias de at16MHz.
Figura 1. Padro para construo do nome do modelo.
2.3. Especificaes tcnicas do MSP430X2 O MSP430 incorpora uma arquitetura RISC 16bits com 27 instrues (veremos mais tarde que possvel emular outras instrues) e 7 modos de endereamentos, do tipo Von-Neumann e possuem dois barramentos para comunicao, um que cuida dos endereos na memria (Memory Address Bus MAB) e outro barramento para os dados (Memory Data Bus MDB), ver figura 2. A memria do dispositivo tem seu espao compartilhado entre registradores SFRs (special function registers), perifricos, tabela de interrupes, RAM, e Flash, conforme ilustra a figura 3. Vemos ainda que cada um dos segmentos citados acima possuem um endereo inicial e final bem definidos, por exemplo, os SFRs vo do endereo 0h at 0Fh. interessante
Figura 2. Arquitetura do MSP430X2
destacar que a memria enderea 8 bits, isso quer dizer, que para armazenarmos um valor cujo tamanho 16 bits, ocuparemos 2 endereos de memria. Acesso a cdigos, por exemplo, so feitos apenas em endereos pares. Se um dado for de 8 bits, ser endereado em apenas 1 espao da memria, se for 2 bits, ser utilizado 2 espaos da memria. Com a limitao imposta pelo MAB de 16 bits, no era possvel enderear mais do que 64KB (128KB para dispositivos com flash) de memria. A Texas resolveu ento fazer uma mudana no MAB, expandindo para 20bits (a figura 2 ainda consta como 16bits, porm so 20), com isso, foi possvel enderear memrias de at 1MB.
Figura 3. Memria A CPU possui 16 registradores. Os registradores R0, R1, R2 e R3 possuem funes especficas que sero detalhadas posteriormente. R4 at R15 so os registradores de propsitos gerais. PC (Program Counter R0) aponta para prxima instruo a ser executada. Como cada instruo utiliza um nmero par de bytes, o primeiro bit (posio 0) do registrador est sempre em 0. SP (Stack Pointer R1) usado para armazenar o endereo de retorno de chamadas de subrotinas e interrupes. Assim como o PC, o primeiro bit (posio 0) do registrador est sempre em 0. R2 (Status register) contm um conjunto de flags (ver figura 4), como, C (Carry Bit), Z (Zero Bit), N (Negative bit), V (Overflow Bit), GIE (General Interrupt enable quando setado, habilita Maskable Interupts ainda a ser definido), SCG1 (Quando setado, desligada SMCLK), SCG0 (Quando setado, desliga DCO, se este no for usado para MCLK e SMCLK), dentre outros.
Figura 4. Registrador R2 (Status Register) Gerador de Constantes (R2 e R3) Seis constantes mais utilizadas so geradas automaticamente durante toda operao da CPU por um gerador de constantes, que composto por R2 e R3. Estas constantes so geradas de acordo com o endereamento do registrador fonte e podem ser vistas abaixo:
Figura 5. Constant Generator (R2 e R3) Mas porque da Texas disponibilizar estas constantes? O motivo simples e muitos processadores RISC utilizam este mecanismo. Estas constantes geradas nos permitem emular 24 novas instrues, expandindo de 27 para 51 instrues. Alguns exemplos de emulated instruction so: CLR DST (que na verdade MOV R3, DST) e INC DST. Registradores de propsitos Gerais (R4 a R15) estes registradores podem ser usados para qualquer propsito a ser definido pelo programador, como armazenamento de constantes, valores, ponteiros, etc.
Figura 6. Conjunto de Registradores Como mencionei anteriormente, a famlia MSP430X2 possui 7 modos de endereamento. So eles: - Modo registrador : Rn Os contedos dos registradores so os operandos para a instruo. - Modo indexado: X(Rn) (Rn + X) aponta para o operando. X armazendo na prxima palavra - Modo simblico: ADDR (PC + X) aponta para o operando. - Modo absoluto: &ADDR A palavra seguinte instruo contm o endereo absoluto. - Modo registrador indireto: @Rn Rn usado como um ponteiro para o operando - Modo indireto autoincrementado: @Rn+ Rn usado como ponteiro para o operando e depois incrementado por 1 em instrues .B e por 2 para instrues .W. - Modo Imediato: #N A palavra seguinte instruo contem a constante N imediata. O modo indireto autoincrementado @PC+ utilizado.
O set de instrues pode ser dividido em trs formatos de instrues diferentes: com dois operandos, com um operando, e instrues de saltos. Para todas as instrues e formatos, as siglas para os campos so as seguintes: S-reg: o registrador usado como fonte (source); D-reg: o registrador usado como destino (destination); As: bits responsveis pelo tipo de endereamento usado na fonte; Ad: bits responsveis pelo tipo de endereamento usado no destino; B/W: Se a operao de Byte (bit em 1) ou Word (bit em 0);
Formato de instrues com 2 Operandos, como, MOV, ADD, entre outras.
Formato de instrues com 1 operando, como CALL, RETI, PUSH, entre outras:
Formato de instrues de salto, como, JMP, JNZ, JZ, etc:
As instrues de um e dois operando podem ser instrues de bytes ou palavras e definido utilizando extenses .B ou .W. Instrues de bytes so usadas para acessar dados e perifricos de bytes e instrues de palavras so utilizadas para acessar dados e perifricos de palavras. Dada a grande quantidade de instrues do microprocessador (ver figura 9), realizar um detalhamento de cada uma delas desnecessrio, j que elas so muito semelhantes s instrues disponveis em outros microprocessadores como o 8051, entre outros. Basic Clock Module + o sistema de clock incluso famlia de microcontroladores. Ele formado por trs sinais de clocks internos, que possibilita um consumo de baixa potncia durante a utilizao (podendo chegar a at 16MHz, no caso da famlia 2). Os clocks disponveis so: ACLK: Clock auxiliar. Pode ser dividido por 1, 2, 4 ou 8 e selecionvel para mdulos de perifricos individuais. MCLK: Clock mestre. Pode ser dividido por 1, 2, 4 ou 8 e usado pela CPU e pelo sistema. SMCLK: Clock sub-principal (sub-main). Possui as mesmas caractersticas do ACLK. Dependendo de qual clock escolhido, o consumo de energia e o desempenho podem variar, se quisermos baixo consumo, usamos clocks menos velozes, se quisermos desempenho, usamos clocks mais velozes e o consumo aumenta. Interrupes As interrupes geradas pelo microprocessador podem ser de trs tipos: reset de sistemas (Utilizada junto ao WatchDog Timer), non-maskable (no habilitada pelo bit GIE de R2, mas por bits individuais), e maskable (habilitada pelo bit GIE de R2).
Figura 10. Conjunto das 51 instrues (27 originais e 24 emuladas)
Modos de operao Conforme dito anteriormente, a familia MSP430 projetada para aplicaes de baixo consumo de energia e esse controle pode ser feito atravs do uso de diferentes modos de operao. Para selecionar qual modo utilizar, devemos alterar alguns dos bits mostrados na figura 4 (Registrador R2), conforme consta na tabela a seguir, onde ainda mostrado o modo de operao e qual os clocks ativos naquele modo:
Figura 11. Modos de Operao
Essa possibilidade de modificar o modo de operao para os clocks um mecanismo importante para o baixo consumo e deve ser considerado em aplicaes deste tipo. Watchdog Timer um mecanismo de proteo que reseta o processador caso ocorra um erro no software e que est presente na famlia MSP430X2. Ele no permite que o microprocessador fique por tempo em um estado de inconsistncia. Timers A famlia MSP430X2 possui dois timers de 16bits. Esses timers integrados aos microcontroladores podem operar em trs diferentes modos. No modo continuous, o registrador de contagem continuamente incrementado por um dos clock contando de 0 at 0xFFFF. No modo up, a contagem vai de 0 at o valor de um dos registradores de comparao. No modo up/down, a contagem vai de 0 at o valor de um dos registradores de comparao e volta at 0. Outros perifricos integrados famlia Existem inmeros outros perifricos integrados a famlia MSP430X2. Realizar um detalhamento de todos eles estenderia o tamanho deste documento, por isso, citarei apenas quais so outros perifricos e dispositivos integrados ao microprocessador. So eles: interface para comunicao serial (modos UART, I2C, SPI), ADC (Conversor analgico-digital), DAC (Conversor digital-analgico), amplificador operacional, comparador de tenso analgico, controlador DMA, entre outros.
3. Comparando com o 8051 Diante do que foi apresentado na seo 2, podemos realizar uma sucinta comparao entre o microcontrolador 8051 e a famlia MSP430X2. Para isso utilizaremos uma tabela que apresentar algumas das caractersticas encontradas ou ausentes nos dois microcontroladores. Caractersticas 8051 MSP430X2 Processador de X bits 8 16 Frequncia Mxima Clock 12MHz 16MHz RISC ou CISC CISC RISC Modos de Endereamento 5 7 Von-Neumann ou Havard Havard Von-Neumann Nmero de Timers 2 2 WatchDog Timer Ausente Presente Barramento de Endereos 16 bits 20 bits Barramento de dados 8 bits 16 bits Mxima de Memria Suportada 128KB (RAM e ROM com 64KB cada) 1MB
Vemos atravs da tabela algumas semelhanas e diferenas entre os microcontroladores comparados. Vale salientar, novamente, que a famlia MSP430X2 utilizada amplamente em aplicaes com baixo consumo de potncia j que possuem dispositivos que auxiliam e desempenham um timo papel para minimizar o consumo de energia.
4. Concluso Podemos observar atravs do que foi relatado neste documento, que a famlia de microcontroladores MSP430X2 muito poderosa em termos de quantidade de perifricos e funcionalidades. Seu foco principal o baixo consumo de energia que pode ser obtido modificando seu modo de operao (ver Modos de operao), mostrando que este dispositivo pode ser amplamente utilizado em situaes de baixo consumo.