微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR和TMS320VC5402的HPI接口通信设计

AVR和TMS320VC5402的HPI接口通信设计

时间:03-06 来源:互联网 点击:

模式时,其复位后首先执行bootloader程序。Bootloader程序依次扫描各种加载方式,当某一种方式满足时,程序停止扫描,开始以此种方式加载DSP程序。这里我只介绍HPI方式的bootloader,其他方式的bootloader加载方法请参考[5-7]。当DSP查询到有INT2中断发生时就进入HPI方式的bootloader,清零0x007F存储器单元,设置HINT信号向主机发送中断请求。查询 0x007F单元的内容是否为零,当不为零时表明DSP程序加载完毕。将0x007F单元的内容作为程序的入口地址开始执行加载的DSP程序。

3.2.HPI bootloader方式的软件实现框架

通过CCS将DSP源程序编译连接成COFF文件格式得到.out文件。然后,由.out文件获得DSP代码的二进制文件。在AVR的C语言编辑环境ICCAVR V6.30C中采用下述方法将DSP的代码数据配置到AVR flash空间。要注意const关键字使用。

/* dsp vector section data. start address = 0x1000, length = 0x78 */
const unsigned int vector[120]={0xF073,0x3000,…,0xF495};

当DSP进入HPI Bootloader方式时,AVR的外部中断2产生。AVR响应外部中断2传输完相应的数据段到DSP对应的片内存储器后要撤销DSP的中断申请。软件框架如下:

#pragma interrupt_handler int2_isr:4
void int2_isr(void)
{
unsigned int number;
HPIAL = 0x0f;
HPIAH = 0xff;
for(number=0;number120;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需要设置命令和响应缓冲区、处理响应的命令和设置响应标志等工作。软件设计框架如下:

interrupt void HPINT_isr(void);
#pragma DATA_SECTION(orderbuffer,order_sec) /* 设置命令和响应缓冲区 */
volatile unsigned int orderbuffer[8];
……
interrupt void HPINT_isr(void)
{
switch(order[0])
{
case order1: /* 处理命令1 */
……
orderbuffer[2] = 0xaaaa; /* 处理完命令1,设置响应标志 */
break;
……
}
}

5. 结论

1) 本文详细分析了AVR和TMS320VC5402 HPI接口通信软硬件设计,给出了硬件设计原理图和软件设计框架。实际测试表明该系统设计方案运行可靠。

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

3) 有些DSP芯片内部集成的bootloader程序通过HPI口只能配置内部存储器,对于DSP程序比较大的系统仅仅利用集成的bootloader程序不能完成全部加载工作。此时用户可以自行设计一个bootloader程序,将大的DSP程序加载到外部存储器空间。

6.参考文献
[1] Texas Instruments Inc. TMS320C54x DSP Reference Set Volume 5: Enhanced Peripherals. P182~287
[2] Atmel Incorporation. ATMEL64/ATMEL64L preliminary.
[3] Texas Instruments. TMS320VC5402 and TMS320UC5402 Bootloader.
[4] Texas Instruments. TMS320VC5402 FIXED POINT DIGITAL SIGNAL PROCESSOR data sheet.
[5] Texas Instruments. A Practical Application of the TMS320C54x Host Port Interface(HPI).
[6] 李忠,李峰. DSP编程的几个关键问题. 电子技术应用, 2003,1:15-17.
[7] 香勇,施克仁. TMS320C54x的加载引导. 国外电子元器件, 2003,3:4-7.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top