中文摘要:
TMS320VC5402 ( VC5402) 不具有可编程的非易失片内
存储器, 必须外扩存储程序代码和参数的存储器, 在多数场
合仅仅简单的扩充此类存储器会造成系统设计的繁琐。利
用AVR 单片机片内大容量的flash 存储器来存储DSP 的程
序和参数, 使系统的整体设计更加紧凑, 并弥补了VC5402
控制和通用通信功能的不足, 这不失为一种有效的解决办
法。文中详细分析了AVR 单片机( ATMEL64L) 同VC5402 的
HPI 接口通信硬件设计和DSP 程序代码的加载方法。在通信
软件的设计方面着重阐述了通信协议和DSP 的bootloader 实
现方法。
英文摘要: TMS320VC5402 (VC5402) doesn ' t have programmable
non - volatile memory, so it is necessary to expand
non - volatile memory for saving program codes and parameters.
In many applications, this architecture makes design complex. It
is a good way that DSP program codes and parameters are saved
in on- chip flash memory of AVR. So, the compacted design is
achieved and the disadvantages of VC5402 on control and general
communication functions are compensated. On the basis of
analysis on VC5402 HPI interface, hardware design of communication
between ATMEL64L AVR and VC5402 HPI is provided.
In the aspect of communication software design, communication
protocol and DSP HPI bootloader are discussed in particular.
1 引言
TMS320VC5402(简称VC5402)是TI 公司的
DSP
处理器,具有高级的数据处理结构和丰富的片内资
源。但是VC5402
DSP 内部不具有可编程的非易失片
内存储器,所以为了保存程序代码和参数表,一般情
况下要外扩一片存储器。VC5402 可用的通用输入输
出口(I/O port)少,软件上对I/O 口的控制不灵活,没有
对I/O 口按位控制的指令,且具有流水线延迟。多不具
有通用的通信接口如UART 接口,CAN 总线接口等,
对控制的支持功能较少。
AVR (Advanced RISC Architecture)
单片机是ATMEL 公司的flash 型单片机,广
泛应用于数据处理和控制领域,具有丰富的片内资源
和灵活的接口形式。片内往往集成了几十kB 乃至几
百kB 的flash 存储器,每个端口几乎都可以通过软件
设置为通用的I/O 口和具有特殊功能的端口。将
AVR
单片机和VC5402 处理器相结合,发挥各自的优点将
是一个很好的设计方案。本文详细描述了
AVR 型单
片机ATMEL64L 和VC5402 的
HPI 接口的硬件设计
原理和软件设计构架,同时详细阐述了VC5402
HPI
形式的
bootloader 方法及
AVR 实现方法。
2.1. VC5402 的HPI 接口
VC5402 的
HPI 接口是一个增强版的8 位并行的
HPI 接口简称为
HPI-8。在
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.3. 硬件设计实现
ATMEL64L 和TMS320VC5402 的
HPI-8 接口的
硬件设计关键在于实现
HPI-8 接口的逻辑时序。我们
研究ATMEL64L 外部数据空间的读写时序和
HPI-8
接口时序发现:
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。
当
DSP 退出复位状态后,30 个有效时钟周期内触
发了一个有效的
DSP 中断2,则
DSP 将仅进入
HPI 的
bootloader 加载方式。原理图中将HINT 引脚和
DSP
INT2 引脚直接相连就是为了
DSP 复位后实时的触发
DSP INT2 中断。VC5402 通过ATMEL64L 的INT2 中
断申请加载
DSP 程序
5 结论
1)本文详细分析了
AVR 和TMS320VC5402
HPI
接口通信软硬件设计,给出了硬件设计原理图和软件
设计框架。实际测试表明该系统设计方案运行可靠。
2)利用
AVR 控制功能强、集成flash 存储器和
DSP 运算功能强、程序代码配置灵活的特点,形成
AVR 和
DSP 之间优势互补,是一个可以选择的合理的
系统设计方案。
3)有些
DSP 芯片内部集成的
bootloader 程序通过
HPI 口只能配置内部存储器,对于
DSP 程序比较大的
系统仅仅利用集成的
bootloader 程序不能完成全部加
载工作。此时用户可以自行设计一个
bootloader 程序,
将大的
DSP 程序加载到外部存储器空间。