C8051F020的音频峰值采集和网络传送
发布时间:2008/6/3 0:00:00 访问次数:909
1 原理框图
c8051f020是美国silicon laboratories公司生产的8051系列完全集成的混合信号isp flash微控制器。
基于c805lf020的音频峰值采集终端输人平衡音频信号,经减法电路、增益调整电路、负波形反相电路、检波电路、射极跟随电路和分压电路,最终利用单片机内部的8位和12位a/d转换器,可以一次采集16路音频峰值数据。c8051f020单片机将峰值数据和gps(全球定位系统)时间打包为应用层数据,再通过udp层、ip层和以太网层协议,最终打包为以太网包,通过以太网接口芯片rtl8019as将数据发送到局域网上。原理框图如图1所示。
2 峰值采集电路分析
音频峰值采集电路的输入部分为减法电路,如图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组成的分压电路将信号范围调整进了c8051f020的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;
}
}
3 网络传送技术要点
网络传送部分主要负责将采样后的音频峰值信息以及采集时间,通过以太网将数据发送到目标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.
1 原理框图
c8051f020是美国silicon laboratories公司生产的8051系列完全集成的混合信号isp flash微控制器。
基于c805lf020的音频峰值采集终端输人平衡音频信号,经减法电路、增益调整电路、负波形反相电路、检波电路、射极跟随电路和分压电路,最终利用单片机内部的8位和12位a/d转换器,可以一次采集16路音频峰值数据。c8051f020单片机将峰值数据和gps(全球定位系统)时间打包为应用层数据,再通过udp层、ip层和以太网层协议,最终打包为以太网包,通过以太网接口芯片rtl8019as将数据发送到局域网上。原理框图如图1所示。
2 峰值采集电路分析
音频峰值采集电路的输入部分为减法电路,如图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组成的分压电路将信号范围调整进了c8051f020的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;
}
}
3 网络传送技术要点
网络传送部分主要负责将采样后的音频峰值信息以及采集时间,通过以太网将数据发送到目标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.