FMUSER Transmitir vídeo e áudio sem fio mais fácil!

[email protegido] WhatsApp + 8618078869184
Língua

    Como projetar um sistema de transmissão de voz digital com Ethernet?

     

    Este artigo fornece uma solução de sistema de transmissão de voz digital Ethernet incorporada, que pode facilmente realizar a função de transmissão regional do sistema de transmissão. O sistema é baseado na arquitetura do braço e adota o método de arbitragem do terminal de reprodução do sistema para controlar a realização da transmissão regional, e o conteúdo da transmissão pode ser reproduzido e salvo simultaneamente.

    O sistema de transmissão de voz digital Ethernet refere-se principalmente ao sistema de transmissão que usa Ethernet como meio de transmissão para fornecer serviços de áudio. A Ethernet pode ser usada para resolver o problema da transmissão de longa distância de sinais de voz. Permite que os designers criem uma estrutura de rede em grande escala para realizar a transmissão de milhares de sinais de voz digital na Ethernet, fazendo uso total dos recursos de rede existentes, evitando o problema de configurar linhas repetidamente e realizando a integração de redes de transmissão e de computadores . Ele resolve os problemas de baixa qualidade de som, suscetibilidade a interferências, manutenção e gerenciamento complexos e má interação em sistemas de transmissão tradicionais. Ao mesmo tempo, é possível selecionar todas, partes ou áreas específicas para a radiodifusão em grupo direcional, o que rompe a limitação de que os sistemas de radiodifusão tradicionais só podem realizar a transmissão pública para todas as áreas. Os sistemas de transmissão de voz digital Ethernet existentes usam principalmente sinais de controle para controlar o terminal de transmissão para ingressar ou sair do grupo multicast para realizar a função de transmissão regional. É necessário enviar um sinal de controle para fazer com que o terminal se junte ao grupo multicast antes que a difusão possa ser realizada. , Ou estabeleça uma tabela de mapeamento complexa no lado do servidor para manter o estado do terminal de reprodução para obter a transmissão regional, que é mais complicada de implementar.

    1 projeto estrutural

    Este sistema adota a estrutura C / S, é composto de duas partes da extremidade do servidor do sistema de transmissão e do terminal de transmissão do sistema de transmissão, conforme mostrado na Fig. 1.

    O servidor do sistema de broadcast é implementado em um PC, e é um programa de coleta, armazenamento e transmissão de rede de sinais de voz realizado por VC ++. Esta parte coleta e armazena o sinal de voz por meio de um microfone e, em seguida, transmite os dados de voz para a Ethernet via UDP para realizar a função de transmissão de dados de voz pela rede.

    O terminal de reprodução do sistema de transmissão é um terminal embutido baseado no LM3S8962, que pode receber os pacotes de dados de voz IP enviados a ele da Ethernet, e o chip de decodificação de áudio MS6336 completa a conversão digital / analógica e a reprodução dos dados de voz

    2 Projeto de hardware do terminal de transmissão do sistema de transmissão

    O chip de controle principal do terminal de transmissão do sistema de transmissão adota o microcontrolador LM3S8962 fornecido pela LuminaryMicro. Esta série de chips é o primeiro controlador baseado em ARM CortexTM-M3 com um controlador Ethernet integrado interno. É o primeiro chip ARM da indústria que suporta Ethernet Industrial (IEEE) e pode facilmente implementar funções de rede.

    O chip decodificador de áudio usa o chip MS6336 produzido pela MOSA. O chip é um conversor digital para analógico de áudio estéreo de 16 bits e os formatos de entrada digital compatíveis são Justificado à direita, Justificado à esquerda, I2S. A interface de controle MS6336 adota barramento I2C, a interface é fácil de configurar. A parte DAC tem corrente precisa e estável, combinada com um excelente método de decodificação simétrico, pode reproduzir sinais de áudio de alta qualidade.

    O chip de controle principal LM3S8962 é conectado à interface RJ45 por meio de componentes magnéticos e é usado para receber dados de voz da Ethernet. LM3S8962 fornece sinais de controle e sinais de dados de voz para o chip decodificador de áudio MS6336. LM3S8962 suporta a função I2C. As portas PB2 e PB3 fornecem sinais de relógio e dados I2C, respectivamente. Esses dois pinos podem ser conectados diretamente aos pinos de função I2C do MS6336, e um resistor pull-up é necessário. LM3S8962 não suporta o formato de entrada de dados exigido por MS6336. O formato de entrada de dados do MS6336 no sistema adota I2S. Portanto, para fornecer dados de voz ao MS6336, é necessário usar o software da porta GPIO do LM3S8962 para simular o formato de entrada de dados I2S exigido pelo MS6336. No projeto, as portas PA5, PA6 e PA7 são usadas para simular essa função. Os três pinos correspondem ao sinal de seleção de canal I2S, sinal de clock e sinal de dados, respectivamente. Conecte esses três pinos ao pino de função I2S do MS6336.

    A estrutura de hardware do terminal de reprodução do sistema de transmissão de voz digital Ethernet é mostrada na Figura 2.

    3 Projeto de software de sistema de transmissão

    O software do sistema de transmissão é dividido em duas partes: software do servidor do sistema de transmissão e software do terminal de transmissão.

    Este projeto realiza a reprodução em tempo real de dados de voz, portanto, o desempenho em tempo real da transmissão de dados de voz deve ser garantido, mas os requisitos para integridade de dados não são muito rígidos e uma pequena quantidade de perda de pacote não afetará o efeito geral de reprodução, de modo que os dados de voz do sistema A transmissão adota o modo de transmissão UDP. Ao mesmo tempo, o sistema funciona na rede local e há poucos usuários temporários. Portanto, a alocação de endereço IP estático é adotada para simplificar a realização do software do terminal de reprodução.

    3.1 A coleta, armazenamento e transmissão de dados de voz no lado do servidor do sistema de transmissão

    A coleta de dados de voz é implementada usando funções de API de áudio WAVE de baixo nível. Para não causar a perda de dados de voz, o projeto usa buffer duplo para armazenar dados de voz. O processo de implementação é mostrado na Figura 3.

    Quando um buffer de gravação está cheio, o sistema envia imediatamente outro buffer de gravação para o dispositivo de gravação para continuar a gravar, e o programa de aplicativo deve ler os dados no buffer de gravação completo e processá-los. Em seguida, chame a função waveInAddBuffer para reatribuir o buffer ao dispositivo de gravação para reciclagem.

    Para evitar a perda de dados de voz no processo de gravação, não basta simplesmente usar buffer duplo. Também deve ser notado que quando um buffer está cheio, o aplicativo irá processar os dados no buffer e o segundo buffer é usado para gravação, e o tempo de processamento de dados deve ser menor do que o tempo necessário para o segundo buffer estar totalmente gravado, caso contrário, o primeiro buffer não foi reatribuído ao dispositivo de gravação após o segundo buffer estar cheio, o que causará perda de dados de voz. Quando a taxa de amostragem do sinal de voz é grande, aumentar o tamanho do buffer de forma adequada pode resolver efetivamente esse problema.

    Para salvar o conteúdo da transmissão para uso posterior, é necessário salvar o conteúdo da transmissão em um arquivo WAV. Os arquivos WAV têm um formato de cabeçalho fixo. Antes de salvar os dados de voz, você precisa definir o cabeçalho do arquivo WAV, caso contrário, o arquivo WAV salvo não poderá ser reproduzido. Sempre que o buffer de gravação estiver cheio, primeiro encontre o final do arquivo WAV e, em seguida, grave os dados coletados no final do arquivo. Ao finalizar todo o processo de transmissão, todos os dados de voz são salvos no arquivo WAV, realizando o armazenamento dos dados de voz.

    Quando um buffer de gravação está cheio, é necessário enviar os dados de voz coletados pela rede. No design, primeiro use a classe Csocket para criar um soquete e, em seguida, só precisa encapsular os dados coletados em um pacote IP e enviá-lo. A taxa de amostragem do sinal de voz neste projeto é 44.1 kHz, canal duplo de 16 bits. Para evitar a perda de dados de voz, o tamanho do buffer de gravação é definido para 1024B.

    3.2 Realização da transmissão regional

    Uma aplicação importante do sistema de transmissão de voz digital Ethernet é não apenas realizar a transmissão de toda a área, mas também realizar a função de transmissão local, ou seja, transmitir para o terminal designado. Portanto, o pacote UDP multicast é usado para transmissão de dados na transmissão de rede de pacotes de dados IP de voz. Utilizando pacotes multicast para transmissão de dados, todos os terminais incluídos no grupo da rede local podem receber os dados, realizando a difusão de toda a área. Para realizar a função de transmissão local, uma estrutura é adicionada na frente dos dados de voz no projeto, conforme mostrado abaixo, e um arquivo de configuração é usado para armazenar o endereço IP de cada terminal do sistema.

    02 Projeto de hardware do terminal de transmissão do sistema de transmissão

    O chip de controle principal do terminal de transmissão do sistema de transmissão adota o microcontrolador LM3S8962 fornecido pela LuminaryMicro. Esta série de chips é o primeiro controlador baseado em ARM CortexTM-M3 com um controlador Ethernet integrado interno. É o primeiro chip ARM da indústria que suporta Ethernet Industrial (IEEE) e pode facilmente implementar funções de rede.

    O chip decodificador de áudio usa o chip MS6336 produzido pela MOSA. O chip é um conversor digital para analógico de áudio estéreo de 16 bits e os formatos de entrada digital compatíveis são Justificado à direita, Justificado à esquerda, I2S. A interface de controle MS6336 adota barramento I2C, a interface é fácil de configurar. A parte DAC tem corrente precisa e estável, combinada com um excelente método de decodificação simétrico, pode reproduzir sinais de áudio de alta qualidade.

    O chip de controle principal LM3S8962 é conectado à interface RJ45 por meio de componentes magnéticos e é usado para receber dados de voz da Ethernet. LM3S8962 fornece sinais de controle e sinais de dados de voz para o chip decodificador de áudio MS6336. LM3S8962 suporta a função I2C. As portas PB2 e PB3 fornecem sinais de relógio e dados I2C, respectivamente. Esses dois pinos podem ser conectados diretamente aos pinos de função I2C do MS6336, e um resistor pull-up é necessário. LM3S8962 não suporta o formato de entrada de dados exigido por MS6336. O formato de entrada de dados do MS6336 no sistema adota I2S. Portanto, para fornecer dados de voz ao MS6336, é necessário usar o software da porta GPIO do LM3S8962 para simular o formato de entrada de dados I2S exigido pelo MS6336. No projeto, as portas PA5, PA6 e PA7 são usadas para simular essa função. Os três pinos correspondem ao sinal de seleção de canal I2S, sinal de clock e sinal de dados, respectivamente. Conecte esses três pinos ao pino de função I2S do MS6336.

    A estrutura de hardware do terminal de reprodução do sistema de transmissão de voz digital Ethernet é mostrada na Figura 2.

     

    3 Projeto de software de sistema de transmissão

    O software do sistema de transmissão é dividido em duas partes: software do servidor do sistema de transmissão e software do terminal de transmissão.

    Este projeto realiza a reprodução em tempo real de dados de voz, portanto, o desempenho em tempo real da transmissão de dados de voz deve ser garantido, mas os requisitos para integridade de dados não são muito rígidos e uma pequena quantidade de perda de pacote não afetará o efeito geral de reprodução, de modo que os dados de voz do sistema A transmissão adota o modo de transmissão UDP. Ao mesmo tempo, o sistema funciona em uma rede local com menos usuários temporários. Portanto, a alocação de endereço IP estático é adotada para simplificar a realização do software do terminal de reprodução.

    3.1 A coleta, armazenamento e transmissão de dados de voz no lado do servidor do sistema de transmissão

    A coleta de dados de voz é implementada usando funções de API de áudio WAVE de baixo nível. Para não causar a perda de dados de voz, o projeto usa buffer duplo para armazenar dados de voz. O processo de implementação é mostrado na Figura 3.

     

    Quando um buffer de gravação está cheio, o sistema envia imediatamente outro buffer de gravação para o dispositivo de gravação para continuar a gravar, e o programa de aplicativo deve ler os dados no buffer de gravação completo e processá-los. Em seguida, chame a função waveInAddBuffer para reatribuir o buffer ao dispositivo de gravação para reciclagem.

    Para evitar a perda de dados de voz no processo de gravação, não basta simplesmente usar buffer duplo. Também deve ser notado que quando um buffer está cheio, o aplicativo irá processar os dados no buffer e o segundo buffer é usado para gravação, e o tempo de processamento de dados deve ser menor do que o tempo necessário para o segundo buffer estar totalmente gravado, caso contrário, o primeiro buffer não foi reatribuído ao dispositivo de gravação após o segundo buffer estar cheio, o que causará perda de dados de voz. Quando a taxa de amostragem do sinal de voz é grande, aumentar o tamanho do buffer de forma adequada pode resolver efetivamente esse problema.

    Para salvar o conteúdo da transmissão para uso posterior, é necessário salvar o conteúdo da transmissão em um arquivo WAV. Os arquivos WAV têm um formato de cabeçalho fixo. Antes de salvar os dados de voz, você precisa definir o cabeçalho do arquivo WAV, caso contrário, o arquivo WAV salvo não poderá ser reproduzido. Sempre que o buffer de gravação estiver cheio, primeiro encontre o final do arquivo WAV e, em seguida, grave os dados coletados no final do arquivo. Ao finalizar todo o processo de transmissão, todos os dados de voz são salvos no arquivo WAV, realizando o armazenamento dos dados de voz.

    Quando um buffer de gravação está cheio, é necessário enviar os dados de voz coletados pela rede. No design, primeiro use a classe Csocket para criar um soquete e, em seguida, só precisa encapsular os dados coletados em um pacote IP e enviá-lo. A taxa de amostragem do sinal de voz neste projeto é 44.1 kHz, canal duplo de 16 bits. Para evitar a perda de dados de voz, o tamanho do buffer de gravação é definido para 1024B.

    3.2 Realização da transmissão regional

    Uma aplicação importante do sistema de transmissão de voz digital Ethernet é não apenas realizar a transmissão de toda a área, mas também realizar a função de transmissão local, ou seja, transmitir para o terminal designado. Portanto, o pacote UDP multicast é usado para transmissão de dados na transmissão de rede de pacotes de dados IP de voz. Utilizando pacotes multicast para transmissão de dados, todos os terminais incluídos no grupo da rede local podem receber os dados, realizando a difusão de toda a área. Para realizar a função de transmissão local, uma estrutura é adicionada na frente dos dados de voz no projeto, conforme mostrado abaixo, e um arquivo de configuração é usado para armazenar o endereço IP de cada terminal do sistema.

    estrutura STRING

    {Cadeia IPNO1;

    Cadeia IPNO2;

    ...

    Cadeia IPNO9;

    Cadeia IPNO10};

    Quando for necessário realizar uma transmissão regional em determinados terminais, selecione os números correspondentes desses terminais no painel do lado do servidor do sistema de transmissão (conforme mostrado na Figura 4). Neste momento, o endereço IP do terminal selecionado é lido do arquivo de configuração e atribuído à variável correspondente na estrutura. Quando o terminal recebe um pacote multicast IP, ele primeiro julga se a estrutura possui a mesma variável que seu próprio endereço IP, se houver, então os dados são recebidos e reproduzidos, caso contrário, os dados são descartados, percebendo a área Broadcast função. Comparado com o método de usar um sinal de controle para controlar o terminal de reprodução para entrar ou sair do grupo multicast ou para manter dinamicamente uma tabela de mapeamento complexa para implementar a função de transmissão regional. Este método não precisa controlar interativamente o terminal de reprodução antes de cada transmissão, nem precisa rastrear dinamicamente o estado do terminal. Ele só precisa escrever o endereço IP correspondente do terminal no arquivo de configuração quando o terminal se junta ao sistema pela primeira vez. A função é simples de implementar.

    3.3 A realização do software do terminal de transmissão do sistema de transmissão

    O terminal de transmissão do sistema de transmissão é dividido em duas partes, a parte de recepção de dados de áudio é usada para receber os dados de voz e armazenar e encaminhar, e o decodificador de áudio realiza a conversão D / A e a reprodução do sinal de voz. A parte de recepção de dados de áudio adota a programação de soquete para receber dados de voz da Ethernet. Depois de receber o pacote de dados de voz, ele deve primeiro avaliar se o pacote de dados é para si mesmo. O terminal compara a variável membro da estrutura struct STRING no pacote IP com seu próprio endereço IP e, se qualquer variável membro for igual ao seu próprio endereço IP, ele armazena os dados no pacote, caso contrário, os descarta.

    Os dados de voz são recebidos e armazenados em uma fila circular. Devido à desordem da transmissão de dados UDP, os pacotes de dados de voz precisam ser classificados após os dados de voz serem recebidos na extremidade de recepção de dados de voz para garantir o processamento sequencial dos dados de voz e a restauração correta do sinal de voz. Ao mesmo tempo, para evitar jitter na rede, os dados são processados ​​sempre que houver pelo menos 5 pacotes na fila circular.

    O formato de entrada de dados do MS6336 no projeto adota o formato I2S. Como o LM3S8962 não suporta este formato de dados, a simulação de software é adotada para realizar a função I2S através da porta GPIO. Para restaurar completamente o sinal de voz, é necessário garantir que o tempo do sinal I2S seja estrito e preciso, e a conversão entre níveis altos e baixos seja implementada por um programa de retardo. O diagrama de tempo I2S é mostrado na Figura 5.

    A frequência do relógio do terminal de transmissão do sistema de transmissão é de 40 MHz e o tempo para enviar cada bit de dados é de 600 ns calculado a partir da taxa de amostragem. LM3S8962 fornece dados de voz para MS6336 e realiza a transmissão serial através da porta GPIO de acordo com o ponto de amostragem. Cada ponto de amostragem contém quatro bytes, e o processo de envio de dados de um ponto de amostragem é mostrado na Figura 6.

    4 Análise de resultados

    O tamanho do pacote de dados de voz transmitido pelo sistema via Ethernet é 1024B. Para evitar jitter na rede, o terminal começa a transmitir ao receber 5 pacotes de dados. O tempo de atraso da transmissão é de cerca de 30 ms, o que atende aos indicadores funcionais. O lado do servidor pode controlar o trabalho de 10 terminais de transmissão ao mesmo tempo. Ao selecionar o número do terminal correspondente no lado do servidor, todas as funções de difusão de área e difusão local do sistema de difusão podem ser realizadas com sucesso.

    Conclusão 5

    Partindo das necessidades reais, projetamos e implementamos um sistema de transmissão de voz digital Ethernet. Os resultados experimentais mostram que o terminal de reprodução do sistema decide se realizar a transmissão de voz para realizar a transmissão regional é uma maneira simples e eficaz de realizar a transmissão global e regional de sinais de voz. O terminal de jogador do sistema adota simulação de software de porta GPIO para realizar a função I2S, que pode realizar com precisão a temporização I2S, completar a transmissão de dados do sinal de voz e realizar a transmissão em tempo real do sinal de voz. A estrutura do projeto é razoável e pode facilmente realizar a expansão de funções, como transmissão de tempo, reprodução de música, gerenciamento remoto, monitoramento em tempo real, etc. Este projeto tem um significado prático importante e fornece uma base para resolver grandes e complexas transmissões Ethernet sistemas.

     

     

     

     

    Liste todos os Pergunta

    Alcunha/Nickname

    E-mail

    Frequentes

    Nosso outro produto:

    Pacote de equipamento de estação de rádio profissional FM

     



     

    Solução de IPTV para hotéis

     


      Digite o e-mail para obter uma surpresa

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org -> Afrikaans
      sq.fmuser.org -> albanês
      ar.fmuser.org -> árabe
      hy.fmuser.org -> armênio
      az.fmuser.org -> Azerbaijão
      eu.fmuser.org -> Basco
      be.fmuser.org -> bielorrusso
      bg.fmuser.org -> búlgaro
      ca.fmuser.org -> catalão
      zh-CN.fmuser.org -> Chinês (simplificado)
      zh-TW.fmuser.org -> chinês (tradicional)
      hr.fmuser.org -> croata
      cs.fmuser.org -> checo
      da.fmuser.org -> dinamarquês
      nl.fmuser.org -> holandês
      et.fmuser.org -> estoniano
      tl.fmuser.org -> filipino
      fi.fmuser.org -> finlandês
      fr.fmuser.org -> francês
      gl.fmuser.org -> galego
      ka.fmuser.org -> georgiano
      de.fmuser.org -> alemão
      el.fmuser.org -> grego
      ht.fmuser.org -> crioulo haitiano
      iw.fmuser.org -> hebraico
      hi.fmuser.org -> Hindi
      hu.fmuser.org -> húngaro
      is.fmuser.org -> islandês
      id.fmuser.org -> indonésio
      ga.fmuser.org -> irlandês
      it.fmuser.org -> italiano
      ja.fmuser.org -> Japonês
      ko.fmuser.org -> coreano
      lv.fmuser.org -> letão
      lt.fmuser.org -> Lituano
      mk.fmuser.org -> macedônio
      ms.fmuser.org -> malaio
      mt.fmuser.org -> maltês
      no.fmuser.org - norueguês
      fa.fmuser.org -> persa
      pl.fmuser.org -> polonês
      pt.fmuser.org -> português
      ro.fmuser.org -> romeno
      ru.fmuser.org -> russo
      sr.fmuser.org -> Sérvio
      sk.fmuser.org -> Eslovaco
      sl.fmuser.org -> esloveno
      es.fmuser.org -> espanhol
      sw.fmuser.org -> Swahili
      sv.fmuser.org -> sueco
      th.fmuser.org -> Tailandês
      tr.fmuser.org -> turco
      uk.fmuser.org -> ucraniano
      ur.fmuser.org -> Urdu
      vi.fmuser.org -> vietnamita
      cy.fmuser.org -> Galês
      yi.fmuser.org -> iídiche

       
  •  

    FMUSER Transmitir vídeo e áudio sem fio mais fácil!

  • Contato

    Endereço:
    No.305 Sala HuiLan Edifício No.273 Huanpu Road Guangzhou China 510620

    E-mail
    [email protegido]

    Tel/What Apps:
    +8618078869184

  • Categorias

  • Newsletter

    PRIMEIRO OU NOME COMPLETO

    Email

  • solução paypal  Western Union Banco da China
    E-mail[email protegido]   WhatsApp: +8618078869184 Skype: sky198710021 Fala comigo
    Copyright 2006 2020-Powered By www.fmuser.org

    Contate-nos