Dispositivos Intel MAX 10 FPGA sobre UART com o processador Nios II
Informações do produto
O design de referência fornece um aplicativo simples que implementa recursos básicos de configuração remota em sistemas baseados em Nios II para dispositivos FPGA MAX 10. A interface UART incluída no kit de desenvolvimento FPGA MAX 10 é usada em conjunto com o núcleo Altera UART IP para fornecer a funcionalidade de configuração remota. Os dispositivos FPGA MAX10 oferecem a capacidade de armazenar até duas imagens de configuração que aprimoram ainda mais o recurso de atualização remota do sistema.
Abreviações
Abreviação | Descrição |
---|---|
Avalon-MM | Configuração mapeada em memória Avalon Memória flash |
CFM | Interface gráfica do usuário |
ICB | Bit de configuração de inicialização |
MAPA/.map | Mapa de Memória File |
Nios II EDS | Suporte ao Nios II Embedded Design Suite |
PFL | Núcleo IP do carregador flash paralelo |
POF/.pof | Objeto Programador File |
QSPI | Interface periférica serial quádrupla |
RPD/.rpd | Dados brutos de programação |
SBT | Ferramentas de construção de software |
SOF/.sof | Objeto SRAM File |
CARRINHO | Receptor/transmissor assíncrono universal |
UFM | Memória flash do usuário |
Instruções de uso do produto
Pré-requisito
A aplicação deste desenho de referência exige que você tenha o nível de conhecimento ou experiência indicado nas seguintes áreas:
Requisitos:
A seguir estão os requisitos de hardware e software para o projeto de referência:
Design de referência Files
File Nome | Descrição |
---|---|
Imagem_de_fábrica | No modo de configuração de imagens de configuração dupla, CFM1 e CFM2 são combinados em um único armazenamento CFM. |
app_image_1 | Projeto de hardware Quartus II file que substitui app_image_2 durante uma atualização remota do sistema. |
app_image_2 | O código do aplicativo de software Nios II atua como controlador para o projeto do sistema de atualização remota. |
Atualização_do_sistema_remoto.c | |
fábrica_application1.pof | Programação Quartus II file que consiste em imagem de fábrica e imagem da aplicação 1, a ser programada em CFM0 e CFM1 e CFM2 respectivamente no s inicialtage. |
fábrica_application1.rpd | |
aplicação_image_1.rpd | |
aplicação_image_2.rpd | |
Nios_application.pof |
O design de referência fornece um aplicativo simples que implementa recursos básicos de configuração remota em sistemas baseados em Nios II para dispositivos FPGA MAX 10. A interface UART incluída no kit de desenvolvimento FPGA MAX 10 é usada em conjunto com o núcleo Altera UART IP para fornecer a funcionalidade de configuração remota.
Design de referência Files
Atualização remota do sistema com MAX 10 FPGA Overview
Com o recurso de atualização remota do sistema, melhorias e correções de bugs para dispositivos FPGA podem ser feitas remotamente. Em um ambiente de sistema embarcado, o firmware precisa ser atualizado frequentemente através de vários tipos de protocolo, como UART, Ethernet e I2C. Quando o sistema embarcado inclui um FPGA, as atualizações de firmware podem incluir atualizações da imagem de hardware no FPGA.
Os dispositivos FPGA MAX10 oferecem a capacidade de armazenar até duas imagens de configuração que aprimoram ainda mais o recurso de atualização remota do sistema. Uma das imagens será a imagem de backup que será carregada se ocorrer um erro na imagem atual.
Abreviações
Tabela 1: Lista de Abreviaturas
Descrição da abreviatura | |
Avalon-MM | Avalon mapeado em memória |
CFM | Memória flash de configuração |
Interface gráfica do usuário | Interface gráfica do usuário |
ICB | Bit de configuração de inicialização |
MAPA/.map | Mapa de Memória File |
Nios II EDS | Suporte ao Nios II Embedded Design Suite |
PFL | Núcleo IP do carregador flash paralelo |
POF/.pof | Objeto Programador File |
- Corporação Intel. Todos os direitos reservados. Intel, o logotipo Intel, as palavras e logotipos Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus e Stratix são marcas comerciais da Intel Corporation ou de suas subsidiárias nos Estados Unidos e/ou em outros países. A Intel garante o desempenho de seus produtos FPGA e semicondutores de acordo com as especificações atuais de acordo com a garantia padrão da Intel, mas reserva-se o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento sem aviso prévio. A Intel não assume nenhuma responsabilidade decorrente do aplicativo ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Intel. Os clientes da Intel são aconselhados a obter a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços.
- Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
Pré-requisito
Abreviação
QSPI |
Descrição
Interface periférica serial quádrupla |
RPD/.rpd | Dados brutos de programação |
SBT | Ferramentas de construção de software |
SOF/.sof | Objeto SRAM File |
UART | Receptor/transmissor assíncrono universal |
UFM | Memória flash do usuário |
Pré-requisito
- A aplicação deste desenho de referência exige que você tenha o nível de conhecimento ou experiência indicado nas seguintes áreas:
- Conhecimento prático dos sistemas Nios II e das ferramentas para construí-los. Esses sistemas e ferramentas incluem o software Quartus® II, Qsys e o Nios II EDS.
- Conhecimento de metodologias e ferramentas de configuração de FPGA Intel, como configuração interna MAX 10 FPGA, recurso de atualização remota de sistema e PFL.
Requisitos
- A seguir estão os requisitos de hardware e software para o projeto de referência:
- Kit de desenvolvimento MAX 10 FPGA
- Quartus II versão 15.0 com Nios II EDS
- Um computador com driver e interface UART funcionando
- Qualquer binário/hexadecimal file editor
Design de referência Files
Tabela 2: Projeto Files Incluído no Design de Referência
File Nome
Imagem_de_fábrica |
Descrição
• Projeto de hardware Quartus II file para ser armazenado em CFM0. • A imagem fallback/imagem de fábrica a ser utilizada quando ocorrer o erro no download da imagem da aplicação. |
app_image_1 | • Projeto de hardware Quartus II file para ser armazenado em CFM1 e CFM2.(1)
• A imagem inicial do aplicativo carregada no dispositivo. |
- No modo de configuração de imagens de configuração dupla, CFM1 e CFM2 são combinados em um único armazenamento CFM.
File Nome
app_image_2 |
Descrição
Projeto de hardware Quartus II file que substitui app_image_2 durante a atualização remota do sistema. |
Sistema_remoto_atualização.c | Código do aplicativo de software Nios II atuando como controlador para o projeto do sistema de atualização remota. |
Terminal remoto.exe | • Executável file com uma GUI.
• Funciona como terminal para o host interagir com o kit de desenvolvimento MAX 10 FPGA. • Envia dados de programação através de UART. • O código fonte deste terminal está incluído. |
Tabela 3: Mestre Files Incluído no Design de Referência
Você pode usar esses mestres files para o projeto de referência sem compilar o projeto files.
File Nome
factory_application1.pof factory_application1.rpd |
Descrição
Programação Quartus II file que consiste na imagem de fábrica e na imagem do aplicativo 1, a serem programadas em CFM0 e CFM1 e CFM2 respectivamente nos s iniciaistage. |
factory_application2.pof factory_application2.rpd | • Programação Quartus II file que consiste na imagem de fábrica e na imagem do aplicativo 2.
• A imagem do aplicativo 2 será extraída posteriormente para substituir a imagem do aplicativo 1 durante a atualização remota do sistema, denominada application_image_2.rpd abaixo. |
aplicação_image_1.rpd | Dados brutos de programação do Quartus II file que contêm apenas a imagem 1 do aplicativo. |
aplicação_image_2.rpd | Dados brutos de programação do Quartus II file que contém apenas a imagem 2 do aplicativo. |
Nios_application.pof | • Programação file que consiste no aplicativo de software do processador Nios II .hex file apenas.
• Para ser programado em flash QSPI externo. |
pfl.sof | • Quarto II .sof contendo PFL.
• Programado em flash QSPI no kit de desenvolvimento FPGA MAX 10. |
Descrição Funcional do Design de Referência
Processador Nios II Gen2
- O processador Nios II Gen2 no design de referência tem as seguintes funções:
- Um barramento mestre que lida com todas as operações de interface com o núcleo Altera On-Chip Flash IP, incluindo leitura, gravação e apagamento.
- Fornece um algoritmo em software para receber o fluxo de bits de programação de um computador host e acionar a reconfiguração por meio do núcleo IP de configuração dupla.
- Você precisa definir o vetor de reinicialização do processador de acordo. Isso é para garantir que o processador inicialize o código de aplicativo correto do UFM ou do flash QSPI externo.
- Observação: Se o código do aplicativo Nios II for grande, a Intel recomenda que você armazene o código do aplicativo no flash QSPI externo. Neste design de referência, o vetor de redefinição aponta para o flash QSPI externo onde o código do aplicativo Nios II está armazenado.
Informações relacionadas
- Nios II Gen2 Tutorial de desenvolvimento de hardware
- Fornece mais informações sobre o desenvolvimento do processador Nios II Gen2.
Núcleo IP Flash On-Chip Altera
- O núcleo Altera On-Chip Flash IP funciona como uma interface para o processador Nios II realizar uma operação de leitura, gravação ou apagamento no CFM e UFM. O núcleo Altera On-Chip Flash IP permite acessar, apagar e atualizar o CFM com um novo fluxo de bits de configuração. O editor de parâmetros Altera On-Chip Flash IP mostra uma faixa de endereços pré-determinada para cada setor de memória.
Informações relacionadas
- Núcleo IP Flash On-Chip Altera
- Fornece mais informações sobre o Altera On-Chip Flash IP Core.
Núcleo IP de configuração dupla Altera
- Você pode usar o núcleo Altera Dual Configuration IP para acessar o bloco de atualização remota do sistema em dispositivos MAX 10 FPGA. O núcleo Altera Dual Configuration IP permite acionar a reconfiguração assim que a nova imagem for baixada.
Informações relacionadas
- Núcleo IP de configuração dupla Altera
- Fornece mais informações sobre o Altera Dual Configuration IP Core
Núcleo IP Altera UART
- O núcleo UART IP permite a comunicação de fluxos de caracteres seriais entre um sistema embarcado no MAX 10 FPGA e um dispositivo externo. Como mestre Avalon-MM, o processador Nios II se comunica com o núcleo UART IP, que é um escravo Avalon-MM. Essa comunicação é feita lendo e escrevendo registros de controle e dados.
- O núcleo implementa o tempo do protocolo RS-232 e fornece os seguintes recursos:
- taxa de transmissão ajustável, paridade, parada e bits de dados
- sinais de controle de fluxo RTS/CTS opcionais
Informações relacionadas
- Núcleo UART
- Fornece mais informações sobre o UART Core.
Núcleo IP do controlador Quad SPI genérico
- O núcleo IP do controlador Quad SPI genérico funciona como uma interface entre o MAX 10 FPGA, o flash externo e o flash QSPI integrado. O núcleo fornece acesso ao flash QSPI por meio de operações de leitura, gravação e apagamento.
Quando o aplicativo Nios II se expande com mais instruções, o file tamanho do hexadecimal file gerado a partir do aplicativo Nios II será maior. Além de um certo limite de tamanho, o UFM não terá espaço suficiente para armazenar o hexadecimal da aplicação. file. Para resolver isso, você pode usar o flash QSPI externo disponível no kit de desenvolvimento MAX 10 FPGA para armazenar o hexadecimal da aplicação. file.
O design do aplicativo de software Nios II EDS
- O design de referência inclui o código do aplicativo de software Nios II que controla o design do sistema de atualização remota. O código do aplicativo de software Nios II responde ao terminal host por meio do UART, executando instruções específicas.
Atualizando Imagens de Aplicativos Remotamente
- Depois de transmitir um fluxo de bits de programação file usando o Terminal Remoto, o aplicativo de software Nios II foi projetado para fazer o seguinte:
- Defina o registro de controle principal Altera On-Chip Flash IP para desproteger o setor CFM1 e 2.
- Execute a operação de apagamento de setor no CFM1 e CFM2. O software pesquisa o registro de status do núcleo Altera On-Chip Flash IP para garantir que o apagamento bem-sucedido foi concluído.
- Receba 4 bytes de fluxo de bits por vez do stdin. A entrada e a saída padrão podem ser usadas para receber dados diretamente do terminal host e imprimir a saída nele. Os tipos de opções de entrada e saída padrão podem ser definidos por meio do Editor BSP na ferramenta Nios II Eclipse Build.
- Inverte a ordem dos bits para cada byte.
- Observação: Devido à configuração do Altera On-Chip Flash IP Core, cada byte de dados precisa ser revertido antes de gravá-lo no CFM.
- Comece a gravar 4 bytes de dados de uma vez em CFM1 e CFM2. Este processo continua até o final do fluxo de bits de programação.
- Pesquisa o registro de status do Altera On-Chip Flash IP para garantir uma operação de gravação bem-sucedida. Solicita uma mensagem para indicar que a transmissão foi concluída.
- Observação: Se a operação de gravação falhar, o terminal interromperá o processo de envio do fluxo de bits e gerará uma mensagem de erro.
- Define o Registro de Controle para proteger novamente CFM1 e CFM2 para evitar qualquer operação de gravação indesejada.
Informações relacionadas
- Geração de pof por meio de programação de conversão Fileestá ligado
- Fornece informações sobre a criação de rpd files durante a programação de conversão files.
Acionando a reconfiguração remotamente
- Depois de selecionar a operação de reconfiguração do acionador no Terminal Remoto host, o aplicativo de software Nios II fará o seguinte:
- Receba o comando da entrada padrão.
- Inicie a reconfiguração com as duas operações de gravação a seguir:
- Escreva 0x03 no endereço de deslocamento de 0x01 no núcleo IP de configuração dupla. Esta operação substitui o pino CONFIG_SEL físico e define a Imagem 1 como a próxima imagem de configuração de inicialização.
- Escreva 0x01 no endereço de deslocamento de 0x00 no núcleo IP de configuração dupla. Esta operação desencadeia a reconfiguração da imagem do aplicativo em CFM1 e CFM2
Passo a passo do Design de Referência
Gerando Programação Files
- Você deve gerar a seguinte programação files antes de poder usar a atualização remota do sistema no kit de desenvolvimento MAX 10 FPGA:
Para programação QSPI:
- suave – usar o pfl.sof incluído no design de referência ou você pode optar por criar um .sof diferente contendo seu próprio design PFL
- pof—configuração file gerado a partir de um .hex e programado no flash QSPI.
- Para Atualização remota do sistema:
- pof—configuração file gerado a partir de um .sof e programado no flash interno.
- rpd—contém os dados do flash interno que incluem configurações ICB, CFM0, CFM1 e UFM.
- mapa - contém o endereço para cada setor de memória das configurações do ICB, CFM0, CFM1 e UFM.
Gerando files para programação QSPI
Para gerar o .pof file para programação QSPI, execute as seguintes etapas:
- Construa o projeto Nios II e gere HEX file.
- Observação: Consulte AN730: Métodos de inicialização do processador Nios II em dispositivos MAX 10 para obter informações sobre como construir o projeto Nios II e gerar HEX file.
- No File menu, clique em Converter Programação Files.
- Em programação de saída file, selecione Objeto Programador File (.pof) na Programação file lista de tipos.
- Na lista Modo, selecione Serial passivo de 1 bit.
- Na lista Dispositivo de configuração, selecione CFI_512Mb.
- No File caixa de nome, especifique o file nome para a programação file você deseja criar.
- Na entrada files para converter a lista, remova a linha de dados Opções e SOF. Clique em Adicionar dados hexadecimais e uma caixa de diálogo Adicionar dados hexadecimais será exibida. Na caixa Adicionar dados hexadecimais, selecione Endereçamento absoluto e insira o .hex file gerado a partir das ferramentas de construção do Nios II EDS.
- Depois que todas as configurações forem definidas, clique em Gerar para gerar a programação relacionada file.
Informações relacionadas
AN730: Métodos de inicialização do processador Nios II em dispositivos FPGA MAX 10
Gerando files para atualização remota do sistema
Para gerar o .pof, .map e .rpd filePara atualização remota do sistema, execute as seguintes etapas:
- Restaure Factory_image, application_image_1 e application_image_2 e compile todos os três designs.
- Gere dois .pof fileestá descrito na tabela a seguir:
- Observação: Consulte Geração .pof por meio de programação de conversão Files para etapas de geração de .pof files.
- Observação: Consulte Geração .pof por meio de programação de conversão Files para etapas de geração de .pof files.
- Abra o app2.rpd usando qualquer editor hexadecimal.
- No editor hexadecimal, selecione o bloco de dados binários com base no deslocamento inicial e final consultando o .map file. O deslocamento inicial e final para o dispositivo 10M50 é 0x12000 e 0xB9FFF respectivamente. Copie este bloco para um novo file e salve-o em um .rpd diferente file. Este novo .rpd file contém apenas a imagem 2 do aplicativo.
Geração de pof por meio de programação de conversão Files
Para converter .sof files para .pof files, siga estes passos:
- No File menu, clique em Converter Programação Files.
- Em programação de saída file, selecione Objeto Programador File (.pof) na Programação file lista de tipos.
- Na lista Modo, selecione Configuração interna.
- No File caixa de nome, especifique o file nome para a programação file você deseja criar.
- Para gerar um mapa de memória File (.map), ative Criar Mapa de Memória File (Gerar saída automaticamente_file.mapa). O .map contém o endereço do CFM e do UFM com a configuração do ICB que você definiu através da opção Option/Boot Info.
- Para gerar dados brutos de programação (.rpd), ative Criar dados de configuração RPD (Gerar saída_file_auto.rpd).
Com a ajuda do Mapa de Memória File, você pode identificar facilmente os dados de cada bloco funcional no .rpd file. Você também pode extrair os dados do flash para ferramentas de programação de terceiros ou atualizar a configuração ou os dados do usuário através do Altera On-Chip Flash IP. - O .sof pode ser adicionado através de Input files para converter a lista e você pode adicionar até dois .sof files.
- Para fins de atualização remota do sistema, você pode reter os dados originais da página 0 no .pof e substituir os dados da página 1 pelo novo .sof file. Para fazer isso, você precisa adicionar o .pof file na página 0, então
adicione a página .sof e adicione o novo .sof file para
- Para fins de atualização remota do sistema, você pode reter os dados originais da página 0 no .pof e substituir os dados da página 1 pelo novo .sof file. Para fazer isso, você precisa adicionar o .pof file na página 0, então
- Depois que todas as configurações forem definidas, clique em Gerar para gerar a programação relacionada file.
Programando o QSPI
Para programar o código do aplicativo Nios II no flash QSPI, execute as seguintes etapas:
- No kit de desenvolvimento FPGA MAX 10, mude MAX10_BYPASSn para 0 para ignorar o dispositivo VTAP integrado (MAX II).
- Conecte o cabo de download Intel FPGA (anteriormente USB Blaster) ao JTAG cabeçalho.
- Na janela do programador, clique em Configuração de hardware e selecione USB Blaster.
- Na lista Modo, selecione JTAG.
- Clique no botão Detecção automática no painel esquerdo.
- Selecione o dispositivo a ser programado e clique em Adicionar File.
- Selecione o pfl.sof.
- Clique em Iniciar para iniciar a programação.
- Após a programação ser bem-sucedida, sem desligar a placa, clique novamente no botão Detecção automática no painel esquerdo. Você verá um flash QSPI_512Mb aparecer na janela do programador.
- Selecione o dispositivo QSPI e clique em Adicionar File.
- Selecione o .pof file gerado anteriormente a partir de .hex file.
- Clique em Iniciar para começar a programar o flash QSPI.
Programando o FPGA com imagem inicial usando JTAG
Você deve programar app1.pof no FPGA como imagem inicial do dispositivo. Para programar o app1.pof no FPGA, execute as seguintes etapas:
- Na janela do programador, clique em Configuração de hardware e selecione USB Blaster.
- Na lista Modo, selecione JTAG.
- Clique no botão Detecção automática no painel esquerdo.
- Selecione o dispositivo a ser programado e clique em Adicionar File.
- Selecione o app1.pof.
- Clique em Iniciar para iniciar a programação.
Atualizando imagem e acionando reconfiguração usando UART
Para configurar remotamente seu kit de desenvolvimento FPGA MAX10, execute as seguintes etapas:
- Observação: Antes de começar, certifique-se do seguinte:
- o pino CONFIG_SEL na placa está definido como 0
- a porta UART da sua placa está conectada ao seu computador
- Abra Remote Terminal.exe e a interface do Terminal Remoto será aberta.
- Clique em Configurações e a janela de configurações da porta serial aparecerá.
- Defina os parâmetros do terminal remoto para corresponder às configurações UART selecionadas no núcleo Quartus II UART IP. Após a conclusão da configuração, clique em OK.
- Pressione o botão nCONFIG no kit de desenvolvimento ou digite 1 na caixa de texto Enviar e pressione Enter.
- Uma lista de opções de operação aparecerá no terminal, conforme mostrado abaixo:
- Observação: Para selecionar uma operação, digite o número na caixa de texto Enviar e pressione Enter.
- Uma lista de opções de operação aparecerá no terminal, conforme mostrado abaixo:
- Para atualizar a imagem do aplicativo 1 com a imagem do aplicativo 2, selecione a operação 2. Você será solicitado a inserir o endereço inicial e final do CFM1 e CFM2.
- Observação: O endereço mostrado no mapa file inclui configurações ICB, CFM e UFM, mas o Altera On-Chip
- Flash IP pode acessar apenas CFM e UFM. Portanto, há um deslocamento de endereço entre o endereço mostrado no mapa file e janela de parâmetros Altera On-Chip Flash IP.
- Digite o endereço com base no endereço especificado na janela de parâmetros Altera On-Chip Flash IP.
- O apagamento começará automaticamente depois que você inserir o endereço final.
- O apagamento começará automaticamente depois que você inserir o endereço final.
- Após o apagamento bem-sucedido, você será solicitado a inserir a programação .rpd file para imagem do aplicativo 2.
- Para fazer upload da imagem, clique em EnviarFile e, em seguida, selecione o .rpd que contém apenas a imagem do aplicativo 2 e clique em Abrir.
- Observação: Além da imagem 2 do aplicativo, você pode usar qualquer nova imagem que deseja atualizar no dispositivo.
- O processo de atualização começará diretamente e você poderá monitorar o andamento através do terminal. O menu de operação solicitará Concluído e agora você poderá escolher a próxima operação.
- Para acionar a reconfiguração, selecione a operação 4. Você pode observar o comportamento do LED indicando as diferentes imagens carregadas no dispositivo.
Imagem | Status do LED (Ativo Baixo) |
Imagem de fábrica | 01010 |
Imagem de aplicação 1 | 10101 |
Imagem de aplicação 2 | 01110 |
Histórico de revisão do documento
Data | Versão | Mudanças |
Fevereiro de 2017 | 2017.02.21 | Renomeado como Intel. |
Junho de 2015 | 2015.06.15 | Lançamento inicial. |
Documentos / Recursos
![]() |
Dispositivos Intel MAX 10 FPGA sobre UART com o processador Nios II [pdf] Guia do Usuário MAX 10 dispositivos FPGA sobre UART com o processador Nios II, MAX 10 dispositivos FPGA, sobre UART com o processador Nios II, sobre UART, processador Nios II UART, Nios II, processador UART |