AVR与TMS320VC5402的HPI接口通信接口设计.docx

上传人:b****8 文档编号:9723920 上传时间:2023-02-06 格式:DOCX 页数:7 大小:21.64KB
下载 相关 举报
AVR与TMS320VC5402的HPI接口通信接口设计.docx_第1页
第1页 / 共7页
AVR与TMS320VC5402的HPI接口通信接口设计.docx_第2页
第2页 / 共7页
AVR与TMS320VC5402的HPI接口通信接口设计.docx_第3页
第3页 / 共7页
AVR与TMS320VC5402的HPI接口通信接口设计.docx_第4页
第4页 / 共7页
AVR与TMS320VC5402的HPI接口通信接口设计.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

AVR与TMS320VC5402的HPI接口通信接口设计.docx

《AVR与TMS320VC5402的HPI接口通信接口设计.docx》由会员分享,可在线阅读,更多相关《AVR与TMS320VC5402的HPI接口通信接口设计.docx(7页珍藏版)》请在冰豆网上搜索。

AVR与TMS320VC5402的HPI接口通信接口设计.docx

AVR与TMS320VC5402的HPI接口通信接口设计

AVR与TMS320VC5402的HPI接口通信接口设计

摘要:

TMS320VC5402(VC5402)不具有可编程的非易失片内存储器,必须外扩存储程序代码和参数的存储器,在多数场合仅仅简单的扩充此类存储器会造成系统设计的繁琐。

利用AVR单片机片内大容量的flash存储器来存储DSP的程序和参数,使系统的整体设计更加紧凑,并弥补了VC5402控制和通用通信功能的不足,这不失为一种有效的解决办法。

文中详细分析了AVR单片机(ATMEL64L)同VC5402的HPI接口通信硬件设计和DSP程序代码的加载方法。

在通信软件的设计方面着重阐述了通信协议和DSP的bootloader实现方法。

关键字:

AVR,主机接口,bootloader,数字信号处理器

1. 引言

TMS320VC5402(简称VC5402)是TI公司的DSP处理器,具有高级的数据处理结构和丰富的片内资源。

但是VC5402DSP内部不具有可编程的非易失片内存储器,所以为了保存程序代码和参数表,一般情况下要外扩一片存储器。

VC5402可用的通用输入输出口(I/Oport)少,软件上对I/O口的控制不灵活,没有对I/O口按位控制的指令,且具有流水线延迟。

多不具有通用的通信接口如UART接口,CAN总线接口等,对控制的支持功能较少。

AVR(AdvancedRISCArchitecture)单片机是ATMEL公司的flash型单片机,广泛应用于数据处理和控制领域,具有丰富的片内资源和灵活的接口形式。

片内往往集成了几十kB乃至几百kB的flash存储器,每个端口几乎都可以通过软件设置为通用的I/O口和具有特殊功能的端口。

将AVR单片机和VC5402处理器相结合,发挥各自的优点将是一个很好的设计方案。

本文详细描述了AVR型单片机ATMEL64L和VC5402的HPI接口的硬件设计原理和软件设计构架,同时详细阐述了VC5402HPI形式的bootloader方法及AVR实现方法。

2. 硬件设计原理

2.1. VC5402的HPI接口

VC5402的HPI接口是一个增强版的8位并行的HPI接口简称为HPI-8[1]。

在HPI-8接口中VC5402是从机。

主机可以访问VC5402中位于0x60~0x3FFF存储器空间的片内存储器,这一区域是VC5402用户可用的所有的片内存储器资源。

主机通过两个寄存器:

地址寄存器(HPIA)和数据寄存器(HPID)访问VC5402内部的存储器。

还有一个控制寄存器(HPIC)包含有控制和状态信息。

HCNTL[0..1]是HPIA、HPID和HPIC的选址信号。

同时,VC5402对HCNTL[0..1]=“01”设置了特殊的访问模式以加快主机访问片内存储器的速度。

此时主机读写HPID的内容不用每次设置HPIA,当主机读HPID时VC5402将当前HPIA所指出的片内存储器的数据传送到HPID寄存器,同时HPIA的内容减1,当主机写HPID时DSP先将当前HPIA的内容加1,然后由此时HPIA所指出的片内存储器的数据传送到HPID寄存器。

由此可见此种方式比较适合于主机访问DSP内部的连续存储器空间。

由于DSP内部是按着16位的数据进行组织,所以主机通过8位的HPI口进行读写操作都必须由两次操作组成,在两次操作中由HBIL信号标明高低位字节。

2.2. ATMEL64L简介

   AVR单片机是ATMEL公司的8位高性能的低功耗微控制器。

具有高级的精简指令集结构,绝大多数指令都是单周期指令,执行速度快。

ATMEL64L是Atmega103的升级版,具有64k字节在线可编程的flash存储器,可用于存储程序和固定的数据。

具有2k字节的EEPROM,位于数据区,可用于保存参数表。

具有4k字节的SRAM,为动态数据结构的存储建立了可能。

丰富的指令集、大容量而多样的存储器结构增加了ATMEL64L程序设计的灵活性。

另外ATMEL64L还具有丰富的片内外设,诸如:

USART、SPI、定时器/计数器、PWM通道、在片的模拟比较器等,提供了丰富的通信及控制资源。

2.3. 硬件设计实现

ATMEL64L和TMS320VC5402的HPI-8接口的硬件设计关键在于实现HPI-8接口的逻辑时序。

我们研究ATMEL64L外部数据空间的读写时序[2]和HPI-8接口时序[1]发现:

AVR的ALE信号在下降沿锁存低8位地址信号(DA7:

0),而HAS信号也是在下降沿锁存HCNTL[0..1]、HBIL和HRW信号。

在AVR的WR信号的上升沿数据总线上的数据DA7:

0已处于有效状态,在RD信号的上升沿来临时数据总线的数据DA7:

0必须处于有效状态,同时HPI-8的两个数据存储信号HDS1和HDS2均是在上升沿将相应的寄存器内容设置到HD[7..0]上或是将HD[7..0]的数据锁存到相应的寄存器。

由此可见HPI-8的重要控制线均可以和AVR相应的控制线直接相连而不需要其他逻辑电路。

设计的电路原理图见图1。

图1电路原理图

当DSP退出复位状态后,30个有效时钟周期内触发了一个有效的DSP中断2,则DSP将仅进入HPI的bootloader加载方式。

原理图中将HINT引脚和DSPINT2引脚直接相连就是为了DSP复位后实时的触发DSPINT2中断。

VC5402通过ATMEL64L的INT2中断申请加载DSP程序

3.HPIbootloader方式的实现

3.1. DSPbootloader方式简介

DSP的bootloader模式就是将DSP的程序代码和参数表由存储位置移动到运行位置。

之所以采用这一方式主要出于以下几方面的考虑:

1.DSP系统的运行速度很快,如果程序代码存储在访问速度较慢的非易失存储器,将严重影响数据处理的速度。

为提高效率有必要将程序代码移动到快速的存储空间[3]。

2.将程序代码存储位置和运行位置分开将有利于软件的在线升级。

VC5402的片内ROM存储器0xF800~0xFBFF中有TI公司固化的bootloader程序[3][4]。

当VC5402处于微计算机模式时,其复位后首先执行bootloader程序。

Bootloader程序依次扫描各种加载方式,当某一种方式满足时,程序停止扫描,开始以此种方式加载DSP程序。

这里我只介绍HPI方式的bootloader,其他方式的bootloader加载方法请参考[5-7]。

当DSP查询到有INT2中断发生时就进入HPI方式的bootloader,清零0x007F存储器单元,设置HINT信号向主机发送中断请求。

查询0x007F单元的内容是否为零,当不为零时表明DSP程序加载完毕。

将0x007F单元的内容作为程序的入口地址开始执行加载的DSP程序。

3.2.HPIbootloader方式的软件实现框架

通过CCS将DSP源程序编译连接成COFF文件格式得到.out文件。

然后,由.out文件获得DSP代码的二进制文件。

在AVR的C语言编辑环境ICCAVRV6.30C中采用下述方法将DSP的代码数据配置到AVRflash空间。

要注意const关键字使用。

 /*dspvectorsectiondata.startaddress=0x1000,length=0x78*/

constunsignedintvector[120]={0xF073,0x3000,…,0xF495};

    当DSP进入HPIBootloader方式时,AVR的外部中断2产生。

AVR响应外部中断2传输完相应的数据段到DSP对应的片内存储器后要撤销DSP的中断申请。

软件框架如下:

     #pragmainterrupt_handlerint2_isr:

4

voidint2_isr(void)

{

unsignedintnumber;

HPIAL=0x0f;

HPIAH=0xff;

for(number=0;number<120;number++)   /*传送vector数据段*/

{

            AUTOWL=vector[number]>>8;

  AUTOWH=vector[number];

}

……                                     /*传送其他数据段*/

 HPIAL=0x00;                         /*设置DSP程序入口地址*/

HPIAH=0x7f;

WRITEL=0x30;

WRITEH=0x00;

while(((PIND&0x04)==0x00))       /*撤销DSP的中断申请*/

        {

HPICL=0x0;

HPICH=0x8;

   }

 }

4. 通信软件设计框架

4.1. 主控器AVR命令的发布

   AVR是主控器,DSP是从机。

AVR和DSP之间通过DSP内部存储器的命令缓冲区和响应标识缓冲区交换信息。

AVR触发DSP的HPI中断通知DSP有新的命令,DSP通过向响应标识缓冲区写入不同的内容向AVR表明DSP所处的状态。

AVR通过查询的方式确定DSP的处理状态。

AVR发布命令的程序框架:

        HPIAL=0x00;

            HPIAH=0x60;

            WRITEL=orderhighbyte;

            WRITEH=orderlowbyte; /*向命令缓冲区0x60写入命令*/

            HPIAL=0x00;

            HPIAH=0x61;

            WRITEL=orderhighparameter;

            WRITEH=orderlowparameter;/*向命令缓冲区0x61写入命令参数*/

            HPICL=0x0;                  /*触发DSP中断*/

            HPICH=0x4;

dsphpidata=0x00;

HPIAL=0x00;

HPIAH=0x62;

while((dsphpidata!

=0xaa))/*判断响应标识区0x62内容是否为0xaaaa*/

            {

               dsphpidata=READL;

            dsphpidata=READH;

            }

……

4.2. DSP对主控器命令的执行

AVR发给DSP的命令由DSP在HPI中断中处理。

DSP需要设置命令和响应缓冲区、处理响应的命令和设置响应标志等工作。

软件设计框架如下:

interruptvoidHPINT_isr(void);

#pragmaDATA_SECTION(orderbuffer,"order_sec")  /*设置命令和响应缓冲区*/

volatileunsignedintorderbuffer[8];

……

interruptvoidHPINT_isr(void)

{

        switch(order[0])

        {

             caseorder1:

             /*处理命令1*/

                ……

                orderbuffer[2]=0xaaaa;    /*处理完命令1,设置响应标志*/

             break;

             ……

         }

}

5. 结论

1) 本文详细分析了AVR和TMS320VC5402HPI接口通信软硬件设计,给出了硬件设计原理图和软件设计框架。

实际测试表明该系统设计方案运行可靠。

2) 利用AVR控制功能强、集成flash存储器和DSP运算功能强、程序代码配置灵活的特点,形成AVR和DSP之间优势互补,是一个可以选择的合理的系统设计方案。

3) 有些DSP芯片内部集成的bootloader程序通过HPI口只能配置内部存储器,对于DSP程序比较大的系统仅仅利用集成的bootloader程序不能完成全部加载工作。

此时用户可以自行设计一个bootloader程序,将大的DSP程序加载到外部存储器空间。

6.参考文献

[1]TexasInstrumentsInc.TMS320C54xDSPReferenceSetVolume5:

EnhancedPeripherals.P182~287

[2]AtmelIncorporation.ATMEL64/ATMEL64Lpreliminary.

[3]TexasInstruments.TMS320VC5402andTMS320UC5402Bootloader.

[4]TexasInstruments.TMS320VC5402FIXEDPOINTDIGITALSIGNALPROCESSORdatasheet.

[5]TexasInstruments.APracticalApplicationoftheTMS320C54xHostPortInterface(HPI).

[6]李忠,李峰.DSP编程的几个关键问题.电子技术应用,2003,1:

15-17.

[7]香勇,施克仁.TMS320C54x的加载引导.国外电子元器件,2003,3:

4-7.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1