TMS320VC5402的HPI与51单片机的接口设计

发布者:RainbowDreamer最新更新时间:2007-10-08 来源: 电子元器件应用关键字:时钟  频率  存储  并行 手机看文章 扫描二维码
随时随地手机看文章

0 引言

TMS320VC5402是TI公司推出的性价比极高的定点数字信号处理器(DSP)。它具有先进的多总线结构(三条16位数据存储器总线和一条程序存储器总线);其数据/程序寻址空间为1 M×16 bit: 内置4 k×16 bitP/DROM和16 k×16 bit-DARAM;此外,该DSP内含两个多通道缓冲串行口,一个8位并行与外部处理器通信的HPI口,2个16位定时器以及6通道DMA控制器;具有低功耗,适合电池供电设备等特点[1]。

51系列单片机是一种很经典的单片机。20多年来一直久盛不衰。而且Intel通过授权5l内核,目前已出现了很多第三方生产的51系列产品。这些产品一般都具有较高的时钟频率和较大的存储空间,而且还能运行嵌入式操作系统。因而极大地提高了单片机的性能,扩大了它的应用范围。

1 TMS320VC5402的主机接口(HPI)

HPI(主机接口)是主机与TMS320VC5402进行数据交换的8 bit并行数据口。该接口在
TMS320VC5402芯片上,内部有数据寄存器(HPID),控制寄存器(HPIC)及地址寄存器(HPIA)。HPI口可用8 bit数据线传输16 bit的数据,并可通过设置控制寄存器的相关位来控制高8位和低8位传输。HPI有两种工作方式:一种是主机独占模式 (HOM); 另一种是主机和TMS320VC5402共享模式(SAM)。其中SAM是通用方式,二者都可寻址HPI存储器(DARAM)。当二者产生冲突时,主机具有较高的优先权,而在TMS320VC5402插人一个等周期。通过HPI传输的数据率是每5个CLKOUT时钟周期传输1字节。HMS320VC5402芯片中HPI8的内部结构逻辑如图1所示[2]。

HPI通信主要是通过对HPIA、HPIC和HPID3个寄存器赋值来实现的。简单地说,HOST通过外部引脚HCNTL0和HCNTLl选中不同的寄存器后,就将当前8位数据发送到该寄存器中了。由于HPIC是16位寄存器,而HPI口总是传送8位数据宽度,所以用HOST向HPIC写数据时,需要发送两个一样的8位数据。对TMS320VC5402来说,仅低8位有意义。当地址寄存器HPIA选择后,直接向它写数据就可以了,但是要注意MSB和LSB的顺序。另外,HPIA具有自动增长的特性,即在每写入一个数据前和每读一个数据后HPIA都会自动加1。这样,如果使用了该功能,只需设定一次HPIA即可实现连续数据块的写入和读出,只是在实现时,数据应首先从主机发到HPID中,然后再根据HPIA指定的地址把HPID中的数据再写到片内RAM的地址中。

2 DSP与单片机的通信

由于本系统具有主从式双CPU结构,因此,DSP从处理器和单片机主处理器之间的数据通信是必不可少的。它们之间的通信接口设计是整个系统的一个关键。对于DSP和单片机的具体连接方案,考虑到不论是接串口还是接I/O口都要占用DSP的硬件资源,同时软件开销也非常大。而TMS320VC5402提供有HPI接口,可专用于DSP和主机之间的通信,因此DSP在通过HPI口和主机通信的过程中完全没有硬件和软件开销,而是由DSP自身的硬件来协调冲突,因从而不会打断DSP正常程序的运行。在HPI通信方式下,DSP的片内存储器对外界是完全透明的,可由主机通过访问HPI的地址和数据寄存器来完成对DSP片内存储器的读写。本系统采取DSP的HPI口和单片机的P0口相连来作为数据传输口从而实现两者的交互。

2.1 DSP和单片机的硬件接口设计

本设计选取ATMEL公司的AT89C51单片机作为主机,并以I/O接口方式连接DSP和AT89C51,设计时使用了AT89C51的两个通用I/O端口P0和P2,其硬件接口原理图如2所示。图中将AT89C51的端口P0和HPI的8位数据线HD0一~HD8相连作为数据传输通道,P20~P24设置为输出以控制HPI口的操作。其中P2.0和P2.1分别连接HCNTL0和HCNTLl以实现对HPIC、HPIA和HPID寄存器的访问,P2.2连接字节识别信号HBIL可控制读写数据是属16位字的第一字节还是第二字节,P2.4作为读写控制选通信号连接HR/W,P2.7与HCS相连,而连接HDS1作为数据选通信号来锁存有效的HCNTL0/1,HBIL和HR/W信号。 INT0作为输入与HPI口的主机中断信号HINT相连。ALE与HAS相连,WR和HDS2相连。由HPI接口的原理可知,在HCNTL0/1、HBIL和HR/W信号有效之后,设置HDS1为低电平可实现读写的数据选通,从而完成AT89C51对DSPHPI口的读写操作。在数据交换过程中,AT89C51向HPI发送数据可通过置TMS320VC5402的HPI控制寄存器HPIC中的DSPINT位为1来中断5402。AT89C51接收来自HPI的数据时则可用查询方式。当TMS320VC5402DSP准备发送数据时,置/HINT信号为低。当AT89C51查询到INT0为低时,系统将调用接收数据子程序来实现数据的接收。

TMS320VC5402 DSP的外部I/O引脚用的是3.3 V逻辑电平,而AT89C51单片机用的是5 V逻辑电平,两者之间存在电平差异而不能直接相连,故采用74LVC16245进行接口隔离同时还可增强DSP的总线驱动能力。

2.2 通过HPI接口读取数据的软件设计

在硬件搭建好后,接下来便是软件功能模块的设计工作。本系统主机程序主要完成HPI寄存器的选择、时序的构建和数据读/写等。可根据DSP HPI接口的工作时序置HPIENA引脚为高电平,使能DSP进入HPI工作模式,然后设置TMS320VC5402的HPIC寄存器和HPIA寄存器,使其工作在能够配合8 bit HPI Bootloader状态下。AT89C51的部分汇编源程序所完成的功能包括初始化串口、初始化HPI接口、从串口接收命令字(包括16,bit地址和8,bit数据)、通过HPI接口读取DSP的相应内部存储器,并发送到串口、以及等待接收下一次的命令等,其具体汇编程序代码如下:




3 结束语

DSP与单片机之间有许多连接方式, (例如利用双口RAM或者通过串口),但是它们都要占用DSP的处理时间,这在要求苛刻的场合可能会影响到系统的实时性。而HPI接口则通过DSP片内的DMA控制器来访问片内存储器,它不需要DSP的干预。可以说,HPI接口是DSP的一个"后门",单片机通过这个"后门"可以访问到DSP的片内存储器。只有当HPI接口和DSP同时对同一地址进行访问时,由于HPI具有访问优先权,这时DSP的执行大会被延迟一个周期,而这种情况对系统实时性的影响是非常小的。

关键字:时钟  频率  存储  并行 引用地址:TMS320VC5402的HPI与51单片机的接口设计

上一篇:基于SPCE061A的语音识别技术应用
下一篇:基于AT89C51的数据采集系统设计新方法

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

利用555定时器构成白光LED电压调节器的方法
本文以一个555定时器为主要器件构成电压调节电路(如图所示),用来控制一个或多个白光LED。定时器IC1与R1、R2、C2构成了可复位非稳态多谐振荡器。 首次输入电压V S 后,D1将使存储电容器C1充电直到其电压略低于V S 。最初,晶体管Q2处于截止状态,IC1的复位输入为高电平,输出端(OUTPUT)为高电平,以让电流能经过R1给C2充电。 这段时间内,R4拉动放电端(DISCHARGE)导通晶体管Q1,电感L1中的电流I L 开始斜线增大。由于Q1饱和,因此D3和LED都处于反向偏压状态。 当C2的电压超过IC1中管脚6的极限电压(THRESHOLD)时,输出端(OUTPUT)与放电端(DISCHARGE)都变为低电平
[应用]
S3C6410存储器、地址映射与芯片启动
S3C6410第一章 存储器、地址映射与芯片启动简介 在尚观听了一阵课了,收获目前还算一般,并没有特别兴奋的点。截止今日ARM内容已经结束,有些课并不是很有兴趣去听。根据本人一向颇为难以理解的习惯,当时不听事后琢磨,现在是仔细写下东西的时候了。那么,也不嫌再多单片机文档的繁琐,重新开始这个从裸机到U-BOOT的小过程。 目前我们使用的是ARM11核心的三星S3C6410作为处理器。事实上不搭系统就是单片机的类型,起码我一直是这么称呼的。深深的希望内核驱动课程给我以启发,否则就太无趣了。 很显然,我们的S3C6410微处理器是封装了ARM1176JZF-S的核,关于ARM11另开博文再讲自己的学习,这里仅仅针对高一层的641
[单片机]
S3C6410<font color='red'>存储</font>器、地址映射与芯片启动
电液伺服阀频率测试_电液伺服阀结构图
  电液伺服阀频率测试   电液流量伺服阀频率特性定义为:控制电流在某个频率范围内做正弦变化时,阀的空载控制流量对控制电流的复数比。因伺服阀内部含有多种非线性环节,伺服阀的性能又受外界环境条件影响,因此规定伺服阀的频率特性应在标准试验条件及控制电流峰间值为50%额定输入信号下测定。   设伺服阀的传递函数为G(s),伺服阀的频率特性为G(jω)=G(s)|s=jω,G|(jω)|表示频率特性的幅值,∠G(jω)表示频率特性的相角。当对阈值恒定的、频率在某一范围内变化的正弦信号,便可以得到G|(jω)|和∠G(jω)变化情况,分别称为伺服阀的幅频特性和相频特性。也可以对伺服阀输入某一幅值的阶跃信号,相应地测取伺服阀输出的阶跃响应
[嵌入式]
电液伺服阀<font color='red'>频率</font>测试_电液伺服阀结构图
LSI完成与杰尔系统公司的合并
这次合并产生了一个为存储、网络和消费电子市场提供芯片到系统解决方案的领导者 (2007年4月2日,加利福尼亚) - LSI Logic公司(NYSE: LSI)今天宣布它已经完成了与杰尔系统公司(NYSE: AGR)的合并,合并从4月2日起生效,并且命名合并后的新公司为LSI。新公司将继续以LSI为名称在纽约证交所交易。 LSI公司总裁和CEO Abhi Talwalkar 说“今天的合并标志着一个新公司的诞生,这是两个领先的芯片到系统解决方案的创新者的联合。未来,我们的规模和资源将会使我们增强为客户和股东创造价值的能力,并在关键市场取得成功。” 通过一个无与伦比的创新渠道以及为巨大的和成长中的市场提供具有广泛竞争力的和客
[焦点新闻]
Maxim推出具有亚皮秒级抖动性能的频率合成器
Maxim 推出用于高速系统的带有 9 路相位对齐 LVPECL 输出的低抖动频率合成器 MAX3671 / MAX3673 。这两款器件采用低噪声 VCO 和 PLL 架构,从 62.5MHz 参考时钟输入产生高频 (312.5MHz) 、低抖动 (0.3ps RMS ) 时钟信号。 MAX3671 通过 3 个四电平控制输入配置,可同时产生两路不同的频率,分别为以太网端口和 MAC 提供时钟; MAX3673 产生 CPRI/UMTS 参考时钟输出 (122.88MHz 、 245.76MHz) 。该性能省去了昂贵的高频振荡器和扇出缓冲器,节省了电路板空间,降低了成本。 MAX3671 可理想用于企业交换机和路由
[网络通信]
车载CAN总线记录仪实现大容量存储系统
引言   CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。本文利用“FPGA+单片机”作为存储控制器,采用基于LZW算法的数据压缩技术,以SDRAM作为周期存储和缓存,SD卡作为最终存储载体,实现车载CAN总线记录仪实现大容量 存储系统 。   1 系统整体结构设计      如图1所示,存储系统主要包括以下模块:FPGA主控模块、CAN总线监听控制模块、数据压缩模块、SDRAM控制模块和单片机控制CH376模块。本
[模拟电子]
车载CAN总线记录仪实现大容量<font color='red'>存储</font>系统
MSP432的定时器时钟timerPeriod大小对舵机响应的影响
项目场景: 最近做电赛的时候用到了Ti公司的msp432P401R芯片,使用官方给的sdk工程里面的drivelib库simplelink_msp432p4_sdkexamplesnortosMSP_EXP432P401Rdriverlib 问题描述: 在迁移例程时发现例程中的时钟设置不一样,在TA0中设置的SMCLK以及MCLK的时钟源是REFO,频率是128kHZ //! /* Setting MCLK to REFO at 128Khz for LF mode * Setting SMCLK to 64Khz */ MAP_CS_setReferenceOscillatorFrequency(CS
[单片机]
串行实时时钟芯片DSl302程序设计中的问题与对策
   摘 要: 指出了串行实时时钟芯片DSl302程序设计中几个易被疏忽而导致错误的问题,分析了问题的原因,并给出了解决问题的方法。     关键词: 串行时钟 程序设计 问题 原因 解决方法     美国Dallas公司推出的串行接口实时时钟芯片DSl302可对时钟芯片备份电池进行涓流充电。由于该芯片具有体积小、功耗低、接口容易、占用CPU I/O口线少等主要特点,故该芯片可作为实时时钟广泛应用于智能化仪器仪表中。     笔者在调试中发现在对DSl302编程中有几个问题易被疏忽而导致错误,现提供给读者参考。     1 读操作出现的错误     按照参考文献 的读操作程序框图和参考文献
[半导体设计/制造]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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