O design e o desenvolvimento de sistemas embarcados são impulsionados pelos requisitos das aplicações e pelas tecnologias de TI. Com a inovação e o desenvolvimento contínuos da tecnologia microeletrônica, o nível de integração e o nível de processo dos circuitos integrados em grande escala têm sido continuamente aprimorados. Em particular, a introdução do sistema operacional embarcado em tempo real (RTOS) fornece o suporte básico e uma plataforma de desenvolvimento de alta eficiência para o desenvolvimento de software de aplicação de sistemas embarcados complexos.
Processo de projeto de sistemas embarcados
Fase de projeto
A fase inicial do design conceitual de um novo produto envolve alguma previsão do produto com base em previsões de mercado, necessidades dos clientes e desenvolvimento tecnológico. Ao planejar um produto, é elaborado um caso de negócios para o produto com estimativas do número de unidades vendidas, preço e lucro. Isso leva à criação de um layout inicial do produto, especificações de design e plano de marketing do produto. Nesta fase, designers industriais também podem estar envolvidos na criação de um novo conceito de embalagem do produto.
Não se esqueça de que o preço de venda deve cobrir os custos de marketing, design e desenvolvimento da empresa, além do custo de fabricação de cada unidade do produto. Isso depende do volume de vendas, mas um nível de preço de duas ou três vezes o custo de produção de uma unidade do produto não é incomum.

Fase de Desenvolvimento
A maior parte dos esforços de implementação de hardware e software ocorre no final da fase de projeto e durante a fase de desenvolvimento. A análise crítica das decisões de projeto ajuda a determinar se é fisicamente possível implementar um conceito de projeto com base nas especificações do projeto. Modelos elétricos e de software são frequentemente criados antes da análise das decisões de projeto. Em seguida, um pequeno número de protótipos é projetado, construído e usado para testes mais detalhados de hardware e software.
fase de produção
Finalmente, na fase de produção, é produzida uma grande quantidade do produto. Primeiro, geralmente é criado um pequeno lote piloto para testes e avaliações adicionais antes do início da produção em massa. Os engenheiros de qualidade trabalham continuamente para melhorar a qualidade do produto e do processo. Os engenheiros de suporte lidam com as mudanças que se seguem à introdução de um novo produto e fornecem suporte técnico para o produto. Dadas as tendências atuais de globalização, a produção em massa de um novo dispositivo embarcado geralmente ocorre em outro país, onde é mais econômico. Para muitos dispositivos incorporados, todo o processo leva de seis meses a um ano, mas o mercado competitivo está constantemente forçando um ciclo de vida mais curto para os produtos.
Desenvolvimento de um projeto de sistema embarcado
Os principais esforços de desenvolvimento de software e projeto de engenharia ocorrem na fase de desenvolvimento, que será descrita agora com mais detalhes. Em primeiro lugar, os projetistas devem escolher o processador e o sistema operacional. A escolha de um processador para um dispositivo embarcado envolve muitos fatores a serem considerados, como preço, desempenho, consumo de energia e suporte de software.

escolha o processador
Os fabricantes fornecem manuais que descrevem seus processadores e geralmente fornecem aos desenvolvedores um desenvolvimento completo de uma placa de referência que pode ser usada como ponto de partida ao desenvolver um novo projeto de computador que utilize esse processador. Uma descrição detalhada de cada processador individual, dispositivo de memória e todos os chips necessários está além do escopo deste guia, mas algumas das propriedades de hardware mais gerais que afetam diretamente a criação de software serão discutidas posteriormente.
conectar dispositivos de hardware ao processador
Depois que o projetista de hardware do sistema embarcado seleciona o processador e os dispositivos de memória correspondentes, a próxima etapa é adicionar os dispositivos de E/S de hardware e a estrutura de barramento correspondente necessária para conectar os dispositivos exigidos ao processador. O projeto de dispositivos embarcados envolve a seleção e a conexão do hardware necessário para vários dispositivos de E/S exigidos no novo projeto.
Testar, depurar e redesenhar
Após inserir cuidadosamente o diagrama esquemático do projeto, uma placa de circuito impresso (PCB) é projetada para o dispositivo incorporado usando um sistema de projeto assistido por computador (CAD) de placas de circuito impresso. Essa ferramenta importa informações de conexão de pinos de um diagrama de circuito e as usa para projetar e testar os condutores de cobre usados para conectar circuitos integrados (ICS) em uma placa de circuito impresso. Várias placas de circuito impresso são criadas, preenchidas com os componentes necessários e, em seguida, utilizadas para realizar testes de software extensivos no novo projeto. Quaisquer erros de projeto de hardware detectados durante os testes exigirão uma alteração no diagrama do circuito, modificação do projeto da placa de circuito impresso e um novo projeto. Isso aumentará o ciclo de produção das placas de circuito impresso e os testes, o que aumentará o tempo de desenvolvimento de acordo.
escolha o sistema operacional
As ferramentas de desenvolvimento de software geralmente são fornecidas com o sistema operacional. Como o sistema operacional é escrito em C / C++, a geração de um novo sistema operacional requer um compilador, editor de links, depurador e ferramentas de imagem binária. As mesmas ferramentas geralmente são usadas para o desenvolvimento de aplicativos.
O desenvolvimento de software ocorre em paralelo com o desenvolvimento de hardware, a fim de reduzir o tempo total de desenvolvimento do produto. Isso se torna ainda mais importante, dado o ciclo de vida cada vez mais curto dos dispositivos embarcados atuais. Para o desenvolvimento e teste de software, você pode usar ferramentas de emulação e placas de computador embarcadas com hardware semelhante executando o mesmo sistema operacional antes que uma nova plataforma de hardware esteja disponível. Como a maior parte do código é escrita em C / C++/C#, a maior parte do software pode até mesmo ser desenvolvida e testada em outro processador ou emulador. O código é então recompilado para o novo processador para a última rodada de desenvolvimento e teste quando o novo hardware estiver disponível.
Quando você tiver concluído o desenvolvimento do seu software, poderá transferi-lo para um dispositivo real para teste e lançamento final. O Windows Embedded CE possui um emulador ARM junto com ferramentas de desenvolvimento. O emulador permite que você execute seu software em um PC a uma velocidade muito maior do que o hardware real. O emulador pode ser usado para depurar e criar perfis do seu software, e também pode ser usado para desenvolvimento de software para dispositivos remotos.
Tecnologias de memória para dispositivos incorporados
Atualmente, a maioria dos dispositivos incorporados utiliza dois tipos de memória: SDRAM ou, por vezes, SRAM para a memória principal e Flash ou ROM para a memória não volátil. A SDRAM tem um custo por bit de memória significativamente inferior ao da SRAM, mas requer um controlador de hardware mais sofisticado para ciclos periódicos de atualização dinâmica da memória. Uma das decisões mais importantes que deve ser tomada no início do processo de design é a quantidade de memória de cada tipo que o dispositivo necessita.
Memória SDRAM
SDRAM é a abreviação de Synchronous Dynamic Random Access Memory (Memória Dinâmica Síncrona de Acesso Aleatório). Ela usa uma tensão de trabalho de 3,3 V e uma largura de banda de 64 bits. É também a memória dominante há muito tempo, desde o chipset 430TX até o chipset 845, todos suportam SDRAM. A SDRAM bloqueia a CPU e a RAM juntas através do mesmo relógio, de modo que a CPU e a RAM podem compartilhar um ciclo de relógio e trabalhar sincronizadamente na mesma velocidade. A borda ascendente de cada pulso de relógio começa a transferir dados, e a velocidade é 50% maior do que a da memória EDO.
Memória flash
O sistema operacional e os programas aplicativos geralmente são armazenados na memória flash, já que a maioria dos dispositivos incorporados não possui um dispositivo de disco rígido.
Os dispositivos de memória flash armazenam dados em chips flash. Os chips flash contêm um padrão de elétrons que se movem em um loop. Os elétrons são armazenados na célula de memória e se movem para frente e para trás entre os diferentes bits de dados no chip. O número de bits é medido pela velocidade com que os elétrons se movem entre as células, ou bits.
Quando uma alteração é feita em um bit, ela é gravada no bit seguinte. Se dois bits forem alterados ao mesmo tempo, dois novos bytes são adicionados ao programa e assim por diante.
SDRAM vs Flash
A SDRAM é mais rápida do que a memória flash, tornando-a ideal para aplicações que exigem acesso rápido aos dados.
A SDRAM consome menos energia do que a memória flash, tornando-a ideal para dispositivos portáteis.
A SDRAM é mais cara do que a memória flash, tornando-a menos ideal para aplicações em que o custo é uma preocupação.
A memória flash é mais durável do que a SDRAM, por isso é frequentemente utilizada em aplicações em que os dados precisam de ser armazenados durante longos períodos de tempo.
A memória flash tem uma velocidade de leitura muito mais lenta em comparação com a SDRAM.
A memória flash suporta apenas um número limitado de operações de gravação, portanto, o uso de um sistema de memória virtual com paginação sob demanda (como em um PC desktop) com memória flash (em vez de um disco rígido) servindo como um dispositivo de troca de página de memória virtual geralmente não é usado em dispositivos embarcados.




