TMS320C5402的存储器配置

TMS320C5402的存储器配置,第1张

DCSK的程序

以双DSP为核心的FM-DCSK通信系统方案设计

[日期:2005-8-14] 来源:国外电子元器件 作者:谌 丽 王 强 [字体:大 中 小]

摘要:采用FM-DCSK调制的混沌保密通信较其它混沌键控保密通信具有更优良的特性,但同时电路实现也更加复杂。DSP以其高效和灵活性在混沌通信中具有广阔的应用前景。文中根据TMS320C5402的特点,给出了用两块DSP来实现FM-DCSK通信系统的硬件方案,同时给出了系统独立工作时的硬件原理框图和软件设计流程。

关键词:数字信号处理器(DSP);调频-差分混沌键控(FM-DCSK);混沌通信;多通道缓冲串行口

1 引言

近年来,随着混沌同步和控制理论的提出与发展,混沌在信号处理、通信和控制领域的应用也日渐广泛。一般认为,在通信领域,混沌信号代替传统的正弦信号作信息载体有以下优势:其一是混沌信号的宽频特性可以实现某种意义上的扩频;其二是混沌信号的类似噪声难以预测,而这一特点正好可为信息的保密传输提供保证。

图1

混沌通信的类型很多,其中较有应用前景的有差动混沌键控(DCSK)和混沌扩频通信。它们的共同特点是信道中传送的信号不再是实现发送端和接收端同步的耦合信号,而是利用混沌信号的统计特性,即混沌信号的自相关和互相关特性来实现一定程度的保密通信。目前的研究工作主要是以理论研究和计算机仿真为主,而利用硬件来验证DCSK及其改进的FM-DCSK通信性能的设计还很少,因此,笔者设计了基于双数字信号处理器(DSP)的FM-DCSK通信系统方案,文中分别介绍了系统中的话音终端、 混沌序列的产生及其FM调制、 DCSK调制解调及数据通信等电路,分析了系统工作时程序的装载原理和可行性,同时给出了硬件原理框图和软件设计流程图。

2 系统硬件总体结构

本系统主要用来完成语音信号的采集、语音压缩编码以及对语音信号进行FM-DCSK调制,并将调制后的数据通过DSP的多通道缓冲串行口(McBSP)发送出去,同时对接收到的数据进行DCSK解调和语音解压缩、译码,并将译码后的数据进行D/A转换以还原出模拟话音。本系统利用串行数模/模数转换芯片TLV320AIC10来将输入语音信号转换成数字语音信号,待进行完处理后再将数字语音转换成模拟语音信号;低比特率声码器AMBE-1000则用来对数字语音信号进行低速率的语音压缩编码和对DCSK解调后的数据进行解码;TMS320C5402(主)不仅要对编码后的数据进行DC-SK调制和DCSK解调,而且还要作为整个系统的控制器来完成对各个功能芯片的设置、控制,并通过双口RAM芯片(IDT7206)与TMS320C5402(从)进行数据传递,同时通过多通道缓冲串行口(McBSP)与另一块TMS320C5402(从)进行双向的数据通信。TMS320C5402(从)则在TMS320C5402(主)控制下完成混沌序列的生成和序列的FM调制运算。整个系统的硬件原理如图1所示。

图中,C5402(主)采用并行方式装载程序�而C5402(从)则是采用HPI方式装载程序。由于没有通过双端口RAM采用并行方式装载程序,因而可以减少C5402(主)在C5402�从 装载程序时复杂的控制过程,有效地利用资源。在系统独立工作时,C5402主、从双方的通信主要通过双端口RAM来完成。

3 系统电路工作原理

本系统包括话音终端电路、混沌序列产生及其FM调制电路、DCSK调制及解调以及两个系统数据通信实现电路。各个部分在控制器的协调下完成双向的FM-DCSK通信。

3.1 话音终端电路

话音终端电路由声码器AMBE-1000与串行数模/模数转换芯片TLV320AIC10构成,可在DSP控制器的控制下完成模拟话音的数字化,并进行压缩编码以输出成帧的编码数据包,然后将其作为信息数据再经DSP做FM-DCSK调制后输出。同时将接收到的并经过DSP解调的数据包进行译码以还原出数字话音,最后经过D/A变换输出模拟话音。

在硬件连接中,AMBE-1000的发送、接收选通信号以及移位时钟均为TLV320AIC10产生的FS和CLKS信号。为满足AMBE-1000的时序要求,将TX_STRB、TX_O_CLK分别与TLV320AIC10产生的FS和CLKS直接相连,而RX_STRB、RX_O_CLK则经过CPLD逻辑转换后与FS、CLKS相连。AMBE-1000的编码速率、信道接口方式、AD接口方式以及各种控制都是由C5402(主)通过 *** 作不同的I/O口并经CPLD锁存完成的,其中AMBE-1000的时序逻辑图如图2所示。

对TLV320AIC10中各控制寄存器的控制可用C5402(从)通过多通道缓冲串行口�McBSP0 向DCSI写入相应格式的数据来完成。与C5402(从)的连接工作在SPI模式,并同样由TLV320AIC10产生FS和CLKS信号。初始化完成后,TLV320AIC10则在8kHz的采样率和16bit的线性量化模式下与声码器交换数据。而声码器每20ms与C5402(主)交换一次数据。当然,所有的工作方式都可以通过软件编程来实现。

3.2 混沌序列的产生及其FM调制

混沌序列的产生及其FM调制主要由C5402(从)完成。可利用经典的Logistic映射:

然后经离散迭代运算产生所需要的混沌序列。由FM-DCSK通信方式的原理可知,所产生的混沌序列需经过FM调制,然后才能对话音数据作DCSK调制。FM-DCSK调制解调系统框图如图3所示。因为混沌序列的FM运算量比较大,因此,本设计选择TMS320C5402作为运算处理器,它的最高工作频率可达100MHz。

C5402(从)通过双口RAM将FM调制后的混沌序列送给C5402(主),也就相当于在FM-DCSK调制解调系统中完成了混沌发生器和FM调制器的功能。

3.3 DCSK调制解调及数据通信

用C5402�主 可完成低速率编码后话音信号的DCSK调制和接收数据的DCSK解调,同时可控制CPLD以产生各种控制信号。每次通信过程中,C5402(主)将从双口RAM中读取相应数目FM调制后的混沌序列,然后对接收到的话音数据按bit 进行DC-SK调制,同时通过McBSP用DMA方式接收DCSK调制数据并由C5402(主)进行DCSK解调。这两项工作都是通过中断来完成的

3.4 系统独立工作时的程序装载过程

本系统的程序装载分为C5402(主)自身的并行装载和C5402(从)的HPI装载两部分。

C5402(主)与Flash AT29LV1024和双口RAM之间的逻辑如图4所示。C5402(主)上电复位装载时,由于Bootloader程序在初始化时设置XF为高电平,因此,在系统进入并行引导装载模式后,C5402(主)将从数据寻址为0FFFFh的单元(A15=1,选中Flash)中读取将要载入的程序存储区首地址和并行装载数据流。此时,C5402可将 Flash地址08000h—0FFFFh单元中的数据读到C5402对应于0000h—7FFFh寻址区的片内DRAM和片外SRAM中。Boot-loader程序结束后,用户程序的第一条语句为RSBX XF,即置XF引脚为低电平, 那么Flash将始终不选通。这样,双端口RAM的高32k区域(08000h—0FFFFh)将被释放出来作为C5402�主 运行时的数据区或程序区使用。C5402�主 装载进来的程序数据主要分为三部分:给C5402(从)的装载程序、自身的运行程序及C5402(从)的运行程序。

在C5402(主)进行并行装载的过程中,C5402(从)将判断是哪种装载模式。因为C5402�从 的HINT和INT2连在一起,因此,DSP上电初始化时会将07FH单元清0,同时HINT置0会导致INT2的IFR相应标志位有效,C5402(从)在查询到INT2的标志位有效后,则判断为HPI装载模式。C5402(主)在进行并行装载后,将首先运行装载程序,以便将C5402(从)的运行程序数据传送到C5402(从)中,从而将C5402(从)的程序入口地址写到07FH单元,这样即表明HPI装载结束。

4 系统软件设计

4.1 程序流程

系统的软件设计主要包括对C5402�主 和C5402(从)的编程。C5402�主 的软件设计由C5402的初始化、AMBE-1000的初始化、McBSP0和McB-SP1初始化、DMA的初始化、DSP中断设置、接收数据中断设置程序和发送数据中断设置程序构成。图5为C5402(主)软件系统流程图,图6和图7分别为McBSP0接收中断设置和McBSP1接收中断设置流程图。C5402(从)的软件设计由C5402初始化、TLV320AIC10的初始化以及混沌序列产生和混沌序列的FM调制构成。

4.2 程序设计应注意的问题

在进行系统软件设计时,应注意以下几个问题:

(1)由于McBSP工作在数据接收中断方式,因此全局中断和串口中断的相应位要合理设置。同时,在设置中断向量表时,中断向量表的位置应与处理器模式状态寄存器PMST中的中断向量指针IPTR相对应,IPTR的9位地址指向128字的中断向量所在的程序页�同时,中断向量表也要严格按照C5402规定的格式编写,否则不能正确地产生需要的中断结果。

(2)要实现DSP数据采集系统的脱机独立运行,程序装载十分关键。C5402(主)进行并行装载时,AT29LV1024中的程序数据流要严格按照并行装载的格式依次把C5402�从 装载程序、C5402(主)自身执行程序和C5402(从)的程序装载到片内DRAM和片外双口SRAM中。

(3)当双端口RAM在两片DSP之间进行数据传递时,要合理分配空间,协调好读写时序,严格避免数据冲突。

5 结束语

本文利用两片TMS320C5402设计了FM-DCSK通信系统的硬件实现方案,给出了系统独立工作时的硬件原理框图和软件设计流程图。实践证明:并行装载模式和HPI装载模式同时使用,可有效利用系统资源、降低成本

参考资料:

>

找个51单片机GPIO口模拟SPI的程序,稍微改一下就能用了用MCBSP通信的话通信时序方面的问题DSP用硬件帮你做了,而你用上面的方法,需要程序里面自己添加延时。如果你做的系统比较复杂(比如你还需要处理音频数据,还要读写SD卡等等),不推荐用GPIO口模拟SPI。芯片官方网站会有你这块芯片SPI通信的示例程序的。你仔细找找。

在SCI串行通信调试中,发现由于DSP的运行频率在100 MHz左右,造成内部数据时钟CLKG过快,不能与C51串口采样频率保持一致,需要软件加以处理,这样会额外消耗DSP资源。因此可以考虑将发送时钟CLKX和接收时钟CLKR接外部时钟源(慢于DSP时钟),以保证与C51串口采样频率的一致。另外在并行通信的调试中,可以知道通过HPI-8口并行通信完全没有硬件和软件开销,由DSP自身的硬件来协调冲突,因此HPI-8口使用于与单片机构件较好的主从双CPU处理器平台

基于嵌入式系统发展的需要,提出TMS320VC5402 DSP与AT89C51单片机通信的三种设计方案。利用TMS320VC5402的多通道缓冲串口MCBSP分别实现TMS320VC5402与AT89C51的SCI和SPI串行通信,以及通过TMS320VC5402的8位增强主机接口HPI一8实现TMS320VC5402与AT89C5l并行通信。就硬件接口电路和软件编程进行详细的阐述。

关键词:单片机 DSP MCBSP HPI

将DSP和单片机构成双CPU处理器平台,可以充分利用DSP对大容量数据和复杂算法的处理能力,以及单片机接口的控制能力。而DSP与单片机之间快速正确的通信是构建双CPU处理器的关键问题。下面就此问题分别设计串行SCI、SPI和并行HPI三种连接方式。

1 串行通信设计与实现

1 1 SCI串行通信设计

111 多通道缓冲串行口McBSP原理

TMS320VC5402(简称VC5402)提供了2个支持高速、全双工、带缓冲、多种数据格式等优点的多通道缓冲串行口McBSP。MCESP分为数据通路和控制通路。①数据通路负责完成数据的收发。CPU或DMAC能够向数据发送寄存器DXR写入数据,DXR中的数据通过发送移位寄存器XSR输出到DX引脚。DR引脚接收数据到接收移位寄存器RSR,再复制到接收缓冲寄存器RBR,最后复制到数据接收寄存器DRR。这两种数据多级缓冲方式使得数据搬移和片外数据通信能够同时进行。②控制通路负责内部时钟产生,帧同步信号产生,信号控制和多通道选择。另外.还具有向CPU发送中断信号和向DMAC发送同步事件的功能。MCBSP时钟和帧同步信号通过CLKR、CLKX、FXR、FSX引脚进行控制,接收器和发送器可以相互独立地选择外部时钟和帧同步信号,也可以选择由内部采样率发生器产生时钟和帧同步信号。帧同步脉冲有效表示传输的开始。

112 SCI串行接口设计

设置VC5402的McRSP输出时钟和帧同步信号由内部采样率发生器产生,内部数据时钟CLKG和帧同步信号FSG驱动发送时钟CLKX和帧同步FSX(CLKXM=l,FSXM=l,FSGM=1),输入时钟也由内部采样率发生器产生,内部数据时钟CLKG驱动接收时钟CLKR(CLKRM=1),同时由CPU时钟驱动采样率发生器(CLKSM=1)。考虑到AT89C51(简称C51)串口发送数据帧中第l位为起始位,因此可以利用该位驱动输入帧同步信号FSR,同时要置忽略帧同步信号标志为1。其中FSG帧同步脉冲宽度=(FWID+1)·CLKG;FSG帧同步脉冲周期=(FPER+1)·CLKG;采样率发生器分频系数(采样率=波特率)=FIN/(CLKGDV+1)。

SCI串口连接如图l所示。

113 波特率不一致的处理

VC5402初始化(以图1为例):

STM#SRGRl,SPSAl

STM#ooFEH,SPSDl;FSG帧同步脉冲宽度位为1个CLKG

;波特率为100 MHz/(0X(OFF)=392 156 b/s

STM#SRGR2,SPSAl

STM#3D00H,SPSDl;内部采样率发生器时钟由CPU驱动

C51初始化:

MOV TMOD,#20H

MOVTLl,#FFH

MOVTHl,#FFH ;C51波特率=(2SMOD/32)(fosc/12)[1/(256一初值)]一24 509 b/s

MOV SCON,#50H ;置串口方式l,每一帧10位数据.允许接收

MOV PCON,#80H ;设置SMOD=1

VC5402波特率/C51波特率=(392 156/24 509)=16.000 49

VC5402每发送16位数据,C51只采样1位数据。在VC5402存储器中开辟一个空间对每次发送的8位数据进行扩展,1位扩为16位,0为0000H,l为FFFFH,共扩为128位。在数据头部填加16位起始位0000H,数据尾部填加停止位FFFFH。在VC5402发送控制寄存器XCR中设置XWDLEN=000(1字含8位),即可将要发送的8位数据封装成1帧10字的数据。这也符合C51串口1方式下1帧10位的数据格式。C51以1/16的VC5402采样速率接收数据,0000H采样为0,FFFFH采样为1,由此可以将接收到的200位恢复为8位数据,停止位进入RB8。

C51每发送1位数据,VC5402要采样为16位数据。C51一次发送的10位数据的起始位触发VC5402的接收帧同步。由于VC5402以16倍C51的采样速率接收数据,1位采样为16位,0采样为0000H,1采样为FFFFH.只采样发送来的10位中的前9位,9位封装成144位,即接收的1帧数据完成。VC5402将收到的144位数据在开辟的存储器空间存放,抛弃前16位,在剩下的128位里分成8组,每组16位。比较其中间的8位,若有4位以上为1,则该16位为1,反之则为0。由此将接收到的144位恢复为8位数据。

为了不让CPU频繁地被数据接收和发送打断,将DMA和MCBSP联合使用来控制数据的接收和发送。RRDY直接驱动MCBSP向DMAC接收数据事件(REVENT事件),XRDY直接驱动MCBSP向DMAC发送数据事件(XEVENT事件)。

SCI通信协议如图2所示

1 2 SPI串行通信设计

将C51置为主机,VC5402为从机。McBSP的时钟停止模式(CLKSTP=1X)兼容SPI模式,接收部分和发送部分内部同步。McBSP可以作为SPI的从机或主机。发送时钟BCLKX作为SPI协议的移位时钟SCK使用,发送帧同步信号BFSX作为从机使能信号nSS使用,接收时钟BCLKR和接收帧同步信号BFSR不使用。它们在内部分别与BCLKX和BFSX直接连接。BDX作为MISO,而BDR作为MOSI,发送和接收具有相同字长。

C51中的并口P1.1和P1.2作为扩展串行SPI输人输出口与VC5402连接,P1.0作为串行时钟输出口,P1.3作为帧同步信号输出口_。

SPI串口连接如图3所示。

VC5402初始化程序(以图3为例):

STM#SPCRll,SPSAl;设置时钟停止位进入MCBSP的SPI模式

STM#0X1000,SPSDl;时钟开始于上升沿(无延迟)

STM#SPCRl2,SPSAl

STM#0X0040,SPSDl;XINT由XRDY(即字尾)驱动

STM#PCRl,SPSAl

STM#0X000C,SPSDl;对发送和接收时钟,同步帧进行设置

STM#RCRll.SPSAl

STM#0X0000,SPSDl;接收数据l帧1字.1字8位

STM#XCRll,SPSAl

STM#0X0000,SPSDl;;发送数据1帧1字.1字8位;

P1.0发送到VC5402的移位时钟是保证DSP正确采样接收和发送数据的时钟。它要保证和C51的采样接收和发送数据的时钟一致.才能使主从机同步。

2 并行通信设计与实现

21 VC5402的HPI接口原理

HPI一8是一个8位(HD0~HD7)的连接DSP与主机设备或主处理器的并行接口。DSP与主机通过DSP的片内RAM交换数据,整个片内RAM都可以作为HPI一8的存储器。HPIA地址寄存器只能由主机直接访问,存放当前寻址的存储器的地址;HPID数据锁存器只能由主机直接访问,存放当前要写入或读出的数据;HPIC控制寄存器可以被主机和VC5402共同访问。HPI本身的硬件中断逻辑可以完成主从设备之间的握手,主机通过置HPIC中的特定位产生DSP中断,同样DSP通过nHINT引脚对主机产生中断。HRDY引脚用于自动调节主机访问HPI的速度,使慢速外部主机与DSP能很好地匹配。HRDY由HCS使能,即当HCS为高时HRDY一直为高,而当EMUl/nOFF为低时,HDRY输出高阻。

HPI连接如图4所示。

22 并行接口设计

将C51置为主机,VC5402置为从机。C51的PO口和HPI的8位数据线HD0~HD7相连作为数据传输通道,P1.0~P1.3设置为输出控制HPI口的 *** 作。其中P1.0作为读写控制选通信号连接HR/W;P1.1连接字节识别信号HBIL,控制读写数据是属于16位字的第1还是第2字节;P1.2和P1.3分别连接HCNTL0和HCNTLl,以实现对HPIC、HPIA和HPID寄存器的访问;nRD和nWR连接nHDSl和nHDS2作为数据选通信号来锁存有效的HCNTLO/1、HBIL和HR/W信号。nINTl作为输入,与HPI口的主机中断信号nHINT相连。nHCS一直接地,而nHAS口和ALE口相连接,在HCNTL0/I、HBIL和HR/W信号有效之后,设置nHDSl为低电平,则实现了读写的数据选通,从而完成C51对VC5402 HPI口的读写 *** 作。在数据交换过程中,C51向HPI发送数据时,通过置VC5402的HPI控制寄存器HPIC中的DSPINT位为l来中断VC5402。C51接收来自HPI的数据时通过查询方式,当VC5402 DSP准备发送数据时,置nHINT信号为低;C51查询到nlNTl为低时,调用接收数据子程序来实现数据的接收。

C51与VC5402的并行连接如图5所示。

主机接收和发送初始化程序(以图5连接为例):

RTITEADDRESS: ;写入VC5402存储器地址信息

CLR P1.2

注:①HBlL脚在传输过程中指示当前字节为第l还是第2字节。

②为方便DSP自举引导加载程序.常采用将nHlNT脚直接与INT2

脚相连。

图5 AT89C51与V05402的并行连接

SETB P1.3 ;主机可读写HPlA地址寄存器

CLR P1.0 ;主机要求写选通HPI一8

MOV P0,A ;写入8位地址

CALL DELAY ;等待地址写入完成

READDATA: ;读出VC5402存储器数据信息

SETB P1.2

CLR P1.3 ;主机可读写HPID数据寄存器

SET P1.0 ;主机要求读选通HPI一8

MOVA,P0 ;读出8位数据

CALL DELAY ;等待数据读出完成

WRITEDATA: ;写入VC5402存储器数据信息

SETB Pl.2

CLR P1.3 ;主机可读写HPID数据寄存器

CLR P1.0 ;主机要求写选通HPI一8

MOV P0,A ;写入8位数据

CALL DELAY ;等待数据写入完成

不管是串行连接还是并行连接,都要考虑到VC5402是采用3.3 V供电,C51采用5 V供电。两者之间存在信号电平的差异而不能直接相连,应互连接口隔离器件。

以上就是关于TMS320C5402的存储器配置全部的内容,包括:TMS320C5402的存储器配置、Verilog HDL或者C语言对MCP2510如何初始化我想知道具体的地址和值、如何将DSP的普通IO口做SPI通讯用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9727512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存