Escolar Documentos
Profissional Documentos
Cultura Documentos
Assinatura :
Implementação de um sistema de
arquivos para uma plataforma de
computação reconfigurável
Orientação:
PROf. DR. EduaRDO MaRques
Agradeço aos meus pais que sem medir esforços sempre estiveram determinados na
minha educação. Apoio esse incondicional que me deu a possibilidade de me dedicar de
forma integral e com total tranqüilidade aos estudos.
Agradeçoo à minha irmã Daniele pelo carinho e ao meu irmão Marcelo pelo apoio e
dedicação por estar sempre ao meu lado durante a realização do trabalho.
Agradeço aos colegas de turma que estiveram presentes nos momentos alegres e
tristes, compartilhando experiências e emoções, fazendo com que este ambiente se
tornasse mais fraterno e humano.
Por último e mais importante agradeço a Deus pelo dom da vida e por fazer com que
o meu caminho fosse trilhado junto a pessoas tão especiais.
iv
Resumo
v
Abstract
In computational systems, usually the data are stored in storage units, according
to some logic, in structures called files. The File System is responsible for structure,
identification, access, protection and management of the files. It also acts as a connector
link between the user and the device, translating high level commands (derived for the
user) into commands of low level, understandable for the storage unit.
The present work aims to implement a File System for application in mobile devices
based on reconfigurable computation. Such system will act as a support for the applica-
tions that need to store and/or to restore large volume of data, such as the acquisition of
digital images from CMOS cameras. This system will also be used as an initial tool for
the development of a storage module of a board, based on reconfigurable computation, to
be used for didactic purposes. The implemented File System is based on FAT16 and the
storage device used was the memory cards SD (Secure Digital) and MMC (MultiMedia-
Card).
vii
Sumário
Resumo................................................................................................................................v
Resumo...............................................................................................................................vi
Lista de Figuras................................................................................................................xv
Lista de Tabelas...............................................................................................................xix
1 Introdução 1
1.1 Motivação...................................................................................................................2
1.2 Objetivos.....................................................................................................................3
2 Dispositivos de Armazenamento 7
2.1 Introdução..................................................................................................................8
2.2 Fitas...........................................................................................................................12
2.7.1 SD Card.........................................................................................................31
3 Sistema de Arquivos 41
3.1 Introdução................................................................................................................42
3.2 Arquivos....................................................................................................................43
3.2.1 Identificação.................................................................................................43
3.2.2 Estrutura......................................................................................................44
3.3 Diretórios..................................................................................................................47
3.4 Operações.................................................................................................................51
3.5 Implementação do Sistema de Arquivos...................................................................52
3.5.4 Nós-Índice...................................................................................................56
4 Plataforma de Desenvolvimento 65
4.1 Introdução................................................................................................................65
4.2.5 Benefícios.....................................................................................................75
xii SUMÁRIO
5 Implementação e Resultados 89
5.1 Introdução................................................................................................................89
5.4.2 Ler_Setor......................................................................................................96
5.4.3 Escrever_Setor............................................................................................96
5.5.1 inicializar......................................................................................................98
5.5.2 Abrir_Arquivo_Escrita..............................................................................98
5.5.3 Escrever_Arquivo.......................................................................................99
5.5.4 Abrir_Arquivo_Leitura..............................................................................99
5.5.5 Ler_Arquivo................................................................................................99
5.5.6 Fechar_Arquivo........................................................................................100
5.5.7 Teste e Validação do Sistema de Arquivos Proposto..........................100
5.6 Gerador de arquivo gráfico de Mapa de Bits BMP.........................................102
5.6.1 Teste e Validação do Gerador de Arquivos..........................................103
5.6.2 Sistema Desenvolvido..............................................................................105
6 Conclusões 107
6.1 Trabalhos Futuros.................................................................................................109
nenbaum, 1999)............................................................................................................24
2.15 Três diferentes tamanhos disponíveis de Memory Stick: Pro, Pro Duo e Micro 29
xv
xvi LISTA DE FIGURAS
2.25 Os três modelos disponíveis de cartão MMC: MMC PLUS, MMC mobile e
MMC micro
38
computador............................................................................................................105
Lista de Tabelas
xix
Capítulo
Introdução
Robôs são dispositivos físicos dotados de sensores e atuadores, que executam uma
determinada tarefa pré-programada. As primeiras tentativas de desenvolvimento desses
dispositivos resultaram em robôs pouco inteligentes, com aplicações bem limitadas. Com
o passar do tempo, esforços foram empregados no desenvolvimento de robôs fixos, de
característica estática para serem aplicados basicamente em linhas de produção
industrial.
1
2 CAPÍTULO 1.
Uma alternativa para a integração dos circuitos lógicos pertencentes a um robô, bem
1.1 Motivação
Para o robô desenvolver suas atividades de exploração de forma eficiente, ele será
dotado de diversos sensores e atuadores, dentre os quais, um sistema de mapeamento e
localização baseado em multi-câmeras digitais (Bonato, 2005b).
Essas câmeras, assim como os demais sensores disponíveis no sistema irão produzir
uma grande quantidade de dados que deverão ser armazenados em um dispositivo de
armazenamento de massa (conforme destacado na Figura 1.1) para posterior processa-
mento. Atualmente, existem várias alternativas de dispositivos de armazenamento de
massa. Porém, devido a restrições intrínsecas aos sistemas móveis, como a necessidade de
módulos com baixo consumo de energia e robustos a choques, a alternativa mais indicada
é a memória de estado sólido, que satisfaz essas restrições.
Uma vez definida a unidade de armazenamento a ser utilizada, faz-se necessária a im-
plementação de um sistema que organize os dados adquiridos de forma lógica em
unidades denominadas arquivos. Esse sistema, denominado de sistemas de arquivos, é
responsável por estruturar, identificar, acessar, proteger e gerenciar esses arquivos
(Tanenbaum, 2001), além de agir como um elo de ligação entre o usuário e o dispositivo,
traduzindo comandos de alta abstração (oriundos do usuário) em comandos de baixo
nível, compreensível à unidade de armazenamento.
1.2 Objetivos
câmeras. Serão 4 câmeras fornecendo dados a 60 frames por segundo com resolução de
320 x 240 pontos por frame.
Uma outra aplicação para o sistema de arquivos resultante deste trabalho será o de-
senvolvimento de um módulo de armazenamento de uma placa proprietária baseada em
Este plano de pesquisa está dividido em 6 (seis) capítulos, sendo esta Introdução o
primeiro deles. Os demais capítulos estão organizados da seguinte forma:
• no Capítulo 3 é apresentada uma visão geral sobre Sistemas de Arquivos, bem como
o detalhamento do sistema implementado;
3
http://www.picomponentes.com.br
4
File Allocation Table
5
Secure Digital
6
MultiMediaCard
Capítulo
Dispositivos de Armazenamento
7
8 CAPÍTULO 2. DISPOSITIVOS DE
2.1 Introdução
por bit.
A solução adotada para esse dilema foi implementar um esquema de hierarquia de me-
mória. Esse esquema constitui-se em disponibilizar vários níveis de memória, distribuídos
de forma hierárquica, sendo cada nível classificado quanto à sua localização no sistema.
Quanto mais próximo a memória estiver do processador, mais rápida será, menor capa-
cidade terá e o custo por bit armazenado aumentará. Por outro lado, quanto mais longe
fisicamente estiver do processador, a memória será mais lenta, terá maior capacidade e
À direita dos registradores tem-se a memória cache, uma memória de alta velocidade
e capacidade maior que os registradores, sendo atualmente implementadas fisicamente
tivos são classificados como memória externa, tendo a característica de manter seus dados
mesmo após o sistema ser desligado, ou seja, são não-voláteis. A memória externa é mais
lenta e com uma capacidade superior quando comparados à memória principal.
2.2 Fitas
ções de estatística. O primeiro uso em larga escala deu-se em 1890 no censo americano,
automatizando o processo que até então era manual e consumia somas elevadas de tempo
e trabalho. Com este invento Hollerith fundou a Tabulating Machine Company, que em
1911 juntou-se com mais 2 empresas para formar a mundialmente conhecida IBM2 (IBM,
2006b).
Outro meio de armazenar informações eram as fitas de papel, as quais eram enroladas
2
International Business Machine
1 CAPÍTULO 2. DISPOSITIVOS DE
(a) (b)
A fita magnética é constituída por uma fita plástica de meia polegada de largura
co- berta com óxido magnético, sendo o dispositivo de menor custo e menor velocidade
(Stal- lings, 2002). No processo de leitura/gravação a fita é rebobinada do lado esquerdo
para o direito passando pela cabeça de leitura/gravação em velocidade constante, onde
acontece a operação (Flynn e McHoes, 1985). Os dados são armazenados na fita em
unidades denomidas registros, sendo que os registros podem ter tamanho variado,
definido pelo usuário, existindo um marcador de intervalo entre os registros para
facilitar a busca de
3
Hewlett-Packard
2.2. 1
As primeiras fitas continham 7 trilhas paralelas, armazenando 7 bits por quadro, sendo
6 utilizadas para inserir um dígito decimal codificado em binário e uma trilha para in-
serir o bit de paridade, sendo obsoleto a décadas (Monteiro, 2002). Atualmente as fitas
magnéticas tem 18 ou 36 trilhas, com densidade de até 6250 bytes por polegada, tendo
uma velocidade de transporte de 200 polegadas por segundo (Flynn e McHoes, 2002) e
4
são conhecidas como fitas DAT . A Figura 2.6 ilustra uma fita DAT da marca Sony
5
Sun Microsystems
2.3. DISCOS 1
Assim como as fitas magnéticas, o disco rígido, também conhecido por HD 6, é um dis-
positivo que armazena dados não-voláteis em uma superfície magnetizável,
diferenciando- se das fitas por utilizar um prato magnético em forma de disco e por ser
um dispositivo de acesso direto.
O primeiro disco rígido existente foi fabricado pela IBM em 1956. Chamava-se IBM
350 e era constituído de 50 pratos de superfície dupla e 24 polegadas cada, tendo a
(a) (b)
gigabytes de dados. Embora evoluções significativas ainda estão por vir na densidade das
superfícies dos discos, um fator limitante de difícil superação está presente nas partes mó-
veis do dispositivo, na velocidade de rotação do disco e na movimentação do mecanismo
de posicionamento das cabeças de leitura/gravação.
leitura ou escrita é realizada várias vezes por segundo conforme a superfície do disco vai
passando pela cabeça de leitura/gravação. A Figura 2.10 ilustra, no detalhe, uma cabeça
de leitura/gravação espelhada na própria superfície do disco.
Cada prato de um disco rígido é dividido em trilhas concêntricas, sendo cada trilha
dividida em setores, geralmente de 512 bytes cada. Os primeiros discos rígidos mantinham
1 CAPÍTULO 2. DISPOSITIVOS DE
o mesmo número de setores para cada trilha, ocasionando perda de capacidade de arma-
zenamento, pois setores de trilhas mais externas ocupavam maior área do disco quando
comparados a setores de trilhas mais internas. Nos discos atuais, trilhas próximas são
agrupadas em zonas, quanto maior o raio, maior o número de setores dentro da trilha,
otimizando o aproveitamento de sua superfície.
O disco flexível, também conhecido como FD8 ou disquete, foi desenvolvido para
prover uma unidade de armazenamento mais barata que os dispositivos existentes na
época. Seu funcionamento interno assemelha-se ao disco rígido, diferenciando-se deste na
capacidade de armazenamento, velocidade de acesso e taxa de transferência. Outra
característica peculiar ao disquete é que o disco na qual as informações são gravadas não
está fisicamente preso à unidade de leitura/gravação, possibilitando que um disquete seja
acessado por diversos mecanismos de leitura/gravação. De forma análoga, um único
mecanismo de leitura/gravação poderá ler diversos disquetes.
Devido à sua facilidade de transferência de dados entre diversos sistemas e sua capa-
8
floppy-disk
2 CAPÍTULO 2. DISPOSITIVOS DE
Dois anos após seu lançamento, o CD foi aprimorado, tornando-se mais resistente e
portando mecanismos de correção de erros para detectar e restaurar dados que pudessem
estar corrompidos. Este aprimoramente foi então utilizado para armazenar qualquer tipo
9
Compact Disc
2.5. MÍDIAS ÓPTICAS 23
10
de dado digitalizado, sendo denominado CD–ROM . A partir de então, as mídias ópticas
foram sendo utilizadas como meio de armazenamento externo, armazenando uma grande
quantidade de informação, sendo popularmente disponibilizada em duas versões, uma de
Diferente dos discos rígidos e dos discos flexíveis, a informação não é gravada em
trilhas concêntricas, e sim, em uma única trilha em espiral. A Figura 2.13 ilustra a
disposição da trilha na superfície do disco. Para efeito de curiosidade, caso essa trilha
fosse posta em uma linha reta, mediria 5,27 quilômetros. Para aproveitar ao máximo a
capacidade de armazenamento, o disco é rotacionado em uma velocidade linear constante,
ou seja, quando a unidade de leitura está em uma área mais externa da superfície, a
velocidade de rotação angular é inferior quando comparado a uma área mais interna da
superfície do disco.
10
Compact Disc Read Only Memory
2 CAPÍTULO 2. DISPOSITIVOS DE
Figura 2.13: Disposição da trilha em forma de espiral na superfície do disco optico (Ta-
nenbaum, 1999)
11
denominado CD–RW . O diferencial do CD–RW em relação aos anteriores está na super-
fície do disco, que é constituído de um material que, quando estimulado pelo laser, tem
a capacidade de mudar seu índice de reflexão (para uma configuração de baixa ou alta
reflexão) várias vezes, tornando-se uma boa opção para quem necessita armazenar dados
temporariamente, bastando antes de cada regravação, apagar o conteúdo atual do disco.
o DVD12. Como o CD foi o substituto do disco de vinil para o áudio, o DVD também
foi o substituto para as fitas de vídeo VHS analógicas para o vídeo, obtendo grande
de 4,7 gigabytes para as superfícies de uma camada e de 8,5 gigabytes para as superfícies
de duas camadas, apresentando-se em versões gravável e regravável. A operação de leitura
e escrita é similar ao do CD diferenciando-se pelo tipo de laser utilizado, que é um laser
vermelho, com comprimento de onda menor, medindo 650 nm, aumentando a densidade
de gravação.
11
Compact Disc Rewritable
12
Digital Video Disc, ou, mais recentemente Digital Versatile Disc
2.6. MEMÓRIAS DE ESTADO 2
Atualmente, as mídias ópticas estão passando por mais uma evolução com a utilização
do laser azul, com comprimento de onda de 405 nm. Em contraste com os desenvol-
vimentos anteriores, não há um consenso entre o mercado para uma solução universal,
existindo duas vertentes explorando essa nova tecnologia. Assim, como no início dos anos
80 houve uma batalha entre o Betamax da Sony (Sony, 2006c) e o VHS da JVC (JVC,
2006) na disputa pelo mercado de fita de vídeo analógico, hoje estamos diante de um ce-
nário parecido no mercado de discos ópticos de altíssima capacidade (Wells, 2005). De
um lado está um consórcio de várias empresas encabeçada pela Toshiba no
Blue Ray, um disco com capacidade de armazenar 25 gigabytes de dados por superfície
(Sony, 2006a).
As memórias de estado sólido são dispositivos que não contêm partes móveis,
constitu- indo-se apenas de semicondutores. Essas memórias podem ser tanto voláteis ou
não- voláteis. Como por exemplo, as voláteis são as memórias de acesso randômico
respectivamente, por DRAM e SRAM. Por outro lado, as não-voláteis são as memórias
com a capacidade de manter seu conteúdo mesmo quando o sistema não se encontra
Por sua natureza física sem partes móveis, essas memórias apresentam diversas van-
tagens sobre as memórias que contém algum dispositivo mecânico, sendo mais robusta a
choques, tendo tempo de acesso constante, maior durabilidade, menor consumo de energia,
operando sem poluição sonora. Por outro lado, embora vários avanços estejam sendo con-
quistados, encontrando-as cada vez mais baratas e com maior capacidade. Atualmente,
as memórias Flash estão mais caras e com menor densidade quando comparados a outros
meios de armazenamento externos tradicionais.
Flash estão cada vez mais presentes nos equipamentos eletrônicos, sendo utilizadas para
os mais diversos fins, como celulares, câmeras fotográficas, tocadores de música e vídeo,
computadores de mão, impressoras, etc. Recentemente a Samsung (Samsung, 2006) lan-
çou o primeiro computador portátil baseado em discos de estado sólido (Williams, 2006;
Datalight, 2005a), utilizando memórias Flash do tipo NAND com capacidade para 32
gibabytes, apostando nas vantagens dessa tecnologia em contraste aos modelos baseados
em discos rígidos (Datalight, 2005b).
memória Flash externa integrado a uma interface USB 14 (USB, 2006). O desenvolvimento
desse dispositivo foi motivado pela grande disseminação de portas de comunicação USB
portátil, podendo ser inserido em qualquer sistema que apresente uma interface USB
disponível.
americano (Kan-
14
Universal Serial Bus
2 CAPÍTULO 2. DISPOSITIVOS DE
A linha de cartão de memória Memory Stick (Sony, 2006b) foi desenvolvida pela
Sony (Sony, 2006c) para ser utilizada como padrão de memória removível em seus pro-
dutos, sendo apresentado ao público em 1998 (Sony, 1998). Atualmente, além da Sony,
também a Sony Ericson (SonyEricson, 2006) utiliza este cartão como unidade de armaze-
namento, tendo a sua produção licenciada para a SanDisk (Sandisk, 2006) e Lexar (Lexar,
2006).
2. Memory Stick Duo e o Memory Stick Pro Duo: 31.0mm X 20.0mm X 1.6mm e
Figura 2.15: Três diferentes tamanhos disponíveis de Memory Stick: Pro, Pro Duo e
Micro
Uma desvantagem dessa tecnologia em contraste com seus concorrentes está na capa-
15
Extreme Digital
3 CAPÍTULO 2. DISPOSITIVOS DE
O cartão de memória Compact Flash foi especificado e produzido pela SanDisk (San-
disk, 2006) em 1994, sendo a mais velha memória flash removível dentre os modelos
dispo- níveis atualmente. Em 1996 foi criada uma associação responsável pelo
desenvolvimento do cartão, chamada CFA - Compact Flash Association (Compact,
2006).
Desde o seu lançamento, esta memória flash mantém suas características físicas, sendo
disponibilizadas em dois tamanhos, o modelo Compact Flash I medindo 43 mm x 36 mm
x 3,3 mm e o modelo Compact Flash II medindo 43 mm x 36 mm x 5 mm. Na Figura 2.17,
é ilustrado um cartão SanDisk Extreme III CompactFlash com capacidade de 2 gigabytes.
Embora o modelo Compact Flash II seja assim denominado, geralmente não é baseado
em memória flash, e sim em disco rígido. Porém, compartilhando o mesmo protocolo de
2.7. DISPOSITIVOS DE ARMAZENAMENTO UTILIZADOS NESTE PROJETO
comunicação que o seu modelo mais fino baseado em memória flash, o Compact Flash
I. Devido ao seu grande tamanho, o maior entre as atuais memórias flash removíveis,
está é a memória que tem maior potencial de crescimento de capacidade. Entretanto, é
a que tem menor aceitação entre os dispositivos ultra compactos, como computadores de
mão e telefones celulares.
O cartão de memória Compact Flash é o que tem melhor desempenho entre seus
concor- rentes, podendo chegar a 40 MegaBytes por segundo tanto na operação de leitura
quanto na operação de escrita na linha SanDisk Extreme IV CompactFlash, com
capacidade de até 8 GigaBytes.
Existem ainda dois padrões bastante utilizados como cartão de memória, o cartão SD
e o cartão MMC que por ser motivo deste trabalho serão descritos em detalhes na próxima
seção.
2.7.1 SD Card
16
O cartão SD foi apresentado em 1999 pelas empresas Panasonic (Panasonic, 2006),
sendo posteriormente criada no ano de 2000 uma associação para cuidar das questões de
17
padrão e licenciamento, denominada SDA (Secure, 2006), sendo disponibilizado neste
dispõe de um adaptador para ser compatível com conectores do tipo SD. O sistema im-
plementado foi validado em um cartão SD tamanho padrão e em um cartão MicroSD.
(a) (b)
Os cartões SD estão tendo uma grande aceitação nos dispositivos eletrônicos, sendo
encontrados em uma grande gama de produtos, como aparelhos de som, tocadores de
DVD e impressoras, principalmente por serem menores que os cartões Compact Flash, e
com menor restrição de licença que os cartões Memory Stick e o xD–Picture.
Atualmente, os cartões SD de maior capacidade conseguem armazenar 4 gigabytes,
chegando a velocidade máxima de 22,5 megabytes por segundo para leitura e escrita nos
modelos de alto desempenho.
As principais características do cartão SD são:
18
• suporte PnP ;
Após uma apresentação sucinta do cartão SD, na próxima seção será vista com
maiores detalhes como se dá a interface entre o cartão e o sistema que o utiliza.
A interface do cartão com um sistema pode ser realizada em dois modos de operação.
O primeiro é o modo SD, que tem como principal característica a utilização de um barra-
mento de dados de 4 vias, transmitindo 4 bits por sinal de clock. Este modo de operação
utiliza um protocolo de comunicação proprietário da SDA não podendo ser utilizado sem
o pagamento de uma licença.
O segundo modo de operação é baseado na interface SPI 19, que é uma interface serial
para a troca de dados entre dispositivos. Essa interface tem a capacidade de transmitir
apenas 1 bit por sinal de clock e trata-se de um padrão aberto, podendo ser desenvolvido
sem a necessidade de pagamento de licença. Por questão de custo, a interface utilizada
neste trabalho é a interface SPI.
os dados,
19
Serial Peripheral Interface
2.7. DISPOSITIVOS DE ARMAZENAMENTO UTILIZADOS NESTE PROJETO
modelos de cartão existentes. O host envia o comando a ser executado serialmente pelo
pino DataIn e recebe a resposta do cartão pelo pino DataOut. Se a ação associada ao
comando envolver a transferência de algum bloco de dados, o mesmo é enviado pelo pino
DataOut, sendo que, após o envio de cada bloco pode ser transmitido um bloco de
conferência para detectar se houve alguma falha no envio. A técnica utilizada para gerar o
bloco de conferência é o CRC20, que consiste em, através de uma função que tem como
variável o bloco transferido, gerar uma sequência de bits. Quando o host está de posse do
bloco de dados e do bloco de conferência, ele executa uma função similar à do cartão sobre
o bloco de dados, e compara os bits gerados por ele com os enviados pelo cartão. Caso
ocorra alguma divergência entre os dois é porque houve uma falha no envio. No caso de
falha o host poderá fazer uma requisição de reenvio do bloco inconsistente ao cartão,
operação de escrita no cartão é seguida por uma operação de leitura, para confirmar que
os dados foram escritos corretamente. Caso haja um bit defeituoso, este bit é trocado por
um bit sobressalente. Na ocorrência de mais de uma falha, o setor inteiro é susbstituído
por um setor reservado. Esta operação é completamente transparente para o host e não
altera a capacidade do cartão.
consistência no bloco, após o envio do mesmo pelo host para o cartão com os bits do
CRC, para detectar se houve falha no envio. Caso não haja falha no envio o cartão irá
programar o bloco recebido na memória. Esse processo demora um tempo deixando o
cartão indisponível. Nessa fase o cartão envia um sinal de ocupado no barramento de
dados, informando quando a programação estiver concluída, estando apto para executar
novas operações.
O cartão MMC foi desenvolvido pela Siemens (Siemens, 2006) e pela Sandisk
(Sandisk, 2006) em 1997, com o tamanho de 24mm x 32 mm x 1.4 mm, sendo
desenvolvido para concorrer com o cartão Compact Flash que tinha dimensões superiores.
Atualmente, existe uma associação que controla o desenvolvimento do cartão, chamada
MultiMedia Card Association(MMCA) (MultimediaCard, 2006).
Figura 2.24: Diferença de pinagem entre os cartões MMC e MMCpluls (vista superior)
Figura 2.25: Os três modelos disponíveis de cartão MMC: MMC PLUS, MMC mobile e
MMC micro
Após a criação do cartão SD, o cartão MMC vem perdendo espaço no mercado,
pois tem menor capacidade e desempenho, chegando a 2 GigaBytes de capacidade e 11
Me- gaBytes por segundo na operação de leitura e 7 MegaBytes por segundo na operação
de escrita. Entretanto, com a publicação da versão 4.1 da especificação do cartão
MMC, a MMCA aumentou significativamente a possibilidade de capacidade e
desempenho, prome- tendo aumentar a rivalidade entre os dois padrões que
compartilham o mesmo conector.
2.8. CONSIDERAÇÕES FINAIS 39
Existem duas configurações de pinos possíveis, como foi ilustrado na Figura 2.24. A
anterior, a especificação 4.1 de 7 pinos e a da versão 4.1 de 13 pinos. A versão mais antiga,
a utilizada neste trabalho, tem dois modos de operação, o modo MMC e o modo SPI.
Para manter a compatibilidade com a implementação do protocolo de comunicação SPI
do cartão SD, foi implementado o modo SPI neste trabalho, que opera de forma similar
ao cartão SD no modo SPI, já descrito na Seção 2.7.1.2, tendo seus pinos descritos na
Tabela 2.1.
Tabela 2.1: Definição dos Pinos do Cartão MMC no modo SPI (7 Pinos)
A versão mais recente da especificação do cartão MMC, que não foi utilizada neste
trabalho, diferencia-se da antiga por dispor de uma segunda fileira de pinos como foi
ilustrado na Figura 2.24. Com esta nova configuração, a transferência de dados pode
ser realizada 8 vezes mais rápida quando comparada a versão anterior, pois contém um
barramento de 8 vias, transferindo 1 byte a cada ciclo de clock, como pode ser visto na
Tabela 2.2.
A operação de leitura e de escrita no cartão MMC utilizado neste projeto no modo SPI
é similar a operação de leitura e de escrita do cartão SD utilizando o mesmo
protocolo.
4 CAPÍTULO 2. DISPOSITIVOS DE
Tabela 2.2: Definição dos Pinos do Cartão MMC no modo MMC(13 Pinos)
Sistema de Arquivos
Neste capítulo é apresentada uma visão geral de Sistema de Arquivos, bem como o
sistema de arquivos implementado.
41
4 CAPÍTULO 3. SISTEMA DE
3.1 Introdução
2. Adotar um critério que determine onde e como os arquivos devem ser armazenados,
de forma que o espaço disponível para armazenagem seja eficientemente
aproveitado e os arquivos facilmente acessados;
3. Alocar cada arquivo ao usuário que obteve permissão para acessá-lo e registrar cada
acesso; e
3.2. 4
4. Desalocar o arquivo assim que ele estiver pronto para voltar para o dispositivo de
armazenamento e comunicar sua disponibilidade a outros usuários que porventura
estejam esperando por ele.
Para um melhor entendimento destas tarefas, nas próximas seções o conceito de ar-
quivos é mostrado em detalhes.
3.2 Arquivos
seqüência de bits cujo significado é definido por quem o criou. A criação de um arquivo
deve levar em consideração alguns aspectos importantes, tais como a sua identificação, a
sua estrutura, os seus atributos e o seu tipo. Esses aspectos são detalhados a seguir.
3.2.1 Identificação
Cada Sistema de Arquivos tem sua própria regra para nomear seus arquivos, e todos os
sistemas atuais permitem uma identificaçã de pelo menos 8 caracteres. Alguns Sistemas
de Arquivos fazem distinção entre caracteres maiúsculos (caixa alta) e minúsculos (caixa
1
baixa), como por exemplo, os Sistemas de Arquivos baseados em UNIX . Por outro lado,
existem outros Sistemas de Arquivos que não fazem essa distinção, como por exemplo, os
2
Sistemas de Arquivos baseados em Windows .
1
UNIX é um Sistema Operacional portável, multitarefa e multiusuário originalmente criado por um
grupo de programadores da AT&T e dos Bell Labs, que incluem Ken Thompson, Dennis Ritchie e Douglas
McIlroy. Atualmente, existem várias versões de sistemas baseados no UNIX, podendo destacar:
SunOS, Solaris, IRIX, AIX, HP-UX, OSF, SCO, NeXTSTEP e Linux.
2
Sistema Operacional dominante do mercado, desenvolvido pela Microsoft baseado em janelas, sendo
o sucessor do MS–DOS (Sistema Operacional de Disco).
4 CAPÍTULO 3. SISTEMA DE
Extensão Significado
.bak Arquivo de backup
.c Código fonte da linguagem C
.gif Arquivo de imagem no formato GIF
.hlp Arquivo de ajuda
.html Arquivo de hipertexto
.jpg Arquivo de imagem no formato JPEG
.mp3 Arquivo de música no formato MPEG layer 3
.mpg Arquivo de vídeo
.o Arquivo objeto
.pdf Arquivo no formato PDF(Portable Document Format
)
.ps Arquivo no formato PS(Post Script )
.tex Arquivo de entrada para o programa TEX
.txt Arquivo de texto
.zip Arquivo compactado
.exe Arquivo executável
Tabela 3.1: Extensões típicas de arquivos.
3.2.2 Estrutura
As seqüências de bytes (Figura 3.1 (a)) deixam a cargo do processo criador do arquivo
implementar a estrutura do mesmo, ausentando o Sistema de Arquivos dessa responsabi-
lidade. Tal característica dá uma grande flexibilidade ao projetista da aplicação.
3.2. 4
realizada sobre um registro inteiro, e não apenas bytes, como na forma anterior.
Uma vez criado o arquivo e identificado, é comum atribuir ao mesmo algumas infor-
mações úteis ao seu respeito, as quais são chamadas atributos. Cada Sistema de Arquivos
implementa seus próprios atributos, sendo alguns deles comuns à maioria dos Sistemas
de
4 CAPÍTULO 3. SISTEMA DE
Arquivos existentes.
• hora de criação;
• hora de modificação;
• proprietário;
• criador;
• senha de acesso;
Diretórios: São arquivos que não estão associados diretamente a um conjunto de dados,
como os arquivos regulares, mas sim a um agrupamento de arquivos que possam
ter algum vínculo entre si. Os diretórios serão detalhados com maior precisão na
próxima seção.
3.3 Diretórios
Os diretórios, também conhecidos como pastas, são um tipo especial de arquivos que
não estão associados diretamente a um conjunto de dados, mas sim a um agrupamento
de arquivos que possam ter algum vínculo entre si. Fazendo uma analogia ao mundo
real, seria como um armário, com várias portas e gavetas (diretórios), cada uma contendo
um tipo específico de objeto (arquivos), separando-os por grupo de interesse, provendo
8 CAPÍTULO 3. SISTEMA DE
assim uma melhor organização ao sistema. As próximas seções visam o detalhamento das
principais formas utilizadas na implementação de diretórios.
seus dados. Dessa forma, tornou-se possível criar diretórios dentro do diretório raíz,
possibilitando a cada usuário ter seu próprio diretório para armazenar seus arquivos.
Pela flexibilidade que esse tipo de estrutura fornece ao usuário para organizar seus
arquivos dentro do Sistema de Arquivos, os diretórios hierárquicos são implementados
em todos sistemas operacionais atuais.
Uma vez detalhado o conceito de arquivo, e a sua organização, a próxima seção visa
detalhar as operações comumente realizadas sobre os arquivos.
3.4. OPERAÇÕES 51
3.4 Operações
• OPEN: Abre um arquivo anteriormente criado. Esta abertura pode ser realizada
para leitura e/ou escrita.
• OPENDIR: Abre um diretório para posterior visualização dos arquivos nele con-
tidos.
Após a análise das características inerentes aos arquivos, bem como das operações
sobre eles realizadas, torna-se interessante a análise da implementação propriamente dita
do Sistema de Arquivos. Tal análise dar-se-á na próxima seção.
Esta é a forma mais simples de alocação de arquivos. Cada arquivo é identificado como
se fosse um único bloco, do tamanho do arquivo. Os dados são inseridos nesse bloco de
forma seqüencial. Com isso a entrada do arquivo precisa apenas guardar o endereço
inicial e o tamanho do arquivo. A Figura 3.5 ilustra esta técnica para 5 arquivos de
tamanhos distintos.
Este método apresenta o melhor desempenho entre os outros métodos por possibilitar
a leitura de todo o arquivo em uma única operação. As desvantagens principais desse
método são: 1) a necessidade de se conhecer, antes da criação do arquivo, o tamanho do
mesmo (o que, geralmente, não é possível), para alocacação de espaço no disco, 2) o fato
da remoção de arquivos acarretar em um sério problema de fragmentação do disco.
5 CAPÍTULO 3. SISTEMA DE
Este método foi criado para possibilitar o aumento ou redução do tamanho de um ar-
quivo após a sua criação. Neste caso, o disco é dividido em blocos de tamanho igual, sendo
que a entrada do arquivo precisa guardar o endereço do primeiro bloco onde o arquivo
está inserido. A primeira palavra de cada bloco indica o endereço do bloco subseqüente
onde as informações estão armazenadas no arquivo, como ilustrado na Figura 3.6.
Desta forma qualquer bloco do disco pode ser utilizado, sem ocorrência de fragmenta-
ção externa. Este método tem duas desvantagens. A primeira é que o acesso randômico é
lento, pois para acessar um bloco é necessário carregar, individualmente, todos os blocos
antecessores a ele. Outra desvantagem é que a informação contida no bloco não é uma
3.5. IMPLEMENTAÇÃO DO SISTEMA DE 5
potência de dois, porque a primeira palavra do bloco é utilizada como um ponteiro para
o próximo bloco.
3.5.4 Nós-Índice
Neste método é associado a cada arquivo um nó-i (nó índice) que lista os atributos e
endereços em disco dos blocos do arquivo. Se o arquivo for pequeno, todos os endereços
dos blocos do arquivo estarão disponíveis no próprio nó-i. Se não couber todos os blocos
do arquivo em uma entrada do nó-i, o mesmo poderá apontar para outro nó que contém
mais endereços de blocos, e assim sucessivamente, até que todo o arquivo seja mapeado,
conforme ilustrado na Figura 3.8.
3
O sistema de arquivos FAT (Tabela de Alocação de Arquivos) foi criado em 1977
por Bill Gates e Marc McDonald, sendo o sistema de arquivos suportado pela Microsoft
4
Mi- crosoft (2006) MS-DOS (Sistema Operacional de Disco). Esse sistema foi,
Essa versão inicial de desenvolvimento, denominada FAT12, tinha este nome devido
ao tamanho de cada entrada na tabela de alocação, medida em número de bits. Devido ao
tamanho de cada entrada, 12 bits, esse sistema tinha a capacidade de endereçar apenas 212
(4096) entradas em sua tabela de alocação, sendo cada uma delas associada a no máximo
16 setores consecutivos no disco. O conjunto de setores consecutivos associado a cada
entrada da tabela de alocação é denominado cluster. Como geralmente o tamanho de
um setor é de 512 bytes, cada cluster poderia representar no máximo 8 kilobytes, e
como o sistema FAT12 pode endereçar até 4096 clusters, o tamanho máximo do disco
estava limitado a 32 megabytes, o que era suficiente para os sistemas da época que
utilizavam o MS-DOS. Atualmente, devido a suas limitações, o sistema FAT12 encontra-
se obsoleto, não sendo mais utilizado.
216 (65536) clusters. A capacidade de cada cluster na FAT16 também foi alterada, agora
seja, considerando um setor de 512 bytes, essa capacidade seria de 32 kilobytes. Assim,
a FAT16 aumentou consideravelmente a capacidade máxima de endereçamento, quando
comparada à FAT12, podendo endereçar 2 (dois) gigabytes. Esse sistema de arquivos
ainda é muito utilizado em dispositivos com capacidade de até 2 gigabytes, como por
exemplo, a maioria das memórias de estado sólido utilizadas em cartões de memória de
máquinas fotográficas digitais.
Com o lançamento do sistema operacional Windows 95, realizou-se uma pequena al-
teração na identificação dos arquivos no sistema de arquivos FAT16. Esse novo sistema,
5
denominado VFAT tinha a capacidade de nomear os arquivos com até 255 caracteres em
contraste com os 8 caracteres dos sistemas anteriores.
Em uma versão mais recente, com os crescentes avanços nos dispositivos de massa,
necessitou-se desenvolver um sistema de arquivos para unidades superiores a 2 gigabytes.
Para tal propósito, foi criada uma nova versão de FAT, denominada FAT32. Embora este
sistema esteja associado ao número 32, atualmente usa-se apenas 28 bits para representar
cada entrada na tabela de alocação de arquivos. Diferente dos sistemas anteriores, esse
sistema não consegue endereçar 228 clusters por ser definido que o número máximo de
setores que uma unidade pode ter é representado por um número de 32 bits, o que limita
o sistema de arquivos FAT32 a 2 terabytes de capacidade máxima (Tanenbaum, 2001).
Uma vez que o trabalho proposto nesta dissertação até a presente data restringiu-se ao
ambiente acadêmico, não tendo aplicação comercial, ele não é afetado por essa licença,
tação, têem um padrão entre si. Caso a unidade esteja particionada, ou seja, dividida em
vários volumes lógicos, a unidade seguirá um padrão, como ilustrado na Figura 3.9. Como
pode ser observado, o primeiro setor desta unidade é constituído do MBR 6 (Setor de Boot
partição constituído por uma área reservada chamada setor de boot, seguindo-se pela
região da FAT, ou seja, a tabela de alocação de arquivos, que por motivo de
segurança, geralmente tem seu conteúdo duplicado para possibilitar a restauração da
tabela de uma segunda cópia, caso a primeira venha a estar corrompida. A FAT é
seguida pela região reservada para o diretório raíz, a qual contém as informações dos
arquivos e diretórios armazenados nele. Logo em seguida, é localizada a região dos dados
dos arquivos e sub- diretórios, onde finalmente encontra-se o conteúdo dos arquivos.
FAT16.
Os dois primeiros campos da FAT são sempre reservados, sendo que os demais des-
crevem a utilização de seus agrupamentos correspondentes e são interpretados conforme
descrito na Tabela 3.3
6 CAPÍTULO 3. SISTEMA DE
Valor Descrição
0000 cluster não utilizado, disponível
0xFFF0-0xFFF6 clusters reservados
0xFFF7 cluster com defeito
0xFFF8-0xFFFF último cluster utilizado pelo arquivo
outro valor próximo cluster utilizado pelo arquivo
No diretório raíz, cada entrada de arquivo contém o número do primeiro cluster atri-
buído a ele na área de dados, que representa a sua entrada na FAT. A partir do conteúdo
desse índice na FAT é possível identificar os demais clusters pertencentes ao arquivo, re-
petindo o processo até encontrar uma entrada na FAT com o valor de final de arquivo
(0xFFF8 a 0xFFFF).
Geralmente, os sistemas de arquivos FAT16 tem mais de uma cópia da FAT em cada
partição, para garantir a integridade das informações. As alterações ocorrem simultanea-
mente em todas as cópias das FATs. Na ocorrência de algum erro em alguma das cópias,
o sistema poderá restaurar-se a partir de outra FAT não corrompida.
4. Se o resultado for um valor final de arquivo, o mesmo não tem mais nenhum cluster
na partição. Caso contrário, o resultado é o número do próximo cluster.
7
O passo 2 é necessário devido cada índice ocupar 16 bits, ou seja, 2 bytes
3.6. SISTEMA DE ARQUIVOS 6
O diretório raíz é localizado logo após os setores ocupados pela FAT. Cada arquivo ou
diretório presente no diretório raíz dessa partição possui uma entrada de 32 bytes
contendo o nome do arquivo, a extensão, a data de quando foi criado ou quando foi
feita a última modificação, o tamanho em bytes e o número do cluster onde o arquivo
começa.
Deslocamento Atributo
0 Apenas leitura
1 Arquivo oculto
2 Arquivo de sistema
3 Identificação de volume
4 Arquivo do tipo diretório
5 Arquivo regular
6 não utilizado
7 não utilizado
Tabela 3.5: Atributos do Arquivo
6 CAPÍTULO 3. SISTEMA DE
O Sistema de Arquivos FAT16 foi abordado com maiores detalhes por ter sido o
escolhido na execução deste trabalho.
Capítulo
Plataforma de Desenvolvimento
4.1 Introdução
Os dispositivos eletrônicos estão cada vez mais presentes no cotidiano do ser humano,
aplicados para os mais variados fins. O desenvolvimento desses dispositivos pode seguir
65
6 CAPÍTULO 4. PLATAFORMA DE
O modelo baseado em ASIC é indicado para aplicações estáticas com grande volume
de fabricação, permitindo o alcance de um bom desempenho na execução de suas tare-
fas devido ao seu desenvolvimento ser focado na resolução específica de um problema.
Contudo, com a mudança do ambiente, em alguns casos, faz-se necessária a mudança de
implementação desses circuitos, visando melhor execução de suas tarefas. Tal mudança
sos de interconexão. Desse modo, circuitos customizados podem ser mapeados na FPGA
computando-se as funções lógicas nos blocos lógicos e usando os recursos de interconexão
para agregar os blocos, formando o circuito necessário. A borda externa do arranjo con-
siste em blocos especiais capazes de realizar operações de entrada e saída. A Figura 4.1
ilustra um diagrama esquemático dos blocos internos da FPGA.
As FPGAs foram desenvolvidas tendo-se em mente que o uso futuro dos dispositivos
lógicos programáveis, chamados SoPC3, consistem em sistemas que integram toda a fun-
cionalidade necessária (processadores, periféricos, memória, entre outras coisas) em um
único chip (Bonato et al., 2004a,b). Para atingir esse objetivo, os dispositivos desenvolvi-
dos possuem grande capacidade e diversidade de elementos lógicos internos. Além disso,
conseguem acessar dispositivos externos com alta velocidade.
figurável é o Nios II (Altera, 2006b,c) da empresa Altera (Altera, 2006a). Este proces-
sador, que é utilizado na execução do Sistema de Arquivos implementado nesse trabalho
é descrito na próxima seção.
• dado de 32 bits;
• pipeline de 6 estágios, e
O Nios II/e (econômico9) foi desenvolvido visando o menor tamanho possível, ocu-
pando o mínimo de recursos da FPGA, mas mantendo a compatibilidade com as outras
versões quanto ao seu repertório de instruções.
Esse processador deve ser utilizado em projetos que não demandam um alto desem-
penho, economizando recursos. O número de elementos lógicos utilizados na concepção
9
Economy
4.2. PROCESSADOR NIOS 7
O Nios II/s (padrão10) foi desenvolvido para ser um processador pequeno com um
alto desempenho. Essa versão tem um desempenho aproximadamente 400% maior que o
Nios II/e e ocupa aproximadamente 25% menos lógica que o Nios II/f, caracterizando-se
como uma versão intermediária.
• pipeline de 5 estágios, e
Na Figura 4.3 é feita uma comparação entre as 3 (três) versões do processador Nios II
com o seu antecessor, o Nios. Essa comparação é realizada em termos de elementos
lógicos consumidos e desempenho alcançado. Na Figura 4.3 podem ser notadas as
vantagens de cada versão do processador Nios II. Em comparação com a primeira
geração do processador Nios, a versão econômica da segunda geração tem a
vantagem de ocupar
10
standard
7 CAPÍTULO 4. PLATAFORMA DE
Após a apresentação das versões do processador Nios II, na próxima seção são apre-
sentadas as famílias de FPGAs da empresa Altera que servem de suporte a tais processa-
dores, ou seja, FPGAs nas quais os processadores são implementados.
A empresa Altera provê uma vasta família de FPGAs que dão suporte ao processador
Nios II. Essas famílias vão desde FPGAs mais simples, utilizadas em projetos pequenos,
que não necessitam de alto desempenho, até dispositivos altamente densos, a serem uti-
lizados em projetos complexos. Tais famílias são apresentadas com maiores detalhes nas
próximas seções.
4.2.4.1 Cyclone
A família Cyclone dá suporte ao processador Nios II com o menor custo por FPGA,
sendo utilizada principalmente por aplicações que demandam um baixo orçamento.
Com até 20.060 elementos lógicos e 288 kilobits de memória RAM, a família Cyclone
é uma alternativa para aplicações ASICs de densidade moderada, sendo uma solução
reconfigurável com custo similar às soluções tradidicionais.
Desde seu lançamento já foram vendidas milhões de unidades, sendo utilizadas no
mundo inteiro nas mais diversas áreas de atuação.
4.2.4.2 Cyclone II
Com até 68.416 elementos lógicos e 1.1 megabits de memória embutida,a família
Cy- clone II é a alternativa mais barata na análise custo/benefício.
Como a família Cyclone, a família Cyclone II foi densenvolvida para atender aplica-
ções de baixo custo. Por ter alta densidade, esta FPGA pode suportar sistemas digitais
complexos em uma única pastilha, diminuindo o custo de produção, o que a torna uma
4 CAPÍTULO 4. PLATAFORMA DE
alternativa atrativa a projetos complexos desenvolvidos em ASICs que não necessitem alto
desempenho.
4.2.4.3 Stratix
O presente trabalho irá utilzar kits de desenvolvimento que são compostos por FPGAs
da família Stratix.
4.2.4.4 Stratix GX
Essa é uma família especial de FPGAs derivada da família Stratix, desenvolvida es-
pecialmente para aplicações que necessitem de uma alta velocidade na transferência de
dados.
4.2.4.5 Stratix II
Essa família tem o maior desempenho e maior densidade de totas as famílias de FPGAs
da Altera, sendo até 50% mais rápida, disponibilizando mais que o dobro de capacidade
lógica da primeira geração de FPGAs Stratix.
Essa família pode ter até 180.000 elementos lógicos e 9 megabits de memória RAM,
4.2. PROCESSADOR NIOS 7
4.2.5 Benefícios
uma tarefa fácil, sendo encapsulado em um chip programável, diminuindo o custo, facili-
tando novas modificações, aumentando o desempenho, obtendo um sistema que se
adequa perfeitamente às necessidades do projeto. Os principais benefícios dos
processadores re- configuráveis são descritos nas próximas seções.
Uma vez determinados o processador e a família de FPGAs a ser utilizada neste trabalho,
na próxima seção serão ilustradas as demais ferramentas utilizadas no desenvolvimento
do mesmo.
• 16 megabytes de SDRAM;
• 2 displays de 7 segmentos;
• 1 oscilador de 50 MHz;
Nas Figuras 4.4 e 4.5 são ilustrados o kit de desenvolvimento Nios II Edição Stratix
e o seu diagrama de blocos, respectivamente.
11
LEDs
4.3. FERRAMENTAS 7
12
O Nios II IDE é executado sobre a plataforma Eclipse , que é uma plataforma
para construção de ambientes de desenvolvimento integrados que podem ser utili-
zados para criar as mais diversas aplicações, como websites, programas embedded
Java, programas C++ e Enterprise JavaBeans.
Desenvolvido
A câmera para a aquisição das imagens é composta pelo sensor de imagem ov7620
de tecnologia CMOS, vista na figura 4.9. A câmera pode fornecer imagens coloridas
com resolução de 320x240 pixels a 30 frames/segundo ou em tons de cinza com
resolução de 640x480 pixels a 60 frames/segundo. A definição do tipo de imagem e
diversos outros parâmetros são configurados através de uma interface I2C presente
na câmera. Essa câmera também possui uma lente com 6mm de comprimento focal
e 1,6mm de abertura , proporcionando abertura focal de 43 graus na horizontal e
33 graus na vertical.
4.3. FERRAMENTAS 8
Visão
Traseira
Visão Lado
Esquerdo
Visão
Lado Direito
Visão
Dianteira
ção 320 x 240 pontos a 60 frames por segundo com 8 bits de resolução por ponto.
Estas imagens, após captadas, passam por um processo de análise. Esta análise
consiste em verificar o conteúdo da seqüência dos últimos frames adquiridos pelo
robô. Para tanto, faz-se necessário a disponibilização de um dispositivo de armaze-
namento. Uma vez que as imagens são captadas em alta freqüência, este dispositivo
deve ser de alta capacidade, recurso este indisponível no kit de desenvolvimento.
Assim, o atual trabalho tem por objetivo prover uma ferramenta de suporte a essa
limitação de espaço de armazenamento. Cada frame armazenado ocupa 76800 (320
x 240) bytes, permitindo que o cartão de maior capacidade utilizado nesse projeto
(de 1 Gigabyte) armazene acima de 10000 frames, equivalente a 40 segundos de
operação do sistema composto por 4 câmeras que adquire 60 frames por segundo
cada, quantidade suficiente para a análise.
4.4. CONSIDERAÇÕES FINAIS 87
Implementação e Resultados
5.1 Introdução
89
9 CAPÍTULO 5. IMPLEMENTAÇÃO E
Figura 5.2: Cartão TransFlash da Sandisk de 64 Megabytes de capacidade com seu adap-
tador para interface SD
software pelo processador Nios II, que é o mestre da comunicação. Para cada uma
dessas portas foi associado um pino externo a FPGA para ser acoplado ao conector
do cartão.
Além dos 4 sinais da interface SPI, os cartões SD/MMC possuem 3 pinos de ali-
mentação, 2 de terra e um de fase, totalizando 7 pinos na interface. Um dos cabos
confeccionados no decorrer do projeto é demonstrado acoplado a placa de desenvol-
vimento na Figura 5.7.
1
Chip Select
2
Master In Slave Out
3
Master Out Slave In
9 CAPÍTULO 5. IMPLEMENTAÇÃO E
Após a verificação das conexões o conector foi inserido nos pinos de entrada e saída
reservados na plataforma de desenvolvimento. Primeiramente, foi conferido através
de um multímetro os pinos de alimentação do cartão, constatando que o pino 4 do
conector estava ligado em 3,3 Volts e os pinos 3 e 6 do conector estavam ligados ao
terra. Após examinar os pinos de alimentação, foi concebida uma rotina para gerar
sinais nos pinos de saída (MOSI, Clock e CS) e uma rotina para ler o conteúdo
do pino de entrada (MISO), o que foi satisfatoriamente examinado, validando a
inter- face física de conexão entre o cartão de memória e a plataforma de
desenvolvimento.
O conjunto de funções disponíveis por essa camada de abstração pode ser utilizado
por qualquer sistema que necessite acessar o cartão, provendo rotinas de baixo
nível. Assim, o usuário desta camada não precisará conhecer como ocorre o
funcionamento interno do cartão, acessando-o de forma transparente através das
rotinas disponíveis. Esta camada tem uma limitação de desempenho por realizar
todo o controle do dispositivo via software, o que torna a comunicação lenta.
9 CAPÍTULO 5. IMPLEMENTAÇÃO E
5.4.1 Ligar_Cartao
conector, ou, quando for executada uma operação de reset no cartão ou no sistema.
Não é passado parâmetro para essa função e ela retorna 0 (zero), caso o cartão seja
inicializado satisfatoriamente, ou, um número negativo na ocorrência de algum erro.
5.4.2 Ler_Setor
Com esta função é possível ler um setor do cartão com 512 bytes de tamanho. É
passado como parâmetro o número do setor a ser lido e uma variável indicando o
local onde o setor lido deve ser armazenado. Esta função retorna 0 (zero), caso a
leitura seja efetuada com sucesso e um número negativo na ocorrência de falha.
5.4.3 Escrever_Setor
Esta função é utilizada para escrever um setor de 512 bytes no cartão. Ela recebe
como parâmetro o número do setor a ser escrito e uma variável indicando o local
onde encontra-se o conteúdo a ser escrito no cartão. Na ocorrência de alguma falha
na operação é retornado um número negativo. Caso contrário, a função retorna 0
(zero).
5.5. BIBLIOTECA 9
setor, foi implementada uma rotina para verificar a integridade de todos os setores
de cada um dos cartões utilizados. Esta rotina consiste em, a cada iteração,
uma operação de leitura, para verificar que todos os setores foram preenchidos
em todas operações, garantindo que cada bit do cartão pode ser preenchido com 0
4
00 (hexadecimal) / 00000000 (binário
5
0F (hexadecimal) / 00001111 (binário)
6
F0 (hexadecimal) / 11110000 (binário)
7
FF (hexadecimal), 11111111 (binário)
9 CAPÍTULO 5. IMPLEMENTAÇÃO E
5.5.1 inicializar
5.5.2 Abrir_Arquivo_Escrita
esta oferecida pela função Abrir_Arquivo_Escrita. Esta função recebe como pa-
râmetro o nome do arquivo a ser aberto para leitura, e seu valor de retorno é um
número negativo caso ocorra um erro e, um valor positivo, que representa o índice
do arquivo na tabela de arquivos abertos, caso a operação ocorra com sucesso.
5.5. BIBLIOTECA 9
5.5.3 Escrever_Arquivo
5.5.4 Abrir_Arquivo_Leitura
Antes de ler um arquivo é necessário abri-lo para leitura. Esta operação é realizada
pela função Abrir_Arquivo_Leitura. É passado como parâmetro o nome do
arquivo a ser aberto para leitura, e a função retorna o índice do arquivo na tabela de
arquivos abertos em caso de sucesso na operação e, um valor negativo caso ocorra
um erro.
5.5.5 Ler_Arquivo
Esta função é responsável por ler um arquivo previamente aberto para leitura. São
passados três parâmetros para esta função, o índice do arquivo a ser lido na tabela
de arquivos abertos, uma variável onde os dados lidos serão armazenados e uma
variável indicando o número de bytes a ser lido do arquivo. É retornado um valor
negativo caso ocorra erro na operação, ou, o número de bytes lidos caso contrário.
1 CAPÍTULO 5. IMPLEMENTAÇÃO E
5.5.6 Fechar_Arquivo
Após a utilização do arquivo e, não sendo o mesmo mais necessário à aplicação que
o abriu, é preciso fechá-lo para desalocar seu índice da tabela de arquivos abertos
e atualizar seus atributos. Esta função recebe como parâmetro o índice do arquivo
a ser fechado retornando 0 (zero), caso o arquivo seja fechado com sucesso. Caso
contrário é retornado um valor negativo.
Nesta seção são ilustrados os métodos utilizados para assegurar que o trabalho foi
desenvolvido segundo a especificação padrão FAT16, sendo portável para qualquer
sistema que a possui. A validação do trabalho implementado constitui de duas
etapas, que validam os processos de leitura e escrita no cartão.
8. Desligar o sistema;
Uma vez que a primeira etapa esteja cumprida, resta validar a segunda etapa
(leitura do cartão), cujos passos são descritos a seguir:
10. Comparar o conteúdo escrito pelo computador no passo 3 com o conteúdo lido
pela plataforma de desenvolvimento no passo 9;
O sistema foi testado para diversas imagens, sendo algumas ilustradas na Figura
5.8, demonstrando que o conteúdo escrito pela plataforma de desenvolvimento foi
idên- tico ao conteúdo lido no computador.
1 CAPÍTULO 5. IMPLEMENTAÇÃO E
código.
Conclusões
107
1 CAPÍTULO 6.
objetivo que consiste na análise dessas imagens para a detecção de landmarks na-
turais, ou seja, pontos de referência presentes nessas imagens, que são tema de
doutoramento de Bonato (2005a).
Caso seja necessário analisar as imagens capturadas em modo off-line, ou seja, com
a plataforma de desenvolvimento desligada, o sistema implementado provê suporte
a essa necessidade. O dispositivo de armazenamento, pode facilmente ser transportado
para qualquer computador tipo PC com uma porta USB utilizando um adaptador
USB–SD/MMC. Assim, as imagens armazenadas no cartão de memória são
portadas para outro ambiente, diferente do ambiente que a gerou, mantendo a
integridade do seu conteúdo.
SD/MMC
2
Personal Digital Assistant – Assistente Pessoal Digital
6.1. TRABALHOS FUTUROS 109
estão nesta categoria com densidades cada vez maiores. Entretanto, os modelos
mais recentes mantêm a compatibilidade com o protocolo SPI, possibilitando a atu-
alização do dispositivo utilizado por outro mais evoluído de maior capacidade e
desempenho. Assim, as alterações no protocolo de comunicação e na implemen-
tação não são necessárias, garantindo uma grande escalabilidade ao sistema para
http://www.altera.com/literature/hb/nios2/n2cpunii5v1.pdf −
visitadoem07/2006. 2006b.
ALteR Nios ii software developer’s handbook . site: Nios ii software developer’s handbook.
a
2006c.
Bonato, V.; SancHes, A. K.; FeRnandes, M.; CaRdoso, J. M.; SimÕ es, E. D. V.;
MaRques, E. A real time gesture recognition system for mobile robots. International
Conference on Informatics in Control, Automation and Robotics (ICINCO-2004), p. 207
— 214, 2004a.
111
11 REFERÊNCIAS
Bonato, V.; WoLf, D.; SancHes, A. K.; SimÕ es, E. D. V.; MaRques, E. Formas
de implementação de redes neurais baseada em computação reconfigurável. Brazilian
Symposium on Artificial Neural Networks (SBRB (ICINCO-2004), 2004b.
DataLigHt Incorporation, the future of nand flash memory in the embedded market. site:
http://linuxdevices.com/articles/at6503806063.html - visitado em 07/2006. 2005b.
Denning, P. The working set model for program behavior. Communications of the
ACM, 1968.
FLynn, I. M.; McHoes, A. M. Introdução aos sistemas operacionais. 2 ed. São Paulo,
SP: Pioneira Thomson Learning, 2002.
visitadoem07/2006. 2006a.
Kingston Datatraveler elite and datatraveler elite privacy edition: Advanced security
and high performance white paper. 2006.
MMCA Multimediacard system specification version 4.1. MMCA Home Page, 2005.
Samsung 2006.
Disponível em http://www.samsung.com (Acessado em 7/2006)
Seagate Barracuda es: Highest-capacity drives for the enterprise, datasheet. 2006.
SonyERicson
Home page. site: http://www.sonyericson.com - visitado em 07/2006.
2006.
Tanenbaum, A. S. Modern operating systems. 2 ed. Upper Saddle River, NJ: Prentice–
Hall, Inc., 2001.
WeLLs, T. What next-gen dvd will survive the next three years? 2005.