FMUSER Wirless Transmit video și audio mai ușor!

[e-mail protejat] WhatsApp + 8618078869184
Limbă

    Cum se proiectează un sistem digital de transmisie vocală cu Ethernet?

     

    Acest articol oferă o soluție de sistem de difuzare vocală digitală Ethernet încorporată, care poate realiza cu ușurință funcția de difuzare regională a sistemului de difuzare. Sistemul se bazează pe arhitectura brațului și adoptă metoda arbitrajului de redare a sistemului pentru a controla realizarea difuzării regionale, iar conținutul difuzat poate fi redat și salvat simultan.

    Sistemul de difuzare vocală digitală Ethernet se referă în principal la sistemul de difuzare care utilizează Ethernet ca mediu de transmisie pentru a furniza servicii audio. Ethernet poate fi utilizat pentru a rezolva problema transmiterii pe distanțe lungi a semnalelor vocale. Permite proiectanților să creeze o structură de rețea la scară largă pentru a realiza transmiterea a mii de semnale digitale de voce pe Ethernet, folosind pe deplin resursele de rețea existente, evitând problemele legate de configurarea repetată a liniilor și realizând integrarea rețelelor de difuzare și computer. . Rezolvă problemele de slabă calitate a sunetului, susceptibilitatea la interferențe, întreținerea și gestionarea complexă și interacțiunea slabă în sistemele tradiționale de radiodifuziune. În același timp, este posibil să selectați toate zonele, parțiale sau specifice pentru difuzarea direcțională de grup, ceea ce trece prin limitarea faptului că sistemele tradiționale de difuzare pot efectua difuzare publică numai pentru toate zonele. Sistemele de difuzare vocală digitală Ethernet existente folosesc în mare parte semnale de control pentru a controla terminalul de difuzare pentru a se alătura sau părăsi grupul multicast în realizarea funcției de difuzare regională. Este necesar să trimiteți un semnal de control pentru a face terminalul să se alăture grupului multicast înainte ca difuzarea să poată fi realizată. Sau stabiliți o masă de cartografiere complexă pe partea serverului pentru a menține starea terminalului de redare pentru a realiza difuzarea regională, ceea ce este mai complicat de implementat.

    1 Proiectare structurală

    Acest sistem adoptă structura C / S, este alcătuit din două părți ale terminalului serverului de sistem de difuzare și terminalului de difuzare a sistemului de difuzare, așa cum se arată în Fig. 1.

    Serverul sistemului de difuzare este implementat pe un PC și este un program de colectare, stocare și transmisie a semnalului vocal realizat de VC ++. Această parte colectează și stochează semnalul vocal printr-un microfon și apoi transmite datele vocale către Ethernet prin UDP pentru a realiza funcția de transmisie în rețea a datelor vocale.

    Terminalul de redare a sistemului de difuzare este un terminal încorporat bazat pe LM3S8962, care poate primi pachetele de date vocale IP trimise către acesta de pe Ethernet, iar cipul de decodare audio MS6336 completează conversia digitală / analogică și redarea datelor vocale

    2 Sistem de difuzare proiectare hardware terminal de difuzare

    Cipul principal de control al terminalului de difuzare al sistemului de difuzare adoptă microcontrolerul LM3S8962 furnizat de LuminaryMicro. Această serie de cipuri este primul controler bazat pe ARM CortexTM-M3 cu un controler Ethernet integrat intern. Este primul cip ARM din industrie care acceptă Industrial Ethernet (IEEE) și poate implementa cu ușurință funcțiile de rețea.

    Cipul de decodare audio folosește cipul MS6336 produs de MOSA. Cipul este un convertor audio-digital stereo pe 16 biți, iar formatele de intrare digitale acceptate sunt Right Justifl-ed, Left Justified, I2S. Interfața de control MS6336 adoptă magistrala I2C, interfața este ușor de setat. Partea DAC are un curent precis și stabil, combinat cu o metodă excelentă de decodare simetrică, poate reproduce semnale audio de înaltă calitate.

    Cipul principal de control LM3S8962 este conectat la interfața RJ45 prin componente magnetice și este utilizat pentru a primi date vocale de pe Ethernet. LM3S8962 furnizează semnale de control și semnale de date vocale pentru cipul decodificator audio MS6336. LM3S8962 acceptă funcția I2C. Porturile PB2 și PB3 furnizează ceas I2C și respectiv semnale de date. Acești doi pini pot fi conectați direct la pinii funcției I2C ai MS6336 și este necesar un rezistor de tracțiune. LM3S8962 nu acceptă formatul de introducere a datelor cerut de MS6336. Formatul de introducere a datelor MS6336 în sistem adoptă I2S. Prin urmare, pentru a furniza date vocale către MS6336, este necesar să utilizați software-ul portului GPIO al LM3S8962 pentru a simula formatul de intrare de date I2S cerut de MS6336. În proiectare, porturile PA5, PA6 și PA7 sunt utilizate pentru a simula această funcție. Cei trei pini corespund semnalului de selectare a canalului I2S, semnalului de ceas și respectiv semnalului de date. Conectați acești trei pini la pinul funcției I2S al MS6336.

    Structura hardware a terminalului de redare a sistemului de transmisie vocală digitală Ethernet este prezentată în Figura 2.

    3 Proiectarea software-ului sistemului de difuzare

    Software-ul sistemului de difuzare este împărțit în două părți: software-ul serverului sistemului de difuzare și software-ul terminalului de difuzare.

    Acest design realizează redarea în timp real a datelor vocale, astfel încât este necesară garantarea performanței în timp real a transmiterii datelor vocale, dar cerințele pentru integritatea datelor nu sunt prea stricte, iar o cantitate mică de pierderi de pachete nu va afecta efect de redare general, astfel încât datele vocale ale sistemului Transmisia adoptă modul de transmisie UDP. În același timp, sistemul funcționează în rețeaua locală și există puțini utilizatori temporari. Prin urmare, alocarea de adrese IP statice este adoptată pentru a simplifica realizarea software-ului terminalului de redare.

    3.1 Colectarea, stocarea și transmiterea datelor vocale pe partea serverului sistemului de difuzare

    Colectarea datelor vocale este implementată utilizând funcții API WAVE de nivel scăzut. Pentru a nu provoca pierderea datelor vocale, designul utilizează un tampon dublu pentru stocarea datelor vocale. Procesul de implementare este prezentat în Figura 3.

    Când un buffer de înregistrare este plin, sistemul trimite imediat un alt buffer de înregistrare la dispozitivul de înregistrare pentru a continua înregistrarea, iar programul de aplicație ar trebui să citească datele din bufferul de înregistrare complet și să le proceseze. Apelați apoi funcția waveInAddBuffer pentru a aloca din nou buffer-ul dispozitivului de înregistrare pentru reciclare.

    Pentru a preveni pierderea datelor vocale în procesul de înregistrare, nu este suficient să folosiți pur și simplu buffer dublu. De asemenea, trebuie remarcat faptul că, atunci când un buffer este plin, aplicația va procesa datele din buffer și al doilea Buffer este utilizat pentru înregistrare, iar timpul de procesare a datelor trebuie să fie mai mic decât timpul necesar pentru ca al doilea buffer să fie complet înregistrat, altfel primul buffer nu a fost reatribuit dispozitivului de înregistrare după ce al doilea buffer este plin, ceea ce va cauza pierderea datelor vocale. Când rata de eșantionare a semnalului vocal este mare, mărirea adecvată a dimensiunii tamponului poate rezolva în mod eficient această problemă.

    Pentru a salva conținutul difuzat pentru utilizare ulterioară, este necesar să salvați conținutul difuzat într-un fișier WAV. Fișierele WAV au un format de antet fix. Înainte de a salva datele vocale, trebuie să setați antetul fișierului WAV, altfel fișierul WAV salvat nu poate fi redat. De fiecare dată când bufferul de înregistrare este plin, găsiți mai întâi sfârșitul fișierului WAV, apoi scrieți pe rând datele colectate la sfârșitul fișierului. Când întregul proces de difuzare sa încheiat, toate datele vocale sunt salvate în fișierul WAV, realizându-se stocarea datelor vocale.

    Când un buffer de înregistrare este plin, este necesar să trimiteți datele vocale colectate prin rețea. În proiectare, utilizați mai întâi clasa Csocket pentru a crea un socket și apoi trebuie doar să încapsulați datele colectate într-un pachet IP și să le trimiteți. Rata de eșantionare a semnalului vocal în acest design este de 44.1 kHz, pe 16 biți pe două canale. Pentru a evita pierderea datelor vocale, dimensiunea bufferului de înregistrare este setată la 1024B.

    3.2 Realizarea difuzării regionale

    O aplicație importantă a sistemului de difuzare a vocii digitale Ethernet este nu numai realizarea întregii zone de difuzare, ci și realizarea funcției de difuzare locală, adică transmiterea către terminalul desemnat. Prin urmare, pachetul UDP multicast este utilizat pentru transmiterea datelor în transmisia în rețea a pachetelor de date IP vocale. Folosind pachete multicast pentru a transmite date, toate terminalele incluse în grup în rețeaua locală pot primi datele, realizând întreaga zonă difuzată. Pentru a realiza funcția de difuzare locală, o structură este adăugată în fața datelor vocale în proiectare, așa cum se arată mai jos, și un fișier de configurare este utilizat pentru a stoca adresa IP a fiecărui terminal al sistemului.

    02 Sistem de difuzare proiectare hardware terminal de difuzare

    Cipul principal de control al terminalului de difuzare al sistemului de difuzare adoptă microcontrolerul LM3S8962 furnizat de LuminaryMicro. Această serie de cipuri este primul controler bazat pe ARM CortexTM-M3 cu un controler Ethernet integrat intern. Este primul cip ARM din industrie care acceptă Industrial Ethernet (IEEE) și poate implementa cu ușurință funcțiile de rețea.

    Cipul de decodare audio folosește cipul MS6336 produs de MOSA. Cipul este un convertor audio-digital stereo pe 16 biți, iar formatele de intrare digitale acceptate sunt Right Justifl-ed, Left Justified, I2S. Interfața de control MS6336 adoptă magistrala I2C, interfața este ușor de setat. Partea DAC are un curent precis și stabil, combinat cu o metodă excelentă de decodare simetrică, poate reproduce semnale audio de înaltă calitate.

    Cipul principal de control LM3S8962 este conectat la interfața RJ45 prin componente magnetice și este utilizat pentru a primi date vocale de pe Ethernet. LM3S8962 furnizează semnale de control și semnale de date vocale pentru cipul decodificator audio MS6336. LM3S8962 acceptă funcția I2C. Porturile PB2 și PB3 furnizează ceas I2C și respectiv semnale de date. Acești doi pini pot fi conectați direct la pinii funcției I2C ai MS6336 și este necesar un rezistor de tracțiune. LM3S8962 nu acceptă formatul de introducere a datelor cerut de MS6336. Formatul de introducere a datelor MS6336 în sistem adoptă I2S. Prin urmare, pentru a furniza date vocale către MS6336, este necesar să utilizați software-ul portului GPIO al LM3S8962 pentru a simula formatul de intrare de date I2S cerut de MS6336. În proiectare, porturile PA5, PA6 și PA7 sunt utilizate pentru a simula această funcție. Cei trei pini corespund semnalului de selectare a canalului I2S, semnalului de ceas și respectiv semnalului de date. Conectați acești trei pini la pinul funcției I2S al MS6336.

    Structura hardware a terminalului de redare a sistemului de transmisie vocală digitală Ethernet este prezentată în Figura 2.

     

    3 Proiectarea software-ului sistemului de difuzare

    Software-ul sistemului de difuzare este împărțit în două părți: software-ul serverului sistemului de difuzare și software-ul terminalului de difuzare.

    Acest design realizează redarea în timp real a datelor vocale, astfel încât este necesară garantarea performanței în timp real a transmiterii datelor vocale, dar cerințele pentru integritatea datelor nu sunt prea stricte, iar o cantitate mică de pierderi de pachete nu va afecta efect de redare general, astfel încât datele vocale ale sistemului Transmisia adoptă modul de transmisie UDP. În același timp, sistemul funcționează într-o rețea locală cu mai puțini utilizatori temporari. Prin urmare, alocarea de adrese IP statice este adoptată pentru a simplifica realizarea software-ului terminalului de redare.

    3.1 Colectarea, stocarea și transmiterea datelor vocale pe partea serverului sistemului de difuzare

    Colectarea datelor vocale este implementată utilizând funcții API WAVE de nivel scăzut. Pentru a nu provoca pierderea datelor vocale, designul utilizează un tampon dublu pentru stocarea datelor vocale. Procesul de implementare este prezentat în Figura 3.

     

    Când un buffer de înregistrare este plin, sistemul trimite imediat un alt buffer de înregistrare la dispozitivul de înregistrare pentru a continua înregistrarea, iar programul de aplicație ar trebui să citească datele din bufferul de înregistrare complet și să le proceseze. Apelați apoi funcția waveInAddBuffer pentru a aloca din nou buffer-ul dispozitivului de înregistrare pentru reciclare.

    Pentru a preveni pierderea datelor vocale în procesul de înregistrare, nu este suficient să folosiți pur și simplu buffer dublu. De asemenea, trebuie remarcat faptul că, atunci când un buffer este plin, aplicația va procesa datele din buffer și al doilea Buffer este utilizat pentru înregistrare, iar timpul de procesare a datelor trebuie să fie mai mic decât timpul necesar pentru ca al doilea buffer să fie complet înregistrat, altfel primul buffer nu a fost reatribuit dispozitivului de înregistrare după ce al doilea buffer este plin, ceea ce va cauza pierderea datelor vocale. Când rata de eșantionare a semnalului vocal este mare, mărirea adecvată a dimensiunii tamponului poate rezolva în mod eficient această problemă.

    Pentru a salva conținutul difuzat pentru utilizare ulterioară, este necesar să salvați conținutul difuzat într-un fișier WAV. Fișierele WAV au un format de antet fix. Înainte de a salva datele vocale, trebuie să setați antetul fișierului WAV, altfel fișierul WAV salvat nu poate fi redat. De fiecare dată când bufferul de înregistrare este plin, găsiți mai întâi sfârșitul fișierului WAV, apoi scrieți pe rând datele colectate la sfârșitul fișierului. Când întregul proces de difuzare sa încheiat, toate datele vocale sunt salvate în fișierul WAV, realizându-se stocarea datelor vocale.

    Când un buffer de înregistrare este plin, este necesar să trimiteți datele vocale colectate prin rețea. În proiectare, utilizați mai întâi clasa Csocket pentru a crea un socket și apoi trebuie doar să încapsulați datele colectate într-un pachet IP și să le trimiteți. Rata de eșantionare a semnalului vocal în acest design este de 44.1 kHz, pe 16 biți pe două canale. Pentru a evita pierderea datelor vocale, dimensiunea bufferului de înregistrare este setată la 1024B.

    3.2 Realizarea difuzării regionale

    O aplicație importantă a sistemului de difuzare a vocii digitale Ethernet este nu numai realizarea întregii zone de difuzare, ci și realizarea funcției de difuzare locală, adică transmiterea către terminalul desemnat. Prin urmare, pachetul UDP multicast este utilizat pentru transmiterea datelor în transmisia în rețea a pachetelor de date IP vocale. Folosind pachete multicast pentru a transmite date, toate terminalele incluse în grup în rețeaua locală pot primi datele, realizând întreaga zonă difuzată. Pentru a realiza funcția de difuzare locală, o structură este adăugată în fața datelor vocale în proiectare, așa cum se arată mai jos, și un fișier de configurare este utilizat pentru a stoca adresa IP a fiecărui terminal al sistemului.

    structura STRING

    {Șir IPNO1;

    Șir IPNO2;

    ...

    Șir IPNO9;

    Șir IPNO10};

    Când este necesar să efectuați difuzare regională pe anumite terminale, selectați numerele corespunzătoare ale acestor terminale pe panoul de pe partea serverului sistemului de difuzare (așa cum se arată în Figura 4). În acest moment, adresa IP a terminalului selectat este citită din fișierul de configurare și atribuită variabilei corespunzătoare din structură. Când terminalul primește un pachet IP multicast, acesta judecă mai întâi dacă structura are aceeași variabilă ca și propria adresă IP, dacă există, atunci datele sunt primite și redate, dacă nu, datele sunt aruncate, realizând astfel zona Broadcast funcţie. Comparativ cu metoda utilizării unui semnal de control pentru a controla terminalul de redare pentru a se alătura sau părăsi grupul multicast sau pentru a menține dinamic o masă de mapare complexă pentru a implementa funcția de difuzare regională. Această metodă nu trebuie să controleze interactiv terminalul de redare înainte de fiecare difuzare și nici nu trebuie să urmărească dinamic starea terminalului. Trebuie să scrie adresa IP corespunzătoare a terminalului în fișierul de configurare numai atunci când terminalul se alătură sistemului pentru prima dată. Funcția este ușor de implementat.

    3.3 Realizarea software-ului terminalului de difuzare a sistemului de difuzare

    Terminalul de difuzare a sistemului de difuzare este împărțit în două părți de realizat, partea de recepție a datelor audio este utilizată pentru a recepționa datele vocale și a le stoca și transmite, iar decodorul audio realizează conversia D / A și redarea semnalului vocal. Partea de recepție a datelor audio adoptă programarea Socket pentru a primi date vocale de pe Ethernet. După primirea pachetului de date vocale, acesta trebuie să evalueze mai întâi dacă pachetul de date este pentru sine. Terminalul compară variabila membru a structurii struct STRING din pachetul IP cu propria adresă IP și, dacă orice variabilă membru este egală cu propria adresă IP, stochează datele în pachet, altfel le aruncă.

    Datele vocale sunt recepționate și stocate într-o coadă circulară. Datorită tulburării transmisiei de date UDP, pachetele de date vocale trebuie să fie sortate după ce datele vocale sunt primite la capătul de primire a datelor vocale pentru a asigura procesarea secvențială a datelor vocale și restaurarea corectă a semnalului vocal. În același timp, pentru a evita fluctuațiile de rețea, datele sunt procesate de fiecare dată când există cel puțin 5 pachete în coada circulară.

    Formatul de introducere a datelor MS6336 în proiect adoptă formatul I2S. Deoarece LM3S8962 nu acceptă acest format de date, simularea software este adoptată pentru a realiza funcția I2S prin portul GPIO. Pentru a restabili complet semnalul vocal, este necesar să ne asigurăm că sincronizarea semnalului I2S este strictă și exactă, iar conversia între nivelurile ridicate și cele joase este implementată de un program de întârziere. Diagrama de sincronizare I2S este prezentată în Figura 5.

    Frecvența ceasului terminalului de difuzare a sistemului de difuzare este de 40 MHz, iar timpul de trimitere a fiecărui bit de date este de 600 ns calculat din rata de eșantionare. LM3S8962 furnizează date vocale către MS6336 și realizează transmisia serială prin portul GPIO în funcție de punctul de eșantionare. Fiecare punct de eșantionare conține patru octeți, iar procesul de trimitere a datelor unui punct de eșantionare este prezentat în Figura 6.

    4 Analiza rezultatelor

    Dimensiunea pachetului de date vocale transmis de sistem prin Ethernet este de 1024B. Pentru a evita jitterul de rețea, terminalul începe să transmită atunci când primește 5 pachete de date. Timpul de întârziere a difuzării este de aproximativ 30 ms, ceea ce corespunde indicatorilor funcționali. Partea server poate controla activitatea a 10 terminale de difuzare în același timp. Prin selectarea numărului de terminal corespunzător de pe partea serverului, se pot realiza cu succes întreaga zonă de difuzare și funcțiile de difuzare locală ale sistemului de difuzare.

    5 Concluzie

    Pornind de la nevoile reale, proiectăm și implementăm un sistem de transmisie vocală digitală Ethernet. Rezultatele experimentale arată că terminalul de redare al sistemului decide dacă să realizeze difuzarea vocală pentru a realiza difuzarea regională este un mod simplu și eficient de a realiza difuzarea globală și difuzarea regională a semnalelor vocale. Terminalul playerului de sistem adoptă simularea software-ului portului GPIO pentru a realiza funcția I2S, care poate realiza cu exactitate sincronizarea I2S, poate finaliza transmisia de date a semnalului vocal și poate realiza difuzarea în timp real a semnalului vocal. Structura de proiectare este rezonabilă și poate realiza cu ușurință extinderea funcțiilor, cum ar fi difuzarea temporizată, redarea muzicii, gestionarea de la distanță, monitorizarea în timp real etc. Acest design are o importanță practică importantă și oferă o bază pentru rezolvarea difuzării Ethernet mari și complexe. sisteme.

     

     

     

     

    Lista de toate Întrebarea

    Poreclă

    E-mail

    Întrebări

    alt produs nostru:

    Pachet de echipamente profesionale pentru stația radio FM

     



     

    Soluție IPTV pentru hotel

     


      Introduceți adresa de e-mail pentru a primi o surpriză

      fmuser.org

      es.fmuser.org
      it.fmuser.org
      fr.fmuser.org
      de.fmuser.org
      af.fmuser.org -> Afrikaans
      sq.fmuser.org -> Albaneză
      ar.fmuser.org -> arabă
      hy.fmuser.org -> Armeană
      az.fmuser.org -> azeră
      eu.fmuser.org -> bască
      be.fmuser.org -> bielorusă
      bg.fmuser.org -> Bulgarian
      ca.fmuser.org -> catalană
      zh-CN.fmuser.org -> Chineză (simplificată)
      zh-TW.fmuser.org -> Chineză (tradițională)
      hr.fmuser.org -> croată
      cs.fmuser.org -> cehă
      da.fmuser.org -> Daneză
      nl.fmuser.org -> Dutch
      et.fmuser.org -> estonă
      tl.fmuser.org -> filipinez
      fi.fmuser.org -> finlandeză
      fr.fmuser.org -> Franceză
      gl.fmuser.org -> Galeză
      ka.fmuser.org -> Georgiană
      de.fmuser.org -> germană
      el.fmuser.org -> greacă
      ht.fmuser.org -> Creole haitian
      iw.fmuser.org -> ebraică
      hi.fmuser.org -> Hindi
      hu.fmuser.org -> Maghiară
      is.fmuser.org -> islandeză
      id.fmuser.org -> indoneziană
      ga.fmuser.org -> irlandeză
      it.fmuser.org -> Italiană
      ja.fmuser.org -> japoneză
      ko.fmuser.org -> coreeană
      lv.fmuser.org -> letonă
      lt.fmuser.org -> lituaniană
      mk.fmuser.org -> macedoneană
      ms.fmuser.org -> Malay
      mt.fmuser.org -> malteză
      no.fmuser.org -> norvegiană
      fa.fmuser.org -> persană
      pl.fmuser.org -> poloneză
      pt.fmuser.org -> portugheză
      ro.fmuser.org -> Română
      ru.fmuser.org -> rusă
      sr.fmuser.org -> sârbă
      sk.fmuser.org -> slovacă
      sl.fmuser.org -> Slovenă
      es.fmuser.org -> spaniolă
      sw.fmuser.org -> Swahili
      sv.fmuser.org -> suedeză
      th.fmuser.org -> Thai
      tr.fmuser.org -> turcă
      uk.fmuser.org -> ucraineană
      ur.fmuser.org -> Urdu
      vi.fmuser.org -> Vietnameză
      cy.fmuser.org -> galeză
      yi.fmuser.org -> idiș

       
  •  

    FMUSER Wirless Transmit video și audio mai ușor!

  • Contact

    Adresa:
    Nr. 305 Clădirea HuiLan nr. 273 Huanpu Road Guangzhou China 510620

    E-mail:
    [e-mail protejat]

    Tel/WhatApps:
    +8618078869184

  • Categorii

  • Stiri lunare via e-mail

    PRENUME SAU NUMELE COMPLET

    E-mail

  • soluţie paypal  Western UnionBanca Chinei
    E-mail:[e-mail protejat]   WhatsApp: +8618078869184 Skype: sky198710021 Vorbește cu mine
    Drepturile de autor 2006-2020 Powered By www.fmuser.org

    Contactați-ne