无线语音传输系统的设计与实现_第1页
无线语音传输系统的设计与实现_第2页
无线语音传输系统的设计与实现_第3页
无线语音传输系统的设计与实现_第4页
无线语音传输系统的设计与实现_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)说明书题目:无线语音传输系统的设计与实现系别:电子工程系专业:电子信息工程学生姓名:学号:指导教师:职称:√题目类型:理论研究实验研究工程设计工程技术研究软件开发√2008年6摘要随着嵌入式系统和无线网络开展,两者已能紧密结合在一起。而且随着无线应用领域扩大,工作在ISM〔工业、科学和医学〕标准2.4GHz自由免费频段,已成为研究焦点。例如Wi-Fi、BlueTooth、Zigbee等无线传输协议都是应用在2.4GHz频段上,并以其数据率高、节点分布广等特点广泛应用于科研、家庭、军事等各个领域。本设计利用了SPCE061A的语音处理功能,把SPCE061A作为主控制器,借助于NordicnRF2401无线收发芯片,实现简单的双向无线语音传输功能。具体实现方法是:通过其中一套61板和无线模块〔A套〕实现录音功能并将压缩后的语音资源通过无线模块发射;然后另外一套61板和无线模块〔B套〕接收A套发送的语音资源数据,并对数据进行解码播放。两块板子均能实现语音的发送和接收。本文以无线语音传输系统的设计为主线,包括无线收发芯片的介绍、无线收发模块的设计以及语音数据的处理等,分为6个局部。其中,第1局部为背景情况和芯片介绍,第2局部主要介绍对总的设计方案的选定,第3局部主要介绍无线语音传输系统的总体设计,第4局部对无线语音传输系统的硬件设计进行了详细的介绍,第5局部描述了无线语音传输系统的软件设计,第6局部表达系统软硬件的调试,对在调试过程中遇到的问题及其解决方法也作了讨论。关键词:无线传输;nRF2401;SPCE061AAbstractWithembeddedsystemsandwirelessnetworkdeveloping,thetwohavebeenworkingcloselytogether.Moreover,astheexpansionofwirelessapplications,workedintheISM(industrial,scientificandmedical)standard2.4GHzbandfree,hasbecomeafocusofstudy.SuchasWi-Fi,BlueTooth,Zigbeeandotherwirelesstransmissionprotocolsareusedin2.4GHzband,andbecauseitshighdatarate,nodesandothercharacteristicsofwidelydistributedareusedinscientificresearch,family,militaryandotherfields.ThedesignusetheSPCE061Aofvoiceprocessingfunctions,SPCE061Aasthemaincontroller,thehelpofNordicnRF2401radiotransceiverchip,toachieveasimpletwo-waywirelessvoicetransmissionfunctions.Specificmethodis:theadoptionofasetof61panelsandwirelessmodule(Aset)toachieverecordingofthevoicecompressionandresourcesthroughthewirelessmodulelaunchandthenanothersetof61panelsandwirelessmodule(Bsets)ApackagesenttoreceiveThevoicedataresources,dataanddecodebroadcast.2voiceoftheboardcansendandreceive.Inthispaper,wirelessvoicetransmissionsystemtothedesignofthemainline,includingwirelesstransceiverchips,wirelesstransceivermoduledesignandvoicedataprocessing,dividedintosixparts.Thefirstpartofthebackgroundandchips,Part2introducesthegeneraldesignplanselected,Part3introduceswirelessvoicetransmissionsystemdesign,Part4ofthewirelessvoicetransmissionsystemhardwaredesignCarriedoutadetailed,Section5,describesthewirelessvoicetransmissionsystemsoftwaredesign,describedinsection6ofthesystemhardwareandsoftwaredebugging,intheprocessofdebuggingtheproblemsencounteredandtheirsolutionsarediscussed.Keywords:Wirelesstransmission;nRF2401;SPCE061A目录TOC\o"1-4"\h\z\u引言 11课题背景和芯片介绍 21.1课题背景 21.2芯片资料 21.2.1SPCE061A简介 21.2.2SPCE061A性能简介 31.2.3SPCE061A应用领域 32.1nRF2401A无线收发芯片 4芯片特性 42.1.2nRF2401主要性能指标 52.1.3nRF2401工作模式控制 52.1.4激活状态的模式 52.1.5双超外差接收模式 72.1.6结构配置模式 82.1.7待机模式 82.1.8低功耗模式 82.1.9配置字描述 82.1.10天线输出 92.1.11应用领域 92 设计任务与总体设计分析 92.1设计要求 10技术指标: 102.2方案论证 102.2.1无线收发模块 10 主控制模块 102.3总体设计 113系统总体方案介绍 113.1硬件局部 113.2软件局部 114系统硬件设计 124.1硬件框图 124.2无线收发模块电路 124.2.1nRF2401及其外围电路 124.2.2指示电路 134.2.3接口电路 134.3 61板结构 144.3.1SPCE061A最小系统 144.3.2电源电路 154.3.3音频电路 154.3.4ICE接口电路 164.4电源电路 164.4.1整流电路 164.4.2滤波电路 174.2.3稳压电路 175系统软件设计 175.1软件总体设计 175.2子程序设计 195.2.1初始化程序 195.2.2录音子程序 235.2.3放音子程序 235开发流程及开发环境 245.1开发流程 245.2开发环境 246调试 246.1调试方法 246.2硬件调试 246.2.1PCB设计应注意的问题 246.2.1nRF2401模块的制作 256.2.261板的检测 266.3软件调试 277结论 27谢辞 28主要参考文献 29附录 30附录一:系统原理图 30附录二:系统PCB图 31附录三:系统源程序 32引言随着社会的开展和进步,人类活动越来越依赖于通信技术提供的效劳,以无线通信技术以其快捷方便,可以移动等特性,受到人们的高度关注,得以快速开展。本文针对无线通信进行研究,设计了一个以无线收发芯片为核心、利用凌阳板进行语音压缩以实现简单的语音传输,本设计能在20米以内进行语音的传送。nRF2401A是Nordic公司生产的无线收发芯片。该芯片需要极少的外围器件,即可实现高速的无线数据传输。SPCE061A是凌阳科技的一款16位微控制器,内嵌32K的闪存〔FLASH〕。SPCE061A为语音产品而集成了ADC、DAC、AGC等,还具有n项内积运算指令,较高的处理速度使u’nSP能够非常容易快速地处理复杂的数字信号,是语音应用领域的一种最经济选择。SPCE061A精简开发板〔以下简称61板〕配有在线调试功能;结合集成开发环境不需外界任何仿真、调试器即可以完成在线编程、仿真、调试功能。本方案直接使用了61板,利用SPCE061A的语音处理功能,借助于nRF2401A无线收发芯片,实现简易的双向无线语音传输功能。1课题背景和芯片介绍1.1课题背景近年来,随着无线通信和计算机通信在全球的迅猛开展,采用无线手段提供数据传输的业务越来越多,无线通信技术在特殊的工作环境中有许多优点:对于分散、移动的控制对象可以方便的实现相互间的数据通信;对于物理布线困难的地方,采用无线通信技术可以节省大量财力;对于需要组网的以太网、令牌网等有线通信系统,选择无线通信技术可以防止大量的布线工作,同时也防止了有线网由于线路故障而导致系统瘫痪的弊病。以上这些优点使得无线通信除了弥补有线手段的缺乏外,还为数据通信用户提供了更加方便更高层次的效劳,即移动中不间断的数据通信。虽然目前无线通信在整个数据通信中所占的比例还比拟小,但它的开展势头很强。是人们普遍看好的下一个通信技术热点。1.2芯片资料SPCE061A简介SPCE061A是凌阳科技研发生产的性价比很高的一款十六位单片机,使用它可以非常方便实现复杂的数据处理,包括根本的加减运算和复杂的乘积运算处理,该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,另外7路可作为普通的AD转换通道。另外凌阳十六位单片机具有易学易用的效率较高的一套指令系统和集成开发环境。在此环境中,支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用,并且,提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条件。SPCE061A单片机内部结构框图如下列图1.1所示:图1.1SPCE061A单片机的内部结构框图SPCE061A片内还集成了一个ICE〔在线仿真电路〕接口,使得对该芯片的编程、仿真都变得非常方便,而ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境〔μ’nSPIDE〕用户可以利用它对芯片进行真实的仿真;而程序的下载〔烧写〕也是通过该接口进行下载。SPCE061A性能简介16位μ’nSP微处理器工作电压〔CPU〕VDD为3.0~3.6V,〔I/O〕VDDH为3.0~5.5VCPU时钟:0.32~49.152MHz内置2K字SRAM内置32K字FLASH可编程音频处理晶体振荡器系统处于备用状态下〔时钟处于停止状态〕,耗电仅为2uA/3.6V2个16位可编程定时器/计数器〔可自动预置初始计数值〕2个10位DAC〔数/模转换〕输出通道32位通用可编程输入/输出通道14个中断源可来自定时器A/B、时基、2个外部时钟源输入和键唤醒具备触键唤醒的功能使用凌阳音频编码SACM_S480可以播放压缩的语音资源锁相环PLL振荡器提供系统时钟信号32768Hz实时时钟7通道10位电压模/数转换器〔ADC〕和单通道声音模/数转换器声音模/数转换器输入通道内置麦克风放大器,并具有自动增益控制〔AGC〕功能具备串行设备接口具备低电压复位功能和低电压检测功能内置在线仿真电路接口具有WatchDog功能SPCE061A应用领域SPCE061A单片机应用广泛,主要应用于:家用控制器,即冰箱、空调及洗衣机等仪器仪表,即数字仪表〔有语音提示功能〕电表、水表、天然气表和暖气表工业控制智能型家居控制器通信产品,即多功能录音、自动总机、语音信息和数字录音系统产品医疗设备和保健器材〔电子血压计、红外线体温监测仪等〕体育健身产品〔跑步机等〕电子书籍〔儿童电子故事书类〕、电子教学设备等语音识别类产品声控遥控器和智能语音互动玩具等2.1nRF2401A无线收发芯片nRF2401是单片射频收发芯片,工作于2.4~2.5GHzISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。芯片能耗非常低,以-5dBm的功率发射时,工作电流只有10.5mA,接收时工作电流只有18mA,多种低功率工作模式,节能设计更方便。其DuoCeiverTM技术使nRF2401可以使用同一天线,同时接收两个不同频道的数据。nRF2401适用于多种无线通信的场合,如无线数据传输系统、无线鼠标、遥控开锁、遥控玩具等。nRF2401需要很少的外围元件,因此使用起来非常方便。QFN24引脚封装,外形尺寸只有5×5mm。芯片管脚图如下列图2.1所示:图2.1nRF2401管脚图芯片特性单芯片无线收发GFSK调制模式收发载波频率:2.4GHz~2.5GHz数据传输率:0~1Mbps极少外围器件125阶可调收发频率〔梯度1MHz〕地址比拟和CRC校验DuoCeiver™技术,支持双通道接收ShockBurst™技术,低功耗,缓解CPU发送压力宽电压范围:1.9V~3.6V超低功耗:发送10.5mA,-5dBm;接收18mAnRF2401主要性能指标nRF2401的主要性能指标如下表2.1所列表2.1nRF2401的最大额定值参数数值电源电压VDD-0.3~+3.6V地VSS0V输入电压VI-0.3V~VDD+0.3V输出电压VO-0.3V~VDD+0.3V功率消耗PD〔TA=85℃〕90mW工作温度-40~+85储存温度-40~+125nRF2401工作模式控制nRF2401的工作模式有四种:收发模式、配置模式、空闲模式和关机模式。nRF2401的工作模式由PWR_UP、CE、TX_EN和CS三个引脚决定,详见表2.2:表2.2nRF2401工作模式工作模式PWR_UPCECS收发状态〔RX/TX〕110配置模式101空闲模式100关机模式0XX激活状态的模式激活状态的模式有两种:突发爆发模式〔shockburstmode〕和直接模式〔directmode〕。器件在这两种模式中的功能取决于结构配置命令字。〔1〕ShockBurstShockBurst技术利用在芯片上的FIFO,用低速数据速率纪录数据,用高速数据速率发射数据,以节省电源消耗。当nRF2401工作在ShockBurst模式,且在2.4GHz频带时,能够到达非常高的数据速率,而且不需要价格昂贵的、高速微控制器来进行数据处理。在nRF2401芯片上有与高速信号处理相关的RF协议。使用nRF2401可以大大降低电流消耗,降低系统本钱〔可以使用价格廉价的微控制器〕。由于只需要短的发射时间,所以可以减少在“空中〔on-air〕”碰撞的危险。nRF2401可以使用三线串行接口编程,数据传输速率由微控制器决定。在数字传输速率较低且在RF连接中需要较高传输速率的情况下,ShockBurst模式可以大大降低电源消耗。〔2〕ShockBurst原理当nRF2401配置在ShockBurst模式时,TX和RX操作的管理〔仅以10Kb/s为例〕,是用MCU装入数据,并用ShockBurst技术发射数据,其示意图如图2.2。ShockBurst1Mb/sShockBurst1Mb/s图2.2ShockBurst技术发射示意图〔3〕nRF2401在ShockBurst模式发射MCU接口引脚端:CE、CLK1和DATA。eq\o\ac(○,1)当MCU有数据发送,设置CE为高电平;激活nRF2401,处理数据。eq\o\ac(○,2)接收点的地址和有效数据被装入nRF2401。利用协议或者MCU设置速率≤1Mb/s。eq\o\ac(○,3)MCU设置CE为低电平,激活nRF2401ShcokBurst模式,发射数据。eq\o\ac(○,4)在nRF2401ShockBurst模式:RF前端电源导通;RF信息包是完整的〔包含有报头和CRC计算〕;数据被高速发射〔250Kb/s或者1Mb/s〕;当数据发射完毕,nRF2401返回待机模式。〔4〕nRF2401在ShockBurst模式接收MCU接口引脚端:CE、CLK1、DATA和DR1。eq\o\ac(○,1)当nRF2401配置为ShockBurst模式接收时,正确的地址和RF信息包大小被设置。eq\o\ac(○,2)设置CE为高电平,激活RX。eq\o\ac(○,3)在200μs后,nRF2401准备接收数据。eq\o\ac(○,4)当接收到有效的数据包〔正确的地址和CRC检测〕时,nRF2401将转移数据包的报头、地址和CRC位。eq\o\ac(○,5)nRF2401通报微处理器,设置DR1引脚端为高电平。eq\o\ac(○,6)微处理器MCU可以〔或者不可以〕设置CE为低电平,不使能RF前端电路〔低功耗模式〕。eq\o\ac(○,7)微处理器用适当的速率〔如10Kb/s〕输出有效数据。eq\o\ac(○,8)当所有的有效数据被重新获得,nRF2401使得DR1变成低电平。如果CE一直保持高电平,nRF2401准备接收新的数据;如果CE设置为低电平,一个新的时序列将重新开始。〔5〕直接模式在直接模式,nRF2401的工作就像是一个传统的射频器件,数据速率必须设置在一个低的数据速率。eq\o\ac(○,1)直接模式发射MCU借口引脚端:CE和DATA。当微处理器MCU有数据传送时,CE被设为高电平;在nRF2401的RF前端有效,在200ms的处理时间之后,数据将直接调制载波;所有的射频协议必须在微处理器的硬件里执行。eq\o\ac(○,2)直接模式接收MCU接口引脚端:CE、CLK1和DATA。一旦nRF2401被配置后加电〔CE为高电平〕,nRF2401工作在直接接收模式,开始接收数据。CLK1开始有效,nRF2401试图锁定输入的数据。一旦有效的报头到达,CLK1和DATA将锁定输入的信号,RF信息包将以与发射相同的速率呈现在DATA引脚端上。解调器去恢复时钟,报头必须是8位高/低电平,如果第1位是低电平,起始位必须为低电平。在这个模式中,没有准备好的信号、地址和检验必须在微处理器中处理。双超外差接收模式在突然爆发模式〔shockburstmode〕和直接模式〔directmode〕中,nRF2401可以配置成双超外差接收模式,以最大的数据速率同时接收2个并行、独立的频率通道的信号。图中有2个射频输入——FRF1和FRF2,有2个数据输出——DATA〔FRF1〕和DATA〔FRF2〕,接收的数据通过时钟恢复和数据限幅〔clockrecovery,dataslicer〕,经过地址和CRC检验〔ADDR,CRCcheck〕后输出。如下列图2.3所示:时钟恢复和数据限幅时钟恢复和数据限幅ADDR和CRC校验时钟恢复和数据限幅ADDR和CRC校验FRF1FRF2=FRF1+8MHzDR1CLK1DATADR2CLK2DOUT2数据〔FRF1数据〔FRF2〕图2.3nRF2401双超外差接收模式的频率和数据通道在这种模式下:〔1〕nRF2401能够通过一个天线通道,接收从2个发射器发送的1Mb/s数据,频率间隔为8MHz;〔2〕2个数据通道的输出被送到2个独立的微处理器的接口上;〔3〕数据通道1接口:CLK1、DATA和DR1;〔4〕数据通道2接口:CLK2、DOUT2和DR2。DR1和DR2仅仅在突然爆发模式中有用。nRF2401双超外差接收模式提供了2个独立的数据通道,可以取代需要2个独立接收的系统,应用实例如图2.4所示。nRF2401nRF2401TX/RXnRF2401TX/RXnRF2401TX/RX图2.4nRF2401双超外差接收模式结构配置模式在结构配置模式中,一个结构配置字最多可到达15字节,结构配置字通过一个简单的三线接口〔CS、CLK1和DATA〕被下载到nRF2401中。待机模式待机模式用来在保持最小启动时间时,减少平均的电流消耗。在这个模式,晶体振荡器的一局部有效,电流消耗与晶振的频率有关。例如:在4KHz时为12uA;在16MHz为32uA。低功耗模式在低功耗模式,nRF2401不使能,具有最小的电流消耗1uA,其结构配置字的内容被保持。配置字描述配置字的读取在CLK1的正边沿时,从MSB〔最高位〕开始。新的配置从CS的下降沿开始。假设nRF2401子系统需要配置为ShockBurst方式,两个接收频道,那么在VDD〔芯片电源〕上电后,只需120位的配置字。在协议、工作方式和接收频道都配置好后,只需要1位〔RXEN〕来切换是接收或发射。在配置字被读取的过程中,MSB〔最高位〕最先被读到存放器中。默认配置字为:h8E08.1C20.2000.0000.00E7.0000.E721.0F04,共18字节,可根据需要进行取舍。ShockBurst数据包的总位数最多不能超过256位,可通过式〔1〕计算有效数据的最大位数。DATAx_W(bits)=256-ADDR_W-CRC(1)其中:ADDR_W为配置字中B[32:18]所设置的接收地址的长度,8位~40位;CRC为配置字B[17]所设置的校验字,8位或16位。4位或8位前缀是自动加进去的,不占用数据包的位数。由式〔1〕可知,要想在每个数据包中得到更长的有效数据,可减少地址和CRC校验位。〔1〕收发常用的配置在两个接收频道的方式下,nRF24E1同时接收来自两个不同频率频道的数据。第一个频道的频率在配置字B[7-1]中设置,第二个频道通常比第一个频道的频率高8MHz。RX2_EN(B[15])为第二个频道的使能位:RX2_EN=0时,第二个频道不工作;RX2_EN=1时,第二个频道使能。RFDR_SB为收发速率设置位:RFDR_SB(B[13])=0时,收发速率为250kbps;RFDR_SB=1时,收发速率为1Mbps。16MHz晶振时,250kbps的收发灵敏度比1Mbps的高10dB。XO_F(B[12-10])为晶振选择位。RF_PWR(B[9-8])设置nRF24E1射频输出功率。RF_CH#(B[7-1])设置nRF24E1的工作频率,可通过式〔2〕计算发射频率和频道1的接收频率,通过式〔3〕计算频道2的接收频率。RXEN为收发切换位。ChannelRF=2400MHz+RF_CH#×1.0MHz(2)ChannelRF=2400MHz+RF_CH#×1.0MHz+8MHz(3)天线输出ANT1和ANT2〔天线1和天线2〕引脚端提供一个平衡的RF输出给天线。ANT1和ANT2引脚端必须有一个DC通道到VDD,可以通过一个RF扼流圈或者经过偶极天线的中心点到VDD。在ANT1和ANT2引脚端的输出阻抗为200~700Ω。在负载阻抗为400Ω时,可以获得最大输出功率0dBm。较低的负载阻抗可以通过一个匹配网络与ANT1和ANT2引脚端连接。应用领域无线数据采集小型无线网络无线抄表门禁系统小区传呼监控系统非接触RF智能卡无线遥控无线音频/视频数据传输设计任务与总体设计分析利用无线模块,结合SPCE061A开发板,实现语音的双向无线收发。2.1设计要求〔1〕通过其中一套61板和无线模块〔A套〕实现录音功能并将压缩后的语音资源过无线模块发射;〔2〕通过另外一套61板和无线模块〔B套〕接收A套发送的语音资源数据,并对数据进行解码播放;〔3〕A套和B套均可以实现独立的数据收发和录放音功能;〔4〕通过一定的协议实现A套和B套的半双工通信。技术指标:〔1〕传输有效距离20m以上;〔2〕录放音采用10Kbps以上的数据压缩格式。2.2方案论证无线收发模块方案一:用射频收发芯片nRF401组成无线收发模块。nRF401是接收发射合一的芯片,即可以接收数据也可以发射数据,工作方式为半双工。因此该电路即是发射电路也是接收电路。他的最高发送速率为20Kbps,最大发射功率+10dBm。约有10个外围元件,采用低本钱的4M晶振。但是此型号的芯片工作频段只在433MHz频段,范围小,而且频道数少,只有2个频道,所以不采用这种方案。方案二:用无线收发芯片nRF2401nRF2401也是接收发射合一的芯片,它的最高速率为1Mbps,最大发射功率0dBm。此芯片所有高频元件包括电感、振荡器等已经全部集成在芯片内部,使得产品一致性良好,性能稳定且不受外界影响,而且内置点对多点通信控制和硬件纠检错。nRF2401是世界领先的2.4GHz的单片无线收发芯片,有125个频道,本次设计采用此方案。主控制模块方案一:用MSP430F1121做主控制器MSP430F1121是TI公司生产的超低功耗微控制器,具有16位RISC结构,16位CPU存放器和常数存放器,4KBROM,256BFLASH,256BRAM,指令周期时间125ns,超低工作电压(1.8V-3.6V),超低功率消耗(1.3uA-160uA),具有5种省电模式,可串行在线编程,程序代码由加密熔丝保护。但是此芯片内存小,闪存少,从而影响编解码的速度,所以不采用此方案。方案二:用SPCE061A做主控制器SPCE061A是凌阳科技的一款16位微控制器,内嵌32K的闪存〔FLASH〕。SPCE061A为语音产品而集成了ADC、DAC、AGC等,还具有n项内积运算指令,较高的处理速度使u’nSP能够非常容易快速地处理复杂的数字信号,是语音应用领域的一种最经济选择,因此本次设计选用此方案。2.3总体设计本设计采用SPCE061A单片机作为主控制器,通过无线收发模块收发数据,实现语音的采集——传输——播放。3系统总体方案介绍系统由两套61板和nRF2401无线模块构成,为便于描述,命名为A套和B套。两套的硬件结构和软件设计是完全一致的。3.1硬件局部硬件局部,采用SPCE061A自带的ADC,通过其MIC通道将语音转换为数字量;按照一定的格式编码后通过nRF2401无线模块将编码数据发送出去;另一端通过无线模块接收到来自发射端的编码数据,并对之进行解码,解码后的数据通过SPCE061A自带的DAC输出,实现声音的复原。整个系统框图如下列图3.1所示:图3.1系统框图3.2软件局部软件局部:为了便于分析,将系统分为3种工作状态:等待状态、录音状态、放音状态。程序运行后,A套和B套均处于等待状态,在等待状态下可以通过按键进入录音状态;进入录音状态后进行录音并将压缩后的数据发送;另一端在接收到数据后进入放音状态,接收数据并进行解码。通过改变按键的状态可退出录音状态,停止录音和数据发送;另一端在一定时间内接收不到数据即退出放音状态。3种状态间的切换关系如下:3种状态间的切换关系如下列图3.2所示:图3.2系统状态切换图4系统硬件设计系统的硬件分为两大局部,61板和无线收发模块局部,下面重点介绍这两个模块。4.1硬件框图系统的硬件框图如图4.1所示:图4.1系统硬件框图4.2无线收发模块电路无线收发电路包括主芯片nRF2401及其外围电路、接口电路、指示电路。nRF2401及其外围电路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管脚。nRF2401及其外围电路如下列图4.2所示:图4.2无线收发模块电路指示电路电路板上提供了一个电源指示灯,其电路如图4.3。图4.3指示电路接口电路为方便与61板的连接,模组提供了两个接口J1、J2,其中J1为nRF2401A的控制端口和通道1的收发通道,J2为预留端口,是通道2的接收通道。J1接口为10Pin的插孔,其布局和61板的I/O端口布局一致,可以直接插接到61板的I/O端口使用。J2预留,如果需要采用双通道接收时,可以将J2对应的3根信号线引出,接到单片机的I/O上即可。接口电路如下列图4.4所示:图4.4接口电路对应的I/O连接和功能描述如表4.1所示。表4.1芯片管脚连接及功能描述2401管脚作用描述PWR_UPnRF2401A芯片上电CEnRF2401A使能CSnRF2401A片选DR1通道1数据请求CLK1通道1时钟DATA1通道1数据DR2通道2数据请求CLK2通道2时钟DATA2通道2数据61板结构61板除了具备单片机最小系统电路外,还包括有电源电路、音频电路〔含MIC输入局部和DAC音频输出局部〕、复位电路等,采用电池供电,方便随身携带。61板上有调试器接口〔Probe接口〕以及下载线〔EZ_Probe〕接口,分别可接凌阳科技的在线调试器、简易下载线,配合unSPIDE,可方便地在板上实现程序的下载、在线仿真调试。61板的实物图如下列图4.5所示:。图4.561板实物图SPCE061A最小系统SPCE061A最小系统中,包括SPCE061A芯片及其外围的根本模块,其中外围的根本模块有:晶振输入模块〔OSC〕、锁相环外围电路〔PLL〕、复位电路〔RESET〕、指示灯〔LED〕电路等。电源电路电源局部的电路,由电池盒提供的4.5V直流电压经过SPY0029后产生3.3V给整个系统供电。SPY0029是凌阳公司设计的电压调整IC,采用CMOS工艺,具有静态电流低、驱动能力强、线性调整出色等特点。图中的VDDH3为SPCE061A的I/O电平参考,如果该点接SPCE061A〔PLCC84封装,下面的介绍中当出现SPCE061A的引脚描述时,均指此封装的芯片〕的51脚,可使I/O输出高电平为3.3V;VDDP为PLL锁相环电源,接SPCE061A的7脚;VDD和VDDA分别为数字电源与模拟电源,分别接SPCE061A的15脚和36脚;AVSS1是模拟地,接SPCE061A的24脚;VSS是数字地,接SPCE061A的38脚;AVSS2接音频输出电路的AVSS2。电源局部的电路如下列图4.6所示:图4.6电源电路音频电路音频电路由音频输出和音频输入两局部组成。图4.7是音频输出电路图。SPCE061A内置2路10位精度的DAC,只需要外接功放电路即可完成语音的播放。图中的SPY0030是凌阳的一款音频放大芯片,可以工作在2.4~6V范围内,最大输出功率可达700mW。音频电路如下列图4.7所示:图4.7音频电路SPCE061A芯片中已经集成了音频输入专用ADC以及AGC放大电路,因此芯片外部的电路比拟简单。ICE接口电路SPCE061A芯片内部集成了ICE〔在线仿真〕接口,PC机通过Probe〔在线调试器〕或EZ_Probe〔简易下载线〕与61板相连,就可以方便地完成程序的下载、调试等。61板为Probe和EZ_Probe各自提供了一组接口,可通过S5跳线来选择使用的接口类型。ICE接口局部电路如下列图4.8所示。图4.8ICE接口电路4.4电源电路根据设计任务的要求,这次毕业设计还需做两块一样的供电为5.0V的直流电源。单相交流电经过电源变压器、整流电路、滤波电路和稳压电路转换成稳压的直流电压,其方框图如图6.1所示,下面就个局部作用加以简单介绍。~220v~220v50Hz+U—稳压电路滤波电路整流电路电源变压器+U—稳压电路滤波电路整流电路电源变压器图4.9直流电源方框图整流电路变压器副边电压通过整流电路由交流电压转换为直流电压,即将正弦波电压转换为单一方向的脉动电压。这次设计采用单相桥式整流电路,单相桥式整流电路由四只二级管组成,其构成原那么就是保证在变压器副边电压的整个周期内,负载上的电压和电流方向始终不变。整流电路如下列图4.10所示:图4.10整流电路滤波电路为了减小电压的脉动,需通过低通滤波电路滤波,使输出电压平滑。直流电源中滤波电路的显著特点是:均采用无源电路;理想情况下,在滤波后只保存直流成分,而滤去所有交流成分;能够输出较大电流。稳压电路交流电压通过整流、滤波后虽然变为交流分量较小的直流电压,但是当电网电压波动或者负载变化时,其平均值也将随之变化。稳压电路的功能是使输出直流电压根本不受电网电压波动和负载电阻变化的影响,从而获得足够高的稳定性。稳压电路如下列图4.11所示:图4.11稳压电路5系统软件设计5.1软件总体设计程序的思想:系统运行后处于等待状态,在等待状态下不断扫描按键并判断是否接收到数据。如果检测到按键按下那么进入录音状态,进行录音并将压缩后的数据发送;另一端在接收到数据后进入放音状态,接收数据并进行解码。如果想要停止录放音,可以通过释放按键退出录音状态,停止录音和数据发送;另一端在一定的时间内接收不到数据即退出放音状态。系统状态切换图如下列图5.1所示:无数据接收无数据接收KEY释放接收到数据等待状态放音状态录音状态KEY按下图5.1系统状态切换图主程序流程:系统首先初始化nRF2401A为接收状态,之后进入主循环,在主循环中扫描KEY1键和播放允许标志PlayFlag,如果检测到KEY1键按下那么进入录音装态,如果检测到PlayFlag=0xFF那么进入放音状态。如果KEY1键释放那么退出录音状态,如果检测到PlayFlag=0x00那么退出放音状态。系统主程序如下列图5.2所示:接收、放音录音、发送播放?nRF初始化开始NNYY接收、放音录音、发送播放?nRF初始化开始NNYY图5.2系统主程序流程图中断效劳程序:中断效劳包括IRQ4_1KHz中断和FIQ_TMA中断。IRQ4_1KHz中断用来接收数据,每次进入中断,判断无线模块是否有数据请求〔接收到数据〕,如果有数据请求,那么从nRF2401A中读出数据,同时置位语音播放允许标志PlayFlag,如果连续一段时间内〔0.1S〕没有接收到数据,那么去除语音播放允许标志PlayFlag。程序流程如图5.3所示。1KHz中断Cnt>100?计数器Cnt加1PlayFlag=0x00清零计数器CntPlayFlag=0xFF清零计数器CntNYN1KHz中断Cnt>100?计数器Cnt加1PlayFlag=0x00清零计数器CntPlayFlag=0xFF清零计数器CntNYNNNYY满?读nRF2401读nRF2401Y填补缓冲区填补缓冲区返回返回图5.31KHz中断程序流程图FIQ_TMA中断用来录放音。在录音或者放音时,每次进入中断那么调用DVR1600的中断效劳函数。调DVR1600中断效劳函数返回TMA中断调DVR1600中断效劳函数返回TMA中断图5.4FIQ_TMA中断流程图5.2子程序设计初始化程序初始化函数voidnRF2401_Initial(void)程序包括端口初始化和向芯片写控制字操作,初始化流程如图5.5所示:初始化I/O初始化I/O设置系统时钟49MnRF2401上电向nRF2401写控制字进入程序退出初始化图5.5初始化程序流程序〔1〕SPCE061A单片机的初始化:初始化I/O将会把nRF2401模组用到的所有接口初始化为对应的输入输出属性;设置系统时钟为49MHz,以提高通信的速度,及延时的准确性。〔2〕nRF2401A初始化:对nRF2401的初始化包括nRF2401上电和向nRF2401写控制字。nRF2401上电是将芯片的PWR_UP管脚设置为高电平,上电以后才可以对nRF2401进行控制和读写操作。nRF2401共有18Byte〔144bit〕的命令字,下面逐位介绍其作用。eq\o\ac(○,1)bit143~bit120:测试保存区测试保存区,用户不需设置。eq\o\ac(○,2)bit119~bit112:通道2接收数据长度〔bit〕通道2接收数据的长度Data2_W,用于接收。如果通道2接收到一帧数据,在去掉地址和校验位后,其数据长度和bit119~bit112值一致,那么认为通道2接收到一帧数据,置位DR2,否那么丢弃。eq\o\ac(○,3)bit111~bit104:通道1接收数据长度〔bit〕通道1接收数据的长度Data1_W,用于接收。如果通道1接收到一帧数据,去掉地址和校验位后,其数据长度和bit111~bit104值一致,那么认为通道1接收到一帧数据,置位DR1,否那么丢弃。通道1和通道2的数据长度受nRF2401A帧数据总长度限制,帧数据总长度为256bit,每一帧的数据长度Data_W<=256–Addr_W–CRC。eq\o\ac(○,4)bit103~bit64:通道2地址通道2的地址Addr_2,用于接收。设置本机地址,通信过程中,发射端通过配置该地址发送数据才能与之通信。eq\o\ac(○,5)bit63~bit24:通道1地址通道1的地址Addr_1,用于接收。设置本机地址,通信过程中,发射端通过配置该地址发送数据才能与之通信。eq\o\ac(○,6)bit23~bit18:通道地址有效位数通道1和通道2的地址有效位数,用于接收。结合bit63~bit24和bit103~bit64选定通道的接收地址。其值不超过40。如果bit63~bit24的值为0000000105,bit23~bit18的值为8,那么通道1的地址为05;如果bit63~bit24的值为0000000105,bit23~bit18的值为32,那么通道1的地址为00000105eq\o\ac(○,7)bit17:CRC校验位选择选择CRC校验位数,用于收发。如果该位为“0”,那么CRC校验为8位;如果该位为“1”,那么CRC校验为16位;eq\o\ac(○,8)bit16:CRC校验使能使能CRC校验,用于收发。如果该位为“0”,那么不进行CRC校验;如果该位为“1”,那么进行CRC校验。eq\o\ac(○,9)bit15:通道2接收使能通道2的接收允许,用于接收。如果该位为“0”,那么仅有通道1可以接收;如果该位为“1”,那么通道1和通道2均可接收。注意通道1通道2同时接收时,通道2的接收频率比通道1的收发频率高8MHz。eq\o\ac(○,10)bit14:收发模式选择该位决定nRF2401A的收发方式,用于收发。如果该位为“0”,nRF2401工作在Direct模式〔直接收发模式〕;如果该位为“1”,nRF2401工作在ShockBurst模式。eq\o\ac(○,11)bit13:RF波特率选择nRF2401通信的波特率选择位,用于收发。如果该位为“0”,那么选择250Kbps波特率;如果该位为“1”,那么选择1Mbps波特率。前者的通信误码率较低,如果速度没有严格要求,通常选择eq\o\ac(○,12)bit12~bit10:芯片外晶振选择nRF2401的外晶振选择,nRF2401支持5种不同频率的晶振,随着外晶振频率的不同,bit12~bit10值也不同,其对应关系如下表5.1所示:表5.1晶振设置对照表bit12~bit10晶振频率〔MHz〕00040018010120111610020模组选用16M晶振,所以bit12~bit10值为011。eq\o\ac(○,13)bit9~bit8:RF发射功率选择nRF2401发射功率选择,用于发射。nRF2401有4种不同的发射功率,与bit9~bit8的对应关系如下:表5.2发射功率对照表bit9~bit8发射功率〔dBm〕00-2001-1010-5110通常我们选择最大发射功率0dBm,取bit9~bit8值为11。eq\o\ac(○,14)bit7~bit1:RF频率选择nRF2401的收发频率选择,用于收发。如果bit7~bit1的值为n,通道1的收发频率为〔2400+n〕MHz;通道2的接收频率为〔2400+n+8〕MHz。在通信时,只有发射端和接收端的频率一致,发射端的信号才可能被接收。eq\o\ac(○,15)bit0:芯片收发切换nRF2401收发选择位。如果该位为“0”,那么芯片工作于发送状态;如果该位为“1向nRF2401写控制字操作须严格按照图5.6的时序进行:图5.6nRF2401写控制字时序图PWR_UP为高、CE为低时,置位CS,芯片处于命令字写入状态,通过通道1向芯片的控制字缓冲区写入命令字,按照由高位到低位的顺序,命令字全部写入后,将CS置低,nRF24101A芯片将会根据命令字配置相应的内部模块。在第一次配置操作结束后,只有最后两个字节的命令字可以被更改,前16个字节的修改无效,如果需要修改前16个字节的命令字〔如通道接收地址,接收数据长度等〕,那么需要掉电〔PWR_UP置低〕后重新上电〔PWR_UP置高〕,才能对芯片进行彻底初始化操作。需要注意的地方:1、并不是18个Byte的命令字全部需要写入,通常我们只需要写后15个Byte即可;2、15个Byte的命令字在nRF2401.C文件中通过InitData[15]定义,用户需根据自己的通信格式对之进行修改;3、bit15~bit0可以根据需要反复修改,但是bit144~bit16只有上电后的第一次初始化有效。放音子程序在检测到语音播放允许标志PlayFlag值变为0xFF后,进入放音子程序。初始化编码队列并开始语音播放;如果PlayFlag的值一直为0xFF,程序将会一直进行DVR解码操作。一旦PlayFlag的值不为0xFF,停止放音。程序流程如图5.7所示:DVR停止DVR解码PlayFlag=0xFF?放音初始化YNDVR停止DVR解码PlayFlag=0xFF?放音初始化YN图5.7放音子程序录音子程序在检测到KEY1键按下后进入录音子程序。进入程序后首先禁止1KHz中断,屏蔽来自nRF2401的数据接收,并切换nRF2401工作方式为发送;之后作初始化工作,初始化编码队列,设置编码格式等;如果按键KEY1一直处于闭合状态,程序将会不断地进行编码操作,每产生一帧编码数据后将数据写入nRF2401,进行无线发送。一旦KEY1键释放,停止录音,并切换nRF2401工作方式为接收,同时允许1KHz中断。程序流程如图5.8所示:允许1KHz中断DVR停止读取资源数据并发送DVR编码KEY1按下?录音初始化禁止1KHz中断NNY允许1KHz中断DVR停止读取资源数据并发送DVR编码KEY1按下?录音初始化禁止1KHz中断NNY图5.8录音子程序5开发流程及开发环境5.1开发流程第一步:硬件连接:eq\o\ac(○,1)电源连接,可接三节电池,也可以直接接5V的稳压源;eq\o\ac(○,2)在线调试器〔PROBE〕的连接,一端接PC机并口,一端接61板的5pin接口J4,跳线要连接S5的1与2;如果使用EZ_PROBE,请将一端接PC机并口,一端接61板的5pin接口J11,跳线要连接S5的2与3。eq\o\ac(○,3)喇叭连接,直接接61板的J3。第二步:翻开IDE,在安装路径下(/example/61_Exa)找到Record工程文件〔record.spj〕并翻开;第三步:下载程序,检查PROBE是否连接好,程序放在在主菜单build-StartDebug-Download下;如果使用EZ_PROBE,操作同上,只是注意在IDE下选择EZ_PROBE模式。5.2开发环境61板的开发是通过下载线〔EZ_PROBE〕或在线调试器〔PROBE〕实现的。用它可以替代在单片机应用工程的开发过程中常用的两件工具——硬件在线实时仿真器和程序烧写器。他们都利用了SPCE061A芯片内置的在线仿真电路ICE〔In-CircuitEmulator〕和凌阳公司的在线串行编程技术。EZ_PROBE和PROBE均工作于凌阳IDE集成开发环境软件包下,他们对应的5芯的仿真头分别连接到61板的缓冲电路输入管脚和SPCE061A芯片相应管脚上,实现在目标电路板上的CPU〔SPCE061A〕调试、运行用户编制的程序;另一头是标准25针打印机接口,直接连接到计算机打印口与上位机通讯,在计算机IDE集成开发环境软件包下,完成在线调试功能。EZ_PROBE和PROBE不同的是在IDE集成开发环境下需要选择当前是使用哪一种方式进行调试,其中PROBE共有三种选择方式:采用自动方式调试可选Auto;采用PROBE调试可选PRINTER_PROBE;采用EZ_PROBE调试可选EZ_PROBE即可。6调试6.1调试方法首先检测61板是否能正常工作,并且检查无线收发模块是否有短路现象,然后在两块板子都检测成功的条件下把无线模块接到61板上进行软件的调试。6.2硬件调试6.2.1PCB设计应注意的问题一个好的印制电路板(PCB)设计对于获得好的RF性能是必需的,本系统用双层板来设计。由于nRF2401外围元件少,是目前集成度最高的RF收发芯片并集成了基带处理,设计比拟方便,但是实际由于高频电路的特性,工作频率较高(UHF),且nRF2401PCB设计是混合信号电路设计,尽管nRF2401已经大大简化了射频电路设计及要求,设计时仍然需要十分的注意。一般来说有以下原那么需要遵循:

(1)布线时不能只考虑线能否布通,如果PCB布线布局不合理,可能会大大影响性能和通信距离,这是RF电路设计的特点决定的。因此将PCB分为射频电路和控制电路两局部布置。PCB使用双面板,分为元件面和底面。底面有一个连续的接地面,元件面的接地面保证元件充分接地,大量的通孔链接元件面的接地面和底面的接地面。

(2)适宜的零件布局。射频电路的元件面以nRF2401为中心,各元件紧靠其周围,尽可能减少分布参数的影响。需要说明的是VCO电感的布局是非常重要的,一个经过优化的VCO电感布局将可以给PLL环路滤波器提供一个适宜的电压。匹配网络的元器件最好靠近nRF2401的ANT1和ANT2,以减小杂散电感和杂散电容。

(3)将PCB分区为独立的模拟局部和数字局部。在电路板的所有层中,数字信号只能在电路板的数字局部布线,模拟信号只能在电路板的模拟局部布线,并且模拟电源和数字电源要分割。nRF2401的直流供电必需在离VDD脚尽可能近的地方用高性能的RF电容去藕。如果一个小电容再并上一个较大的电容效果会更好(2.2uF)。射频局部的电源和数字电路局部的电源别离,nRF2401的VSS端直接连接到接地面。

(4)射频电路的电源使用高性能的射频电容去耦,去耦电容尽可能靠近nRF2401的VDD端,一般还在较大容量的外表贴装电容旁并联一个小数值的电容。nRF2401的电源必需经过很好的滤波,并且与数字电路供电别离。

(5)布线时,电源线和地线要尽量粗。除减小压降外,更重要的是降低耦合噪声。从单片机引入的晶体走线不能离数据线或者控制线太近。注意电源的滤波和电源线的走线。不能将数字信号或控制信号引入到PLL回路滤波器元件上。布线时尽量减少回路环的面积,以降低感应噪声。(6)采用正确的布线规那么。在PCB板上应该防止长的电源走线,所有元件地线,VDD连接线,VDD去藕电容必需离nRF2401尽可能近,如果PCB设计的顶层有铺铜,VSS脚必需连接到铺铜面,如果PCB的设计的底层有铺铜,与VSS的焊盘有一个过孔相连会获得更好的性能。所有开关数字信号和控制信号都不能经过PLL环路滤波器元件和VCO电感附近。

(7)充分考虑电源对nRF2401的影响。电源做得好,整个电路的抗干扰就解决了一大半。RF电路对电源噪声很敏感,要给RF电源加滤波电路,以减小电源噪声对RF电路的干扰。比方,可以利用磁珠和电容组成П型滤波电路,当然条件要求不高时也可用电感代替磁珠。nRF2401模块的制作由于这块板子是双面板,所以在转印上也有点困难,首先先要把底层或者顶层印上,然后再根据所印上的图打三个孔,再转印另一面时必须对准那三个孔,这样转印出来的板子才不会出错。由于本人第一次做双面板,所以在第一次转印时孔打歪了,没有能很好的对上,这样有可能会对整块板子的通信产生影响,所以再重新做了一块。在本次制作的过程中比拟困难的是贴片的焊接,我的这块板子比拟小,而且步线的要求也比拟严格,所以线条比拟密集,在焊接上也出现了一定的困难,必须小心的对准铜,先焊接好一个脚固定好,然后再焊另一边,在焊接时要保证焊得比拟饱满,这样防止虚焊。最难焊的是nRF2401这块芯片,因为此芯片的管脚根本看不见,在第一次焊时焊歪了,由于管脚线也比拟密集,焊锡拖到了其他的线上,造成板子的短路。然后在请教过导师后终于把芯片焊接上去,在焊此芯片前首先在芯片的管脚线周围涂上松香,然后在管脚线上附上焊锡,再用镊子夹着芯片对准管脚轻轻压到板子上,然后用喷枪稳固好。6.2.261板的检测〔1〕主要测试局部eq\o\ac(○,1)I/O口〔A口作为输入,B口作为输出〕;eq\o\ac(○,2)睡眠功能〔进入睡眠状态,绿色指示灯点亮〕;eq\o\ac(○,3)A/D转换输入〔B口的低7位作为模拟电压源输出,对应A口的7个通道采样转换〕;eq\o\ac(○,4)MIC输入及语音输出〔同时实现A/D和D/A转换功能〕。〔2〕61板自检的具体操作步骤第一步:连接电源,可以连接电池盒〔3节〕,也可以直接接5V的稳压源;现象:当电源接通时,红色的发光二极管会点亮。同时会有语音提示:“欢送进入自检模式”,此时因为还没有连线,所以会听到:“I/O测试失败”的警告,进行第二步的操作;第二步:用排线分别将IOA口的低8位和IOB口的低8位相连,IOA口的高8位和IOB口的高8位相连,然后按下RESET复位键;现象:当按下RESET复位键后,程序重新开始执行,语音提示“欢送进入自检模式”,当听到语音提示“I/O测试成功”后,进行第三步操作;第三步:按K1键进行睡眠功能测试;现象:如果测试成功,会看到绿色的发光二极管闪亮一下,并有语音提示“睡眠测试成功”,否那么提示“睡眠测试失败”,然后进行第四步操作;第四步:按下K2键进行A/D转换的测试;现象:语音提示:“A/D测试成功”,否那么提示“A/D测试失败”,进入最后一步操作;第五步:拔掉第一步测试时的排线,并按下K3键测试MIC输入及D/A转换输出是否正常;〔注:在按下K3键后,喇叭会发出啸叫声,用手按在MIC上可消除啸叫声。〕现象:可以在MIC上轻轻的拍几下,同时听是否有声音输出,如果有,那么说明MIC输入和D/A转换输出局部正常。※以上操作,只有当I/O测试成功后,按键才会有效。6.3软件调试无线传输模组接口包括:一排10Pin接口J1、一排3Pin的预留接口J2,J1为芯片的控制和通道1的收发通道,J2为通道2的预留接口,通常我们仅使用J1接口。直接将J1接口和61板相插接即可使用。〔特别提示:请将61板的J5跳线跳至3V端〕第一步:在断电条件下,将一个无线传输模组插接到61板的J6上,将61板I/O电平选择跳线J5跳至3V端,按照同样的方法将另一个无线模组插接到另一块61板上;第二步:正确连接Probe并翻开电源;第三步:翻开无线模块文件〔\\nRF2401无线传输模块\DemoCode\Demo\Send\Send.spj〕,重新进行编译链接并下载程序至其中一个61板〔A板〕;然后再把同样的程序下载到另一块61板〔B板〕。第四步:运行程序,按A板KEY1~KEY3任意键;B板会播报A板所按下的按键号。烧入程序后,开始调试板子是否能正常运行。先按下一块板子的KEY1键,对着61板的MIC讲话,第一次测试时在接收端没有播放语音出来,经过单步运行程序后,发现发送端发送的地址与接收断的通道地址没有一致,经过修改好,通信正常。7结论本次课题要求做一个无线语音传输系统,这课题更偏向于通信方面的知识,随着现代社会的不断进步,通信方面的技术更是日新月异,对于这个通信技术越来越成熟越来越兴旺的社会,这次的课题让我对于通信方面的认识有了较深入的了解。这次设计是基于SPCE061A的无线语音传输系统,它借助于nRF2401A芯片的稳定传输性能,更好的发挥了SPCE061A单片机的语音特色。本方案还具有一定的扩展性,可将通信过程中的声音存储起来并实现回放,但由于时间有限,没有深入去了解。不过本次设计已经完成根本功能,并且运作稳定。在这次的毕业设计中,经过自己独立完成电路设计,制作电路板的整个课程设计过程,提高了理论水平和实际的动手能力;在调试过程中,提高了分析问题和解决问题的能力。这次课程设计把我们学到的知识应用到实际当中,理论与实际相结合,让我们真正体会到了学习的乐趣,增强了学习兴趣,加强了我们对学习的欲望,和对知识的探索精神,对调试和做电路板的过程中也锻炼了不达目的决不放弃的毅力。谢辞本课题在选题及研究过程中得到郝建卫老师和易艺老师的悉心指导。并且易老师还屡次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。易老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人,虽历时四载,却给以终生受益无穷之道。对易老师的感谢之情是无法用言语表达的。感谢李长俊老师、李飞老师、杰颖老师和这四年里各个科目的指导老师等对我的教育培养。他们细心指导我的学习与研究,在此,我要向诸位老师深深地鞠上一躬。在此,我还要感谢在一起愉快的度过大学生活的7#107的各位舍友,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。在论文即将完成之际,我的心情无法平静,从开始进入毕业设计到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!主要参考文献[1](美)ChariesH.Roth,Jr.著.FundamentalsofLogicDesign[M].北京:机械工业出版社,2003[2]谢自美等编著.电子线路设计.实验.测试〔第二版〕[M].武汉:华中科技大学出版社,2002[3]江国强编著.现代数字逻辑电路[M].北京:电子工业出版社,2002[4]李晶皎编著.嵌入式语音技术及凌阳16位单片机应用[M].北京:北京航空航天大学,2003[5]雷思孝等编著.单片机原理及实用技术—凌阳16位单片机原理及应用[M].西安:西安电子科技大学出版社,2005[6]罗亚非编著.凌阳16位单片机应用根底[M].北京:北京航天航空大学出版社,2003[7]张培仁等编著.十六位单片机微处理器原理及应用.北京:清华大学出版社,2003.[8]江国强编著.EDA技术与应用[M].北京:电子工业出版社,2004[9]清华大学通信教材编写小组.数据传输原理.北京:人民邮电出版社,1995[10]童诗白等编著.模拟电子技术根底[M].北京:高等教育出版社,2004[11]GuidetotheExpressionofUncertaintyinMeasurementCorrectedandReprinted.1995.ISO(Geneve,Swizerland).附录附录一:系统原理图㈠nRF2401模块原理图㈡电源原理图附录二:系统PCB图㈠芯片PCB图㈡电源PCB附录三:系统源程序1、主程序#include"SPCE061A.h"#include"DVR1600.h"#include"Queue.h"#include"nRF2401.h"unsignedintSourceBuf[14]; //资源缓冲数组,用于收发unsignedintAddress[5]={0x00,0x00,0x00,0x01}; //目标地址,用于发送unsignedintPlayFlag=0; //播放标志unsignedintCnt=0; //等待时间intmain(void){ unsignedinti; nRF2401_Initial(); //nRF2401初始化 nRF2401_SetAddress(Address,4); //设置目标nRF2401地址 nRF2401_Mode(0); //nRF2401工作方式,接收 *P_INT_Mask|=C_IRQ4_1KHz; //翻开1KHz中断,接收资源 __asm("intfiq,irq"); while(1) { *P_Watchdog_Clear=0x01;//去除Watchdog if((*P_IOA_Data&0x0001)==1) //Key1按下,录音并发送 { *P_INT_Mask&=~C_IRQ4_1KHz; //关闭1KHz中断,禁止接收语音资源 nRF2401_Mode(1); //nRF2401工作方式,发送 Queue_Init(); //初始化编解码队列 SACM_DVR1600_Initial(); //DVR初始化 SACM_DVR1600_Rec(0,1); //录音〔12k编码〕 while((*P_IOA_Data&0x0001)!=0) //Key1一直按下 { *P_Watchdog_Clear=0x01; SACM_DVR1600_ServiceLoop(); //编码 if(Queue_Test()!=0xffff) //有数据? { for(i=0;i<L_Fram;i++) { SourceBuf[i]=Queue_Read(); //读取编码数据 } nRF2401_SendBuffer_Word(SourceBuf,L_Fram); //发送数据 } } SACM_DVR1600_Stop(); //Key1释放,停止录音 nRF2401_Mode(0); //nRF2401工作方式,接收 *P_INT_Mask|=C_IRQ4_1KHz; //翻开1KHz中断,接收语音资源 } if(PlayFlag==0xff) //接收到数据 { Queue_Init(); //初始化编解码队列 SACM_DVR1600_Initial(); //DVR初始化 //放音,双声道,淡入淡出SACM_DVR1600_Play(0,DAC_1+DAC_2,RAMP_UP_DN); while(PlayFlag==0xff) { SACM_DVR1600_ServiceLoop(); //解码 *P_Watchdog_Clear=0x01; } SACM_DVR1600_Stop(); //DVR停止 } }}2、1KHz中断,用于接收语音资源数据voidIRQ4()__attribute((ISR));voidIRQ4(){ inti; if((nRF2401_RxStatus())==1) //有数据请求 { PlayFlag=0xff; //置位语音播放标志 Cnt=0; nRF2401_ReceiveWord(SourceBuf); //读取资源 { if(Queue_Test()>=L_Fram) //资源缓冲不满 { for(i=0;i<L_Fram;i++) { Queue_Write(SourceBuf[i]); //填补缓冲 } } } } else { Cnt++; if(Cnt>=100) //0.1s没有数据,结束语音播放 { PlayFlag=0x00; Cnt=0; } } *P_INT_Clear=C_IRQ4_1KHz; }3、芯片驱动程序#include"spce061a.h"#define PWR 0x0001 //IOB0#defineCE 0x0002 //IOB1#defineCS 0x0004 //IOB2#defineDR1 0x0008 //IOB3#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论