嵌入式
返回首页

低功耗加密型语音硬件平台的设计与实现

2008-09-22

     

      高质量、低速率的语音编码算法在现代通讯系统中地位越来越重要,被广泛应用于诸如IP电话、语音信箱、军事无线通讯等领域。特别是在一些特殊的应用领域,信道带宽很窄而且误码率较高,要在这种信道上实现语音通讯,低速和甚低速语音压缩编码技术是关键。以前由于硬件条件的限制,此类的低速率复杂编解码算法往往只能停留在原理和计算机实现阶段。近些年来,由于VLSI技术的蓬勃发展,尤其是高性能数字信号处理芯片的DSP的普及,这些编码算法开始大规模的运用到了现实领域。本次设计就是为这套军用语音编码算法标准设计一个通用编解码平台。该平台已经做为嵌入式低功耗语音模块,应用到语音编码和语音合成等领域,并已小规模量产。
  
1.语音硬件平台的总体介绍和系统框架
  
      本语音信号处理平台需要考虑以下几个方面的设计要求。在运算量方面,本平台上运行的几种语音编码算法都具有比较高的运算复杂度,经过CCS的仿真测试结果表明,至少要求DSP芯片有50MIPS的处理能力。在接口设计方面,搭载本声码器模块的通讯平台定义了如表1所示的接口管脚,其中VIN和VOUT分别连接到通讯平台的话筒和听筒上的输入和输出话音,PTT连接到话筒的按钮上,按下PTT表示请求通话。TXD和RXD分别是发送和接收的数字语音码流信号,RTS和CD分别是发送和接收码流指示,为低电平的时候表示码流有效。TXC为系统的同步时钟。在功耗方面,由于是手持式设备,要求采用低功耗设计,以延长电池的使用时间。另外,设计系统的安全性也是一个需要考虑的因素。
   


表1 硬件平台接口信号定义
  
      基于以上几项设计要求,以及以前设计的原型系统原理[7],我们提出了一个基于TMS320VC5510A2和MSP430F149的设计方案。[1] 5510A2是德州仪器公司的55系列DSP的最高端的产品,这个系列的DSP是特别针对手持式终端设备应用场合设计的,同等条件下其内核的功耗仅为54系列DSP的三分之一,而且具有更高的代码执行效率,其指令也与54系列的相互兼容,可以很方便的进行代码的移植。5510A2的最高数字信号的处理能力为200MIPS,能够很好的满足本平台对运算的要求。[6]MSP430F149是德州仪器生产的一款极低功耗的16位RISC结构的单片机,我们用他来做为主控芯片辅助DSP完成程序加载和系统加密的功能。图1给出了该硬件平台的总体框图。
          

          
图1 语音处理平台硬件结构总框图
  
      如图所示,当PTT被按下则表示请求通话,话筒输入的模拟话音VIN通过一个放大电路放大之后输入语音CODEC芯片TLV320AIC11,TLV320AIC11内的模数转换器将其转换成16bit的线性PCM格式并通过DSP的McBSP0口传送到DSP内部接收语音缓冲区,DSP在缓冲区内的数据在积累到一定帧长之后启动编码算法编成特定码率的码流。编好的码流被送入另一发送比特流缓冲区缓冲。该缓冲区内的信号在同步时钟TXC的上升沿被送到MODEM的调制模块调制并发射出去。同时,DSP检测MODEM的CD信号,当CD信号有效(低电平)时,在同步时钟TXC的下降沿锁存RXD上的数据并送入DSP内的接收比特流缓冲区。当接收比特缓冲区内的数据积累到一定长度时,DSP启动解码程序将其解码成16bit的PCM语音。该语音通过McBSP0口被送入TLV320AIC11,TLV320AIC11内的数模转换器将其转换成模拟的语音信号送入听筒。
             

            
图2 CODEC芯片和DSP、MCU的硬件连接
  
      语音CODEC芯片和DSP、MCU的硬件连接图如图2所示,[5]TLV320AIC11是德州仪器公司生产的一款语音CODEC芯片,其片内集成了一个A/D和一个D/A模块,并且有内置的运算放大器,因此仅需要很少的部件就可以将无源话筒和听筒连接到AIC11上。同时,由于它可以和TI公司的DSP无缝连接。如图所示,本次设计中AIC11工作在主模式下(M/S=1),在这个模式下,芯片的采样率为SCLK脚输入的时钟频率的1/256。SCLK脚输入的时钟来源于MCU的P5.5,这个管脚是MCU的副时钟输出为MCU主时钟的1/4。由于MCU工作在4.096MHz,因此CODEC的采样频率为8KHz。AIC11以8KHz的频率在FS上发出同步脉冲,并在DOUT脚上将16bit的PCM数据流发送到DSP。同时从DIN管脚接收DSP发送过来的经过解码的16bit PCM语音。由于使用了AIC11,系统的使用“粘合逻辑”部件大大减小,从而有效的缩小了硬件电路板的面积。
  
2.硬件系统加密设计
  
      有效的保护知识产权是产品开发必须要考虑的因素。TI的C55x系列DSP芯片是一种开放式的总线结构,因此别有用心的人可以通过JTAG接口和相应软件访问并分析DSP内部存储区的代码和数据,或者仅仅是直接导出并复制这些信息,就可以轻易窃取产品。针对这种现实情况,最好的解决方法是将程序交由芯片的生产商掩模入芯片内部的ROM储存区内,再去除DSP芯片中的JTAG逻辑模块, DSP内部的总线与外界隔离,这样从外部就无法获得片内的信息。然而当产品的产量不大的时候,掩模ROM在成本上来说是不现实的,需要另外想办法。
  
      本次设计所提出的是一种基于TI公司MSP430F149单片机作为硬件加密部件的方法。[6]MSP430F149是TI生产的一款16位RISC结构的Flash型单片机。不仅功耗极低,其另外一个特点就是其内部的熔断型Flash储存单元。当开发过程结束,程序写入MSP430内部的Flash之后,开发者可以将Flash连接在MSP430总线上的融丝融断,熔断之后如果想访问其内部的程序和数据,必须在单片机的JTAG引脚上加上一定时序的信号,进入单片机内部的一段BOOTSTRAP程序,该BOOTSTRAP程序要求用户向一个密码寄存器内写入一个32个字节的密码,如果该密码和事先写入Flash特定位置的一个密码相符,才能访问片内的程序和数据资源,否则只能允许进行擦除整个Flash的操作。通过这种机理达到保护用户程序数据代码的目的。
  
      鉴于MSP430F149的内部数据无法复制和访问的特点,我们提出了一种基于MSP430F149的硬件加密方法。
              

            
图3 DSP和MSP430的硬件连接示意图
  
      图3是MSP430和DSP之间的硬件连接示意图[3]。如图所示,这种连接方式将DSP和MCU配置成了16位复用连接模式(HMODE=0),数据和地址共享HD总线。HRW、HCNTL0和HCNTL1的不同组合分别表示对DSP的EHPI口的三个寄存器HPID(数据)、HPIA(地址)、HPIC(控制)读写,具体的组合方式如表2所示。
             

              
表2 复用模式下EHPI口读写类型指示

具体加密方式简述如下:
  
1)为每一块电路板指定一个128位的密钥,密钥的选择完全随机,只要不同板子不相同即可。将密钥和加密算法(DES或是其他的加密算法)烧写入MSP430的内部做为DSP boot程序的一部分。
  
2)使用该密钥和加密算法,将加密后的语音编解码算法的程序和数据烧写入DSP的外部存储Flash芯片之中。
  
3)将DSP设置成工作于HPI口boot模式,在每次重启之后,主机将一段BOOT程序装入起始位置为0x10000程序空间里(该段BOOT程序中包含了解码程序),并将128位的密钥load到DSP内部的某个特定位置。主机将DSP的RST引脚置高表示主机的load过程结束。DSP自动从0x10000的位置开始执行程序,这段程序从Flash中读入加密了的程序和数据,并使用主机写入的解密程序并结合128位的密钥进行解密,解密后的程序和数据被装载入DSP的程序和数据段内开始正常的运行。

进入嵌入式查看更多内容>>
相关视频
  • PX4固件二次开发课程

  • RISC-V嵌入式系统开发

  • NuttX Workshop 2024

  • 自己动手写操作系统

  • SOC系统级芯片设计实验

  • 自己动手做一台计算机

精选电路图
  • 用数字电路CD4069制作的万能遥控轻触开关

  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • RS-485基础知识:处理空闲总线条件的两种常见方法

  • 如何调制IC555振荡器

    相关电子头条文章