• Nenhum resultado encontrado

2.3 Sistema de detec¸c˜ao e arquitetura propostos

2.3.2.1 Serial Communications Interface (SCI)

A interface de comunica¸c˜ao serial (SCI) ´e uma porta serial ass´ıncrona de dois fios, comumente conhecida como UART (Universal Asynchronous Receiver/Transmitter ). As SCIs promovem a comunica¸c˜ao digital entre o DSP e outros dispositivos perif´ericos as- s´ıncronos que usam o padr˜ao NRZ (Non-return-to-zero) (TEXAS INSTRUMENTS,2009). A comunica¸c˜ao ´e geralmente full-duplex, com transmiss˜ao e recep¸c˜ao por fios diferentes (TX e RX, respectivamente).

Os dispositivos eletrˆonicos tˆem suas fun¸c˜oes regidas por sinais de clock. Quando se diz que um determinado dispositivo opera a 150 MHz, significa que sua CPU realiza opera- ¸c˜oes de c´alculo com esta velocidade. ´E ´obvio que nem todos os recursos de um dispositivo podem operar com a velocidade da CPU, por isso, encontram-se distribu´ıdos pelo dispo- sitivo sinais de clock com diversas frequˆencias. No TMS320F28335, a comunica¸c˜ao serial ´e controlada pelo SCICLK. O SCICLK ´e gerado internamente a partir do LSPCLK ou Low Speed Peripheral Clock (clock perif´erico de baixa velocidade) e do BRR (Baud-Rate Register ). O BRR ´e um registrador de 16 bits utilizado na sele¸c˜ao da taxa de transmiss˜ao. O LSPCLK tem frequˆencia de 37, 5 M Hz. Atrav´es do BRR ´e poss´ıvel escolher entre 65336 taxas de transmiss˜ao diferentes. A equa¸c˜ao 2.2 descreve o c´alculo do SCICLK.

SCICLK = LSP CLK

(BRR + 1) (2.2)

Para que dois dispositivos se comuniquem ´e necess´ario que ambos tenham a mesma taxa de transmiss˜ao. Uma forma de garantir a compatibilidade da taxa de transmiss˜ao ´e atrav´es do compartilhamento de um mesmo sinal de clock. Nas comunica¸c˜oes denominadas s´ıncronas, utiliza-se uma linha para transmiss˜ao do sinal de clock ou, ent˜ao, o sinal de clock ´e enviado junto aos dados por meio de codifica¸c˜oes espec´ıficas que garantem transi¸c˜oes constantes, Manchester, por exemplo. J´a nas comunica¸c˜oes ass´ıncronas, como a promovida pela SCI, n˜ao h´a compartilhamento de clock, cada dispositivo tem um sinal de clock independente. Sendo assim, necess´ario estabelecer a mesma taxa de transmiss˜ao nos dois dispositivos.

Nas transmiss˜oes ass´ıncronas, a ausˆencia de sinal ´e representada pelo n´ıvel l´ogico alto. Para iniciar uma comunica¸c˜ao, o transmissor envia um bit de n´ıvel l´ogico baixo, conhecido como start bit ou bit de partida. Imediatamente ap´os o start bit, o transmissor envia um pequeno pacote de dados, que pode ter de 1 a 8 bits. ´E comum usar 7 ou 8 bits, pois corresponde ao tamanho dos caracteres do formato ASCII e ASCII estendido. Ao final do campo de dados, o transmissor pode enviar um bit de paridade. O bit de paridade ´e opcional e utilizado na identifica¸c˜ao de erros de transmiss˜ao. A comunica¸c˜ao ´e encerrada

com um ou dois bits de parada (stop bit). O bit de parada tem n´ıvel l´ogico alto, uma vez que est´a associado ao fim da transmiss˜ao e volta da linha ao estado livre (idle). A Figura

5mostra o formato do quadro enviado nas transmiss˜oes ass´ıncronas.

Figura 5 - Formato t´ıpico do quadro SCI. Fonte: (TEXAS INSTRUMENTS,2009).

Start LSB 2 3 4 5 6 7 MSB Parity Stop

Para determinar o n´ıvel l´ogico de um bit, o circuito de interface do receptor faz de 3 a 4 medi¸c˜oes. A Figura 6 mostra que as medi¸c˜oes s˜ao realizadas no meio do intervalo do bit. Isso s´o ´e poss´ıvel porque a frequˆencia de opera¸c˜ao da interface SCI ´e oito vezes maior que a taxa de transmiss˜ao, ou seja, cada intervalo de bit corresponde a 8 ciclos de SCICLK. A Figura mostra, tamb´em, que a forma de medir muda de acordo com o bit em quest˜ao. O start bit ´e identificado pela permanˆencia da linha em n´ıvel baixo durante quatro per´ıodos de SCICLK consecutivos. J´a os bits de dados s˜ao determinados por trˆes medi¸c˜oes, realizadas no quarto, quinto e sexto per´ıodos do intervalo do bit. Neste caso, considera-se o valor indicado pela maioria das medi¸c˜oes.

Figura 6 - Determina¸c˜ao do valor do bit durante recep¸c˜ao SCI. Fonte: (TEXAS INSTRUMENTS,

2009).

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1

SCICLK SCIRXD

Start bit LSB

8 períodos de SCICLK por bit

O programador do DSP geralmente n˜ao se preocupa com o valor do SCICLK. Ele apenas verifica a taxa de transmiss˜ao necess´aria para comunica¸c˜ao com o dispositivo perif´erico e calcula o valor de BRR. Sabendo-se que cada bit ocupa 8 ciclos de SCICLK e que o SCICLK ´e determinado pela Equa¸c˜ao2.2, obt´em-se a Equa¸c˜ao 2.3, que ´e usada no c´alculo de BRR.

BRR = LSP CLK (T axaSCI·8)

−1 (2.3)

Ao configurar uma SCI, al´em da taxa de transmiss˜ao, o programador deve estipular o n´umero de bits de parada e decidir pelo uso ou n˜ao do bit de paridade. O programador pode, ainda, ativar o recurso conhecido como FIFO (First In/First Out). Cada interface

de comunica¸c˜ao serial possui duas FIFOs de 16 n´ıveis, uma no transmissor e outra no receptor. As FIFOS s˜ao buffers que armazenam os dados de entrada e sa´ıda, permitindo o envio ou recep¸c˜ao de at´e 16 caracteres em apenas uma interrup¸c˜ao de CPU. Dependendo do sistema, a FIFO pode proporcionar uma redu¸c˜ao significativa na carga de servi¸co (TEXAS INSTRUMENTS,2011).

A Figura 7 mostra o diagrama de funcionamento da interface de comunica¸c˜ao se- rial. Com a FIFO habilitada (SCIFFENA = 1), os dados que chegam na entrada RX passam pelo RXSHF (Receiver Shift Register ) e s˜ao armazenadas diretamente na FIFO de recep¸c˜ao. Os dados s´o ser˜ao processados pela CPU quando ocorrer um dos seguintes eventos: ocupa¸c˜ao da FIFO atingir certo limite, ocorrˆencia de overflow da FIFO ou erro de recep¸c˜ao. O overflow ocorre quando os 16 n´ıveis da FIFO est˜ao ocupados e um novo caractere ´e recebido. O programador n˜ao precisa esperar que o overflow ocorra para que os dados sejam processados pela CPU, basta definir um limite de ocupa¸c˜ao atrav´es do registrador RXFFIL. Erros de recep¸c˜ao tamb´em geram interrup¸c˜ao de CPU (RXINT), pois s˜ao necess´arias rotinas para tratamento de exce¸c˜ao.

Figura 7 - Funcionamento da FIFO. Fonte: (TEXAS INSTRUMENTS,2009).

RX FIFO 15 RX FIFO 0 TX FIFO 15 TX FIFO 0 RX BUF TX BUF TXSHF RXSHF RX TX RXFFOVF flag RXERR flag RXFFIL 16x8 bit FIFO TXFFIL TXRDY flag RXRDY/BRKDT RXFFIENA RX/BKINTENA RXERRINTENA TXFFIENA TXINTENA ABD bit CDC bit SCIFFENA SCIFFENA RXINT TXINT 1 0 1 0 Auto-band detect logic

A transmiss˜ao ocorre de forma an´aloga a recep¸c˜ao. Os dados s˜ao armazenados na FIFO do transmissor. Quando a ocupa¸c˜ao m´axima ´e atingida, uma interrup¸c˜ao TXINT ´e gerada e os dados s˜ao enviados ao Registrador de Deslocamento do Transmissor para, ent˜ao, chegarem ao pino TX.

Documentos relacionados