毕业设计一种简易的语音通信系统无线.docx
《毕业设计一种简易的语音通信系统无线.docx》由会员分享,可在线阅读,更多相关《毕业设计一种简易的语音通信系统无线.docx(40页珍藏版)》请在冰豆网上搜索。
毕业设计一种简易的语音通信系统无线
一种简易的无线通信系统设计
摘要:
随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理、数据处理以及数字信号处理(DSP,DigitalSignalProcessing)等领域。
本设计是基于单片机控制的短距离无线语音通信系统,具有抗干扰性能强,可靠性高,安全性好,受地理条件限制少,安装灵活等优点,在许多领域有着广泛的应用前景。
本系统采用凌阳SPEC061A单片机的语音功能,借助nRF2401A的无线收发模块,实现简易的双向无线语音传输功能。
关键词:
凌阳SPEC061A;nRF2401A;单片机,无线语音传输
Abstract:
Alongwiththedevelopmentofsingle-chipfunctionintegration,anditsapplicationfieldalsograduallyfromthetraditionalcontrol,expandedtocontrolProcessing,dataProcessingandDigitalSignalProcessing(DSP,DigitalSignalallow),etc.Thisdesignisbasedonsingle-chipmicroputercontrolshort-rangewirelessvoicemunicationsystem,hasthestronganti-jammingperformance,highreliability,goodsafety,lessinfluencedbygeographicrestrictions,installation,flexible,andotheradvantagesinmanyfieldshaswideapplicationprospects.ThesystemUSEStheSPEC061AMCUspeechfunctionofsunplus,bynRF2401Awirelesstransceivermodule,achievesimpletwo-wayradiovoicetransmissionfunction.
Keywords:
LingYangSPEC061A;RF2401A;Microcontroller;
wirelessvoicetransmission
1.绪论
1.1引言
通信,也就是人与人之间的信息交流,纵观历史从最初的只有面对面的交流才能达到信息交流的目的发展到现在,我们的通信技术,是古人所不敢想象的,从古到今,我们人类完成了一场漫长的通信革命,打破了传统信息交流的各种约束,不受时空等各种客观因素的限制。
科技的发展,各种技术的涌现,为的是服务人类,让人类能够最方便舒适的达到想要实现目的。
近年来,随着无线通信技术的迅猛发展,无线技术在人类生活中有着广泛的应用,无线数据传输在人类社会随处可见。
无线传输技术方面的不断发展,使得各种各样高速,方便的无线通信产品涌现在我们眼前。
人类在物质和精神方面的追求是无穷无尽的,所以对知识技术的追求也是五穷无尽的,我认为将来大部分通信将通过无线技术来实现,不久的将来有线通信将成为历史。
就通信技术而言,建立一个通信系统需要考虑很多因素,要因地制宜,考虑多方面的技术才决定采取怎样的核心技术,无线通信技术还处于一个刚起步的状况,要取代有线通信技术的主导地位还是有很长的路要走,相信不久的将来,无线技术将会处于通信技术的主导地位,配合有线通信的辅佐,人类之间的交流将更方便,不受时间,地点等各种客观因素的约束。
本设计是基于单片机控制的短距离无线通信系统,采用凌阳SPEC061A单片机的语音功能,借助于nRF2401A无线收发芯片,实现简易的双向无线语音传输功能。
本通信系统立足于实现短距离信息交流,能够实现约50m以内既无线语音通信,体积小巧,信号稳定,为人类在一定X围内进行语音交流提供了很大的方便。
1.2内容编排
一.绪论
主要讲述个人对无线技术的一些观点,以及系统的基本描述。
二.设计任务要求
主要介绍毕业设计的题目以及学校所下达的要求目标。
三.设计方案介绍
主要讲述了系统器材的选择,以及系统可行性的分析。
四.系统硬件设计与实现
本设计论文的核心内容,讲述整个系统的总体原理框图,以及各部分模块的原理电路图分析。
五.系统软件设计与实现
主要讲述系统各部分的编程以及软件实现。
六.总结
七.致谢
八.参考文献
九.附录
2.设计任务要求
2.1设计任务
运用所学的专业知识,设计一种简易的无线通信系统
2.2毕业设计要求
该系统,包括一台主机、一台或一台以上从机,采用无线模块发射和接收,适合会场或教室等小X围内使用,选择合适的收发模块和微处理芯片。
要求系统功耗低、辐射小、使用简单、便于安装等。
具体工作包括:
1.选择合适的收发模块和微处理芯片并指出其特性。
2.阐明总体的设计思路及系统工作原理。
3.设计系统主要工作程序和各模块程序。
4.绘出系统的电路图、注明主要元件的规格、型号和数据。
5.完成电路装配、调试和优化改进。
6.写入程序运行、调试,能演示。
最终提交:
1,毕业设计说明书;
2,控制模块电路板实物;
3,电路原理图;
4,系统驱动程序。
3.设计方案介绍
3.1方案简介
随着单片微型计算机技术的成熟与发展,单片机的应用在人类生活中随处可见,为人类物质生活提供了很大的方便。
经过相关资料的查阅,了解到凌阳SPEC061A单片机具有相当多的功能,用它和nRF2401来做无线语音通信是绝对可行的,在此设计过后,还可以用它来实现其它自己感兴趣的设计。
总体设计思路如图3-1所示:
图3-1设计思路
我认为一个方案的决定基于两点,方案的可行性和个人兴趣爱好,经过资料的搜寻后决定用凌阳SPEC061A+nRF2401这一组合,用此组合来实现无线语音通信的确有点大材小用,我认为,要是仅仅为了毕业设计而设计是浪费时间的,毕业设计是对学生四年学习的一个综合应用的考核。
在做毕业设计的过程中,我们通过它来考察自己学得怎么样,尽自己的能力做到认真负责,在这过程中,一定可以收获很多。
重要的是在这个学校下达的最后一个学习任务中,我们能够发挥自己的能力爱好,把毕业设计应用在我们感兴趣的方面。
3.2SPEC061A单片机介绍
3.2.1资料介绍
SPCE061A是凌阳说明科技推出的一款16位结构的微控制器。
SPCE061A里面只内嵌32K字的闪存(FLASH)。
具有较高的处理速度使μ’nSP™能够非常容易地、快速地处理复杂的数字信号。
SPCE061A微控制器是适用于数字语音识别应用领域产品中的一种最经济选择,使用它可以很方便地实现复杂的数据处理,包括基本的加减乘除运算和复杂的乘积运算处理,该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,另外7路可以作为普通的AD转换通道。
另外凌阳十六位单片机具有一套易学易用的效率很高,容易上手的指令系统和集成开发环境。
在这样的环境中,支持标准C语言,可以实现C语言与凌阳汇编语言之间的互相调用。
SPEC061A单片机如图3-2所示:
图3-2SPEC061A单片机
3.2.2结构介绍
Spec061A单片机引脚功能介绍:
内部结构如图3-3所示:
图3-3nRF2401内部结构
SPEC061A可应用于许多电子产业的控制方面,例如家庭生活中的电视机,洗衣机,冷气,暖气等家居电器。
该单片机在通信系统方面的应用尤为出色,它的语音功能,应有到多种通信设备中,例如楼宇的语音对讲系统,家庭生活中的语音存储式。
在拓展功能方面,SPEC061A在智能互动玩具以及有声教材方面的应用受到业界广泛的关注。
3.2.3小结:
决定设计方案前花了很长一段时间来选择单片机芯片,大学修读期间,没有学习单片机这门课程,多单片机的掌握不深,进行设计时,只能通过上网搜集资料和咨询同学来了解这方面的知识,凌阳SPEC061A功能的全面,且操作简便,容易上手,所以最后选择了它。
3.3NRF2401无线模块介绍
3.3.1资料简介
nRF2401如图3-4所示,是单片射频收发芯片,工作在2.4~2.5GHzISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和传输频率可以通过程序编写进行修改调整。
芯片的功耗不高,以-5dBm的功率发射数据时,工作电流只有10.5mA,接收数据时,工作电流只有18mA,该芯片具有多种低功率工作模式,设计节能且方便。
其DuoCeiverTM技术使nRF2401可以使用同一个天线,同时接收两个不同频率的数据。
nRF2401适用于多种无线通信的场合,例如如无线数据传输系统、无线鼠标、遥控开锁、遥控玩具等。
图3-4nRF2401
nRF2401内置地址解码器、先入先出堆栈区、解调处理器、时钟处理器、GFSK滤波器、低噪声放大器、频率合成器,功率放大器等功能模块,应用电路只需要很少的外围元件,因此使用起来非常方便。
nRF2401的引脚如图3-5所示:
图3-5nRF2401引脚
nRF2401的功能模块如图3-6所示:
图3-6nRF2401功能模块
3.3.2应用电路简介
nRF2401连接上十四个外围元件便可以构成简易的应用系统,具有基本无线收发功能。
nRF2401应用电路工作电压一般在3V,组合方便,目前市面上很多低功耗微控制器都可以对它进行控制。
使用不同的天线,可以达到不同的效果,为了节能,我们不断调试,找到最大的收发距离,此过程中,电感电容的选择,需要经过多次的测试,并且电路仿真来。
nRF2401的典型应用电路如图3-6所示:
图3-7nRF2401典型应用电路
3.3.3小结:
4.硬件设计与实现
4.1单片机硬件设计
4.1.1系统总体框图
如图4-1所示,系统主要由两片spec061A和nRF无线模块构成,
图4-1系统总框图
硬件部分,采用SPCE061A外围接入的ADC模块,借助其MIC接口将语音信号转换为数字信号,按照选定的格式编码,最后通过nRF2401无线收发芯片将编码数据进行传输;另一端也是通过无线模块,对来发射端的编码数据进行接收,并开始解码,解码后的信号通过SPCE061A外围接入的DAC模块,把数字信号再次转换为模拟信号后输出。
nRF2401无线模块与单片机SPCE061A连接好后,在单片机周围电路连接上接上数模转换模块以及数字模块,数字模块负责为单片机通过ICE接口写入编程指令,数模转换模块负责语音的输入与输出。
4.1.2系统工作原理
系统硬件连接无误后,整个系统的运作流程是语音信号通过数模转换模块写入单片机,单片机通过nRF模块把转换后的数字信号无线传到另一个nRF模块,然后单片机对信号进行处理,最后通过数模转换把数字信号经过放大转换然后输出。
SPCE061A与无线模块连接要用的的重要接口有:
IOB1:
串行接口的数据传送管脚。
IOB2:
外部中断源EXT1。
IOB3:
外部中断源EXT2。
IOB4:
外部中断源EXT1的反馈管脚。
IOB5:
外部中断源EXT2的反馈管脚。
DAC1:
数据输出管脚。
DAC2:
数据输出管脚。
上图中各模块都是通过上述接口与单片机进行数据连接传输,具体连接电路在各模块电路图中有标示。
系统工作原理流程如图4-2所示:
图4-2系统工作原理流程
本系统是双向语音数据传输的设计,左右两边硬件连接以及软件编程均一致,固系统流程可逆,以达到使用者双方语音的交流的最终目的。
4.1.3连接结构框图
SPCE061A与无线模块连接如图4-3所示:
图4-3SPCE061A与无线模块连接框图
上图仅为SPCE061A与无线模块连接的意会框图,下文将会详细介绍电路图,为了方便,设计了SPCE061A与无线模块连接相匹配的引脚的转换电路,
具体如图4-4所示:
图4-4引脚的转换电路
J1是nRF2401的控制端口和通道1的收发通道,J2为留端口,是通道2的接收通道。
J1接口是10针的插孔,排列分部与SPCE061A中的I/O端口排列次序相同,可以与SPCE061A的I/O端口直接相连使用。
J2端口先保留,当两个通道都进行数据接收时,把单片机的I/O接口与S2接口中相应的三条信号引脚相连就可以了。
4.1.4SPCE061A周围电路模块选择
SPCE061A最小系统如图4-5所示[9]:
图4-5SPCE061A最小系统
结合课题,对单片机SPCE061A的电路设计,不需要焊接出61板的全部电路,经过分析,只需在基于单片机SPCE061A的最小系统电路基础上加上几个模块,就可以实现无线语音传输的效果,下面对这些模块进行一些介绍。
单片机设计电路个模块布局如图4-6所示:
图4-6模块布局
数字模块和数模转换与单片连接的接口过多,在上图中难以标示,将在下一小节模块介绍电路图中会一红色字体标出。
4.1.4.1时钟辅助模块
时钟模块(锁相环振荡器,系统时钟,实时时钟)
原理框图如图4-7所示:
图4-7系统时钟
(1)锁相环(PLL,PhaseLockLoop)振荡器:
PLL的作用是为系统提供一个实时时钟的基频(32768Hz),然后将基频进行倍频处理,调整到49.152MHz、40.96MHz、32.768MHz、24.576MHz或20.480MHz。
系统默认的PLL自激振荡频率为24.576MHz,电路如图4-8所示,时钟模块电路与单片机的vcp,vss接口连接。
图4-8锁相环PLL
(2)系统时钟:
系统时钟的信号源为PLL振荡器。
系统时钟频率(Fosc)和CPU时钟频率(CPUCLK)通过对P_SystemClock(写)($7013H)单元编程来进行控制。
默认的Fosc、CPUCLK分别是24.576MHz和Fosc/8。
用户通过对P_SystemClock单元编程来定义系统时钟和CPU时钟频率。
当系统被唤醒后,最初时刻的CPUCLK频率也为Fosc/8,之后逐级调整到用户设定的CPUCLK频率。
这样,就可避免系统在唤醒初始时刻读ROM出现错误。
(3)实时时钟:
SPCE061A对32768Hz实时时钟源的分频处理,为系统提供了多种实时时钟的中断源信号。
例如,用来作为唤醒源的中断源IRQ5_2Hz,意思是系统每隔0.5秒被唤醒一次,可以作为一个精确的计时基准。
该凌阳单片机芯片可以实现RTC振荡器两种模式,自动和强振。
当系统处于强振模式时,RTC振荡器的运行一直处于高耗能的状态。
当系统处于自动弱振模式时,上电复位的前七点五秒内处于强振模式,然后系统自动转为弱振模式来达到功耗降低的效果。
4.1.4.2数模转换辅助模块
数模转换辅助模块电路如图4-9所示:
图4-9数模转换辅助模块
此模块用来实现语音的输入输出,SPCE061A拥有有8个10位模-数转换通道,其中7个通道用来进行将模拟量信号(例如电压信号)转换成数字量信号,信号通过引线(IOA[0~6])直接输入。
另有一个通道专门作为语音输入通道,通过外接的数模转换模块中的麦克风原件(MIC_IN)接口输入。
外接此模块电路是为了更好的实现模拟信号与数字信号之间互相变换的编码功能。
SPCE061A外接此电路,达到为语音输出提供了两个10位数/模转换子系统的目的,即DAC1和DAC2。
通过AUD1和AUD2管脚来对应输出,DAC1、DAC2转换输出的模拟量电流信号。
4.1.4.3数字模块
数字模块也就是PROBE/下载线的电路。
其中PROBE就是在线调试器主要是为凌阳十六位单片机(包括SPCE061A)提供在线编程、仿真和调试使用的工具。
该调试器一端接在PC机的并口上,另一端接在开发系统的ICE端口上(J4口)。
在Spec061A单片机的集成开发环境上就可以实现在线编程、仿真和调试。
数字部分电路原理如图4-10所示:
图4-10数字部分电路
ICE基本运作方式是通过控制clock及通过ICE喂入指令方式,来控制CPU的运行及缓存器资料和内存资料的存取,因此必须透过控制缓存器值的设定来控制目前CPU的动作.
每个相连接的不同ICE模块都拥有自己独特的3-bitID,当PC在传送control信号时都会先传送该3-bitID,只有ICE本身的ID和control信号的ID相同时才会执行该命令或回传资料。
单片机上的74HC244主要在我们选用下载线的时候起作用,主要是奇缓存的作用和完成SDA是作为数据回送还是数据下传的选择。
4.2nRF2401模块硬件设计
4.2.1nRF2401A及其外围电路
nRF2401A及其外围电路,包括有nRF2401A芯片部分、稳压部分、晶振部分、天线部分。
电压VDD经电容C1、C2、C3处理后,为芯片提供合适的工作电压;晶振部分包括Y1、C9、C10,晶振Y1允许值为:
4MHz、8MHz、12MHz、16MHz,当如果需要1Mbps的通信速率,就必须选择16MHz晶振。
天线部分包括电感L1、L2,用来将nRF2401A芯片ANT1、ANT2管脚产生的2.4G电平信号转换为电磁波信号,或者是将电磁波信号转换为电平信号输入芯片的ANT1、ANT2管脚。
【5】
结构示意如图4-11所示:
图4-11nRF2401结构框图
本系统应用时,十针插孔J1和Spec061A的I/O端口对应连接。
当需要两个通道接收时,可以将预留端口J2引出,接到单片机对应的I/O接口上就可以了。
无线收发电路包括主芯片nRF2401A及其外围电路、接口电路、指示电路,如图4-12所示,
图4-12nRF2401及其外围电路
为方便与SPCE061A进行功能连接,设计了两个接口J1、J2,J1是nRF2401的控制端口和通道1的收发通道,J2为留端口,是通道2的接收通道。
J1接口是10针的插孔,排列分部与SPCE061A中的I/O端口排列次序相同,可以与SPCE061A的I/O端口直接相连使用。
J2端口先保留,当两个通道都进行数据接收时,把单片机的I/O接口与S2接口中相应的三条信号引脚相连就可以了。
同时,在电路板上添加了工作指示小元件,系统上电后D1将会被点亮。
接口电路如图4-13所示:
图4-13接口电路
4.3小结:
5.系统软件设计与实现
5.1软件总体设计
程序系统运行后一开始处于等待状态,在等待状态下,不断扫描按键并且判断是否接收到数据。
如果检测到按键按下,就进入录音状态,进行录音并将压缩后的数据进行发送;另一端在接收到数据后进入放音状态,接收数据并对其进行解码。
如果想停止录放音,可以通过释放按键来退出录音状态,停止录音和数据发送;另一端若在一定的时间内接收不到数据即退出放音状态。
状态切换如图5-1:
图5-1状态切换框图
5.1.1主程序
主程序流程:
系统首先初始化nRF2401A为接收状态,之后进入主循环,在主循环中扫描KEY1键和播放允许标志PlayFlag,如果检测到KEY1键按下则进入录音装态,如果检测到PlayFlag=0xFF则进入放音状态。
如果KEY1键释放则退出录音状态,如果检测到PlayFlag=0x00则退出放音状态。
主程序流程如图5-2,
图5-2主程序流程
中断服务程序:
中断服务包括IRQ4_1KHz中断和FIQ_TMA中断。
IRQ4_1KHz中断用来接收数据,每次系统进入中断,判断无线模块是否有数据请求(接收到数据),如果有数据请求的话,便从nRF2401A中读出数据,同时置位语音播放的允许标志PlayFlag,如果连续一段时间内(0.1S)没有接收到数据,便清除语音播放允许标志PlayFlag。
程序流程如下图5-3所示。
图5-3IRQ4_1KHz中断
FIQ_TMA中断用来录放音。
在录音或者放音的时候,每次进入中断便调用DVR1600的中断服务函数。
程序流程如图5-4所示:
图5-4FIQ_TMA中断
5.2子程序设计
5.2.1录音子程序
在检测到KEY1键按下后系统进入录音子程序。
进入程序后首先禁止1KHz中断,屏蔽所有来自nRF2401A的数据请求,并切换nRF2401A的工作方式为接收;之后作初始化工作,初始化编码队列和设置编码格式等;如果按键KEY1都处于闭合状态,程序将会不断地进行编码操作,每产生一桢编码的数据后便将数据写入nRF2401A,再进行无线发送。
一旦KEY1键释放,系统停止录音,并自行切换nRF2401A的工作方式为接收,同时允许1KHz中断。
程序流程如下图所示:
图5-5录音子程序
5.2.2放音子程序
在检测到语音播放允许标志PlayFlag值变为0xFF后,系统进入放音子程序。
初始化编码队列,并且开始语音播放;如果PlayFlag的值一直是0xFF,程序将会一直进行DVR解码操作。
一旦PlayFlag的值不为0xFF,系统停止放音。
程序流程如下图5-6所示:
图5-6放音子程序
5.3初始化
初始化函数voidnRF2401_Initial(void)的程序包括端口初始化和向芯片写入控制字操作,初始化流程如图5-7所示:
图5-7初始化流程
5.3.1初始化程序
SPCE061A单片机的初始化:
初始化I/O将会把nRF2401A模块用到的所有接口初始化为对应的输入输出属性;设置系统时钟为49MHz,用来提高通信的速度,及延时的准确性。
nRF2401A初始化:
对nRF2401A的初始化包括nRF2401A的上电和向nRF2401A写入控制字。
nRF2401A上电也就是将芯片的PWR_UP管脚设置为高电平,上电以后便可以对nRF2401A进行控制和读写操作。
nRF2401A一共有18Byte(144bit)的命令字,下面逐位介绍其作用。
bit143~bit120:
测试保留区测试保留区
用户不需设置。
bit119~bit112:
通道2接收数据长度(bit)
通道2接收数据的长度Data2_W,用于接收。
如果通道2接收到一帧数据,在去掉地址和校验位后,其数据长度和bit119~bit112值一致,则认为通道2接收到一帧数据,置位DR2,否则丢弃。
bit111~bit104:
通道1接收数据长度(bit)
通道1接收数据的长度Data1_W,用于接收。
如果通道1接收到一帧数据,去掉地址和校验位后,其数据长度和bit111~bit104值一致,则认为通道1接收到一帧数据,置位DR1,否则丢弃。
通道1和通道2的数据长度受nRF2401A帧数据总长度限制,帧数据总长度为256bit,每一帧的数据长度Data_W<=256–Addr_W–CRC。
bit103~bit64:
通道2地址
通道2的地址Addr_2,用于接收。
设置本机地址,通信过程中,发射端通过配置该地址发送数据才能与之通信。
bit63~bit24:
通道1地址
通道1的地址Addr_1,用于接收。
设置本机地址,通信过程中,发射端通过配置该地址发送数据才能与之通信。
bit23~bit18:
通道地址有效位数
通道1和通道2的地址有效位数,用于接收。
结合bit63~bi