一种语音终端设备的制作方法

文档序号:7842529阅读:250来源:国知局
专利名称:一种语音终端设备的制作方法
技术领域
本实用新型属于数字通信领域,具体涉及一种使用SPI接口实现PCM信息交互的语音终端设备。
背景技术
语音是语言的声学表现,是人类交流信息最自然、最有效、最方便的手段,也是人类进行思维的一种依托。语音业务的传输始终是通信系统中最重要、最基本的核心功能之一,即便是在倡导多媒体业务的第三代甚至第四代数字移动通信系统中,语音业务也仍然是其主导业务。PCM是脉冲编码调制(Pulse Code Modulation)的英文缩写,即对话音信号进行脉冲采样、数字量化、编码的过程。电话语音信号的频带限制在300Hz —3400Hz,为了将模拟的语音信号数字化,首先要对模拟信号进行脉冲采样(时间量化),根据采样定理,对语音信号采样脉冲的频率至少为语音信号频率的两倍,CCITT标准规定为8kHz。然后再对采样得到的PAM脉冲进行幅度量化,每个脉冲幅度用Sbit表示,这样每一路电话信号的PCM编码速率为mcX8bit=641A/S。PCM信号被广泛用在电话交换机、网络电话机、光端机、综合接入设备、综合复用设备中。在普通固定电话网中,电话机采集到模拟语音经电话线传输到局用交换机后才需要进行PCM编码,因此作为通信终端的电话机并不涉及PCM的数字编码与传输。随着通信向智能化、网络化方向发展,出现了越来越多的数字终端,如ISDN终端、移动电话、网络电话机等。语音的数字化可以直接在终端上完成,众多的专门的PCM编解码的集成电路芯片也应运而生,如华邦的W681512就是一款专门为终端设备进行语音PCM编解码的芯片。与此同时,微控制器普遍缺乏专门的PCM通信接口,这就需要微控制器能使用普通的通信接口完成与PCM编解码芯片的信息交互。SPI是英语krial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI是一种高速的,全双工,同步的通信总线,可处理多个连接到指定总线上的主机和从机。芯片的管脚上只占用四根线,节约了芯片的管脚。该接口一般使用4条线,串行时钟线 (SCK),主机输入/从机输出线(MISO),主机输出/从机输入线(M0SI),从机选择线(SSEL)。 在数据传输中,主机总是会向从机发送一帧8到16个位的数据,而从机也总会向主机发送一帧字节数据。在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。一个SPI通信系统中,必须有主机。SPI总线可以配置成单主单从,单主多从。语音终端设备的微控制器与PCM编码器之间一般会通过专门PCM通讯接口进行,在语音通讯设备的研制过程中,严重限制了对微控制器的选择。对于没有PCM通讯接口的微处理器,可以使用SPI主机接口模拟PCM通讯接口,但这种方法仍将大量占用微控制的运算量,并不适用于大量的低成本微控制器。一个SPI通信系统中,必须有主机。外围的PCM编解码芯片提供的是SPI从机接口,需要微控制器提供SPI主机接口与PCM编解码连接。使用SPI接口传输64Kbits/s速率的G. 711编码语音信息时,每秒需要8K次数据交互,而每次交互都需要微控制器参与时序的控制和数据的传输,显然将极大的占用微控制器的资源,而很多低端的微控制器则根本无法完成这样的操作。实用新型内容[0007]本实用新型目的是提供一种可以极大减少微控制器的运算量,降低对微控制器的要求的使用SPI接口实现PCM信息交互的语音终端设备。[0008]本实用新型的技术方案是[0009]一种语音终端设备,包括微控制器和PCM编解码器,其特征在于,还包括可以提供 SPI主机接口时钟的外部时钟源,所述外部时钟源与PCM编解码器的SPI接口以及被设为从机接口的微控制器的SPI接口相连。[0010]进一步的,所述外部时钟源是所述微控制器内置的定时器。[0011]进一步的,所述微控制器为使用直接内存存取方式完成对SPI外设接口的数据收发的微控制器。所述微控制器使用直接内存存取方式完成对SPI外设接口的数据收发,从而进一步的减少数据交换量。[0012]本实用新型采用了一种使用SPI接口实现PCM信息交互的方法,将微控制器的SPI 接口与PCM编解码芯片的SPI接口连接,其特征在于,所述微控制器的SPI接口和PCM编解码芯片的SPI接口都设为从机接口,由外部时钟源提供SPI主机接口时钟。交互PCM信息的过程没有实际的SPI主机接口参与,而仅通过两个SPI从机接口独立自主的完成,最大程度降低微控制器在PCM信息收发过程中的运算量。[0013]工作原理将微控制器的SPI接口也配置成从机接口,然后由外部时钟源提供SPI 接口时钟。这样,原本微控制器SPI主机接口与PCM编码器之间点对点的主机连接,变成了虚拟SPI主机接口(不参与数据交互,只提供时钟)、微控制机SPI从机接口、PCM编码器组成的一主二从的三方连接。与传统的一主多从连接方法不同的是,传统连接方法从机都只与主机交互数据,而在本方法中,两个从机都并不与主机交互数据,而只在主机提供的SPI 时序下与另外一个从机交互数据。这样就实现了,虚拟SPI主机只提供时序,而两个SPI从机遵循SPI时序相互间实现独立自主的交互数据。从另外一个角度,微控制机和PCM编码器,任何一个SPI从机都将对方视为SPI主机,都认为SPI时序是由对方提供的,而只需要在SPI时序下,完成简单的SPI从机操作即可。[0014]本实用新型的优点是将微控制的SPI接口配置成从机接口,则无需微控制器提供SPI交互操作的时序。再加上微控制器的SPI控制器都有若干字节的收发缓冲,只有在 SPI控制器接收数据到达一定的FIFO深度后,才需要微控制器参于数据的收发,因此在从机模式下,SPI收发需要的CPU运算量不到主机模式的十分之一,将极大的释放微控制器的运算量,也让使用更低的微控制器成为可能。适用于大量低端8位、16位、32位微处理器, 从而获得更灵活、廉价的语音终端设备。[0015]进一步的,微控制器使用SPI从机接口进行数据收发时不需要提供SPI时序,则为微控制器使用DMA控制器参与SPI接口的数据收发提供可能。在使用DMA控制器时,微控制器只需要每20MS参与一次PCM数据收发,相比于使用主机接口时每0. 125MS参与一次收发,SPI从机接口执行收发的频度只有原先的1/160,将最大程度释放微控制器的运算量。


[0016]
以下结合附图及实施例对本实用新型作进一步描述[0017]图1为本实用新型的使用SPI接口实现PCM信息交互的方法方框图。[0018]图2为本实用新型的实施例实际电路图。[0019]图3为本实用新型的实施例实际电路图。
具体实施方式
[0020]如图1所示,将微控制器的SPI接口也配置成从机接口,然后由外部时钟源(时钟分频器)提供SPI主机接口时钟。这样,原本微控制器SPI主机接口与PCM编码器之间点对点的主机连接,变成了虚拟SPI主机接口(不参与数据交互,只提供时钟)、微控制机SPI从机接口、PCM编码器组成的一主二从的三方连接。与传统的一主多从连接方法不同的是,传统连接方法从机都只与主机交互数据,而在本方法中,两个从机并不与主机交互数据而只与另外一个从机交互数据。这样就实现了,虚拟SPI主机只提供时序,而两个SPI从机间实现自主交互数据。从另外一个角度,微控制机和PCM编码器,任何一个SPI从机都将对方视为SPI主机,都对认SPI时序是对方提供的,而只需要在SPI时序下,完成简单的SPI从机操作即可。[0021]为进一进说明双从机模式SPI接口通讯方法的有效性,我们以USB电话方案为例作一步阐述。微控制器芯片使用NXP公司市场价低于1个美元的MCU芯片LPC11U14,PCM 编解码芯片使用华邦的W681512。LPClIUl 14内核使用C0MTEX-M0技术,运行速度可以达到 50M,具有32K片内FLASH,8K片内SRAM,集成片上PHY的USB2. 0接口,完成满足USB电话的需求。W681512是应用于语音、模拟转数字、数字转模拟的单通道CODEC,以全差动输出功能来将噪音最小化,符合ITU-T G. 711工业标准。为进一步节省成本,SPI接口需要的外部时钟源由LPC11U14自己提供,分别由定时器1提供2M的CLK时钟,由定时器0提供8K的帧同步时钟,定时器在设定完成后会自主的产生时钟,而不需要微控制器本身参与。2M的 CLK时钟分别接到LPCl 1U14的SCK1,W681512的BCLKR和BCLKT。8K的帧同步时钟分别接到 LPCl 1U14 的 SSELl ,W681512 的 FSR 和 FST。将 LPCl 1U14 的 MOSIl 与 W681512 的 PCMT 连接,将LPC11U14的MISOl与W681512的PCMR连接。这样就构成了一个完整的双从机模式的SPI接口连接。具体电路图如图2、图3所示。在软件上,将LPC11U14的SPIl接口设置为从机模式,为SPIl设置好中断处理函数,在中断处理函数中,分别对SPIl接口进行读、写操作,完成与PCM编码器的数据交互。为进一步提高效率,实际设计时,将SPIl接口配置成 DMA方式,这样,每收发160个字节的数据,相当于每20个毫秒才需要微控制器参于进行一次操作,最大程度减少了微控制器的运算量。经测试,使用双从机模式,与PCM编码器交互 64kbits/s的G. 711格式数据时,只占用整个CPU占用率的5 收、发数据无差错,完全满足设计要求。[0022]对SPI1对初始化的代码实例[0023]void sspllnit(void)[0024]{[0025]/* Set DSS data to 8-bit, Frame format Tl, CPOL = 0, CPHA = 0*/[0026]SSPICRO = 0x0017;[0027]SSPCPSR clock prescale register, master mode, minimum divisor is 0x02 氺/[0028]SSP1CPSR = 18;[0029]SSPIIMSC = 0x04; // 启动发送和接收[0030]SSP1CR1 = 0x06[0031]SSPIDMACR = 0x03;[0032]}[0033]对SPI1使用的DMA的初始化实例[0034]void gpdmalnit (void)[0035]{[0036]start2MClock();[0037]start8KFrame ();[0038]ssplInitO ;[0039]PCONP I= (1 29);[0040]GPDMA_INT_TCCLR = 0x03;[0041]GPDMA_INT_ERR_CLR = 0x03;[0042]GPDMA_C0NFIG = 0x01; /* Enable DMA channels, little endian */[0043]while (!(GPDMA_C0NFIG & 0x01));[0044]g_gpdmaSndHead = 0;[0045]g_gpdmaSndTail = 0;[0046]g_gpdmaRcvHead = 0;[0047]g_gpdmaRcvTail = 0;[0048]Il启动接收DMA[0049]GPDMA_CH1_SRC = DMA_SSP1DR;[0050]GPDMA_CH1_DEST = GPDMA_RECV_BUF_ADDR;[0051]GPDMA_CH1_LLI = 0;[0052]GPDMA_CH1_CTRL = GPDMA_BL0CK_SIZE | (0x01 12) | (0x01 15)| (1 27) I 0x80000000;[0053]GPDMA_CH1_CFG = (OxOCOOl | 0x03 1 | 0x00 6 | 0x02 11);[0054]}[0055]SPIl接口所属DMA的收、发中断实例[0056]void gpdmalsr (void) —irq[0057]{[0058]ULONG intStatus, intTcStatus, intErrorStatus, next;[0059]intStatus = GPDMA_INT_STAT;[0060]intTcStatus = GPDMA_INT_TCSTAT ;[0061]intErrorStatus = GPDMA_INT_ERR_STAT;[0062]if (intStatus & 0x01)[0063]{[0064]//DMA通道0有中断[0065]if(intErrorStatus & 0x01)[0066]{[0067]GPDMA_INT_ERR_CLR = 0x01;[0068]}[0069]if(intTcStatus & 0x01)[0070]{[0071]GPDMA_INT_TCCLR = 0x01;[0072]}[0073]}[0074]if(intStatus & 0x02)[0075]{[0076]/// DMA通道1有中断[0077]if(intErrorStatus & 0x02)[0078]{[0079]GPDMA_INT_ERR_CLR = 0x02;[0080]}[0081]if(intTcStatus & 0x02)[0082]{[0083]//g_gpdmaRcvKeep++ ;[0084]next = g_gpdmaRcvTai1 + 1;[0085]if (next >= GPDMA_RCV_BLOCK_NUM)[0086]{[0087]next = 0;[0088]ι[0089]if (next != g—gpdmaRcvHead)[0090]{[0091]Il接收BUFFER还有空[0092]g_gpdmaRcvTai1 = next ;[0093]}[0094]else[0095]{[0096]g—gpdmaRcvHead = 0;[0097]g—gpdmaRcvTail = 0;[0098]ι[0099]GPDMA_CH1_SRC = DMA_SSP1DR;[0100]GPDMA_CH1_DEST = GPDMA_RECV_BUF_ADDR+g_gpdneRcvTail*GPDMA_[0101]GPDMA_CH1_LLI = 0;〔0102〕^ |〈0x01〈〈 12〉|〈0x01〈〈
15〉 | “《27〉 | 0x80000000;
〔0103〕“在接收到数据的同时,发送数据。
〔0105〕|
〔0106〕111611186七((口(!!八尺
〔0107〕0x05,⑶0嫩―仔⑶⑶^口幻;
〔0108〕1
〔0109〕6186
〔0110〕|
〔0111〕II将发送的声音作为回声保留
〔0112〕111611101)7 口(!!八尺氺)((;口!)姑八―^(!!^)—8口?—八00尺十经―
〔0113〕(口(!!八尺氺)(^?^!^^^^^^?^^^!?+^
卯(!胍如朋盼柏⑶!)嫩力⑶⑶^口幻,
〔0114〕嫩―仔⑶⑶^口幻;
〔0115〕经—径口^^I]1&3]1^^!I6&^^++ ;
〔0116〕([卯(!爪&如朋一&己〉⑶0嫩』冊』冊!)
〔0117〕|
〔0118〕经—径口^^I]1&3]1^^!I6&^^ 二 0;
〔0119〕1
〔0120〕 1
〔0121〕II启动发送0嫩
〔0122〕6?0^0!0^0 ^&11^0^31^-8125;
〔0123〕6?0嫩^!10』23了 ^ 0^88? 101?;
〔0124〕^ 0;
〔0125〕^|〈0x01〈〈 12〉|〈0x01〈〈
15〉 | “ 《26〉 | 0x80000000;
〔0126〕^ ((^(^。(^ | 0x00〈〈 1 | 0x02〈〈 6 | 0x01〈〈 10 ;
〔0127〕^ ((^(^(^丄 | 0x03〈〈 1 | 0x00〈〈 6 | 0x02〈〈 10 ;
〔0128〕03^61^311(1 ^ ;“通知应用层任务接收数据
〔0129〕^ 0x02;
〔0130〕1
〔0131〕1
〔0132〕二 0;/氺 1^0^X10^16(1^6 1111:61^111)1氺/
〔0133〕08111^x1^0 ;
〔0134〕 1
〔0135〕 本实用新型的优点是将微控制的3?1接口配置成从机接口,则无需提供3?1交互操作的时序。再加上微控制器的SPI控制器都有若干字节的收发缓冲,只有在SPI控制器接收数据到达一定的FIFO深度后,才需要微控制器参于数据的收发,因此在从机模式下, SPI收发需要的CPU运算量不到主机模式的十分之一,再进一步,如果使用DMA控制器参与 PCM信息的收发,微控制器只需要每20MS参与一次PCM数据收发,相比于使用主机接口时每0. 125MS参与一次收发,SPI从机接口执行收发的频度只有原先的1/160,将极大的释放微控制器的运算量,也让使用更低的微控制器成为可能。适用于大量低端8位、16位、32位微处理器,让研制更灵活、廉价的语音终端设备成为可能。根据该方案研制的语音终端设备实现了灵活、廉价的要求。
权利要求1.一种语音终端设备,包括微控制器和PCM编解码器,其特征在于,还包括可以提供SPI主机接口时钟的外部时钟源,所述外部时钟源与PCM编解码器的SPI接口以及被设为从机接口的微控制器的SPI接口相连。
2.根据权利要求1所述的语音终端设备,其特征在于,所述外部时钟源是所述微控制器内置的定时器。
3.根据权利要求1或2所述的语音终端设备,其特征在于,所述微控制器为使用直接内存存取方式完成对SPI外设接口的数据收发的微控制器。
专利摘要本实用新型公开了一种语音终端设备,将微控制器的SPI接口与PCM编解码芯片的SPI接口连接,其特征在于,所述微控制器的SPI接口和PCM编解码芯片的SPI接口都为从机接口,由外部时钟源提供SPI主机接口时钟。在从机模式下,SPI收发需要的CPU运算量不到主机模式的十分之一,将极大的释放微控制器的运算量,也让使用更低的微控制器成为可能。适用于大量低端8位、16位、32位微处理器,从而获得更灵活、廉价的语音终端设备。
文档编号H04M1/00GK202334610SQ20112038997
公开日2012年7月11日 申请日期2011年10月14日 优先权日2011年10月14日
发明者李勇 申请人:苏州鼎尚信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1