利用ISA总线实现对DSP芯片VC5402的软配置
通过HPI与VC5402进行数据交换时,实际上只是对VC5402的三个寄存器进行访问,它们是HPI控制寄存器HPIC、HPI地址寄存器HPIA和HPI数据寄存器HPID。HOST对这三个寄存器的寻址,是通过输入信号线HCNTL0和HCNTL1来完成的,具体过程如下表一。实际应用中通常是把HCNTL0、HCNTL1连同HBIL接到HOST的地址线上。
表一HPI主机并口的地址分配
HCNTL0HCNTL1功能描述00HOST读写HPI控制寄存器HPIC01HOST读写HPI控制寄存器HPID,同时HPIA具有自动加1的功能,这种方式可以数据交换的速度10HOST读写HPI地址寄存器HPIA11HOST读写HPI数据寄存器HPID,HPIA寄存器不受影响
电路中用一片GAL16V8来完成PC的I/O地址译码。下面来对VC5402进行I/O资源分配。分配情况见表二。根据资源分配,对照图一所示电原理图,写出GAL16V8的译码状态方程:
IO4=A9*/A8*/A7*/A6*A5*A4*/A3*/A2*/A1*/A0*AEN*/IOW;对VC5402复位译码
/IO1=/IOW;送/HDS1进行数据锁存
/IO6=A9*/A8*/A7*/A6*A5*A4*A3*AEN;HPI地址选通
为了防止74LVC245高阻输出时的不稳定对/HDS1造成误操作,使用10KΩ的电阻对/HDS1进行上拉是必要的。
表二PC对VC5402的I/O资源分配
I/O地址
操作
230H对VC5402进行复位,当写00H时是执行复位,当写入01H时是跳出复位状态238H写HPIC是第一个字节239H写HPIC是第二个字节23CH写HPIA是第一个字节23DH写HPIA是第二个字节23EH写HPID是第一个字节23FH写HPID是第二个字节
三、软件设计
1.软件开发步骤
基于ISA总线实现对VC5402的软配置,软件的关键在于HOST方软件的编写,至于VC5402的运行程序的编写当然不在讨论的范畴。HOST方软件所要完成的任务就是把VC5402的运行程序按照编程者事先指定好的地址进行定位装载然后运行。那么究竟应该把什么格式的文件装载到VC5402的内部,又怎样装载呢?鉴于此,可以把HOST方软件用下面四个步骤来概括:
⑴生成*.OUT形式的公用目标文件(COFF)。
当在TI公司的C54X集成开发环境CCS5000下进行C54X系列的程序开发时,都会经过编译,链接最后生成*.OUT文件。
⑵对*.OUT文件进行提取,从中筛选出对最后装载有用的代码和地址信息。
第一步所产生的*.OUT文件由于是COFF格式的文件,也就是一种模块化的经过Bootload后就可执行的文件,它的可重定位特性使得用户可以对程序在允许的地址范围内灵活地安排。正因为如此,*.OUT文件还不是一个完完全全的可执行代码,它里面包含有一些关于程序中各个段的诸如起始地址、段的长度这样的辅助信息,如果把这些信息连同程序代码都装入DSP内部,程序是不会被正常执行的。这时必须要对*.OUT进行辅助信息与可执行代码的提取与分离。完成这个任务是靠专门的程序完成的,是TI公司提供的,程序的名称是:Coff_both.exe。这个程序可以在TI的网站上免费下载,空间为120K。利用该程序对*.OUT文件进行操作最后生成第三步所需的*.OUT.C的文件。
⑶把经过提取的*.OUT.C文件按照文件提供的起始地址和程序代码通过HPI装载到VC5402内部。
第二步生成的*.OUT.C文件明确地告诉了程序有几个段,每个段的大小,段的起始地址以及每个段的16进制代码。有了这个文件,就知道了该写些什么内容到VC5402里去才能够开始执行VC5402的程序了。接下来要做的就是通过编写自己的应用程序把*.OUT.C文件中的16进制代码通过HPI写入VC5402内部。
⑷把程序执行的首地址写入VC5402内部地址为0X007F的单元内部。
在把所有的代码都装载完毕后,最后必须要在VC5402内部0X007F的RAM单元内写入程序执行的首地址。当VC5402检测到0X007F单元内的值为非0值时,就知道HPI装载过程已经结束,并从0X007F单元指定的地址开始执行程序,至此整个装载过程结束。
2.软件开发实例
结合图一的硬件电路,对照软件开发的每一个步骤,我们给出了一个简单的软件开发的例子,意在使对此感兴趣的读者能够通过此例,真正明白用HPI进行VC5402装载的全过程。图一中VC5402的XF输出引脚接了一个发光二极管,VC5402程序的功能就是使该二极管不停的闪烁。下面按照上述的四步流程进行:
⑴编写example.asm和example.cmd文件,用CCS5000集成开发软件生成example.out文件。关于通过控制XF引脚来使发光二极管闪烁的VC5402程序的编写,这里就不再赘述。
⑵把Coff_both.exe和example.out文件放在同一目录下,在DOS命令提示符下键入:Coff_both-outexample.out。这时就会生成example.out.c格式的文件。该文件的形式见图三。这个程序只有一段程序,即.text段,这段程序一共由41个字组成,该程序段需要装载到开始地址为0X0080开始的内部RAM中去运行。而这41个字的16进制代码则是最后真正被执行 《利用ISA总线实现对DSP芯片VC5402的软配置(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/176269.html
表一HPI主机并口的地址分配
HCNTL0HCNTL1功能描述00HOST读写HPI控制寄存器HPIC01HOST读写HPI控制寄存器HPID,同时HPIA具有自动加1的功能,这种方式可以数据交换的速度10HOST读写HPI地址寄存器HPIA11HOST读写HPI数据寄存器HPID,HPIA寄存器不受影响
电路中用一片GAL16V8来完成PC的I/O地址译码。下面来对VC5402进行I/O资源分配。分配情况见表二。根据资源分配,对照图一所示电原理图,写出GAL16V8的译码状态方程:
IO4=A9*/A8*/A7*/A6*A5*A4*/A3*/A2*/A1*/A0*AEN*/IOW;对VC5402复位译码
/IO1=/IOW;送/HDS1进行数据锁存
/IO6=A9*/A8*/A7*/A6*A5*A4*A3*AEN;HPI地址选通
为了防止74LVC245高阻输出时的不稳定对/HDS1造成误操作,使用10KΩ的电阻对/HDS1进行上拉是必要的。
表二PC对VC5402的I/O资源分配
I/O地址
操作
230H对VC5402进行复位,当写00H时是执行复位,当写入01H时是跳出复位状态238H写HPIC是第一个字节239H写HPIC是第二个字节23CH写HPIA是第一个字节23DH写HPIA是第二个字节23EH写HPID是第一个字节23FH写HPID是第二个字节
三、软件设计
1.软件开发步骤
基于ISA总线实现对VC5402的软配置,软件的关键在于HOST方软件的编写,至于VC5402的运行程序的编写当然不在讨论的范畴。HOST方软件所要完成的任务就是把VC5402的运行程序按照编程者事先指定好的地址进行定位装载然后运行。那么究竟应该把什么格式的文件装载到VC5402的内部,又怎样装载呢?鉴于此,可以把HOST方软件用下面四个步骤来概括:
⑴生成*.OUT形式的公用目标文件(COFF)。
当在TI公司的C54X集成开发环境CCS5000下进行C54X系列的程序开发时,都会经过编译,链接最后生成*.OUT文件。
⑵对*.OUT文件进行提取,从中筛选出对最后装载有用的代码和地址信息。
第一步所产生的*.OUT文件由于是COFF格式的文件,也就是一种模块化的经过Bootload后就可执行的文件,它的可重定位特性使得用户可以对程序在允许的地址范围内灵活地安排。正因为如此,*.OUT文件还不是一个完完全全的可执行代码,它里面包含有一些关于程序中各个段的诸如起始地址、段的长度这样的辅助信息,如果把这些信息连同程序代码都装入DSP内部,程序是不会被正常执行的。这时必须要对*.OUT进行辅助信息与可执行代码的提取与分离。完成这个任务是靠专门的程序完成的,是TI公司提供的,程序的名称是:Coff_both.exe。这个程序可以在TI的网站上免费下载,空间为120K。利用该程序对*.OUT文件进行操作最后生成第三步所需的*.OUT.C的文件。
⑶把经过提取的*.OUT.C文件按照文件提供的起始地址和程序代码通过HPI装载到VC5402内部。
第二步生成的*.OUT.C文件明确地告诉了程序有几个段,每个段的大小,段的起始地址以及每个段的16进制代码。有了这个文件,就知道了该写些什么内容到VC5402里去才能够开始执行VC5402的程序了。接下来要做的就是通过编写自己的应用程序把*.OUT.C文件中的16进制代码通过HPI写入VC5402内部。
⑷把程序执行的首地址写入VC5402内部地址为0X007F的单元内部。
在把所有的代码都装载完毕后,最后必须要在VC5402内部0X007F的RAM单元内写入程序执行的首地址。当VC5402检测到0X007F单元内的值为非0值时,就知道HPI装载过程已经结束,并从0X007F单元指定的地址开始执行程序,至此整个装载过程结束。
2.软件开发实例
结合图一的硬件电路,对照软件开发的每一个步骤,我们给出了一个简单的软件开发的例子,意在使对此感兴趣的读者能够通过此例,真正明白用HPI进行VC5402装载的全过程。图一中VC5402的XF输出引脚接了一个发光二极管,VC5402程序的功能就是使该二极管不停的闪烁。下面按照上述的四步流程进行:
⑴编写example.asm和example.cmd文件,用CCS5000集成开发软件生成example.out文件。关于通过控制XF引脚来使发光二极管闪烁的VC5402程序的编写,这里就不再赘述。
⑵把Coff_both.exe和example.out文件放在同一目录下,在DOS命令提示符下键入:Coff_both-outexample.out。这时就会生成example.out.c格式的文件。该文件的形式见图三。这个程序只有一段程序,即.text段,这段程序一共由41个字组成,该程序段需要装载到开始地址为0X0080开始的内部RAM中去运行。而这41个字的16进制代码则是最后真正被执行 《利用ISA总线实现对DSP芯片VC5402的软配置(第2页)》