Apresentação do DSP TMS320F2812

Este post faz parte da série DSP TMS320F2812. Leia também os outros posts da série:

O TMS320F2812 é um dispositivo denominado controlador digital de sinais (do inglês, DSC - Digital Signal Controller). O DSC é como um microcontrolador, isto é, composto por uma unidade de processamento (microprocessador), memória e periféricos em um único chip (die). No entanto, o que difere o DSC do microcontrolador comum é justamente a unidade de processamento, nesse caso, denominada processador digital de sinais (do inglês, DSP - Digital Signal Processor). Tal unidade é caracterizada, principalmente, por apresentar unidades de hardware projetadas especialmente para realizar operações matemáticas com alto desempenho. Nesse sentido, o princípio de operação do DSP é fazer todo processamento necessário antes de obter uma nova informação.

 

 

Introdução

 

Pertencente à família C2000, o TMS320F2812 é dedicado para o controle de sinais digitais. Essa família é caracterizada pelo desempenho em aplicações de controle em tempo real. Internamente, o TMS320F2812 pode ser dividido em 4 sistemas:

  • Barramentos internos/externos;
  • Unidade central de processamento;
  • Memória;
  • Periféricos.

 

Esses sistemas são ilustrados na Figura 1.

 

Blocos do TMS320F2812.
Figura 1: Blocos do TMS320F2812.

 

A Texas define a arquitetura do TMS320F2812 como sendo uma modificação da arquitetura de Harvard. Primeiro, a arquitetura de Harvard é caracterizada por possuir dois sistemas de barramentos independentes, sendo um dedicado para acessar a memória de programa e outro para memória de dados. Segundo, a modificação desse modelo de arquitetura realizada pela Texas permite que operandos sejam buscados na memória de programa. Cabe ressaltar que o DSP pode acessar dois operandos (um em cada memória) em apenas um ciclo de clock.

 

Internamente, os barramentos e registradores são de 32 bits. Para acesso externo, o barramento de dados é de 16 bits e o de endereços, 19 bits. Além disso, no acesso externo os barramentos de dados e endereço não podem ser acessados ao mesmo tempo. Nitidamente, isso implica no aumento de ciclos de clock para acessar informações. O diagrama do DSP é ilustrado na Figura 2. 

 

Unidade de processamento do DSP TMS320F2812.
Figura 2: Unidade de processamento.

 

A maioria das instruções do DSP possibilita a operação entre registradores (register-to-register) e de várias operações triviais de um microcontrolador. Além disso, vários modos de endereçamento podem ser utilizados, possibilitando a geração de códigos compactos. As principais características são:

  • 32 bits;
  • Ponto fixo;
  • Operações MAC (Multiply Accumulate Operations) de 16 x 16 / 32 x 32 bits;
  • Duplo MAC 16 x 16 bits;
  • Operações atômicas;
  • Resposta e processamento rápidos de interrupções;
  • Suporte à interface JTAG – gravação e depuração em tempo real.

 

 

Módulos do DSP

 

Como mostrado na Figura 2, o multiplicador e a ALU são separados. Isto é, operações de multiplicação e adição podem ser executadas simultaneamente. Isso é chamado MAC (Multiply and Accumulate) e pode ser utilizado em operações de 32x32-bit, ou em duas unidades de 16x16-bit (Dual MAC). Cabe ressaltar que o resultado de uma multiplicação de 32 bits gera um resultado de 64 bits, portanto o DSP utiliza um registrador P que pode ser acessado na parte alta e baixa. Outra característica notável é o bloco shifter que pode ser utilizado para multiplicar/dividir valores por múltiplos de 2. Isso é mostrado na Figura 3.

 

Multiplicador e ULA.
Figura 3: Multiplicador e ULA.

 

De modo geral, o primeiro operando da ULA é sempre o acumulador, enquanto o segundo pode ser buscado na memória de dados, memória de programa, registrador P ou diretamente da unidade de multiplicação. Tais operações podem ser realizadas com o procedimento Load/Store ou de modo atômico, isto é, sem interrupções. Esse mecanismo é ilustrado na Figura 4.

 

Modos de acesso.
Figura 4: Modos de acesso.

 

Assim, para buscar operandos na memória, o DSP pode acessar a memória de modo direto ou indireto. No modo direto, o endereço é de 22 bits, sendo formado pelo conteúdo do registrador DP (Data page – 16 bits) mais 6 bits de offset indicado na instrução executada. Já no modo indireto, o endereço é determinado por um registrador auxiliar de 32 bits. É importante destacar que operações aritméticas em ponteiros podem ser realizadas por unidade exclusiva, destinada aos registradores auxiliares. Tal unidade é chamada (ARAU) e possibilita que os registradores auxiliares possam ser manipulados ao mesmo tempo em que o acesso à memória é realizado. Isso é mostrado na Figura 5.

 

Operação Load/Store e atômicas.
Figura 5: Operação Load/Store e atômicas.

 

Essas operações envolvem a utilização dos barramentos do sistema que são ilustrados na Figura 6. Como dito anteriormente, o sistema é baseado no modelo da arquitetura de Harvard. Desse modo, o sistema de barramentos múltiplos permite que o DSP acesse uma instrução na memória e faça operações de leitura/escrita em apenas um único ciclo de clock.

 

Barramentos - Programa e Dados.
Figura 6: Barramentos - Programa e Dados.

 

 

Operação e Mapa de Memória

 

O processo de busca e execução de instruções é realizado em um pipeline de 8 estágios, possibilitando que uma instrução seja executada a cada 6.67ns (considerando operação em 150MHz). De modo geral, o programador não precisa se preocupar em relação ao estágio do pipeline, pois os resultados são garantidos na ordem especificada pelo programa. Ainda em relação ao modelo de arquitetura, sabendo que a arquitetura de Harvard divide o espaço de memória entre código e dados, o mapa de memória do TMS320F2812 é segmentado conforme ilustrado na Figura 7.

 

Espaço de endereçamento.
Figura 7: Espaço de endereçamento.

 

Como o barramento de endereço do espaço de dados é de 32 bits, podem ser acessados até 4G endereços com palavras de 16 bits. Já o barramento de endereços de programa contém 22 bits, permitindo acesso a 4M endereços. Diversos tipos de memória são utilizados, mantendo sempre a largura de 16 bits de dados.

 

Não volátil:

  • Flash: até 128 k x 16 bits (4 setores de 8 k x 16 bits e 6 setores de 16 k x 16 bits);
  • ROM: até 128 k x 16 bits;
  • ROM OTP (one-time-programmable): 1k x 16 bits;
  • Boot ROM (4 k x 16 bits): Com firmware do fabricante, modos de boot, e tabelas matemáticas.

 

Volátil - podem ser usadas para programa e dados:

  • L0 e L1: 2 blocos de 4 k x 16 bits (do inglês, SARAM - Single Access RAM);
  • H0: 1 bloco de 8 k x 16 bits SARAM;
  • M0 e M1: 2 blocos de 1 k x 16 bits SARAM.

 

Periféricos Mapeados em Memória (Blocos PF0, PF1 e PF2):

  • Dois gerenciadores de eventos EVA e EVB (controle de motores);
  • Interface serial periférica (SPI);
  • Duas interfaces de comunicação serial (SCIs), UART padrão;
  • CAN (eCAN – Enhanced Controller Area Network);
  • Porta serial multicanal com buffer (McBSP);
  • Conversor A/D de 12 bits, 16 canais;
  • 56 pinos de I/O (uso geral).

 

Os periféricos podem gerar interrupções que são processadas pelo sistema, garantindo a gravação automática de registradores considerados críticos: T, ST0, AH, AL, PH, PL, AR1 (L), AR0 (L),DP, ST1, DBSTAT, IER, PC (msw) e PC (lsw). O controlador de interrupções PIE pode monitorar até 96 fontes de interrupção, notificando a CPU a partir de 12 canais. O sistema de interrupção é ilustrado na Figura 8.

 

Sistema de interrupção.
Figura 8: Sistema de interrupção.

 

 

Reset e Clock

 

Todas as características descritas até o momento são representadas no diagrama do DSP mostrado na Figura 9. Por fim, quando o dispositivo é reiniciado, sua operação será determinada conforme o estado do pino XMPNMC:

  • Valor 1: As instruções são buscadas na memória externa;
  • Valor 0: As instruções são buscadas na memória de boot. O conteúdo dessa memória é determinado pelo fabricante e possui 6 opções de boot que são definidas a partir de 4 entradas, por exemplo, fazer boot da memória flash, SARAM, OTP e EEPROM externa.

 

Além disso, a fonte de clock principal pode ser externa (diretamente de um cristal – limitada em 35MHz), ou interna, utilizando um circuito PLL com base na entrada XCLKIN. É importante destacar que o watchdog timer é habilitado quando o dispositivo entra em operação e tem como fonte de clock a entrada XCLKIN.

 

Diagrama completo de módulos do TMS320F2812.
Figura 9: Diagrama completo de módulos do TMS320F2812.

 

Referências

 

TMS320F2812 - 32-bit Digital Signal Controller with Flash

Outros artigos da série

Inicialização e Configuração do DSP TMS320F2812 >>
Este post faz da série DSP TMS320F2812. Leia também os outros posts da série:
Licença Creative Commons
Apresentação do DSP TMS320F2812 por Fernando Deluno Garcia. Esta obra está licenciado com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Fascinado por computação, especialmente na interface entre hardware e software, me engajei na área de sistemas embarcados. Atuo com desenvolvimento de sistemas embarcados e sou docente da Faculdade de Engenharia de Sorocaba.