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.
  • Ciro Peixoto

    Desculpe, mas não entendi a finalidade deste artigo pois não se apresentou nenhuma aplicação do CI em questão ou experiência de uso que justificasse um artigo. Foi somente uma tradução do data sheet (essa também desnecessária pois quem há de se interessar por esta informação, com certeza domina , ou pelo menos deveria, a língua inglesa). Por ser um CI dedicado e específico de alta complexidade, também não consegui encaixa-lo em "informativo" pois, repito, quem tiver nescessidade de utilizá-lo com certeza irá buscar as informações diretamente com o fabricante... Enfim, não entendi a razão da publicação e nem da tradução do texto técnico!!