FMUSER Transmitir vídeo e áudio sem fio mais fácil!
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
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.
Nosso outro produto:
Pacote de equipamento de estação de rádio profissional FM
|
||
|
Digite o e-mail para obter uma surpresa
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
Categorias
Newsletter