基于SPCE061A单片机的有线对讲机设计.doc_第1页
基于SPCE061A单片机的有线对讲机设计.doc_第2页
基于SPCE061A单片机的有线对讲机设计.doc_第3页
基于SPCE061A单片机的有线对讲机设计.doc_第4页
基于SPCE061A单片机的有线对讲机设计.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

基于SPCE061A单片机的有线对讲机设计作 者:董晶晶摘要:有线对讲机是通信中一个重要的分支,应用非常广泛,有线对讲机和其它无线通信工具的市场定位各不相同,难以互相取代,还将长期使用下去。本论文研究设计了一款基于凌阳SPCE061A的有线对讲机。首先介绍了对讲机的功能、性能指标和工作原理。从工作原理出发,通过现代电子系统设计方法,借助于SPCE061A独特的语音处理模块,确立了完整具体的方案。在具体的硬件设计实现上,用两块61板分别组成发射和接收部分,通过UART进行串口通信,通过主芯片完成系统需要的功能。关键词:有线对讲机;语音处理;UART;1 引言随着嵌入式技术的发展,单片机、DSP、ARM等处理器已经广泛应用于通信行业,尤其是在无线通信领域更是有其不可替代的作用。本设计中所用的核心器件SPCE061A是凌阳科技推出的MCU,有线对讲机由于具有即时通信、经济实用、使用方便以及无需通信费等优点,因此广泛应用在民用、紧急事件处理等方面。尤其在小型区域网络的情况下,对讲机更加显示出它的不可取代的地位。如今,模拟对讲机仍然占据绝大部分的市场,但是由于数字通信可以提供更丰富的业务种类,更好的业务质量、保密特性和连接性,以及更高的频谱效率,因此数字对讲机的研究、生产和使用是与时俱进的,符合信息化、数字化发展的必然趋势。2 概述对讲机在交警巡逻、车站调度等场合应用非常广泛,其中对讲机分为有线对讲机和无线对讲机两种, 该系统主要研究有线对讲机的工作原理及实现。通过使用单片机实现该系统,可以了解对讲机的基本原理和更好的深化单片机的学习。 该方案充分发挥人性化的特点,利用SPCE061A 强大的语音处理能力,配合UART模组实现了有线对讲机系统。2.1 功能简介本方案可以实现: 1. 通过其中一套 61 板(A 端)实现录音并实时将编码后的语音数据通过 UART 模组传输到另一 套 61 板; 2. 另外一套 61 板(B 端)通过 UART 模组接收语音数据并解码后播放; 3. A 套和 B 套均可以独立进行数据的收发和录放音; 4. 通信过程采用半双工模式。3 硬件系统设计3.1 系统框图图1为有线对讲机的系统框图,系统以SPCE061A为核心,使用UART模组利用串口通信实现了有线对讲机的基本功能。图1 硬件系统框图图 2为有线对讲机的硬件连接图。图2 硬件连接框图3.2 UART模组特性UART 模组以 MAX232 芯片为核心,提供了两路的 232 电平转换电路,可以将单片机的 UART 发出 的 TTL 电平转换为 232 差分电平,或者将 232 差分电平转换为 TTL 电平送给单片机,方便单片机与 PC 机的串口或者 RS232 总线相连。 UART模组的实物图如图 3所示。图3 UART模组实物图3.3 硬件电路3.3.1 SPCE061A最小系统本方案使用 61 板作为单片机最小系统。61 板包括SPCE061A芯片及其外围的基本模块,外围模块包括: 晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等,如图4所示。图4 SPCE061A最小系统3.3.2 UART模组UART模组以MAX232 为核心实现TTL电平和 RS232 差分电平的转换,其电路图如图5所示。图5 UART模组4 软件系统设计本系统软件中包括下面程序模块:主程序:初始化系统涉及到的硬件模块和中断系统,检测按键并根据按键情况和串口接收情况做出相应处理;UART驱动程序:实现UAR的收发;语音录放程序:实现语音的录制、播放等操作。4.1 主程序主程序流程如图6,程序运行后首先初始化系统涉及到的硬件模块和中断系统,然后程序进入主循环,检测Key1状态和串口是否收到有效数据的标志。如果Key1按下,则进行录音并通过串口实时传输编码后的语音数据到另一端;如果串口接收到有效数据则开始解码并放音。图6 主程序流程图4.2 UART驱动程序本系统采用中断方式进行收发串口数据,利用SPCE061A内部的UART控制器和中断系统中的UART中断实现了收发任意长度的字符串,流程如图7所示。图7 UART中断流程图4.3 语音录放程序本系统使用具有编码和解码功能的 SACM_DVR1600 语音库,该库是凌阳科技大学计划针对 SPCE061A 单片机推出的语音录制和播放解决方案。 此库使用的是 A1600 算法对语音进行压缩和解码。A1600 算法具有10Kbps、12Kbps、14Kbps、16Kbps、20Kbps和24Kbps六种可选的码率,可将“8KHz, 16 bit”的音频以12.8:1 5.3:1的压缩比进行编码。另外 A1600 算法具有复杂度较低,保真度较高的特点,适合于各种音频(歌曲、环境音效、高品质语音等)播 放。其库函数介绍如下: void SACM_DVR1600_Initial(void); 入口参数:无 返 回 值:无 实现功能:DVR1600 初始化void SACM_DVR1600_Play(unsigned int SoundIndex, unsigned int DAC_Channel, unsigned int RampUpDn); 入口参数:SoundIndex: 待播放的语音资源序号 DAC_Channel: 语音输出的 DAC 通道 1 - DAC1 2 - DAC2 3 - DAC1+DAC2RampUpDn: 是否在播放起始和结束时采取渐入渐出方式0 - 不采取渐入渐出方式 1 - 播放起始时采取渐入方式 2 - 播放结束时采取渐出方式 3 - 播放起始时采取渐入方式,播放结束时采取渐出方式返 回 值:无 实现功能:开始 DVR1600 语音播放void SACM_DVR1600_Rec(unsigned int UserParam, unsigned int BitRate); 入口参数:UserParam: 用户自定义参数(例如录制语音的段序号),该参数将传递至 USER_DVR1600_SaveResource_Init()函数 BitRate: 语音压缩编码之后的码率0 - 10Kbit/s 1 - 12Kbit/s 2 - 14Kbit/s 3 - 16Kbit/s 4 - 20Kbit/s 5 - 24Kbit/s 返 回 值:无 实现功能:开始 DVR1600 录音void SACM_DVR1600_Stop(void); 入口参数:无 返 回 值:无 实现功能:停止 DVR1600 录音或放音 void SACM_DVR1600_ServiceLoop(void); 入口参数:无 返 回 值:无 实现功能:执行 DVR1600 解码或编码操作 void SACM_DVR1600_ISR(void); 入口参数:无 返 回 值:无 实现功能:DVR1600 中断服务,应在 Timer 中断服务程序中执行该函数。unsigned int SACM_DVR1600_Status(void); 入口参数:无 返 回 值:DVR1600 录放音状态编码 bit0 - 1:当前处于录/放音状态;0:当前不处于录/放音状态 bit1 - 1:录音状态;0:放音状态 bit2 - 1:录放音暂停状态;0:正常状态 bit3 - 1:播放时可通过 DAC1 输出;0:播放时不通过 DAC1 输出 bit4 - 1:播放时可通过 DAC2 输出;0:播放时不通过 DAC2 输出 bit5 - 1:播放起始时采取渐入方式;0:播放起始时不采取渐入方式 bit6 - 1:播放结束时采取渐出方式;0:播放结束时不采取渐出方式 bit7bit14 - 保留 bit15 - 放音时,如果当前处于输出缓冲区欠载(不能及时进行解码)则该位为 1, 录音时,如果当前处于输入缓冲区溢出状态则该位为 1。 实现功能:获取当前 DVR1600 录放音的状态。参考文献1 张培仁,张志坚等.16位单片微处理器原理及应用(凌阳SPCE061A)M. 北京:清华大学出版社,2005.2 李晓白,秦红磊等.凌阳16位单片机C语言开发M.北京航空航天大学出版社,2006.3 陈言俊.凌阳16位单片机应用M.北京航空航天大学出版社,20054 凌阳科技大学计划.实验仪使用说明书,20055 凌阳科技资料.实验指导书,20056.侯振鹏.嵌入式C 语言程序设计使用MCS-51M.北京:人民邮电出版社,2006.7.张春峰,邹新杰,余张国.基于ATMEGA16 的智能控制器的开发研制J.微计算机信息,2007,23(8):123-124. 8.张震宇,王华.基于凌阳单片机的语音识别技术及应用J.微计算机信息,2007,8-2:23.9.李玉贤,欧阳斌林.基于SPCE061A 单片机的语音识别系统的研究.优秀硕士学位论文库.The Design of Cable Interphone Based on SPCE061A MCUDong Jingjing Abstract:The wired-interphone is an important branch of communication, it is widely used. On the market pssition, Interphone is different from another wireless communication tools, they are difficult to replace and will be used in a long time. This design is a wired-Interphone which based on LINGYANG SPCE061A. This article describes the tunction, performance indicators and principle of interphone. From the works principle of modern electronic system design through the voice processing module of SPCE061A, then make the specific programs. In the specific hardware design, two 61 board composed of transmitting and receiving parts, communication with UART and the CPU complete the function needed.Keywords: wired-interphone; voice processing; UART;附录:源程序:(main.c)/=/文 件 名: main.c/功能描述: 实现语音的录放和传输/=#include SPCE061A.h#include DVR1600.h#include Queue.h#include .UARTUART.h#include string.hunsigned char SourceBuf30;unsigned char SendData60;/ 资源缓冲数组,用于收发unsigned int PlayFlag=0;/ 播放标志unsigned int Cnt=0;/ 等待时间unsigned char RxData100;extern int TxNum, TxNumTemp, TxEndSign;extern unsigned char TxData100;extern void Delay(unsigned int Delays);/=/语法格式:void WordToByte(unsigned char Words,unsigned char Bytes)/功能描述: 将字类型数据转化为字节型/入口参数: Words:要转换的字型数据缓冲区/Bytes:转换后的字节型数据缓冲区/出口参数: 无/=void WordToByte(unsigned char Words,unsigned char Bytes)unsigned int i = 0;unsigned int len = 0;len = strlen(Words);for(i = 0; i len; i+)Bytes2*i = Wordsi % 256;Bytes2*i+1 = Wordsi/256;/=/语法格式:int main(void)/功能描述: 主函数/入口参数: 无/出口参数: 无/=int main(void)unsigned int i;UARTInitial();*P_INT_Mask |= C_IRQ4_1KHz;/ 打开1KHz中断,接收资源_asm(int fiq,irq );while(1)*P_Watchdog_Clear = 0x01;if(*P_IOA_Data&0x0001) = 1)/ Key1按下,录音并发送/ 关闭1KHz中断,禁止接收语音资源*P_INT_Mask &= C_IRQ4_1KHz;Queue_Init();/ 初始化编码码队列SACM_DVR1600_Initial();/ DVR 初始化/ 录音(编码比特率只需修改Queue.h中的此宏定义)SACM_DVR1600_Rec(0,BITRATE);while(*P_IOA_Data&0x0001) != 0)/ Key1 一直按下*P_Watchdog_Clear = 0x01;SACM_DVR1600_ServiceLoop();/ 编码if(Queue_Test() != 0xffff)/ 有数据?for(i=0; iL_Fram; i+)SourceBufi = Queue_Read();/ 读取编码数据WordToByte(SourceBuf, SendData);UART_TxString(SendData,2*L_Fram);SACM_DVR1600_Stop();/ Key1 释放,停止录音/ 打开1KHz中断,接收语音资源*P_INT_Mask |= C_IRQ4_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停止袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈

温馨提示

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

评论

0/150

提交评论