新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > C8051F020的音頻峰值采集和網絡傳送

        C8051F020的音頻峰值采集和網絡傳送

        ——
        作者:上海市廣播科學研究所 沈紅星 時間:2007-03-20 來源:單片機及嵌入式系統應用 收藏
        廣播信號經節目制作播出、信號傳送、發射等環節,最終在聽眾用戶端收聽,其中各個環節的系統工作狀態都會對最終的播出質量產生影響。為全面監測廣播信號播出過程中多個環節的信號質量,同時對高周信號和低周信號(基帶信號)的峰值進行監測,就要求峰值監測終端對廣播信號播出端、發射端以及解調后的音頻信號進行監測。一般電臺的制作播出端、發射端、監測控制端不在同一地點。以上海為例:制作播出在虹橋路廣播大廈;發射端在東方明珠電視塔;監測中心在北京路外灘。最好的監測方法就是各地點分別采集,再通過內部的局域網將采集的數據傳送到監測中心集中分析處理。

        1  原理框圖

        是美國Silicon Laboratories公司生產的8051系列完全集成的混合信號ISP Flash微控制器。

        基于C805lF020的音頻終端輸人平衡音頻信號,經減法電路、增益調整電路、負波形反相電路、檢波電路、射極跟隨電路和分壓電路,最終利用單片機內部的8位和12位A/D轉換器,可以一次采集16路音頻峰值數據。單片機將峰值數據和GPS(全球定位系統)時間打包為應用層數據,再通過UDP層、IP層和以太網層協議,最終打包為以太網包,通過以太網接口芯片RTL8019AS將數據發送到局域網上。原理框圖如圖1所示。

        原理框圖

        電路分析

          音頻峰值采集電路原理圖

        音頻電路的輸入部分為減法電路,如圖2所示。輸入信號可以為平衡音頻信號:

        公式

        將R2、R3、R4、R5取為相等阻值,則可以得到:

          V1=V+—V-

        二級運放電路為反相比例放大器,可以調整信號的增益:

        公式

        三級運放電路為負波形反相電路,當信號正相時,Dl導通,電路表現為電壓跟隨器電路:V3=V2+其中,V2+是V2信號的正相電壓部分。

        當信號負相時,D2導通,電路表現為反相比例放大器電路特性,假設R9=R10=10 kΩ則:

        公式

        其中,V2是V2信號的負相電壓部分。

        所以經過第三級運放以后:V3=V2+一V2一

        二極管D3采用檢波二極管,與電容C5組成檢波電路;電阻R12、R13和R14為電壓調零;R15和R16組成的分壓電路將信號范圍調整進了的A/D轉換的電壓范圍。模數轉換子程序如下:

        void ADC0_and_ADCl(unsigned char xdata*adc0,unsigned

        char xdata*adcl){

        unsigned char i;

        ADOINT=0:

        ADClCN=ADClCN & 0xDF:

        for(i=0;i<8;i++){

        AMXOSL=i;//選擇ADC0/ADCl的輸人端口

        AMXlSL=i:

        ADOBUSY=1:

        ADClCN=A13(21CN 1 0x10:

        while((ADClCN&0x20)==O);//等待ADCl數據轉換結束

        ADClCN=ADClCN&0xDF:

        adcl[i]=ADCl;

        while(ADOlNT==O);    //等待ADC0數據轉換結束

        ADOINT=0;

        adc0[i]=ADCOH;
                 }

          }

        傳送技術要點

        傳送部分主要負責將采樣后的音頻峰值信息以及采集時間,通過以太網將數據發送到目標PC機進行數據處理。應用層協議如表1所列。

        應用層協議調用UDP.C將應用層數據打包成UDP包,并綁定目標地址發送。使用UDP傳送方式主要基于以下考慮:

        ①TCP要求目標端連接,方式復雜,會消耗單片機大量時間資源。以往的經驗表明會出現連接不可靠或斷開的情況。

        ②有大量的、實時的、長時間的音頻峰值數據發送,UDP方式更適合這種應用。

        一般指定的目標地址為IP地址,要得到目標機器的以太網地址,需要ARP協議(地址解析協議)的支持。以下是接收到ARP包后的處理程序:

        void arp_rcve(UCHAR xdata*inbuf){

        //是否收到有效的ARP包

        //查看是否有已收到的IP地址,如果有則更新入口和重

        //啟時間

        if(arp一>dest_ipaddr!=my_ipaddr)return;//目標地址

        //不指向自己,返回

        //找空白的IP地址儲存條目。沒有找到空白的lP地址

        //儲存條目,找到最舊的條目并替換。找不到最舊的條目,不替換

        if(arp一>message_type==ARP_RESPONSE){//收到

        //ARP回應包

        //如果本機處于等待ARP回應狀態,回應的IP是要等待

        //的IP地址

        if((waiting_for_arp)&&(wait.ipaddr==arp一>

        Source_ipaddr)){

        waiting_for_arp=FALSE;//清除等待標志

        ip_send(waic buf.wait.ipaddr,wait.pmto_id,wait.len);

        }

        }

        else if(arp一>message_type==ARP_REQUEST){

        arp_send(arp一>source_hwaddr,arp一>source_ipad—dr,ARP_RESPONSE);

        }

        //如果收到ARP請求包,發送ARP請求回應

        )

        ARP協議會定時訪問ARP存儲緩沖,如果緩沖中的條目生命時間到達,ARP協議會將該條目刪除。為了保證數據發送目標地址的硬件地址不被移去,程序中硬性規定ARP緩沖中目的地址的ARP條目不會因為時間而移去。

        void age arp_cache(void){

        UCHARi;

        for(i=0;i

        //目的地址的ARP條目不會因為時間而移去

        if(arp_cache[i].ipaddr!=udp_dest_ipaddr_rw){

        if((arp_cache[i].ipaddr!=0)&&(arp_cache[i].

        timer)){

        arp cache[i].timer一一;

        //生命時間到達.條目的IP地址項清零

        if(arp_cache[i].timer==O)arp_cache[i].ipaddr=01

        }

        }

        }

        }

        網絡傳送的硬件部分由C8051F020和RTL8019AS組成,構成10M以太網接口。以太網和IP地址可通過串口配置保存在Flash中,C8051F010上電后將以太網地址傳送給RTL8019AS。RTL8019AS初始化后完成以太網層數據包的接收和發送。

        結  語

        基于C8051F020單片機的音頻峰值采集終端具有高穩定性和網絡傳輸的特點,滿足了廣播監測網絡中長時間、不間斷和遠距離的要求,目前已成功應用到廣播監測網絡中。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南汇区| 拜城县| 新巴尔虎左旗| 丽水市| 贵阳市| 贵定县| 梁河县| 阳春市| 黄冈市| 汤原县| 玉屏| 和田县| 罗田县| 娄烦县| 璧山县| 海城市| 浪卡子县| 宿州市| 宣恩县| 西青区| 方正县| 宕昌县| 柘城县| 麻江县| 垣曲县| 霍山县| 晋江市| 张家界市| 洛扎县| 葵青区| 五家渠市| 桓仁| 大港区| 宕昌县| 南部县| 民权县| 嘉定区| 盐池县| 武冈市| 镇宁| 阳信县|