欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>单片机与DSP结合的dsPIC芯片

单片机与DSP结合的dsPIC芯片

2023-05-14 08:53:09 收藏本文 下载本文

“LaLaLa”通过精心收集,向本站投稿了6篇单片机与DSP结合的dsPIC芯片,以下是小编帮大家整理后的单片机与DSP结合的dsPIC芯片,仅供参考,欢迎大家阅读。

单片机与DSP结合的dsPIC芯片

篇1:单片机与DSP结合的dsPIC芯片

单片机与DSP结合的dsPIC芯片

摘要:介绍一款结合16位单片机控制特点和DSP高速运算优点的新型芯片――dsPIC,对比分析它与PIC16F87X系列单片机之间结构功能的差异。

关键词:单片机 PIC DSP dsPIC

微电子技术大规模甚至超大规模集成电路技术的发展日新月异,计算机芯片技术获得了高速发展。构成这样单片机,亦是不断更新换代,朝着高速化、通用化、不断专用化和提高性价比以及模拟/数字混成等方向发展。

熟悉单片机的用户,对于PIC已不再陌生了。由美国Microchip公司推出的PIC系列单片机产品,采用了RISC结构,不但解决了传统冯・诺依曼结构单片机的“瓶颈”问题,并以高速度、低电压、低功耗、大电流驱动能力和低价位OTP及Flash技术等特点,使其从众多同类单片机产品中脱颖而出,成为世界上8位微控制器中最有影响力的主流嵌入式控制器之一。

PIC系列单片机在市场逐渐站稳脚跟之后,Microchip公司又推出了性价比介于16位单片机、32位单片机及DSP中低档机之间的dsPIC芯片。

1 dsPIC的产生

目前,在自动检测、控制等领域正掀起应用DSP的热潮。DSP(Digital Signal Processor)即数字信号处理器,是在数字信号处理的各种理论和算法的基础上发展起来的,用于完成各种实时数字信息的处理。20世纪80年代初,随着微电子技术的展,DSP就应运而生了。DSP器件的出现,使得各种数字信号处理的算法得到了实现。DSP器件不但使数字信号处理得到了实际应用,而且还拓宽到了系统控制领域,从而诞生了一大批新型的电子产品。DSP技术的迅速普及,也为今天的信息高速公路建设奠定了基础。

DSP器件的数字信号处理大致有如下特点:①可程控,可以只设计一个硬件配置,然后设计各种软件来执行多样的信号处理任务;②稳定性好,没有时漂、温漂;③可重复性好,无论多少台计算机去计算同一序列的和,都会提供一模一样的结果;④易于实现自适应算法;⑤基于大规模的集成电路。

这样就不难看出,单片机和DSP各有特点。前者控制功能强,后者数字信号处理能力强,因而,将高性能16位单片机加上DSP功能,就产生了dsPIC芯片。DsPIC是一种将单片机的特征同数字信号处理器(DSP)的能力结构在一起的器件。它在异步事件处理能力、精密仿真、常见的开发环境以及外围部件等方面都表现出DSP强大的性能。

为了缩小单片机同DSP之间的性能差异,使客户能方便地将单片机的功能转移到DSP上,Microchip公司推出了dsPIC。目前推出的产品主要有dsPIC30FXXX系列。考虑到DSP和单片的内部区别,dsPIC器件将高性能16位单片机的控制特点和DSP高速运算的优点相结合,为嵌入式系统设计提供了适合的,单芯片、单指令流的解决方案。它消除了目前类似设计中所需求的额外组成部分,从而减小了印制板空间,也降低了系统成本dsPIC30FXXX高性能单片要同系列可以应用于非常广阔的范围,包括马达控制、因特网接入器件、汽车产品、功能电路、数字应答机、低速软件调制解调器、线卡、POS终端、自动售货机、生物测定安全装置、不间断电源、电源管理和自然语音输入/输出等等。

由于dsPIC兼容了单片机和DSP芯片这两类产品的优点,因此它具有下列特点:

*丰富的外围部件;

*完整的DSP引擎;

*改进的中断能力;

*Flash存储器,灵活的重编程能力;

*强大的开发环境;

*引脚数少;

*使用优化的高级语言;

*方便PIC系列单片机用户移植现有的代码;

*熟悉的类似单片机的用户开发平台。

此外,dsPIC还可以支持4M×24位的可寻址Flash程序存储体,以及32K×16位的数据存储空间。相对于其它许多单片机的5V供电及DSP的3.3V供电,dsPIC的供电电压是2.5~5.5V。

图1 dsPIC芯片内部结构图

2 dsPIC30F与PIC16F87X的比较

dsPIC30F芯片采用16位(数据)改进型――非流水线的哈佛RISC结构,芯片具体结构如图1所示。程序计数器(PC)为24位宽,可以寻址4M×24位的程序存储器空间。而PIC16F87X系列单片机采用的是8位流水线哈佛结构,有一个13位宽的程序计数器PC,最大只可寻址8K的程序存储器空间。

DsPIC30F有16个16位的工作寄存器(W0~W15)。每个工作寄存器都可以作为数据、寻址或移位寄存器来操作。其中,第16个工作寄存器(即W15)作为中断和程序调用的堆栈指针。PIC16F87X系列同其它种类的PIC机一样,只含有一个用于ALU的8位W工作寄存器,相当于一般单片机的A累加器,是不可寻址的。

dsPIC30F指令字是24位的,其指令系统有很大的增强,最大特点就是包含了对DSP的支持。因

为这种DSP引擎具有1个高速的16位与16位相乘的乘法器、1个40位的ALU、2个40位的饱和累加器(saturating accumulator)以及1个40位的双向移位器,因而能够明显提高芯片算法能力和周期。由此,这种芯片的指令系统就分成两大类――单片机类和DSP类。这种指令系统基于高效的C编译器,支持固有寻址(无操作数)、相对寻址、立刻寻址、存储器寻址、寄存器直接寻址、间接寻址和移动寻址7种方式。每条指令都同预先定义的寻址方式有关,而这些预定义的寻址方式是由特定功能需求决定的,且每条指令都支持这7种寻址方式。对于大多数指令,dsPIC30F芯片在每个指令周期能够执行数据(或程序数据)存储器读操作、工作寄存器(数据)读操作、数据存储器写操作以及程序(指令)存储器读操作。因此,它可以支持3操作数的`指令,比如,在一个周期内可以完成A+B=C的操作。而PIC16F87X系列单片机每条指令长14位(其它系列指令字长也12位或16位的),整个指令系统共分成三类――字节操作类、位操作类以及立刻数操作和控制操作类,支持立即数寻址、寄存器间接寻址、直接寻址和位寻址四种寻址方式,但由于这样寻址种类的划分依据是操作数的来源,因此并非每条指令都可以支持这四种寻址方式,例如,位操作类的指令就只能采用位寻址方式。对PIC16F87X系列单片机,其指令的操作个数最多只能是两个,另外,再加上这种系列单片机不提供对DSP的支持,那么在数字信号处理速度方面,同dsPIC30F相比显然要慢很多。

dsPIC30F芯片的数据空间被一分为二,分别以X和Y数据存储器进行引用,可以作为32K字(word)或64KB(byte)进行寻址。每个存储器块都有自己独立的地址产生单元(AGU)。单片机类的指令仅单独通过X存储器的AGU单元进行操作,把整个存储器作为一个线性的数据空间进行寻址。而DSP类指令的乘法累加器(MAC)是通过X和Y的AGU共同操作的,这样就将数据地址空间分成相对独立的两部分。不过,这样的X和Y的数据空间边界是任意的,且是由芯片自身特性决定的。数据空间存储器高位的32KB,通过定义8位程序空间可见页面寄存器PSVPAG(Program Space Visibility Page),任意的16位程序字边界中随意地被映射到的程序空间低位(用户空间),这样就使得任何指令能够像访问数据空间一样访问程序空间。不过,采用这种方式访问的执行时间比一般的访问方式要多一个周期。而且,只有每条指令字的低16位才可以使用这种方法访问。PIC16F87X系列单片机的数据存储器分成多个存储区。每个存储区由通用寄存器和专用寄存器两部分组成。存储区之间的选择是通过定义状态寄存器STATUS的RP0和RP1位进行的,每个存储体最多只能达到128字节。

dsPIC芯片不支持多级指令流水线,而采用单级指令预取机制,就是在可利用的最大执行时间前的一个周期访问指令。因此,dsPIC芯片大多数指令是单周期的。此外,dsPIC30F芯片还有一个特征,就是含有由61个区分优先级的向量组成的矢量异常处理结构,这些异常情况包括复位(RESET)、6个捕捉以及54个中断。

结语

dsPIC器件的开发有助于缓解16位单片机和低端数字信号处理器(DSP之间的性能差,是传统16位单片机应用的理想解决方案。与此同时,随着控制技术日趋复杂化,越来越多的工业系统要使用DSP精确控制实时响应,以及现有产品要求增加更多功能,以增强I/O易用性和安全接入,dsPIC必将在高性能数字信号控制器市场占据重要一席之地。同时,随着多种dsPIC产品系列的不断迅速开发,以及愈加完善的开发工具、应用系统库、现场应用工程技术和综合技术等的产品,dsPIC一定会得到广大用户的青睐。

篇2:单片机与DSP实验教学比对

单片机与DSP实验教学比对

在单片机和DSP实验教学中,有不少学生对单片机容易上手和理解,但就DSP来说就比较困难.本文从存储器结构等几个方而比对了MCS-51系列单片机和C54XDSP的异同,能够达到辅助教学的作用.

作 者:方淼荣 Fang Miaorong  作者单位:湖南师范大学物理与信息科学学院 刊 名:电子技术 英文刊名:ELECTRONIC TECHNOLOGY 年,卷(期): 36(12) 分类号:G71 关键词:单片机   数字信号处理器   程序存储器   数据存储器  

篇3:TMS320VC5402 DSP与ISD4004语音录放芯片

TMS320VC5402 DSP与ISD4004语音录放芯片

摘要:根据语音录放芯片ISD4004的接口特点,设计了其与TMS320VC5402 DSP的SPI接口电路。完成了DSP对ISD芯片的通讯与接口控制编程,并给出了实际应用中的一种ISD4004信息管理方法:信息地址表(MAT)。

关键词:DSP 语音录放芯片 ISD4004 SPI接口 MAT

许多类型的语音录放应用要求具备信息管理的功能,即能够随着地录、放、删除任意一段信息。而许多语音录放系统并不能很好地满足这种要求,如磁带录音系统。ISD4004语音录放芯片提供了SPI微控制器接口,使得语音录放的信息管理成为可能。本文将详细阐述TMS320VC5402 DSP与ISD4004的SPI接口设计及其控制操作,同时设计适合应用的信息管理方法。

ISD4004语音录放芯片工作电压为3V,单片录放时间为8~16分钟。芯片设计使得所有操作必须由微控制器控制,操作命令可通过串行通信接口SPI送入。芯片采用多电平直接模拟量存储技术,每个采样值直接存储在片内内烁存储器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声。采样频率可为4.0k、5.3k、6.4k、8.0kHz,频率越低,录放时间越长,但音质有所下降。

TMS320VC5402是美国TI(德州仪器)公司推出的一款高性能的定点DSP,最高频率为100MHz,内部提供16K的存储空间。它提供的多信道缓冲串口(McBSP)可以设置为SPI工作方式,从而使得DSP与ISD4004的接口设计成为可能。

(本网网收集整理)

1 接口设计

DSP作为SPI(串行外设接口)的主器件(Master),负责为ISD4004提供串行时钟、片选信号以及控制ISD4004的动作信号。接口电路如图1所示。

1.1 SPI

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

(1)所有串行数据传输开始于SS下降沿。

(2)SS在数据传输期间必须保持低电平,在两条指令之间则保持高电平。

(3)数据在时钟上升沿移入,在下降沿移出。

(4)SS变低时,输入指令和地址后,ISD才能开始录放操作。

(5)指令格式是8位控制码加16位地址码。

(6)ISD的任何操作(含快进)如果遇到EOM(信息结束标志)或OVF(溢出),则产生一个中断,该中断状态在下一个SPI周期开始时被清除。

(7)使用“读”指令使中断状态位移出ISD的MISO引脚时,控制及地址数据也应同步从MOSI端移入。因此要注意移入的数据是否与器件当前进行的.操作兼容。

(8)所有操作在运行位(RUN)置“1”时开始,置“0”时结束。

(9)所有指令都在SS上升沿开始执行。

1.2 ISD4004与DSP的SPI时序配合

根据ISD4004的时序要求,DSP设置串口为SPI工作模式,发送数据先于串行时钟半个周期建立、数据在时钟上升沿发送。由图2可知,ISD接收命令字的方式是先地址后命令,且位序从低到高;而DSP发送数据方式是先高位后低位,故在DSP发送程序中须将待送地址和命令进行高低位对调。

图2 ISD控制命令字时序图

串行时钟(SCLK)由DSP主时钟产生。在DSP运行于10MHz时,设置时钟分频因子为255,得到约40kHz的串行传输时钟,适应ISD4004相对慢速的要求。DSP串口SPI方式数据传输时序如图3所示。

ISD4004的RAC管脚(行地址时钟)用于指示录放操作已经接近一行的末发展。RAC在行末前25ms变低,在到达行末时变高,DSP将它作为中断INT3的中断源,指示录放操作进行到何处;INT管脚在遇到EOM标志和OVF溢出时向DSP发中断,DSP将它作中断INT2的中断源,用来指示是否到达一段信息的末尾。按下NUM键触发INT1中断开始录音,按下STOP键触发INT0中断终止录音。放音时按下NUM即开始,遇以语句EOM时自动停止放音。

1.3 接口软件设计

DSP对ISD的控制是通过SPI接口实现的,因此DSP的McBSP必须设置为符合ISD控制命令时序要求的SPI工作模式。下程序段完成了McBSP的SPI模式设置(单帧数据为24bit,串行时钟上升沿发送数据,时钟频率为40kHz):

stm SPCR1,McBSP1_SPSA

stm #0000h,McBSP1_SPSD ;Reset接收

stm SPCR2,McBSP1_SPSA

stm #0000h,McBSP1_SPSD ;Reset发送

stm SPCR1,McBSP1_SPSA

stm #1800h,McBSP1_SPSD ;CLKSTP=11,数据提前半个周期

stm RCR1,McBSP1_SPSA

stm #0080h,McBSP1_SPSD ;RWDLEN1=100,每帧数据24bit

stm RCR2,McBSP1_SPSA

stm #0001h,McBSP1_SPSD ;RDATDLY=01

stm XCR1,McBSP1_SPSA

stm #0080h,McBSP1_SPSD ;XWDLEN1=100,发送数据每帧24bit

stm XCR2,McBSP1_SPSA

stm #0001h,McBSP1_SPSD

stm SRGR1,McBSP1_SPSA

stm #00ffh,McBSP1_SPSD ;CLKGDV=0xFF,SPI的时钟=DSP时钟/256

stm SRGR2,McBSP1_SPSA

stm #h,McBSP1_SPSD

stm PCR,McBSP1_SPSA

stm #0a08h,McBSP1_SPSD ;CLKXP=0,CLKXM=1,FSXM=1,FSXP=1

stm SPCR2,McBSP1_SPSA

stm #0040h,McBSP1_SPSD ;GRST=1

nop

nop ;等待两个周期

stm SPCR1,McBSP1_SPSA

stm #1801h,McBSP1_SPSD ;设定RRST=1,开始接收数据

stm SPCR2,McBSP1_SPSA

stm #0041h,McBSP1_SPSD ;设定XRST=1,开始发送数据

DSP中断服务程序、命令字发送程序以及信息管理程序在此不多述。

2 信息管理

在采用本模块的拟人机器人语言交互系统中,若干条语音按顺序分别被录入到芯片,并将期编程为1、2、3等。DSP可以通过SPI接口获得每次录音结束时的ISD内部信息指针,据此构建一个信息地址表(MAT),并将此表存入Flash Memory中,作为以后录放、删除操作时信息管理的依据。

ISD4004内部存储器分为2400行,每行1600列。对器件寻址即选择一行,从行首开始录放,而每行中的列不可寻址。对于8kHz采样率的ISD4004,采样间隔为125μs。器件地址分辨率可按如下计算:

(1/Fs)×1600=200ms

2.1 MAT

由于ISD4004内部可寻址多达2400行,而每行固定存储200ms语音,为了可录放、删除任意长度的语音,有必要建立MAT。MAT跟踪每一条语音的开始地址以及每一个信息碎块的开始结束地址。ISD4004共2400行,实际只需要12位地址即可完成寻址。为节省MAT存储空间,将地址最高位bit15作为语音起始点标志。建立MAT的规则如下:

(1)MAT表项值全为0(0000 0000 0000 0000):表示对应行未存储任何语音;

(2)MAT表项值的bit15为1(1XXX XXXX XXXX XXXX),表示对应的是某句语音的起始行;

(3)MAT表项值的bit15为0,其余各位是有效地址(0XXX XXXX XXXX XXXX),表示对应的行是某句语音的一行,但不是起始行;

(4)ISD的第一行总是某句语音的起始行。

同一句语音的地址在MAT中总是连续存储的。由若干行组成的句语音,它的各行地址总是从小到大,但不一定两两相连。以行地址为表项的MAT,所要求的存储空间是较大的。本例中为2400行语句,则要求MAT具有2400个表项。为了减小MAT大小,也可对语音进行分块。若8以位为一个语音块,则MAT大小减小为300个表项。经过几次录音和删除手,建立的MAT如表1所示。

表1 MAT实例

MATbit15实际行地址句1000 0000 0000 000010000 0000 0000 000010000 0000 0000 000100000 0000 0000 00010000 0000 0000 000200000 0000 0000 00021000 0000 0000 000310000 0000 0000 000320000 0000 0000 000500000 0000 0000 00050000 0000 0000 000600000 0000 0000 00061000 0000 0000 000410000 0000 0000 000440000 0000 0000 000700000 0000 0000 00070000 0000 0000 000800000 0000 0000 0008

2.2 信息管理操作

放音时,DSP从MAT表头开始搜索bit15为1的表项。要播放第几条语句,则寻找第几个bit15为1的表项。由于RAC的周期和器件的行相同,且其低脉冲时间长达25ms,在播放当前行语音的同时,RAC触发DSP的INT3中断。INT3中断服务程序验证下一行bit15是否为1,若不为1则将该行地址送入ISD,则输入的地址不会立刻生效,而是在缓冲器中等待当前结束;若为1则指示下一行为新语句开始地址,DSP不送任何指令。放音遇到EOM或者OVF时产生INT中断,停止放音。

录音时,按NUM键启动录音操作,DSP首先找出MAT中的个全0行,发录音指令;在录制当前行的同时,DSP等待RAC信号触发INT3中断,中断服务程序继续寻找全0行、发带该行地址的录音指令,直到按STOP键触发INT0中断发录音停止命令为止。删除语音可通过将相应语音行全置零来完成。

本文详细阐述了TMS320VC5402 DSP与ISD4004语音录放芯片的SPI接口设计、ISD4004的语音信息管理以及DSP与ISD4004之间的通讯与控制程序算法的设计。该模块作为拟人机器人语音互系统的语音应答模块,可以对机器人识别的命令语音进行相应的实时应答。

篇4:DSP与单片机的一种高速通信实现方案

DSP与单片机的一种高速通信实现方案

摘 要:介绍了一种利用双口RAM实现DSP与单片机高速数据通信的方法,给出了它们之间的接口电路以及软件实现方案。

关键词:DSP;双口RAM;接口电路;数据通信

1 引言

数字信号处理器(DSP)是一种适合于实现各种数字信号处理运算的微处理器,具有下列主要结构特点:(1)采用改进型哈佛(Harvard)结构,具有独立的程序总线和数据总线,可同时访问指令和数据空间,允许实际在程序存储器和数据存储器之间进行传输;(2)支持流水线处理,处理器对每条指令的操作分为取指、译码、执行等几个阶段,在某一时刻同时对若干条指令进行不同阶段的处理;(3)片内含有专门的硬件乘法器,使乘法可以在单周期内完成;(4)特殊的指令结构和寻址方式,满足数字信号处理FFT、卷积等运算要求;(5)快速的指令周期,能够在每秒钟内处理数以千万次乃至数亿次定点或浮点运算;(6)大多设置了单独的DMA总线及其控制器,可以在基本不影响数字信号处理速度的情况下进行高速的并行数据传送。

由一片DSP加上存储器、模/数转换单元和外设接口就可以构成一个完整的控制系统,但这种方案要达到高速实时控制是不可行的。因为一个实时控制系统一般需要完成数据采集、模/数转换、分析计算、数/模转换、实时过程控制以及显示等任务,单靠一片DSP来完成这些工作势必会大大延长系统对控制对象的控制周期,从而影响整个系统的性能。所以我们添加一个CPU,负责数据采集、模/数转换、过程控制以及人机接口等任务,使DSP专注于系统控制算法的实现,充分利用它的高速数据处理能力。从性能价格比的角度出发,这个CPU采用8位的51系列单片机。这时,两个CPU之间的数据共享就成了一个重要的问题。

采用双口RAM(简称DRAM)是解决CPU之间的数据共享的有效办法。与串行通信相比,采用双口RAM不仅数据传输速度高,而且抗干扰性能好。在笔者实验室研制的电力有源滤波器中,选用了TI公司的第三代DSP芯片TMS320C32和51系列单片机89C52作为控制系统的CPU。两个CPU之间通过双口RAM CY7C133完成数据交换。但在实际使用过程中遇到了89C52 与双口RAM总线宽度不匹配的问题,需要进行接口电路的设计。

2 双口RAM CY7C133的内部结构和功能

CY7C133是CYPRESS公司研制的高速2K×16CMOS双端口静态RAM,具有两套相互独立、完全对称的地址总线、数据总线和控制总线,采用68脚 PLCC封装形式,最大访问时间可以为25/35/55 ns。采用主从模式可以方便地将数据总线扩展成32位或更宽。各引脚的功能如表1所示,内部功能框图如图1所示。

CY7C133允许两个CPU同时读取任何存储单元(包括同时读同一地址单元),但不允许同时写或一读一写同一地址单元,否则就会发生错误。双口RAM中引入了仲裁逻辑(忙逻辑)电路来解决这个问题:当左右两端口同时写入或一读一写同一地址单元时,先稳定的地址端口通过仲裁逻辑电路优先读写,同时内部电路使另一个端口的信号有效,并在内部禁止对方访问,直到本端口操作结束。BUSY信号可以作为中断源指明本次操作非法。在主从模式中,主芯片的信号接上拉电阻作为输出,从芯片的信号作为写禁止输入。

3 DSP、单片机与双口RAM之间的接口电路

89C52的地址总线宽度为16位,数据总线为8位;TMS320C32的数据总线宽度为32位,地址总线宽度为24位。而CY7C133的数据总线宽度为16位,地址总线宽度为11位,所以TMS320C32与双口RAM的接口并无特别之处,但是89C52与双口RAM之间的接口电路中就需要对89C52进行总线扩展了。具体做法是利用锁存器74HC373的锁存功能,通过对其使能信号的控制,进行分时读写,实现数据总线的扩展,即利用锁存器作为虚拟总线。具体的读写过程、读写信号及锁存器使能信号的产生将在下面详细说明。DSP、单片机与双口RAM之间的接口电路如图2所示。

TMS320C32分配给双口RAM的地址空间为0x800000h~0x8007FFh。通过三八译码器74HC138对A20~A23和STRB进行译码,给出双口RAM的片选信号CER。89C52分配给双口RAM的地址空间为0x1000h~0x1FFFh。通过二四译码器74HC139对A13~A15进行译码产生双口RAM的片选信号CEL。双口RAM每边都有两个读/写控制信号,分别控制高位字节和低位字节的读/写,在使用时可以根据需要分别对数据的高位和低位进行写入操作。在图2所示接口电路中,两边的两个读/写控制信号分别被连接在一起,也就是说此时双口RAM的读写都是同时读写16位数据。

图2中双口RAM CY7C133的读写信号以及锁存器74HC373的使能信号的产生如图3所示。其中,WR是89C52的写控制信号,RD是89C52的读控制信号,A0是89C52的'地址最低位,A15是地址最高位,R/W是TMS320C32的读写控制信号,BUSYL接89C52的P1口的一个引脚(具体可根据系统实际情形自行选择,图中未画出),BUSYR接TMS320C32的READY信号。

下面讨论一下89C52对双口RAM的读写过程。当89C52对双口RAM进行读数据时,由图3可知此时A0应为低电平,不妨假设地址为0x1000h,则存储在双口RAM中该地址处的16位数据同时被读出,由于高8位数据线与89C52的8位数据线直接相连,所以高8位数据被立即读入89C52中。同时,根据图3中各信号的相互逻辑关系不难判断,U3的使能信号LE有效(高电平),OE无效(低电平),因而低8位数据被送入U3 中锁存起来。接着89C52再进行一次读操作,这时地址变为0x1001h,由于A0变成高电平,双口RAM的读使能信号变成无效电平,所以此次读操作对双口RAM不产生影响。再来看U3的使能信号LE和OE的变化情况,显然LE变成了无效电平,而OE变成了有效电平,上次被锁存的数据(即双口RAM的低8位数据)被送入89C52。当89C52对双口RAM进行写入操作时,注意此时A0应为高电平,不妨假设地址为0x100Ch,同样可根据图3判断U2的使能信号LE和OE均为有效电平,因而数据被同时写入双口RAM中(即此时双口RAM的高8位数据和低8位相同);接着89C52再进行一次写操作,此时地址变为0x100Dh,由于A0变成低电平,U2的片选为无效电平,U2被封锁,数据写入双口RAM的高8位。从上面的分析可知,利用最低地址位A0的不同电平,89C52通过两次连续的读或写操作,成功地实现了对双口RAM中数据的读或写,只不过是读入时是先读入高8位,后读入低8位;而写入则是先写入低8位,后写入高8位。

4 软件实现方案

双口RAM必须采用一定的机制来协调左右两边CPU对它的读写操作,否则会出现读写数据的错误。通常可以用中断、硬件、令牌和软件这四种方式来协调双方,本文采用的是软件方式。从上面的分析中我们可以得知,在接口电路中实际上已经利用89C52的最低地址位A0把双口RAM的存储空间分为奇、偶地址两个空间。其中,奇地址空间专供89C52写,偶地址空间专供89C52读。那么我们只需对TMS320C32的软件作相应处理即可,也就是说,TMS320C32对双口RAM的奇地址空间只读,对偶地址空间只写。这样就避免了TMS320C32和89C52对双口RAM同一地址单元的写入操作。另外,在对双口RAM进行访问之前,CPU首先对本端的BUSY信号进行查询,只有本端/BUSY信号无效时才进行读写操作,进一步保证了数据读写的可靠性。

5 结束语

通过双口RAM实现双CPU之间的数据通信,极大地提高了数据传输速度和可靠性,满足了控制系统的实时、高速的控制要求。本文所设计的89C52与双口RAM之间的接口电路简单实用,成功解决了它们总线匹配的问题,对其他类似需要总线扩展的系统也有一定的参考价值。

篇5:DSP与单片机的一种高速通信实现方案

DSP与单片机的一种高速通信实现方案

摘 要:介绍了一种利用双口RAM实现DSP与单片机高速数据通信的方法,给出了它们之间的接口电路以及软件实现方案。

关键词:DSP;双口RAM;接口电路;数据通信

1 引言

数字信号处理器(DSP)是一种适合于实现各种数字信号处理运算的微处理器,具有下列主要结构特点:(1)采用改进型哈佛(Harvard)结构,具有独立的程序总线和数据总线,可同时访问指令和数据空间,允许实际在程序存储器和数据存储器之间进行传输;(2)支持流水线处理,处理器对每条指令的操作分为取指、译码、执行等几个阶段,在某一时刻同时对若干条指令进行不同阶段的处理;(3)片内含有专门的硬件乘法器,使乘法可以在单周期内完成;(4)特殊的指令结构和寻址方式,满足数字信号处理FFT、卷积等运算要求;(5)快速的指令周期,能够在每秒钟内处理数以千万次乃至数亿次定点或浮点运算;(6)大多设置了单独的DMA总线及其控制器,可以在基本不影响数字信号处理速度的情况下进行高速的并行数据传送。

由一片DSP加上存储器、模/数转换单元和外设接口就可以构成一个完整的控制系统,但这种方案要达到高速实时控制是不可行的.。因为一个实时控制系统一般需要完成数据采集、模/数转换、分析计算、数/模转换、实时过程控制以及显示等任务,单靠一片DSP来完成这些工作势必会大大延长系统对控制对象的控制周期,从而影响整个系统的性能。所以我们添加一个CPU,负责数据采集、模/数转换、过程控制以及人机接口等任务,使DSP专注于系统控制算法的实现,充分利用它的高速数据处理能力。从性能价格比的角度出发,这个CPU采用8位的51系列单片机。这时,两个CPU之间的数据共享就成了一个重要的问题。

采用双口RAM(简称DRAM)是解决CPU之间的数据共享的有效办法。与串行通信相比,采用双口RAM不仅数据传输速度高,而且抗干扰性能好。在笔者实验室研制的电力有源滤波器中,选用了TI公司的第三代DSP芯片TMS320C32和51系列单片机89C52作为控制系统的CPU。两个CPU之间通过双口RAM CY7C133完成数据交换。但在实际使用过程中遇到了89C52 与双口RAM总线宽度不匹配的问题,需要进行接口电路的设计。

2 双口RAM CY7C133的内部结构和功能

CY7C133是CYPRESS公司研制的高速2K×16CMOS双端口静态RAM,具有两套相互独立、完全对称的地址总线、数据总线和控制总线,采用68脚 PLCC封装形式,最大访问时间可以为25/35/55 ns。采用主从模式可以方便地将数据总线扩展成32位或更宽。各引脚的功能如表1所示,内部功能框图如图1所示。

CY7C133允许两个CPU同时读取任何存储单元(包括同时读同一地址单元),但不允许同时写或一读一写同一地址单元,否则就会发生错误。双口RAM中引入了仲裁逻辑(忙逻辑)电路来解决这个问题:当左右两端口同时写入或一读一写同一地址单元时,先稳定的地址端口通过仲裁逻辑电路优先读写,同时内部电路使另一个端口的信号有效,并在内部禁止对方访问,直到本端口操作结束。BUSY信号可以作为中断源指明本次操作非法。在主从模式中,主芯片的信号接上拉电阻作为输出,从芯片的信号作为写禁止输入。

3 DSP、单片机与双口RAM之间的接口电路

89C52的地址总线宽度为16位,数据总线为8位;TMS320C32的数据总线宽度为32位,地址总线宽度为24位。而CY7C133的数据总线宽度为16位,地址总线宽度为11位,所以TMS320C32与双口RAM的接口并无特别之处,但是89C52与双口RAM之间的接口电路中就需要对89C

[1] [2] [3]

篇6:利用异步通信芯片16C552实现PC机与DSP的串行通讯

利用异步通信芯片16C552实现PC机与DSP的串行通讯

摘要:介绍了异步通信芯片16C552的功能、特点、结构和内部寄存器,给出了用16C552芯片实现PC机与DSP串行通讯的方法,同时给出了它们之间的硬件接口电路和软件初始化程序。

关键词:16C552;串行通讯;异步

当实现PC机与DSP的串行通讯时,通常可直接利用DSP的串行通讯接口(SCI)模块和SCI多处理器通讯协议(即空闲线路模式和地址位模式)来在同一串行线路中实现多个处理器之间的通讯,也可以采用SCI异步通讯模式实现串行通讯。这两种方式虽然都能方便地实现串行通讯,但它们都需占用系统较多的硬件和软件资源,(本网网收集整理)因而不适用于对实时性要求比较高且系统资源紧张的应用场合。笔者在研制电力有源滤波实验系统中,由于采用了异步通讯芯片16C552,从而成功解决了这个问题。本文将从电路结构和软件编程两个方面介绍该方案的实现方法。

1 16C552简介

1.1 功能特点及结构框图

16C552是TI(TL16C552)和VLSI(VL16C552)等公司生产的异步通信芯片,具有两个增强的通用异步通讯单元通道和一个增强的双向打印机端口;支持TL16C450和FIFO两种模式,其16字节的FIFO可减少CPU中断;每个通道都具有独立的发送、接收、线路状态和设置中断功能,同时具有独立的MO-DEM控制信号、可编程的串行数据发送格式(包括数据位长度、校验方式、停止位长度)和可编程波特率发生器;另外,每个通道的数据和控制总线还具有三态TTL驱动功能。

TL16C552AM是TI公司的68脚PLCC(Plastic Leaded Chip Carrier)封装芯片,其管脚及功能框图如图1所示。从图中可以看出,它的串行口主要完成两个功能,一是把外设或调制解调器接收来的串行数据转换成并行数据;二是把CPU的并行数据转换成串行数据以便发送。在正常操作过程中,CPU可以随时读取16C552的状态信息,以报告16C552传输操作的类型和状态,包括各种错误状态,如奇偶校验、溢出、帧错误和FIFO错误等。此外,16C552还具有完整的MODEM控制功能,并有CTS、RTS、DSR、DTR、RI、DCD等信号端。

16C552具有一套完善的中断系统,可以自动设定优先级。它的串行口和并行口都可以独立地工作于中断和查询两种工作方式。

1.2 16C552的内部寄存器

16C552内部有12个单字节寄存器,这些寄存器占用了8个I/O口地址,其地址由A0~A2决定。其中有些寄存器共用一个I/O口地址,共用的I/O口可以通过读/写信号和线路控制寄存器(LCR)的D7位(DLAB)来进行区分,具体描述见表1所列,需要说明的是:只有当16C552的CS0或CS1为低电平时,串行通道才能被访问。

表1 I6C552的内部寄存器

DLABA2A1A0符  号寄  存  器LLLLRBR接收缓冲寄存器LLLHTHR发送保持寄存器LLLLIER中断允许寄存器XLHHIIR中断识别寄存器XLHLFCRFIFO控制寄存器XLHHLCR线路控制寄存器XHLLMCRMODE控制寄存器XHLHLSR线路状态寄存器XHHLMSRMODEM状态寄存器XHHHSCR高速缓存器寄存器HLLLDLL除数锁存器低位HLLHDLM除数锁存器高位

关于各寄存器内容的具体规定,限于篇幅,这里不作详述,有兴趣者可参看TI公司的相关产品资料介绍,但在串行通讯应用中,要重点搞清楚FCR、LCR、IER等几个寄存器的内容。此外,在实际应用中,有时可能会忽视MODEM控制寄存器中的D4位,该位为自测试循环回送状态控制位,利用它可以对串口的自测试进行控制,因此,在自测试进行完毕后,还应对该位进行复位,以保证系统的正常运行。

2 通讯系统硬件接口电路

本系统的硬件接口电路如图2所示。其中,地址译码电路可以根据实际需要采用不同的电路实现。为了使系统使用灵活方便,本方案中采用一片CPLD来进行系统的地址分配。复位电路可以利用专用复位芯片,也可用上拉电阻方式实现。外接晶振可以自行选择,然后根据晶振频率设置除数锁存器的高位和低位,从而获得通讯系统正确的波特率,本系统中使用的晶振是8MHz。此外,由于16C552A有两个串行通道和一个标准并行口,它们相互之间的.配合使用在硬件和软件上都要加以注意。建议将不用端口的片选接到高电平(16C552A的片选为低电平有效),以免出现错误。

3 串行通讯软件设计

3.1 通讯协议

本设计的通讯协议包括以下几点:

(1)波特率为9600。

(2)通讯命令由2个字节构成:第一个字节是同步字节0XFF;第二个字节是命令码,主要用来指示各种控制命令。

(3)每个字节包括8位数据位和1位停止位,无校验。

(4)在通讯过程中,上位机向TMS320F243发送同步命令,TMS320F243接收到后立即应答,若应答错误则重发。

(5)通讯程序向TMS320F243发送控制命令时,TMS320F243返回接收正确应答信号;通讯程序向TMS320F243查询系统参数命令时,TMS320F243按照规定格式返回所需数据。

PC机和TMS320F243均采用异步通讯方式,PC机采用事件驱动方式来接收数据,TMS320F243采用中断方式接收数据,而用查询方式发送数据。

3.2 上下位机通讯软件设计

在PC机上编写串行通讯程序至少有三种方法,分别为汇编语言、C语言和Visual系列通讯控件(MSComm)。相比较而言,Visual系列通讯控件能够用少量的代码轻松高效地完成编程任务。实际应用中,可用以Visual Basic(简称VB)6.0中的通讯控件MSComm为基础编写PC机的串行通讯程序,而用汇编语言编写下位机(F243)软件。上、下位机的串口程序流程分别如图3和图4所示。 16C552的初始化程序如下:

;THE 16C552 INITIALIZATION PROGRAM

C552_INIT:

LDP #00h

SPLK #83h,GSR0

OUT GSR0,0E003h ;设置LCR

SPLK #34h,GSR0

OUT GSR0,0E000h ;设置DLL

SPLK #00h,GSR0

OUT GSR0,0E001h ?; 设置DLM

SPLK #03h,GSR0

OUT GSR0,0E003h ?; 设置LCR

SPLK #08h,GSR0

OUT GSR0,0E004h ?; 设置MCR

SPLK #01h,GSR0

OUT GSR0,0E002h ?; 设置FCR

SPLK #01h,GSR0

OUT GSR0,0E001h ? ;设置IER

RET

图4

4 结束语

本文对使用异步通信芯片16C552实现PC机与DSP之间的串行通讯方法进行了研究,笔者已开发了其串行通讯软件,并在实验中调试通过。该软件不仅使用灵活方便,而且可以利用16C552的FIFO模式实现大数据量的收发,从而减少了对DSP的中断,缓解了系统资源紧张的情况。

【单片机与DSP结合的dsPIC芯片】相关文章:

1.“心”与“芯片”作文

2.dsp心得体会

3.单片机课程设计与评价学习总结

4.主板芯片介绍

5.单片机课程设计心得体会

6.单片机实习报告

7.单片机的学习方法

8.单片机知识点总结

9.单片机实验心得体会

10.认知心理学与产品设计的结合

下载word文档
《单片机与DSP结合的dsPIC芯片.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

  • 返回顶部