DSP与51单片机通信的多种方案设计

发布者:SereneDreams最新更新时间:2012-01-03 关键字:DSP  51单片机 手机看文章 扫描二维码
随时随地手机看文章

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

 

1  串行通信设计与实现

1 1 SCI串行通信设计

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

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


1.1.2 SC
I串行接口设计

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


    SCI
串口连接如图l所示。

 

1.1.3  波特率不一致的处理

VC5402初始化(以图1为例)

STM#SRGRl,SPSAl

STM#ooFEHSPSDlFSG帧同步脉冲宽度位为1CLKG

;波特率为100 MHz(0X(OFF)=392 156 bs

STM#SRGR2SPSAl

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

    C51初始化:

MOV TMOD,#20H

MOVTLl,#FFH

MOVTHl#FFH  C51波特率=(2SMOD32)*(fosc12)[1(256一初值)]24 509 bs

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

MOV PCON#80H  ;设置SMOD=1

VC5402波特率/C51波特率=(392 15624 509)=16000 49


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


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


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


    SCI
通信协议如图2所示

1. 2 SPI串行通信设计

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

   
     
C51
中的并口P11P12作为扩展串行SPI输人输出口与VC5402连接,P10作为串行时钟输出口,P13作为帧同步信号输出口_


    SPI
串口连接如图3所示。

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

STM#SPCRllSPSAl;设置时钟停止位进入MCBSPSPI模式

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

STM#SPCRl2,SPSAl

STM#0X0040SPSDlXINTXRDY(即字尾)驱动

STM#PCRlSPSAl

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

STM#RCRllSPSAl

STM#0X0000SPSDl;接收数据l1字.18

STM#XCRllSPSAl

STM#0X0000SPSDl;;发送数据11字.18位;

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

 

2  并行通信设计与实现

2.1 VC5402HPI接口原理

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


    HPI
连接如图4所示。

2.2  并行接口设计

    C51置为主机,VC5402置为从机。C51PO口和HPI8位数据线HD0HD7相连作为数据传输通道,P10P13设置为输出控制HPI口的操作。其中P10作为读写控制选通信号连接HRWP11连接字节识别信号HBIL,控制读写数据是属于16位字的第1还是第2字节;P12P13分别连接HCNTL0HCNTLl,以实现对HPICHPIAHPID寄存器的访问;nRDnWR连接nHDSlnHDS2作为数据选通信号来锁存有效的HCNTLO1HBILHRW信号。nINTl作为输入,与HPI口的主机中断信号nHINT相连。nHCS一直接地,而nHAS口和ALE口相连接,在HCNTL0IHBILHRW信号有效之后,设置nHDSl为低电平,则实现了读写的数据选通,从而完成C51VC5402 HPI口的读写操作。在数据交换过程中,C51HPI发送数据时,通过置VC5402HPI控制寄存器HPIC中的DSPINT位为l来中断VC5402C51接收来自HPI的数据时通过查询方式,当VC5402 DSP准备发送数据时,置nHINT信号为低;C51查询到nlNTl为低时,调用接收数据子程序来实现数据的接收。

RTITEADDRESS    ;写VC5402存储器地址信息

    CLR P12

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

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

    脚相连。


    图
5  AT89C51V05402的并行连接

SETB P13    ;主机可读写HPlA地址寄存器

CLR P10    ;主机要求写选通HPI8

MOV P0A    ;写入8位地址

CALL DELAY  ;等待地址写入完成

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

SETB P12

CLR P13    ;主机可读写HPID数据寄存器

SET P10    ;主机要求读选通HPI8

MOVAP0    ;读出8位数据

CALL DELAY  ;等待数据读出完成

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

SETB Pl2

CLR P13    ;主机可读写HPID数据寄存器

CLR P10    ;主机要求写选通HPI8

MOV P0A    ;写入8位数据

CALL DELAY  ;等待数据写入完成

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

 

 

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

关键字:DSP  51单片机 引用地址:DSP与51单片机通信的多种方案设计

上一篇:单片机89C52并行I/O口实现多个LED显示
下一篇:基于51单片机的温度测量系统

推荐阅读最新更新时间:2024-03-16 12:50

51单片机软件SPI初始化ILI9488-DPI模式程序
大家好,最近的项目用到ILI9488这个芯片的屏幕,用51单片机的IO口模拟SPI信号,发送初始化代码 设置成DPI-18bitRGB模式。并用LT768芯片来显示图片。下面是程序和ILI9488资料分享: 显示图片为18bitR6G6B6信号,由于便于测试,每种颜色的6根脚都接一起了,效果如下图: 单片机驱动ILI9488源程序如下: #define CS P13 #define CLK P14 #define DCX P15 #define SI P16 #define LCD_nRESET P00 void SPId_Init(void) { P1M
[单片机]
<font color='red'>51单片机</font>软件SPI初始化ILI9488-DPI模式程序
C51单片机利用ESP8266配置WIFI,发送温度数据的源码
使用DS18B20,ESP8266,实现WIFI传输温度,底层部分代码。其中WIFI是作为服务器,上位机作为客户端。 单片机源程序如下: /*********************** 程序名:wifi_3.c 功能:单片机与手机通信,实现温度信息的传输 编程人: baxlumen ************************/ #include reg52.h #include intrins.h #define uint unsigned int #define uchar unsigned char #define ulong unsigned long typedef unsigned int u16;
[单片机]
基于TMS320F2812的最小系统设计
TMS320F2812是美国TI公司推出的新一代32位定点数字信号处理器,该芯片每秒可执行1.5亿次指令,具有单周期32 bit×32 bit的乘和累加操作功能,片内集成了丰富的外围设备,如16路A/D转换器、面向电机控制的事件管理器以及多种标准串口通信外设等 。可见,其不仅具有数字信号处理器卓越的数据处理能力,又像单片机那样具有适于控制的片内外设及接口;它在数字控制系统中有着广泛的应用,特别是在运动控制领域以及嵌入式开发系统设计中,常常成为微处理器的首选。 DSP最小应用系统设计一般包括硬件设计和调试部分。硬件设计部分一般包括电源、复位电路、时钟电路、JTAG电路和外部接口电路的设计;最小系统板作为DSP控制系统的核心
[嵌入式]
基于TMS320F2812的最小系统设计
C51单片机同时扩展SRAM和EPROM
情况一:扩展的RAM和ROM的容量一致 Ø 异同与比较 a. 2764是8K的ROM、6264是8K的RAM b. 2764与单片机连接的数据线是单向的(从ROM到单片机) c. 6264与单片机连接的数据线是双向的 d. 控制线不同:ROM是OE---PSEN RAM是WR---WE、RD---OE e. 片选信号线都是38译码器的Y0非接线端,因此两片存储器的地址是一样的 情况二:扩展的RAM和ROM的容量不一致 Ø 异同与比较 a. 2732是4KROM、6116是2KRAM b. 2732需要12根数据线、6116需要11根数据线,最终单片机要分配
[单片机]
C<font color='red'>51单片机</font>同时扩展SRAM和EPROM
AT89S51单片机的两种低功耗节电工作模式解析
AT89S51有两种低功耗节电工作模式:空闲模式(Idle Mode)和掉电保持模式(PowerDown Mode),其目的是尽可能低降低系统功耗。在掉电保持模式下,VCC可由后备电源供电。图2-22为两种低功耗节电模式的内部控制电路。 AT89S51的两种低功耗节电模式可通过指令对特殊功能寄存器PCON的位IDL和位PD的设置来实现。特殊功能寄存器PCON的格式如图2-23所示,字节地址为87H PCON寄存器各位的定义如下: SMOD:串行通信的波特率选择位 一:保留位,未定义。 GF1、GFO:通用标志位,供用户在程序设计时使用,两个标志位用户应充分利用。 PD:掉电保持模式控制位,若PD=1,则进入掉电保持模式。
[单片机]
AT89S<font color='red'>51单片机</font>的两种低功耗节电工作模式解析
51单片机实现PS/2键盘的控制
  随着单片机的不断发展,PS/2键盘在单片机系统中的应用越来越广泛。PS/2键盘其实只有4个引脚有意义,它们分别是CLOCk(时钟脚)、DATA(数据脚)、+5V(电源脚)和Ground(电源地)。在PS/2键盘与PC机的物理连接上只要保证这4根线一一对应就可以了。PS/2键盘靠PC的PS/2端口提供+5V电源,另外两个脚Clock(时钟脚)和DATA(数据脚)都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。      1、硬件设计      本电路原理图如下图所示,PS2接口的1脚接P3.4,用来接收串行的键码信号,5脚接P3.3(INTl),是时钟信号,每当5脚
[单片机]
用<font color='red'>51单片机</font>实现PS/2键盘的控制
DSP56800开发软件包SDK使用经验点滴
Motorola的SDK(Soft wareDevelopment Kit)是从DSP56800的Metrowerks CodeWarrior开发工具中发展而来的,SDK是一个API(Application Prograrmming Inter—face)、库、服务、规则的集合体。它为DSP56800系列芯片的开发应用提供了一个很好的平台,使得开发者可以脱离硬件的束缚,在软件仿真的环境下进行开发,缩短产品进入市场的周期。SDK使得开发者对设备的操作就象对文件的操作一样,非常方便。 下面是笔者在开发应用DSP56F807芯片过程中使用SDK对其开发操作的一点经验。 1 对SDK中API函数的总体认识 使用API函数对片上集
[嵌入式]
8051单片机的内部的结构及运行过程解析
1.ROM:只读存储器,单片机的只读存储区大多用于存储程序固又称程序存储器。 51单片机是EPROM,所谓的EPROM是可擦除的只读存储器。可以把原来的程序擦除了,再写一个新的进去。 断电后是可以保存的,数据存储器(RAM)是不能保存的。 RAM只能在程序执行的时候不断地重新存储定义的变量。如int x,int y 可以通过code这个指令来将定义的变量放在ROM,而不是RAM中,节省RAM资源 2.RAM:随机存取存储器,用于存储定义的变量等,速度快 51单片机的RAM存储容量远小于ROM,但是速度非常之快 内部详细图示 内部的结构看似十分复杂,但是大致上可以分为两个部分:运算器(红色框)和控制器(蓝色框)。 运算器
[单片机]
80<font color='red'>51单片机</font>的内部的结构及运行过程解析
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved