Loading
新闻中心库存中心价格中心PDF中心图片中心
ICGLE 电子技术支持中心,为电气人员和相关企业提供全面的信息(IC技术\IC库存\IC图片\PDF资料等)服务
总线设计PCB设计单片机DSPARM
JAVA驱动设计C/C++汇编J2EE网络协议中间件技术嵌入式系统无线通信通信网络模拟技术接口电路显示光电传感与控制EDA/PLD
气流体控制电子产品电机及工具通信设备仪器仪表电线电缆建筑电气低压电器高压电器电源工控自动化广电设备医疗器械More..
电源设计仪器仪表技术专递电路图片电子专栏储存技术汽车电子测量测试音响技术家用电器
成功方案市场分析行业标准应用前沿芯片应用综合专区
用SPI实现dsPlC与ISD语音芯片的通信
来源:嵌入式技术网   作者:刘永亮 仇三山
字体大小:[大][中][小]

  摘要  介绍dsPIc数字信号控制器以厦ISD4002语音芯片的功能特点;特别介绍dsPIC的SPl库函数的功能及使用,并给出一种简单的语音录放电路。具有低成本、易使用等特点,有较高的实用价值。

  关键词 dsPIC dsPlC30F6014 ISD4002 语音芯片

  在很多应用场合中,需要用到语音录放功能,如复读机、电话自动应答装置等。本文介绍一种简单实用的dsPIc数字信号控制器,用来完成语音录放功能。由于dsPIC强大的数字信号处理功能,可以提供后续的复杂处理等,具有良好的易扩展性。

  1 dsPlC系列的简单介绍

  dsPIC系列是Microchip公司推出的新型16位高性能数字信号控制器。它结合了单片机的控制优点及数字信号处理器(DSP)的高速运算特性,为嵌入式系统提供了单一芯片解决方案。它继承了PlC单片机系列的哈佛总线结构和精简指令集(RISC)技术,以及寻址方式简单、运行速度快、功耗低、驱动能力强等优点,同时集成了主板级的DSP功能,能够提供强大的数字信号处理能力;此外,还提供了如UART、CAN、SPI等丰富的外围接口,可以方便地与其他设备进行通信互联。本文介绍使用dsPIC数字信号控制器的SPI接口与ISD语音芯片进行通信控制,使用的芯片型号为dsPIc30F6014。

  2 ISD系列语音录放芯片

  ISD系列语音芯片是美国ISD公司推出的产品。该系列芯片采用多电平直接模拟存储(Chip Corder)专利技术,声音不需要A/D转换和压缩,每个采样直接存储在片内的闪烁存储器中,避免了A/D转换的误差;能够真实、自然地还原语音、音乐及效果声;避免了一般固体录音电路量化和压缩造成的量化噪声和金属声。ISD4000系列采用CM0s技术,内含晶体振荡器、防混叠滤波器、平滑滤波器、自动静噪、音频功率放大器及高密度多电平闪烁存储阵列等,只需要很少的外围器件即可构成一个完整的语音录放系统。它的操作命令通过串行通信接口(SPI)或Microwire送入;采样频率可为4.O Hz、5.3 Hz、6.4 Hz、8.O Hz,频率越低,录放时间越长,但音质会有所下降;片内信息存于闪烁存储器中,可在断电情况下保存100年(典型值),反复录音10万次;器件工作电压3 v,工作电流25~30 mA,音质好,适用于移动电话及其他便携式电子产品。本设计使用的芯片型号为ISD4002,单片录放时间为120 s。

  3 SPI接口介绍

  SPI是由美国摩托罗拉公司推出的一种同步串行传输规范,常作为单片机外设芯片串行扩展接口。SPI有4个引脚:SS(从器件选择线)、SDO(串行数据输出线)、SDI(串行数据输入线)和SCK(同步串行时钟线)。SPI可以用全双工通信方式同时发送和接收8(16)位数据,过程如下:主机启动发送过程,送出时钟脉冲信号,主移位寄存器的数据通过SDO移入到从移位寄存器,同时从移位寄存器中的数据通过SDI移人到主移位寄存器中。8(16)个时钟脉冲过后,时钟停顿,主移位寄存器中的8(16)位数据全部移人到从移位寄存器中,随即又被自动装入从接收缓冲器中,从机接收缓冲器满标志位(BF)和中断标志位(SSPIF)置“1”。同理,从移位寄存器中的8位数据全部移入到主寄存器中,随即又被自动装入到主接收缓冲器中.主接收缓冲器满标志位(BF)和中断标志位(SSPIF)置“1”。主CPU检测到主接收缓冲器的满标志位或者中断标志位置1后,就可以读取接收缓冲器中的数据。同样,从CPU检测到从接收缓冲器满标志位或中断标志位置1后,就可以读取接收缓冲器中的数据,这样就完成了一次相互通信过程。这里设置dsPIC30F6014为主控制器,ISD4002为从器件,通过SPI口完成通信控制的过程。

  4 dsPIC的SPI函数库

  dsPIC30F6014提供了2个SPI接口模块,每个接口模块包括三个特殊功能寄存器和四个引脚。SPIxBUF是数据缓冲寄存器。需要注意的是,接收缓冲SPIxRBF和发送缓冲SPIxTBF共享同一个地址,即它们都是地址映射到SPIxBUF的。也就是说,当对接收或发送缓冲寄存器操作时,都只能对SPIxBUF进行操作,而不能直接对SPIxRBF或SPIxTBF进行操作。SPIxCON是控制寄存器,用来对sPI模块的操作模式等进行配置;SPIxSTAT是状态寄存器,用来标示SPI模块所处的状态。其模块框图如图1所示。

  通过对控制寄存器的配置,可以将SPI模块设置为8位或16位模式、主模式或从模式、帧同步等多种操作模式,还可以对时钟边沿、时钟分频倍数等进行配置。这里使用了以dsPIC为主,ISD为从的主从模式。Microchip提供的外围接口库可以方便地完成这些配置工作。

  dsPIC Language Tools Libraries是MictoChip公司提供给开发者的一套工具库,其中主要含3个子库.DSP库,提供常用的DSP函数;外围接口库,提供对dsPIC系列所有外围接口的驱动函数,包括SPI接口;标准C及数学函数库,可在Microchip的官方网站下载(www.microchip. com)。我们使用其中的外围接口库中的SPI库函数即可。SPI库中主要包括以下几个函数:

  ①configIntSPIx SPI中断配置函数。该函数可以对sPI接口的中断使能位以及中断优先级进行配置,返回值为空。
  ②CloseSPlx关闭SPI接口。
  ③DataRdySPlx SPl接口数据就绪。该函数用来判断SPI接收缓冲区中是否有数据等待读出。若返回值为1,表示缓冲区中数据已经就绪,等待读出;若返回值为0,则标示缓冲区为空。
  ④ReadSPIx读SPI接口缓冲区。
  ⑤WriteSPIx向SPI接口发送缓冲区写数据。
  ⑥OpenSPIx打开SPI接口。该函数包含2个参数:configl和config2。configl中包含对SPI接口操作模式的配置信息,将写入控制寄存器;config2中包含SPI的状态信息,将写入状态寄存器。该函数在打开SPI接口的同时完成对其的配置。
  ⑦puasSPIx函数将一个字符串数据写入到发送缓冲区中。
  ⑧getsSPIx函数将从接收缓冲区读人指定长度的字符串数据,并转存到指定的空间。

  除了这8个函数以外,该库还提供了相应的宏指令完成同样的功能,可以在程序中方便地使用。

  5 lSD4002

  ISD4002工作于SPI串行接口。SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作。对ISD4002而言,在时钟上升沿锁存MOSI引脚数据.存下降沿将数据送至MISO引脚.协议具体内容如下:

  ①所有串行数据传输开始于SS下降沿;
  ②SS在传输期间必须保持为低电平,在两条指令之间保持为高电平;
  ③数据在时钟上升沿移入,在下降沿移出;
  ④SS变低,输入指令和地址之后,ISD才会开始录放动作;
  ⑤指令格式是10位地址码加6位控制码;
  ⑥ISD的任何操作(含快进)如果遇到EOM或OVF则产生一个中断,该中断状态在下一个SPI周期开始时被清除;
  ⑦使用读指令会使中断状态为移出ISD的MISO引脚时,控制及地址数据也同步从MOSI移入;
  ⑧所有操作在运行位(RUN)置1时开始,置0时结束;
  ⑨所有指令都在SS上升沿开始执行。

  其时序如图2所示。

  对于ISD4002,器件延时TPUD(8kHz采样时,约为25 ms)后才能开始操作;因此,用户发完上电指令后,必须等待TPUD.才能发出一条操作指令。下面是典型的操作。

  从00处发音,应遵循如下时序:
  发POWERUP命令;
  等待TPUD(上电延时);
  发地址值为00的SFTPLAY命令;
  发PLAY命令。
  器件会从00地址开始放音,当出现EOM时,立即中断,停止放音。
  如果从00处录音,则按以下时序;
  发POWER UP命令;
  等待TPUD(上电延时);
  发POWER UP命令
  等待2倍TPUD;
  发地址值为00的SETREC命令;
  发REC命令。
  器件便从00地址开始录音,一直到出现OVF(存储器末尾)时,录音停止。其工作时序如图3所示。

  6 电路设计

  本电路采用dsPICC30F6014数字信号控制器,通过3个按键开关控制ISD4002录放音芯片的动作。S1、S2、S3分别接到控制器外部中断INTl、INT2、INT3上。当按下S1时,开始录音,再次按下S1时停止录音。如此反复即可实现多段录音。同理,按下S2时开始放音,再次按下S2是停止放音。如此反复顺序播放多段录音。按下S3关机。

  (1)硬件电路设计

  电路原理如图4所示。整个电路由语音录放电路、话筒输入电路、按键开关电路及LCD显示电路构成。由于本设计输出直接驱动普通耳机,经实验不需外部功放电路,直接利用ISD4002内部功放输出即可。ISD4002作为从机,其SPI接口的MOSI接控制器的SDO;MISO接控制器的SDI;SCLK接SCK;SS接控制器的SS即可。LCD用于人机交互的界面显示。

  (2)软件设计

  程序包括主程序以及几个子程序。主程序中,在完成初始化的工作之后,进入一个while循环,等待响应按键触发的中断,若有按键按下,则进入相应的中断服务程序。在按键S1的中断服务程序中,设置一个标志变量,Sl每按下一次,标志变量取反,用来控制录音及停止录音。同理,S2的中断服务程序中也设置一个标志变量,控制开始放音及停止放音。S3的中断服务程序中则发送Power-Down指令关机。程序清单中给出了主程序以及中断服务程序,另外包括LCD驱动程序以及dsPIC的SPI函数库等。

  7 总 结

  该电路易于实现,功能简单实用,可扩展性较好;输出声音清晰、自然。如要增加录音时间,可选用ISD4000系列的其他芯片,程序基本相同。另外,在设计过程中有以下几点事项需要注意:

  ①在SPI的数据传输中,不同芯片所定义的传输顺序可能不同,因此要注意是先传高位还是先传低位。ISD4002要求先传高位数据,如果与主芯片所定义的顺序相反,则只要把指令码反过来传即可。
  ②由于ISD4002要求在时钟前半个周期把数据放在传输线上,因此,在使用dsPIC的SPI函数库时需要注意SPI初始化。在本设计中,使用的配置为SPl—CKE—ON&CLK_P0L_ACTIVE_HIGH。

  以上两点可能会帮助解决一些常见问题。

Upload by 小刘(2007-10-26)
IC
·嵌入式系统中闪存设备I/O软件的设计..
·非标准化传感器信号调理的一种新方法
·一种高精度光纤Bragg光栅传感器解..
·基于DSP的线阵CCD实时测量系统设..
·使用单片机实现GPRS通信小系统的研..
·高速印制电路板的设计及布线要点
·RTP协议的IP电话QoS监测及提高..
·高精度的步进电机控制系统设计
·CY7C68013与FPGA接口的V..
·基于MiniGUI的机车显示终端图形..
·基于WiMAX网络的切换管理研究
·面向FTTH的EPON系统应用与管理
·浅析电气火灾自动保护型断路器的使用
·构建基于RTLinux的嵌入式系统研..
·基于MiniGUI的机车显示终端图形..
·突破新兴高效能电源要求上的限制(图)
·数字电源的特点与发展现状
·2007年及以后的电源驱动系统集成(..
·光电转换电源控制系统的设计(图)
·三相、三输出控制器节省了POL转换器..
·一种用于航天工程的二次电源系统设计(..
·基于AVR单片机PWM功能的数控恒流..
·基于片上状态机的智能电源管理单元设计..
·天线方向图自动测试系统的设计
·基于GPRS的自动抄表系统设计
·基于IEEE1451标准的IP传感器..
·基于FPGA的分布式算法FIR滤波器..
·基于单片机的舵机控制
·针对高速PCB设计问题定义一体化的设..
·基于VxWorks的TrueFFS文..
·基于Nios II的JPEG图像显示..
·用SoC实现视频图形引擎功能
·信产部副部长苟仲文强调政府大力支持I..
·基于ARM9的嵌入式网关的研究
·基于TMS320F2812和μC/O..
·ADC时延和建立时间的区别
·利用Astro-Rail分析FFT芯..
·数据融合在舰炮系统低角跟踪中的应用
·低速率无线传感器网络演示系统的设计与..
·ARM多核和MIPS多执行绪嵌入式处..
IC
推荐技术文章:
·从ARM看企业的自我定位..
·浅谈ARM仿真器中的断点资源..
·基于ARM处理器的MVB 2类设备研....
·基于TMS320F28XX UCD8....
·基于TMS320LF2407的馈线终....
·基于DSP的Max-Log-MAP算....
·采用集成DSP与微处理器内核的嵌入式....
·基于DSP的平流层验证飞艇组合导肮系....
·高速DSP与PC实现串口通信的方法..
·基于DSP和CPLD的智能相机系统设....
·基于DSP的同步相量测量装置的研究..
·FPGA-DSP 瞄准目标:用得起的....
·基于DSP的高速实时语音识别系统的设....
·基于89C51单片机的数字视频监控系....
·基于C8051F041的电力变压器非....
·用单片机和EDA协同设计温度采集系统..
·服装生产自动熨烫系统设计..
·AT89C52单片机的液位检测系统..
·基于MSP430的卫星通信车载站手持....
·单片机+CPLD结构体系在电子设计中....
·热电阻在烟叶初烤炕房温度控制中的应用
·AT89C52单片机在捻度测量中的应..
·8位机嵌入式TCP通信速度的研究
·体温数据采集装置的设计
·基于PIC单片机控制的RLC智能测量..
·单片机控制步进电机驱动器工作原理
·非标准化传感器信号调理的一种新方法
·利用高速FPGA设计PCB的要点及相..
·基于ISA总线的高速同步数据采集系统..
·嵌入式系统中可配置式GPIO模拟SP..
·用FPGA设计MP3个人数字播放机
·利用FPGA和USB总线的视频图像的..
·CAN现场总线的时间信息共享技术
·用MAXQ3210构建1-Wire温..
·小型水电站的设备防雷设计
·基于CAN 总线的电动汽车电源管理通..
·基于车载GPS的嵌入式汉显终端的设计
·无线传感器网络节点的硬件设计
·BMW轿车音响I2C总线控制多路音源..
·基于FPGA PCI的并行计算平台实..
IC
IC

©2007 版权归ICGLE所有   页面执行时间:62.500毫秒