全国作品设计报告.doc

上传人:jian****018 文档编号:9350314 上传时间:2020-04-05 格式:DOC 页数:38 大小:1.28MB
返回 下载 相关 举报
全国作品设计报告.doc_第1页
第1页 / 共38页
全国作品设计报告.doc_第2页
第2页 / 共38页
全国作品设计报告.doc_第3页
第3页 / 共38页
点击查看更多>>
资源描述
第十届“挑战杯”全国大学生课外学术科技作品竞赛研究与设计报告 作品名称: 狗吠二次报警系统学校全称: 合 肥 学 院申报者姓名: 窦 宝 成联系电话: 13515652933Email: doubaocheng2163.com 类别: 自然科学类学术论文 哲学社会科学类社会调查报告和学术论文 科技发明制作A类 科技发明制作B类2007年10月12日目录第一章 引言1.1系统设计目的41.2总体设计思想41.3总体设计框图51.4系统功能与说明51.5国内外目前研究现状51.6先进性、实用性、可行性6 1.7经济效益、推广价值、成熟程度 7 1.8普通报警器与狗吠二次报警器的比较 8第二章 理论分析2.1声音识别技术92.2生物特征参数的提取92.2.1样本的采集92.2.2频谱仪频谱分析92.2.3Matlab的频谱分析102.2.4分析的数据.102.2.5对实验数据进行分析.132.2.6结论14 2.3算法原理及实现14 2.3.1 FFT算法的原理14 2.3.2 FFT运算的单片机的实现16第三章 模块电路方案选择 3.1中央处理芯片选择173.2声音拾取放大电路方案选择183.3前置滤波电路方案选择183.4显示模块19第四章 模块电路电路设计4.1 中央处理器单元电路 204.2前置滤波电路设计 204.3 自动增益(AGC)电路设计 214.4 A/D转换电路设计 224.5 DTMF信号产生电路22第五章 软件设计5.1 概述 235.2 系统软件设计原则 235.3倒序子程序框图 245.4 FFT运算和程序框图 24第六章 测试与调试6.1 测试所用仪器及工具 266.2 测试项目26 7.参考文献 268.致谢27附1:主要元器件清单及价格27附2:成本预算28附3:使用计算机工具软件清单28附4:部分程序28附5:实物照片41狗吠二次报警器研究与设计报告摘要: 本设计是一个能精确分辨出代表危险信号的狗叫声的狗吠二次报警器。它是应用数字信号处理技术对狗吠声进行处理,提取“正常”与“非正常”情况下狗吠特征的不同点,形成特征参数数据库并存储于单片机中。由传感器实时检测声音,对采集的语音信号进行快速傅立叶变换(以下简称FFT)并与模板进行精确比对,判断是否发出报警信息。设计中以凌阳公司研发的16位单片SPCE061A作为系统核心,将传统用DSP实现的FFT变换改为用单片机实现,成本大大降低。关键词: 信号处理 快速傅立叶变换 二次报警 第一章 引言1.1 系统设计目的狗是人类的好朋友,狗的叫声能唤起人类的注意。但是,引发狗叫的原因太多了,怎么才能知道什么样的狗叫代表着危险,而什么样的狗叫无关紧要呢?基于这一想法而设计了一套狗吠二次报警系统,它能精确分辨出代表危险信号的狗叫声。当传感器从狗吠声中判断出判断出危险信息,就会自动发送电子警报。1.2 总体设计思想 1.样本的采集:分别用MP3和录音机到警犬基地现场录制声音,录音分为不同时间、狗的不同状态、不同种类的狗三种情况下。录音时间分别为2006年冬天和2007年春天。狗的不同状态包括正常叫声、危险信号发生、高兴和生气等四种状态。狗的种类为14种。 2.样本的分类:14种狗,4种不同状态,2次不同时间录音。累计1442=112,既代表112种不同的狗叫声。 3.得到112种不同狗叫声的频谱:将112种不同的狗叫声进行频谱分析,得到112种频谱分析结果。比较分析结果,找到正常与非正常狗吠声的不同点。 4.模板的提取:将非正常狗吠声(即代表危险信号发生)在MATLAB软件下做256点FFT变换,得到功率谱图形特征。将其幅值建立数组,即上文提到的声音模板,存储于单片机中。幅值为,i=0,1,2,,255。 5.实时FFT变换:传感器检测信号通过相应的前端处理,将这部分信号经AD采样(采样频率为8000Hz),之后通过单片机程序做256点FFT变换,计算功率谱幅值。 6.功率谱比对:在单片机中实现功率谱的比对。并设定门限值K,,满足条件则发出报警信息。1.3 总体设计框图 由语音信号处理电路对采集的语音信号进行特征化和语音处理,提取声音的个性特征参数并进行存储,形成特征参数数据库。前置滤波器A/D转换FFT变换识别模型带通滤波器 声音模板报警电路声音拾取图1.1总体设计框图1.4 系统功能与说明1.识别代表危险信号的狗吠声,并自动发出报警信号。2.增加时间显示、收音机等功能3.自动拨号报警、号码预设和报警指数设定功能。4.报警方式选择。5.各种省电模式、监控模式选择。1.5 目前国内外研究现状 三个月前,以色列中部的一个集体农场遭窃,盗贼偷走了50头母牛。为了防止偷盗事件再次发生,农场决定安装一种名为“狗吠报警器”的安全设备。 这套设备是2001年由以色列空军研发的。生物感应技术公司的工作人员,在分析了350种不同的狗吠声后发现,尽管狗有种类和大小的不同,但遇到危机时狗吠声都是一样的。根据这个研究结果,他们开发了“狗吠报警器”。 研发公司的首席执行官埃亚勒柴海威表示,这套设备能精确地分辨出代表危险信号的狗叫声。只要传感器判断出危险信息,就会自动发送电子警报。 这套“狗吠报警器”是世界上第一套利用狗叫声来作为安全警戒的电子设备,目前为止,这套设备已经进入了以色列军事基地、供水中心、监狱、农场、车库,以及约旦河西岸的犹太人定居点。特别是在以色列的监狱里,安装上这套设备后,狱警就能在第一时间内赶到现场,从而及时阻止犯人越狱。 研究人员表示,他们希望这套“狗吠报警器”经过进一步改善,能很快进入普通家庭。 国内目前尚无关于狗吠二次报警器系统的研究报道。1.6 先进性、实用性、可行性 狗吠二次报警器的研制是数字信号处理在报警器设计领域的新应用,与传统报警器相比它处于先进地位。所以该作品具有很强的创新性。 狗吠二次报警器能为人们的生活服务,让人们告别传统报警器带来的种种弊端,解决人们生活中的防盗问题。在某些特殊场合,具有传统报警器不可比拟的优势,比如说在农场里,由于农场比较大,而且树木多,如果安装普通报警器,它的监控范围将因很多树木的阻挡等各方面外界因素的影响而受到限制,如果安装狗吠二次报警器,狗的嗅觉、听觉等非常灵敏,特别是经过训练的警犬,它可以监控方圆几公里的范围,这是普通报警器不具有的,另外在监狱、农场等都有警犬,安装上这套设备就可以充分利用警犬来起到监控防盗的目的,免去普通报警器的安装,省下一笔不小的开支。狗吠二次报警器可以应用于军事基地、供水中心、监狱、农场、车库、普通家庭等场合。因而具有很强的实用性。 凌阳单片机较高的数据处理速度使它能够非常容易地、快速地处理复杂的数字信号处理,具有能够实现用于处理数字信号的16 乘16 位的内积运算,是一款以单片机的价格获得DSP 处理速度的具有高性价比的单片机。另外以色列已经研制出世界上第一台狗吠二次报警器。 所以说狗吠二次报警器的发明不光在理论上是先进的而且在实际中也行得通。1.7 经济效益、推广价值、成熟程度 普通报警器的市场价格高低不等,它与应用场合、报警方式和传感器的选择等息息相关,总体来说价格还是相当高的。而狗吠二次报警器在成本上要低很多,开发一台成本也就在120元(见附录:成本预算)以内,如果批量生产,成本还会大大降低。另外从功能上说,狗吠二次报警器经过进一步的改进,增加一个“多功能输入模块”,它可以连接红外人体传感器等各种传感器,也就在现有的狗吠报警器的基础上附加了普通报警器的功能,这一附加功能可以根据消费者的需求而定。另外从监控范围要比普通报警器监控范围宽,比如说一个中型农场或一个监狱里只需要用一台,另外接两三个传感器检测声音就可以了。你还可以随心所欲的选择是否开启监控状态,平时可以当做一台普通收音机使用,也可以把它当作一台数显时钟使用,如果不需要的情况下你可以关闭所有功能进入低功耗的监控状态。 从以上几点来说,狗吠二次报警器将具有很好的推广价值和可观的经济效益。简单的算一笔帐,比如说仅在中国销售,每个监狱安装两台,每个农场安装两台,每百分之零点五的家庭安装(约150万台),每台市价230元,每台成本80元,利润每台150元,销售150万台总利润为150万*150=2 250 000 000,超过22亿,如果再加上监狱、农场等场合安装所得利润,总利润将相当可观。它可广泛应用于军事基地、供水中心、监狱、农场、车库、普通家庭等。此项声音识别技术不仅仅用在这个报警器上,从技术角度来说,它可以用在疯狗的识别、动物语言的解密等各个方面。因而具有很好的应用前景。 本设计主要基于数字信号处理技术、传感器技术,这两方面的研究早已很成熟,直到06年底才出现世界上第一台狗吠报警器,并不说明此项技术不成熟,而只是很少有人想到用狗吠声来研究制作报警器,另一方面,因为研究狗吠报警器要采集大量的声音样本作为分析,对很多人来说可能是困难的事。所以总体来说,狗吠报警器的研究虽然刚刚起步,但它绝对不仅仅是一项实验室产品,在不久的将来,狗吠二次报警器将取代普通报警器而走进农场、走进监狱、走进普通家庭,发挥它应有的作用。1.8 普通报警器与狗吠二次报警器的比较狗吠二次报警器普通报警器成本低高安装方式简单复杂功耗低中等监控范围大小是否可预报警?是否是否具有隐蔽性?是否报警方式声、光、拨号等多模式选择不统一第二章:理论分析2.1 声音识别技术 生物识别技术是利用生物特征进行身份认证的一种技术,是目前公认的最为方便与安全的识别技术。由于生物特征具有唯一性和稳定性,不易伪造和假冒,所以利用生物识别技术进行身份认证安全、准确、可靠。在生物识别领域中声音识别以其独特的方便性、经济性和准确性等优势受到世人瞩目,并且易成为人们日常生活和工作中重要且普遍的安全认证方式。声音识别技术是一种行为识别技术,用声音录入设备反复不断地测量、记录声音的波形和变化,并进行频谱分析,经数字化处理之后做成声音模板加以存储。使用时将现场采集到的声音同登记过的声音模板进行精确的匹配。 2.2 生物特征的提取2.2.1样本的采集 声音来源于安徽省合肥市特警大队警犬基地。采用MP3和录音机到警犬基地现场录制声音,每种狗单独录音,互不影响。MP3存储文件格式为.wav。录音分为不同时间、狗的不同状态、不同种类的狗三种情况下。录音时间分别为2006年冬天和2007年春天。狗的不同状态包括正常叫声、危险信号发生、高兴和生气等四种状态。狗的种类为14种。14种狗,4种不同状态,2次不同时间录音。累计1442=112,既代表112种不同的狗叫声。2.2.2频谱分析 将采集的声音分成不同状态的小段,共14种狗,累计分成1442112段,分别将这112段声音进行频谱分析,对得出112种分析结果。在Matlab软件下利用wavread函数对语音信号进行读取,采样频率为8000Hz,再对信号做FFT变换,点数为256,并绘出频谱图。x1,fs,nbits=wavread(dog.wav); %读取语音信号的数据,赋给变量x1y1=fft(x1,512); %对信号做512点FFT变换f=fs*(0:255)/512;plot(x1); %做原始语音信号的时域图形title(原始语音信号);h,w=freqz(x1); %绘制原始语音信号的频率响应图plot(w,abs(h);title(频率响应图)plot(abs(y1(1:255); %做原始语音信号的FFT频谱图title(原始语音信号FFT频谱)2.2.3分析的数据以下两副图片为狗在危险信号下叫声时域波形(2006年12月采集) 图2.1狗在发现危险信号时叫声时域波形 图2.2狗在受攻击时叫声时域波形以下两副图片为狗在危险信号下叫声时域波形(2007年4月采集) 图2.3狗在发现危险信号时叫声时域波形 图2.4狗在受攻击时叫声时域波形以下两副图片为狗在正常情况下叫声时域波形(2006年12月采集) 图2.5狗在高兴时叫声时域波形 图2.6狗在生气时叫声时域波形以下两副图片为狗在正常情况下叫声时域波形(2007年4月采集) 图2.7狗在高兴时叫声时域波形 图2.8狗在生气时叫声时域波形以下两副图片为狗在危险信号下256点FFT图(2006年12月采集)图2.9狗在发现危险信号时叫声256点FFT图 图2.10狗在受攻击时叫声256点FFT图以下两副图片为狗在危险信号下256点FFT图(2007年4月采集)图2.11狗在发现危险信号时叫声256点FFT图 图2.12狗在受攻击时叫声256点FFT图以下两副图片为狗在正常情况下叫声256点FFT图(2006年12月采集) 图2.13狗在高兴时叫声256点FFT图 图2.14狗在生气时叫声256点FFT图以下两副图片为狗在正常情况下叫声256点FFT图(2007年4月采集)图2.15狗在高兴时叫声256点FFT图 图2.16狗在生气时叫声256点FFT图说明:1. 大量以上数据分析的目的在于找到正常与非正常狗吠声的频谱差别。由 于篇幅有限,不可能将实验中分析112种不同的狗叫声全部列出。 2. 以上分析结果包括两部分,原始信号时域波形图和256点FFT图。 3.采样频率为8000Hz,分析信号长度为均350ms,FFT变换点数为256。 4.为更准确的说明问题,上述图形具有对应关系,即图2.9、图2.10、图 2.11、图2.12、图2.13、图2.14、图2.15、图2.16分别为图2.1、 图2.2、图2.3、图2.4、图2.5、图2.6、图2.7、图2.8的分析结果。 5.读取声音函数为“wavread”。2.2.4对实验数据进行分析 从时域图形来看,正常与非正常狗吠声时域波形相差不大,看不出他们之间的区别。从频谱图来看,我们可以明显看到正常与非正常狗吠声的频谱图有很大的差别。从图2.9、图2.10、图2.11、图2.12中我们可以看出:狗在发现危险信号和受攻击时叫声的256点FFT图基本相同,在25和225左右时幅值很高,在110到140之间很小,基本为0。另外我们看到它与样本采集的时间没任何关系。从图2.13、图2.14、图2.15、图2.16中我们可以看出:正常狗叫声随时间不同、状态不同有差别,但不论在什么情况下,它与非正常狗吠声的差别是相当明显的,这种正常狗吠声频谱的差别对我分析不会产生任何影响,因为我的目的是找到正常与非正常狗吠声的差别,去识别什么样的狗叫声代表非正常,而不是识别什么样的狗吠声代表高兴、生气等等。2.2.5结论经过分析,我们知道: 同一种狗在不同状态下叫声不同,频谱差别很大。 同一种狗在同一状态下的不同时刻叫声差别不大,频谱基本相同。 不同种类狗在不同状态下叫声不同,频谱差别很大 不同种类的狗在同一状态下的叫声不同,但差别不大。 不同种类的狗在“攻击”状态下的频谱有共同特征。 于是我们可以得出结论:不同种类的狗在不同状态之下的叫声千差万别但当受到攻击或主动攻击时(即代表危险信号发生时)的叫声的频谱基本相同。即我们可以通过比较频谱的特征来判断是否有危险信号发生。2.3 算法原理及实现 通过研究FFT的算法结构和信号的特点发现,采用分段FFT,巧妙地组织单片机的片内RAM资源,可使数据运算量和RAM开销大大减少,能实现数据滤波且能达到实时采集与处理所需的运算速度。2.3.1 FFT算法的原理DFT(离散傅立叶变换)在实际中得到大量应用,利用它可以计算信号频谱,但如果直接计算DFT计算量将会很大,因此提出了快速计算DFT的方法,FFT算法有20余种,我们以最基本的“基数2时间抽取算法(DIT-FFT)”为例.这种算法是通过对N为2的整数幂时间序列x(n)的逐次分解而得到.下图所示流图描述了这种快速计算DFT的算法.图2.17基本蝶形计算流图这个流图表示的方程具有如下形式: 下图所示为8点离散傅立叶变换蝶形计算流图.它说明了FFT算法的基本原理.图2.18点离散傅立叶变换蝶形计算流图 可见每一级共有N/2个蝶形,共有log2N级,则总乘法次数为(N/2)log2 N,N愈大,算法次数与直接DFT算法的差距愈大.快速算法的优势表现的越明显, 要实现FFT算法,将自然次序排列的序列,按倒位序重排后作为输入,2.3.2 FFT运算的单片机实现 为加快计算速度,将N=8时的值制成表存于FLASHROM,供整序时查询 ,FFT变换是复数运算。在将原始数据加载到片内RAM的同时,应把实数转换为复数,即令虚部为0。于是,一个原始数据加载到RAM中要占用2个字。复数的存储格式为:实部字存于低地址,虚部字存于相邻的高地址。现在考察RAM需要量。N=9时,段长为512个数据,加载到RAM中要占用51221024字。 WkCOS(2k)/N jsin(2k)/N, k02N-1 将复因子Wk的实部和虚部都乘2的13次方,取整后制成表存于FLASH ROM中,供程序查表获得其值;而Wk与某数相乘,将32位运算结果右移13位作为积。这就使全部运算为整数运算,适应SP061A的硬件乘法功能。 第三章 模块电路方案选择3.1 中央处理芯片选择 方案一:DSP芯片 DSP芯片是针对数字信号处理而设计的,它具有运算速度快、可编程的特性和接口灵活的特点,在信号处理中被广泛应用,但相对成本较高。 方案二:FPGA芯片 采用FPGA/CPLD(现场可编程逻辑门阵列/复杂可编程逻辑门阵列)作为系统的微处理器。它可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减小了体积,提高了稳定性,并且可应用EDA软件仿真,调试,易与进行功能扩展。FPGA/CPLD采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。但由于它集成度高,成本比普通控制器高。方案三:单片机 SPCE061A 是台湾凌阳科技公司推出的一款以 nSPTM为核心的基于SOC(System On Chip) 技术的16 位单片机。SPCE061A中包括2K字节的SRAM和32K字节的闪存ROM; 32 位可编程的多功能I/ O 端口;两个16 位可编程定时器/ 计数器;14 个中断源,两级优先级,三种中断类型;32768Hz 实时时钟;低电压复位/监测功能;可编程的看门狗功能;7 通道10 位A/ D 输入和单通道内置麦克风放大器和自动增益控制AGC 功能的声音A/ D 转换器;双通道10 位D/ A 音频转换器;具有ICE( In Circuit Emula2tion) 接口,能够方便的实现在线仿真和程序的下载; SPCE061A在2. 63. 6V 工作电压范围内的工作频率范围为0. 3249.152MHz ,较高的数据处理速度使SPCE061A 能够非常容易地、快速地处理复杂的数字信号, SPCE061A 能够实现用于处理数字信号的16 位3 16 位的内积运算,因此非常适合于数字语音识别和应用领域。凌阳的指令系统采用精简指令集,它以字为单位,从而格式紧凑、灵活;执行时间短。由此可见,SPCE061A 是一款以单片机的价格获得DSP 处理速度的具有高性价比的单片机。综合上述,我们选择方案三SPCE061A作为本系统的中央处理器。3.2 声音拾取放大电路方案选择 方案一:高精度运放LM356 MIC采用驻极体电容话筒,这种话筒具有灵敏度高、无方向性、重量轻、体积小、频率响应宽、保真度好等优点。麦克风输入的模拟语音信号很小,首先要对其进行放大,在此采用高精度运放LM356。 方案二:采用功率放大器LM386 LM386是小功率音频放大器集成电路,其频响宽、功耗低、电压范围大、外接元件少,被称“万用放大器”。综合上述,我们选择方案一 3.3 前置滤波电路方案选择 前置滤波电路主要用来滤除音频信号以外的高频干扰等杂波信号,在此我们采用低通滤波器,其上截止频率为35KHz。 方案一:简单一阶低通有源滤波器 一阶低通滤波器的电路如图6.3.1所示,其幅频特性见图3.3.1,图中虚线为理想的情况,实线为实际的情况。特点是电路简单,阻带衰减太慢,选择性较差。 图3.1简单一阶低通有源滤波器与理想的二阶波特图相比,在超过 以后,幅频特性以-40 dB/dec的速率下降,比一阶的下降快。但在通带截止频率 之间幅频特性下降的还不够快。 方案二:二阶压控型低通滤波器 二阶压控型低通有源滤波器如图3.3.2所示。其中的一个电容器C1原来是接地的,现在改接到输出端。显然,C1的改接不影响通带增益。图3.2二阶压控型LPF综上所述,我们采用方案二。3.4 显示模块方案一:采用数码管显示 数码管具有低压、寿命长、耐老化、防潮,对环境要求低以及精确可靠、操作简单、易于维护等特点,但显示信息量小。方案二:采用液晶显示屏(LCD)显示 液晶显示屏具有低耗电量,无辐射危险,以及无影像不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。并能显示各种波形,菜单等,显示内容十分丰富。 综上所述选择方案一。本设计没有丰富的内容需要显示,采用LED足以满足设计要求。第四章 模块电路设计4.1 中央处理器单元电路由SPCE061A组成的中央处理器单元电路,如下图所示: 4.2 前置滤波电路设计4.3 自动增益电路(AGC)设计 SPCE061A内部自动增益控制电路AGC能随时跟踪、监视前置放大器输出的音频信号电平,当输入信号增器时,AGC电路自动减小放大器的增益;当输入信号减小时,AGC电路自动增大放大器的增益,以便使进入A/D的信号保持在最佳电平,又可使谐波减至最小。 话筒输入的语音信号动态范围很宽。为了充分利用A/D转换器的位数,需要在不同的输入音量下,放大器的输出电平大致相同。声音小时增益大,声音大时增益小。需要用到自动增益控制AGC。 SPCE061A内带有自动增益的AGC电路,AGC把MIC_In信号控制在指定的范围内, MIC_In通道有两级OP放大器。关闭AGC后,第一级放大器的增益为15V/V。第二级放大器(OPAMP2)的增益为60K/(1K+Rext),可以通过外接电阻Rx 来调整增益的大小,Rx的增减和OPAMP2的增益的变化成反比。如果Rx5.1K(ohm),OPAMP2的增益60K/(1K+5.1K) = 9.8 (19.8dB),MIC放大器的总增益OPAMP1 OPAMP2 = 15 9.8 = 147(43.3dB)。 AGC被启用之后(P_ADC_Ctrl (W) ($7015H)的b2=1),能自动调整增益的值,以防止信号饱和。当OPAMP2的输出0.9 AVdd时,AGC自动降低OPAMP1的增益,以防止被放大的信号饱和。 AGC外电路的接口电路如下:4.4 A/D转换电路设计 SPCE061A内置8通道10位模-数转换器,其中7个通道用于将模拟量信号 (例如电压信号) 转换为数字量信号, 可以直接通过引线(IOA06)输入。另外一个通道IOA7只用于语音输入,即通过内置自动增益控制的麦克风通道(MIC_IN)输入。ADC采用自动方式工作。硬件ADC的最高速率限定为(Fosc/32/12)Hz, ADC在各种系统时钟频率下的响应速率FOSC(MHvz)20.4824.57632.76840.9649.152ADC响应率(KHz)640768102412801536 从MIC_IN输入的模拟信号则要经过缓冲器和放大器。AGC功能将通过MIC_IN通道输入的模拟信号的放大值控制在一定范围内,然后放大信号经采样-保持模块被送至比较器参与A/D转换值的确定,最后送入P_ADC (7014H)。模拟信号通过麦克风的MIC_IN通道输入时,选择AGCE为1,即运算放大器的增益可在其线性区域内自动调整。AGCE缺省选择为0,即取消自动增益控制功能。 4.5 DTMF信号产生电路 我们利用了DTMF专用芯片HT9200B。图4.5.2 HT9200B与单片机的接口第五章:软件设计5.1 概述 系统采用C语言和汇编语言联合编程的方法,C语言作为主程序编程,调用其他程序模块,可充分利用C语言的优点。汇编语言主要用在子程序模块中,它可以直接对硬件进行操作,利于它在中断延时方面的优点。系统采用模块化程序设计,主要模块包括:系统初始化模块、系统主程序模块、A/D转换模块、FFT变换模块、频谱比对模块、报警模块、键盘设置模块、自动拨号报警模块、显示模块等。5.2 系统软件设计原则 在本次的软件设计中,单片机应用开发中代码使用效率、单片机的抗干扰性及软件可靠性是设计的重点。 单片机应用软件系统设计包括功能模块划分、程序流程确立、模块接口设计以及程序代码编写。依据系统的功能要求,将整体软件系统分割成若干个独立的程序模块。这些程序模块可以是几条语句的集合、功能函数或程序文件。在软件设计中,从以下几个方面考虑了设计的原则。1)程序代码效率 汇编语言是面向机器的语言,执行速度与机器语言相仿,但它比机器语言易读、好记,相对来说也不容易出错。使用汇编语言编程时,必须熟悉机器的指令系统、寻址方式、寄存器的设置和使用方式,不同类型的机器不能移植。使用汇编语言可以把计算机的工作过程刻画得非常精细而又具体,因此可以编制出结构紧凑、运行时间准确的程序。这样的程序设计语言在实时控制中是非常实用的,因此,我选择了汇编语言。2)程序错误分析 (1)物理参数 物理参数主要是系统的输入参数,它包括采集处理中的运行参数和处理结果时的结果参数。合理设定这些边界,将超出边界的参数都要进行出错处理。 (2)资源参数 资源参数主要是系统中的电路、器件功能单元的资源,如记忆体容量、存储单元长度、堆叠深度。在程序设计中,对资源参数不允许超出范围使用。 53 倒序子程序框图 I为自然序列,J当前倒序数的十进制数值,对于,M位二进制数最高位的权值为N/2,且从左向右权值依次为N/4、N/8、2、1。因此最高位加一相当于十进制运算J+N/2,如果最高位是0(JN/2),则直接由J+N/2得下一个倒序值,如果最高位是1(JN/2),则要将最高位变成0(JJ-N/2),最高位加1(J+N/4),但次高位加1时同样要判断0、1值,如果为0则直接加1,否则将次高位变成0再判断下一位,依次类推,直至完成最高位加1向右进位的运算。LHN/2J LHN1N-2TX(I)A(I)X(J)A(J)T I=J I=1,N1 KLH JKJJ+KJJ-KKK/2图5.1倒序子程序流程图5.4 FFT运算和程序框图 送入X(n)和M 倒序 L=1,M K=J;N=1; 开始 J=0,B-1 输出 结束第六章:测试与调试6.1 测试所用仪器及工具序号名称型号规格数量主要技术指标备注1数字示波器TDS10121100MHz 1GS/s2数字万用表UT58A1优利德科技(深圳)有限公司3频谱分析仪14学生电源15联想电脑1联想6编程下载器176.2 测试项目测试项目强度(DB)持续时间(S)理论报警次数实际报警次数白噪声测试156001褐色波测试156000粉波测试156000静音测试156000音乐声测试156001说话声测试156000狗吠声测试1560567 参考文献1余锡存编 单片机原理及接口技术. 西安电子科技大学出版社2雷思孝等编 单片机原理及实用技术 西安电子科技大学出版社3赵亮编.单片机C语言编程与实例 人民邮电出版社4王雪文编 传感器原理及应用 北京航空航天大学出版社5丁玉美等编 数字信号处理 西安电子科技大学出版社6罗亚非等编 凌阳16位单片机应用基础 北京航空航天大学出版社7 王华等译 DSP原理及其C编程开发技术 电子工业出版社8 黄智伟主编 全国大学生电子设计竞赛训练教程电子工业出版社8. 致谢感谢我的指导老师孙强博士,感谢合肥学院电子信息与电气工程系的谭敏老师、宣跃文老师、高先和老师等对我的指导。同时合肥市公安局特警大队警犬基地、安徽广德县横山国家森林公园为实验的进行提供了大量的声音样本。我的同学徐黄梅等在整个设计过程中给予了很大的支持和鼓励。在此表示感谢!附1:使用主要元器件清单及价格元件名称参数数量备注单价(元)芯片AT89S52151单片机6.0芯片SPCE061A1凌阳单片机55.0芯片SPY00291功率放大3.0芯片SPY00301稳压3.0芯片74HC2441缓冲器1.5芯片NE5551定时器0.5芯片LM32414运放1.0芯片LM3861功率放大0.8芯片HT9200A1TDMF产生8.0芯片LM3171稳压1.5芯片LM3371稳压2.0数码管共阳60.7排阻10k41.0晶振32.768k10.5晶振24M0.6晶振3.579545M10.6三极管9014 60.3二极管1N400750.1发光二极管红、绿0.1高亮度发光二极管蓝20.8继电器HRS1-S5VDC1.0扬声器8欧0.5瓦2.5变压器20W15V110.0电位器1k、10K、100K若干2.0(总计)麦克风0.5光耦0.5附2:根据“元器件清单及价格”表,我们计算了整个产品的成本为117.2元,如果批量生产的话,成本还会进一步的降低,据分析,批量生产的成本可降低到70元以内。附3:使用计算机工具软件清单:UnspIDE1.16.4 凌阳单片机编译软件Keil uVision3 C51编译软件亿图V1.6.3 专业流程图软件MathType 公式编辑器软件Word 2003 文字编辑软件附4:部分程序/*狗吠报警程序*/*/*A/D转换程序*/void adchanged() int i,j; *P_ADC_Ctrl = 0x001D; /设置MICIN输入、AGC 、直接模示 j=*P_ADC; /先读取数据以激活ADC for(i=0;ipts;i+) /循环查询ADC状态,循环次数为采样点数 if(*P_ADC_Ctrl=0x8000) /如果第15位RDY为1,则表示AD转换完成 /iobufferi=*P_ADC; /再次读取P_ADC单元内容来得到转换结果 xri=*P_ADC; *P_ADC_Ctrl = 0x001C; /关闭ADC转换 /*计算FFT子程序*/xr:信号序列实部 xi:信号序列虚部 N:FFT变换区间长度N=2的M次方/如果信号长度小于N,应该给xr、xi后补0/计算结果X(K)的实部和虚部分别存储在数组xr和xi中/void FFT(float xr,float xi) /xr:信号序列实部 xi:信号序列虚部 int L,i; float rPartKB,iPartKB; /分别代表X(K+B)的实部和虚部 float rCfpts,iCfpts; /rCf和iCf分别存储旋转因子实部和虚部 /旋转因子数组长度应根据自己需要调整int m,n; /查表求旋转因子/ for(i=0;ipts;i+) m=costabi; /查表求旋转因子的实部 rCfi=m; n=sintabi; /查表求旋转因子的虚部 iCfi=n; ChangeOrder(xr,xi); /调用倒序子程序/ for(L=1;L=7;L+) /计算各级蝶形/ int B,J,P,k; B=(int)(pow(2,(L-1)+0.5); for(J=0;J=B-1;J+) P=J*(int)(pow(2,(7-L)+0.5); for(k=J;k=pts-1;k+=(int)(pow(2,L)+0.5) rPartKB=xrk+B*rCfP-xik+B*iCfP; iPartKB=xik+B*rCfP+xrk+B*iCfP; xrk+B=xrk-rPartKB; xik+B=xik-iPartKB; xrk=xrk+rPartKB; xik=xik+iPartKB; /*倒序子程序*/void ChangeOrder(double xr,double,int N) int LH,N1,I,J,K; double T; LH=N/2;J=LH;N1=N-2; for(I=1;I=N1;I+) if(I=K) J=J-K; K=(int)(K/2+0.5); J=J+K; /*频谱比对函数*/void compare(float x1pts)float fdpts; /定义幅度模板数组 int i; /定义循环变量 int k=1; /定义偏差指数 int count=0; for(i=0;i=pts;i+) if(fdi-x2i=1) alarm_asm(); /*报警子程序*/.INCLUDE HARDWARE.INC.PUBLIC _alarm_asm.define P_IOA_Data 0x7000.define P_IOA_Attrib 0x7003.define P_IOA_Dir 0x7002.CODE.PUBLIC _alarm_asm_alarm_asm:R1=0xfff0P_IOA_Attrib=R1P_IOA_Data=R1R1=0xFFF8P_IOA_Dir=R1/R1=0x1117/P_IOA_Data=R1RETF;/*系统设置子程序*/ /系统时钟设定.INCLUDE HARDWARE.INC.PUBLIC _systemset_asm.CODE_systemset_asm:INT OFF; /关中断,以便进行初始化R1 = 0x00F0; /系统时钟设定,为49.1592MHzP_SystemClock = R1; FIQ ON; /开中断RETF;/*程序查表*/将cos(2*pi*i/256)的结果乘以2的13次方后取整/float costab= /Columns 1 through 7 8192,8189, 8182, 8169, 8152, 8130, 8103, / Columns 8 through 14 8071, 8034, 7993, 7946, 7895, 7839, 7778, /Columns 15 through 21 7713, 7643, 7568, 7489, 7405, 7317, 7224, / Columns 22 through 28 7127, 7026, 6921, 6811, 6697, 6579, 6458, / Columns 29 through 35 6332, 6203, 6069, 5933, 5792, 5648, 5501, / Columns 36 through 42 5350, 5196 , 5040, 4880, 4717, 4551, 4382, / Columns 43 through 49 4211, 4037, 3861, 3683, 3502, 3319 , 3134, / Columns 50 through 56 2948 , 2759, 2569, 2378, 2184 , 1990 , 1794, / Columns 57 through 63 1598 , 1400 , 1202 , 1002 , 803 , 602 , 402, / Columns 64 through 70 201 , 0 , -201 , -402 , -602, -803 , -1002, / Columns 71 through 77 -1202 , -1400, -1598 , -1794, -1990, -2184, -2378, / Columns 78 through 84 -2569, -2759, -2948, -3134, -3319, -3502, -3683, / Columns 85 through 91 -3861, -403
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!