已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
无线语音传输系统研究现状及目的今天,随着通讯技术和信息技术的发展,人们对通信设备的要求越来越高。人们越来越多的使用体积小巧、携带方便、功能强大的通信设备,无线传输方式与有线传输相比有着诸多优点:无需架设电线,且覆盖范围广,不受地理环境限制;语音信号的质量很高,误码率很低;在出现故障时能快速找出原因,恢复正常运行;安全保密性能好。 首先,本设计介绍了两种语音数据压缩编码类型波形编码和参数编码,并对它们分别介绍,通过比较选择出G.729作为本项目的语音压缩算法。 其次,本设计阐述了无线传输技术的发展历程;简单介绍了语音压缩编码的发展历史、研究现状和常用的压缩编码算法,并分析了语音编码算法的一般原理、分类及其不同的实现方法。本文给出了一种无线语音传输系统的设计思路及实现方案、描述了项目背景和应用价值,同时根据项目的需求选择出使用的芯片:在种类众多的单片机中选出MSP430F1491系列超低功耗单片机;选出了具有高度可编程性、高性能、低功耗、较少的外围器件、成为当前语音处理的主流产品的音频处理芯片TLV320AIC10;以及专为在433MHz ISM(工业、科研和医疗)频段工作而设计的nRF401收发芯片。根据这些芯片资料绘制出原理图与PCB图。 最后,描述了本文的软件平台IAR Embedded Workbench,它是由IAR公司提供的软件开发调试环境。并在IAR Embedded Workbench上进行各个功能模块的软件调试。需求分析随着数字集群通信在我国不断地发展,数字集群终端的需求量将会逐步增大。目前,国外厂商生产的终端价格都比较昂贵,超出了一般用户可以承受的范围,因此,对于一线指挥调度工作的企事业单位,如何结合实际情况,在现有成熟的移动通信产品和技术研究基础之上,推陈出新,优化技术体制,做出多功能、价格适中的通信终端系统,具有很重要的意义。在无线通信中,我们经常受到多方面的限制。比如:无线传输中带宽的限制及距离方面的要求。特别是在无线语音传输中,为了满足带宽的限制及距离方面的要求,我们必须对语音的数据信息进行压缩,即对语音数据进行编码。 本项目根据TDD双工模式的原理,设计并实现了一种基于TDD模式的无线语音传输终端系统。文中首先描述了TDD的帧结构、TDD的帧周期以及TDD的实现方式等关键技术。接着,简要介绍了系统的硬件电路。然后,对系统的软件实现进行了详细设计:即采用模块化的设计思想,对各个功能模块的特点及功能进行详细叙述,并着重说明各个功能模块软件实现的方法。最后,分别对系统的硬件和软件部分进行了调试,指出了在调试过程中须要注意的关键点。 文中除了对语音系统做了研究外,还在现有集群通信终端所具备的短消息数据业务功能的基础上做了改进,增加了短信自动回复功能,为将来在本系统上实现该功能进行了前期研究。 试验结果表明,该数字对讲语音终端系统达到了预期目标,实现了一对一单呼、一对多群组呼叫功能。研究目标本系统采用msp430系列单片机作为主控制器,利用DSP压缩,解压语音信号。通过无线收发模块收发数据,实现语音的采集传输播放。系统总体方案介绍整个系统的结构如图所示,系统由两套msp430单片机板和nRF无线模块构成,为便于描述,命名为A套和B套。两套的硬件结构和软件设计是完全一致的。硬件部分:采用msp430单片机自带的ADC,通过其MIC通道将语音转换为数字量;按照一定的格式编码后通过nRF无线模块将编码数据发送出去;另一端通过无线模块接收到来自发射端的编码数据,并对之进行解码,解码后的数据通过msp430单片机自带的DAC输出,实现声音的还原。图1 系统整体框图软件部分:为了便于分析,将系统分为3种工作状态:等待状态、录音状态、放音状态。程序运行后,A套和B套均处于等待状态,在等待状态下可以通过按键进入录音状态;进入录音状态后进行录音并将压缩后的数据发送;另一端在接收到数据后进入放音状态,接收数据并进行解码。通过改变按键的状态可退出录音状态,停止录音和数据发送;另一端在一定时间内接收不到数据即退出放音状态。3种状态间的切换关系如下:图2 系统状态切换图由于两套系统的硬件和软件一致,下面仅介绍其中一套的硬件和软件。(1)系统硬件设计系统的硬件分为两大部分,msp430板和无线收发模块部分,下面重点介绍这两个模块:图3 系统硬件框图无线收发电路包括主芯片nRF2401A及其外围电路、接口电路、指示电路,如图4所示:图4 无线收发模块电路nRF2401A及其外围电路如图4,包括nRF2401A芯片、稳压部分、晶振部分、天线部分。电压VDD经电容C1、C2、C3处理后为芯片提供工作电压;晶振部分包括Y1、C9、C10,晶振Y1允许值为:4MHz、8MHz、12 MHz、16 MHz,如果需要1Mbps的通信速率,则必须选择16MHz晶振。天线部分包括电感L1、L2,用来将nRF2401A芯片ANT1、ANT2管脚产生的2.4G电平信号转换为电磁波信号,或者将电磁波信号转换为电平信号输入芯片的ANT1、ANT2管脚。为方便与msp340板的连接,模组提供了两个接口J1、J2,其中J1为nRF2401A的控制端口和通道1的收发通道,J2为预留端口,是通道2的接收通道。J1接口为10Pin的插孔,其布局和msp430板的I/O端口布局一致,可以直接插接到msp430板的I/O端口使用。J2预留,如果需要采用双通道接收时,可以将J2对应的3根信号线引出,接到单片机的I/O上即可。同时,在板上添加了工作指示,系统上电后D1将会被点亮。无线收发模块的工作电压VDD为3.3V,须将msp430板J5的I/O电平选择跳线跳至3V端。(2)系统软件设计程序的思想:系统运行后处于等待状态,在等待状态下不断扫描按键并判断是否接收到数据。如果检测到按键按下则进入录音状态,进行录音并将压缩后的数据发送;另一端在接收到数据后进入放音状态,接收数据并进行解码。如果想要停止录放音,可以通过释放按键退出录音状态,停止录音和数据发送;另一端在一定的时间内接收不到数据即退出放音状态。主程序流程:系统首先初始化nRF2401A为接收状态,之后进入主循环,在主循环中扫描KEY1键和播放允许标志PlayFlag,如果检测到KEY1键按下则进入录音装态,如果检测到PlayFlag = 0xFF则进入放音状态。如果KEY1键释放则退出录音状态,如果检测到PlayFlag = 0x00则退出放音状态。图5 系统主程序流程图中断服务程序:中断服务包括IRQ4_1KHz中断和FIQ_TMA中断。IRQ4_1KHz中断用来接收数据,每次进入中断,判断无线模块是否有数据请求(接收到数据),如果有数据请求,则从nRF2401A中读出数据,同时置位语音播放允许标志PlayFlag,如果连续一段时间内(0.1S)没有接收到数据,则清除语音播放允许标志PlayFlag。程序流程如图6所示。图6 中断服务子程序FIQ_TMA中断用来录放音。在录音或者放音时,每次进入中断则调用DVR1600的中断服务函数。程序流程如Error! Reference source not found.所示。 图7 TimerA中断服务子程序 录音子程序在检测到KEY1键按下后进入录音子程序。进入程序后首先禁止1KHz中断,屏蔽来自nRF2401A的数据请求,并切换nRF2401A工作方式为接收;之后作初始化初始化工作,初始化编码队列,设置编码格式等;如果按键KEY1一致处于闭合状态,程序将会不断地进行编码操作,每产生一桢编码数据后将数据写入nRF2401A,进行无线发送。一旦KEY1键释放,停止录音,并切换nRF2401A工作方式为接收,同时允许1KHz中断。程序流程如图8所示:图8 录音子程序放音子程序在检测到语音播放允许标志PlayFlag值变为0xFF后,进入放音子程序。初始化编码队列并开始语音播放;如果PlayFlag的值一直为0xFF,程序将会一直进行DVR解码操作。一旦PlayFlag的值不为0xFF,停止放音。程序流程如图9所示:图9 放音子程序语音压缩程序开始初始化DSP及串行口初始化A/D转换器D/A转换器语音经A/D转换器输入数据压缩数据存储解压缩经D/A转换器回放结束图10 DSP实现语音压缩程序流程图附录:1.无线发射主程序:void nrf2401A_WR(uchar val) uchar temp,i; /MSB first 高位开始,先输出DATA,然后CLK_Up,再CLK_Dn SET(DDRC,DATA);/置DATA输出 temp=val; for (i=0;i0) SET(PORTC,DATA); else CLR(PORTC,DATA);NOP(); SET(PORTC,CLK1); NOP();NOP();NOP();NOP();CLR(PORTC,CLK1); temp=temp1; /读1Byteuchar nrf2401A_RD() uchar temp=0,i; /MSB first 高位开始,先读入DATA,然后CLK_Up,再CLK_Dn CLR(DDRC,DATA);/置DATA输入 temp=0; for (i=0;i8;i+) temp=temp1; if (PINC&(1StandByvoid nrf2401A_StandBy() SET(PORTB,PWR); CLR(PORTD,CE); CLR(PORTB,CS);/-PwrDownvoid nrf2401A_Off() CLR(PORTB,PWR); CLR(PORTD,CE); CLR(PORTB,CS);/配置模式void nrf2401A_RwOn() SET(PORTB,PWR); CLR(PORTD,CE); SET(PORTB,CS);/工作模式void nrf2401A_Run() SET(PORTC,PWR); CLR(PORTB,CS); /first SET(PORTD,CE);void nrf2401A_Config(void) nrf2401A_RwOn();/配置状态 /nrf2401A_WR(0x8e); /nrf2401A_WR(0x08); /nrf2401A_WR(0x1c); nrf2401A_WR(DATA2_W); /200+16+32+8 nrf2401A_WR(DATA1_W); /200 nrf2401A_WR(RX_ADDRESS2); nrf2401A_WR(RX_ADDRESS2); nrf2401A_WR(RX_ADDRESS2); nrf2401A_WR(RX_ADDRESS2); nrf2401A_WR(RX_ADDRESS2); nrf2401A_WR(RX_ADDRESS_4); nrf2401A_WR(RX_ADDRESS_3); nrf2401A_WR(RX_ADDRESS_2); nrf2401A_WR(RX_ADDRESS_1); nrf2401A_WR(RX_ADDRESS_0); nrf2401A_WR(CRC16_EN|ADDR_W); /CRC16,AddrWidth nrf2401A_WR(PA_PWR_3|XOF_16MHz|CM_SHOCK); /nrf2401A_WR(PA_PWR_3|XOF_16MHz|RFDR_1M|CM_SHOCK); nrf2401A_WR(CH_NO_FREQ|RX_EN); /RxMode,Chan / nrf2401A_StandBy();/执行配置/*/配置nRF2401Avoid nrf2401A_Config(void) nrf2401A_RwOn();/配置状态 nrf2401A_WR(DATA2_W); nrf2401A_WR(DATA1_W); nrf2401A_WR(RX_ADDRESS2); nrf2401A_WR(RX_ADDRESS2); nrf2401A_WR(RX_ADDRESS2); nrf2401A_WR(RX_ADDRESS2); nrf2401A_WR(RX_ADDRESS2); nrf2401A_WR(RX_ADDRESS_4); nrf2401A_WR(RX_ADDRESS_3); nrf2401A_WR(RX_ADDRESS_2); nrf2401A_WR(RX_ADDRESS_1); nrf2401A_WR(RX_ADDRESS_0); nrf2401A_WR(CRC16_EN|ADDR_W);/CRC16,AddrWidth nrf2401A_WR(PA_PWR_3|XOF_16MHz|RFDR_1M|CM_SHOCK); /#ifdef BPS_1M / nrf2401A_WR(PA_PWR_3|XOF_16MHz|RFDR_1M|CM_SHOCK);/0dbm,16M,1Mbps,ShockBurst / #else / nrf2401A_WR(PA_PWR_3|XOF_16MHz|CM_SHOCK);/0dbm,16M,250Kbps,ShockBurst / #endif / nrf2401A_WR(CH_NO_FREQ|RX_EN); /RxMode,Chan nrf2401A_StandBy();/执行配置*/接收模式void nrf2401A_RxOn() nrf2401A_RwOn(); nrf2401A_WR(CH_NO_FREQ|RX_EN); /RxMode,Chan nrf2401A_Run();/发送模式void nrf2401A_TxOn() nrf2401A_RwOn(); nrf2401A_WR(CH_NO_FREQ); /TxMode,Chan nrf2401A_Run();/初始化nrf2401Avoid nrf2401A_Init() uchar i; CLR(PORTC,CLK1);/ nrf2401A_StandBy(); / DelayMs(10); /!must 3ms for(i=1;i5;i+) delay(1000); nrf2401A_Config(); nrf2401A_RxOn();/接收状态/写Tx地址void nrf2401A_SetTxAddr() nrf2401A_WR(TX_ADDRESS_3); nrf2401A_WR(TX_ADDRESS_2); nrf2401A_WR(TX_ADDRESS_1); nrf2401A_WR(TX_ADDRESS_0); /写Tx数据void nrf2401A_SetData() uchar i; for (i=0;iSIZE;i+) nrf2401A_WR(TxBuf); /发送TxBuf中的数据void nrf2401A_SendData() nrf2401A_TxOn(); SET(PORTD,CE); nrf2401A_SetTxAddr();/写发送地址 nrf2401A_SetData();/写数据 CLR(PORTD,CE);/启动发送 /发送完毕后进入StandBy/读出接收到的数据void nrf2401A_ReadData()uchar i; for (i=0;iSIZE;i+) RxBuf=nrf2401A_RD(); void RfRecvProc()uchar i; if (PINC&(1DR1)=0) return;/DR=1时表示数据接收对而且Crc正确 /已经接收到数据 nrf2401A_ReadData();/读出. 2.语音压缩主程序:void main() if (brd_init(100) return; led(2); /闪灯两次 initcodec(); /初始化codec flashenable(); /选择片外FLASH为片外存储器 /* delay(100); brd_led_toggle(BRD_LED0); for(i=0x9000;i0xefff;i+) REG_WRITE(i,*(volatile u16*)DRR1_ADDR(HANDSET_CODEC); delay(20); brd_led_toggle(BRD_LED1); delay
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技春节消费新趋势
- 2(2024版)文化艺术品拍卖与购买合同
- 国有企业合规管理经济责任审计方案
- 2024年办公场地租赁简单合同
- 护理伦理教育实施方案
- 校园体育嘉年华活动方案
- 哲学课题答辩报告模板
- 艺术课程解析模板
- 设备管理人员安全培训
- 高校在线课程推广方案
- 专题08 上海卷作文(课件)-2022年高考语文作文评析+素材拓展+名师下水文
- 建筑垃圾清运及处置 投标方案(技术方案)
- MOOC 设计原理与方法-东南大学 中国大学慕课答案
- 《勿忘国耻.强国有我》国家公祭日主题班会课件
- UML课程设计-网上购物系统
- 围手术期管理规范
- 2024年-会计师事务所审计保密协议
- 《中外舞蹈史》考试复习题库(含答案)
- 2024年公安机关人民警察高级执法资格考试试卷含答案(案例分析题 论述题)
- GB/T 19923-2024城市污水再生利用工业用水水质
- 大疆无人机农用版培训课件
评论
0/150
提交评论