C8051F020的音頻峰值采集和網(wǎng)絡傳送
發(fā)布時間:2008/6/3 0:00:00 訪問次數(shù):896
1 原理框圖
c8051f020是美國silicon laboratories公司生產(chǎn)的8051系列完全集成的混合信號isp flash微控制器。
基于c805lf020的音頻峰值采集終端輸人平衡音頻信號,經(jīng)減法電路、增益調(diào)整電路、負波形反相電路、檢波電路、射極跟隨電路和分壓電路,最終利用單片機內(nèi)部的8位和12位a/d轉換器,可以一次采集16路音頻峰值數(shù)據(jù)。c8051f020單片機將峰值數(shù)據(jù)和gps(全球定位系統(tǒng))時間打包為應用層數(shù)據(jù),再通過udp層、ip層和以太網(wǎng)層協(xié)議,最終打包為以太網(wǎng)包,通過以太網(wǎng)接口芯片rtl8019as將數(shù)據(jù)發(fā)送到局域網(wǎng)上。原理框圖如圖1所示。
2 峰值采集電路分析
音頻峰值采集電路的輸入部分為減法電路,如圖2所示。輸入信號可以為平衡音頻信號:
將r2、r3、r4、r5取為相等阻值,則可以得到:
v1=v+—v-
二級運放電路為反相比例放大器,可以調(diào)整信號的增益:
三級運放電路為負波形反相電路,當信號正相時,dl導通,電路表現(xiàn)為電壓跟隨器電路:v3=v2+其中,v2+是v2信號的正相電壓部分。
當信號負相時,d2導通,電路表現(xiàn)為反相比例放大器電路特性,假設r9=r10=10 kω則:
其中,v2是v2信號的負相電壓部分。
所以經(jīng)過第三級運放以后:v3=v2+一v2一
二極管d3采用檢波二極管,與電容c5組成檢波電路;電阻r12、r13和r14為電壓調(diào)零網(wǎng)絡;r15和r16組成的分壓電路將信號范圍調(diào)整進了c8051f020的a/d轉換的電壓范圍。模數(shù)轉換子程序如下:
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數(shù)據(jù)轉換結束
adclcn=adclcn&0xdf:
adcl[i]=adcl;
while(adolnt==o);//等待adc0數(shù)據(jù)轉換結束
adoint=0;
adc0[i]=adcoh;
}
}
3 網(wǎng)絡傳送技術要點
網(wǎng)絡傳送部分主要負責將采樣后的音頻峰值信息以及采集時間,通過以太網(wǎng)將數(shù)據(jù)發(fā)送到目標pc機進行數(shù)據(jù)處理。應用層協(xié)議如表1所列。
應用層協(xié)議調(diào)用udp.c將應用層數(shù)據(jù)打包成udp包,并綁定目標地址發(fā)送。使用udp傳送方式主要基于以下考慮:
①tcp要求目標端連接,方式復雜,會消耗單片機大量時間資源。以往的經(jīng)驗表明會出現(xiàn)連接不可靠或斷開的情況。
②有大量的、實時的、長時間的音頻峰值數(shù)據(jù)發(fā)送,udp方式更適合這種應用。
一般指定的目標地址為ip地址,要得到目標機器的以太網(wǎng)地址,需要arp協(xié)議(地址解析協(xié)議)的支持。以下是接收到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回應狀態(tài),回應的ip是要等待
//的ip地址
if((waiting_for_arp)&&(wait.
1 原理框圖
c8051f020是美國silicon laboratories公司生產(chǎn)的8051系列完全集成的混合信號isp flash微控制器。
基于c805lf020的音頻峰值采集終端輸人平衡音頻信號,經(jīng)減法電路、增益調(diào)整電路、負波形反相電路、檢波電路、射極跟隨電路和分壓電路,最終利用單片機內(nèi)部的8位和12位a/d轉換器,可以一次采集16路音頻峰值數(shù)據(jù)。c8051f020單片機將峰值數(shù)據(jù)和gps(全球定位系統(tǒng))時間打包為應用層數(shù)據(jù),再通過udp層、ip層和以太網(wǎng)層協(xié)議,最終打包為以太網(wǎng)包,通過以太網(wǎng)接口芯片rtl8019as將數(shù)據(jù)發(fā)送到局域網(wǎng)上。原理框圖如圖1所示。
2 峰值采集電路分析
音頻峰值采集電路的輸入部分為減法電路,如圖2所示。輸入信號可以為平衡音頻信號:
將r2、r3、r4、r5取為相等阻值,則可以得到:
v1=v+—v-
二級運放電路為反相比例放大器,可以調(diào)整信號的增益:
三級運放電路為負波形反相電路,當信號正相時,dl導通,電路表現(xiàn)為電壓跟隨器電路:v3=v2+其中,v2+是v2信號的正相電壓部分。
當信號負相時,d2導通,電路表現(xiàn)為反相比例放大器電路特性,假設r9=r10=10 kω則:
其中,v2是v2信號的負相電壓部分。
所以經(jīng)過第三級運放以后:v3=v2+一v2一
二極管d3采用檢波二極管,與電容c5組成檢波電路;電阻r12、r13和r14為電壓調(diào)零網(wǎng)絡;r15和r16組成的分壓電路將信號范圍調(diào)整進了c8051f020的a/d轉換的電壓范圍。模數(shù)轉換子程序如下:
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數(shù)據(jù)轉換結束
adclcn=adclcn&0xdf:
adcl[i]=adcl;
while(adolnt==o);//等待adc0數(shù)據(jù)轉換結束
adoint=0;
adc0[i]=adcoh;
}
}
3 網(wǎng)絡傳送技術要點
網(wǎng)絡傳送部分主要負責將采樣后的音頻峰值信息以及采集時間,通過以太網(wǎng)將數(shù)據(jù)發(fā)送到目標pc機進行數(shù)據(jù)處理。應用層協(xié)議如表1所列。
應用層協(xié)議調(diào)用udp.c將應用層數(shù)據(jù)打包成udp包,并綁定目標地址發(fā)送。使用udp傳送方式主要基于以下考慮:
①tcp要求目標端連接,方式復雜,會消耗單片機大量時間資源。以往的經(jīng)驗表明會出現(xiàn)連接不可靠或斷開的情況。
②有大量的、實時的、長時間的音頻峰值數(shù)據(jù)發(fā)送,udp方式更適合這種應用。
一般指定的目標地址為ip地址,要得到目標機器的以太網(wǎng)地址,需要arp協(xié)議(地址解析協(xié)議)的支持。以下是接收到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回應狀態(tài),回應的ip是要等待
//的ip地址
if((waiting_for_arp)&&(wait.