设为首页
收藏本免费论文网
老版首页
老版首页2
经济学论文 财政税收论文 证券金融论文 管理学论文 会计审计论文 工商管理论文 财务管理论文 公共管理论文 法学论文
理学论文 医药学论文 政治论文 社会学论文 教育类论文 工学论文 计算机论文 艺术类论文 哲学论文
文化论文 英语论文 应用文论文 论文指导论文 文学论文 老版免费论文 老版2免费论文 本站导航
本站已收录十余万免费论文,并不断增加中,想要什么论文资料,轻松一搜便得! 关键词:
免费工学论文免费论文网首页 --> 工学论文 --> 电子信息工程论文 -->利用isa总线实现对dsp芯片vc5402的软配置

利用isa总线实现对dsp芯片vc5402的软配置

 摘要:以PC机作为主机,通过PC的ISA总线与DSP的HPI主机并口连接作为传输通道,实现对PC机ISA插卡上的DSP芯片TMS320VC5402进行实时在线程序装载。 关键词:DSP HPI主机并口 ISA总线 软配置一、引言目前,随着微电子技术的飞速发展,在基于工业测控和数据采集领域的PC机板卡产品中,高速DSP芯片的使用已经是越来越普及。众多厂家生产的DSP芯片中以美国TI公司(德州仪器)生产的DSP芯片的应用最为普遍。同传统的诸如单片机的程序装载过程相比,DSP厂家为芯片提供了更多、更灵活的程序装载方法。电子工程师在设计DSP系统中究竟采用那种程序装载方法,应视产品类型的不同而有所选择。当前许多厂家所生产的DSP芯片中都集成了主机并行接口,利用主机并口可以完成主机和DSP之间的并行数据交换。例如TI公司的TMS320C54X系列的DSP芯片、AD公司ADSP21XX系列的DSP芯片等。而主机并口在完成主机与DSP进行数据交换的同时,还大都具有程序装载的功能。在PC板卡类电子产品上使用DSP芯片时,实际上是一种主从模式的应用,即把PC机作为主机,DSP芯片作为从机。这时采用主机并口通过PC机的系统总线来完成程序的装载就成了一种既经济实用又灵活方便的方式。下面以TI公司的TMS320VC5402为例(以下简称为VC5402),本文介绍了如何由PC的ISA总线来完成DSP程序的HPI(主机并行接口)装载,并给出了软硬件开发的实例。二、硬件设计1.VC5402的HPI程序装载过程 VC5402内部具有4K×16位字的ROM,当系统上电复位后,如果VC5402的MP/MC引脚为低,那么VC5402的PC程序指针跳到地址为0XFF80的ROM处开始执行复位向量段的程序。该段程序是厂家在出厂时就固化好的一段程序,它首先执行跳转指令,跳到地址为0XF800处开始执行,从0XF800开始的ROM的内容被称为程序装载器(Bootloader)。在那里DSP将要判断用户究竟采用了那种程序装载方式,而判断的依据是通过诸如中断的有无、数据或I/O空间固定地址单元内特定的标志字的有无等厂家已经定义好的方式来识别的。值得注意的是,VC5402的HPI装载方式与C54X系列的其它型号稍有不同。其不同有以下两点:⑴ VC5402的HPI装载过程是在复位过程(Reset)以后完成的,不是在复位过程中完成的。⑵ /INT2标志位不是判断HPI装载模式的唯一方法,VC5402内地址为0X007F的RAM单元的内容也是判断HPI装载模式的一种方法。PC机的ISA总线作为主机(以后称为HOST)可以通过HPI口把VC5402的程序装载到VC5402内部双存取RAM中开始执行。

图1 ISA总线与VC5402的HPI接口电路
2.硬件实现实现ISA总线与VC5402的HPI硬件接口比较简单,需要注意的一点就是VC5402与ISA总线需要电平转换。由于ISA总线电平是5V TTL电平,而VC5402是3.3V电平,所以两者不能直接接口。我们可以使用PHILIPS公司的74LVC245电平转换芯片,这种芯片采用3.3V供电,能允许5V和3.3V两种电平的输入信号。输出为3.3V电平,可以和3.3V器件直接接口。电路原理图见图一:由于需要PC对VC5402进行实时的程序装载,那么VC5402的复位就不能用简单的RC电路来完成,这里采用一片74HC74的D触发器由PC控制完成VC5402的复位过程。图中,我们把/HINT和/INT2连在一起,是因为VC5402在运行Bootloader时会自动在/HINT引脚输出一个低电平,这样会使VC5402在复位结束后马上能识别到当前的装载模式为HPI模式,而忽略对其它模式的循环搜索。电路设计时需要注意对VC5402的HPI相关控制引脚的接法。对于控制引脚,采用不同的HOST时,接法也会有所不同。这里需要了解一下HPI主机并口工作的时序,时序图见图二。图中的/HCS信号是HPI使能输入信号,当使用HPI时,/HCS信号必须接地。/HAS是HPI的地址锁存输入信号,这个信号在地址总线与数据总线分时复用的处理器(例如8031)作为HOST时作为地址锁存信号来使用;对于ISA总线,其地址线和数据线是分开的,所以/HAS只要接3.3V即可。/HDS1和/HDS2是两个数据锁存信号,事实上使用其中的一个就可以了,而另一个则必须接3.3V。本例子中使用了/HDS1,而/HDS2接了3.3V。应该指出,当不使用/HAS信号时,/HDS1和/HDS2两个输入信号也具有地址锁存作用,在它们的下降沿时刻,VC5402的HPI锁存HCNTL0、HCNTL1、HBIL和HR/W四个控制输入信号的值。通过这四个信号的值,VC5402可以确定当前是对那个寄存器进行操作、是读操作还是写操作、是对16位字长的高八位还是低八位进行传输,因此电路设计时必须确保在/HDS1或/HDS2下降沿时上述四个控制信号具有正确的逻辑电平,否则整个程序装载过程将会失败。

   
利用isa总线实现对dsp芯片vc5402的软配置 来自: 免费论文网www.paper800.com  
图2 HPI操作时序图
由于VC5402内部是16位的数据总线,而其HPI主机并口却是一个8位的数据总线,所以通过HPI与HOST进行一个16位字的数据交换需要分两次来完成,HBIL信号来指出当前是第一个字节还是第二个字节。HR/W输入信号来指出当前HOST的数据传输方向,由于这里只是对VC5402进行程序装载,即HOST只对HPI进行写操作,所以把HR/W接地。至于HCNTL0、HCNTL1两个输入控制信号的作用,这里不妨简述如下:HOST通过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集成开发环境CCS 5000 下进行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 文件,用CCS 5000集成开发软件生成example.out文件。关于通过控制XF引脚来使发光二极管闪烁的VC5402程序的编写,这里就不再赘述。⑵把Coff_both.exe 和example.out文件放在同一目录下,在DOS命令提示符下键入:Coff_both -out example.out 。这时就会生成example.out.c格式的文件。该文件的形式见图三。这个程序只有一段程序,即.text段,这段程序一共由41个字组成,该程序段需要装载到开始地址为0X0080开始的内部RAM中去运行。而这41个字的16进制代码则是最后真正被执行的VC5402的程序代码。⑶把example.out.c文件中的代码由HPI写到VC5402的内部RAM中。 HOST主机软件,需要用户自己来编写,可以采用VC或VB调用驱动程序来完成,也可以通过TURB0 C 2.0直接通过I/O操作来完成,甚至可用MASM的汇编语言来编写,程序的主要任务就是读取example.out.c文件和写I/O端口。HOST主机软件的流程图见图四。为了便于读者编程验证,我们用TURBO C 2.0编写了名为HOST_HPI.C的主机程序,读者可以运行该程序来读取example.out.c文件,把41字的代码装载入VC5402。使用方法如下:在DOS命令提示符下键入:HOST_HPI.exe后,屏幕将提示输入example.out.c文件的路径,例如:键入:C:\ti\myprojects\example.out.c后,HOST_HPI.exe将完成HOST装载VC5402的任务,如果看到发光二级管不停的闪烁,表明VC5402已经开始正常运行程序了。至此,整个装载过程完毕。3. HOST_HPI.C源程序/*HOST_HPI.C*/#include"stdio.h"#include"dos.h"#define SIZE 100main(){ FILE *fp; Unsigned int DSP_RES,HPIC_H,HPIC_L;Unsigned int HPIA_H,HPIA_L,HPID_H,HPID_L; char *a,ch,filename; unsigned int i,j,length,addr,start[10],*data; printf("Please input the name file:\n"); scanf("%s",filename); /*输入程序文件名*/ if((fp=fopen(filename,"r"))==NULL) /*打开程序文件*/ { printf("cannot open file:\n"); exit(0); } DSP_RES=0x240; /*设置DSP各寄存器的I/O地址*/ HPIC_H=0x230; HPIC_L=0x231; HPIA_H=0x234; HPIA_L=0x235; HPID_H=0x236; HPID_L=0x237; outportb(DSP_RES,0x00); /*DSP复位(DSP_RES寄存器置00H)*/ delay(2000); /*延时以保证DSP准确的复位*/ outportb(DSP_RES,0x01); /*DSP跳出复位(DSP_RES寄存器置01H)*/ outportb(HPIC_H,0x00); /*DSP的HPIC寄存器置0000H*/ outportb(HPIC_L,0x00); i=0; while(!feof(fp)) /*判断程序文件是否结束*/{ fgets(a,SIZE,fp); fgets(a,SIZE,fp); fscanf(fp,"%s",a); fscanf(fp,"%s",a); fscanf(fp,"%x",&length); /*读取数据的长度*/ fgets(a,SIZE,fp); fscanf(fp,"%s",a); fscanf(fp,"%s",a); fscanf(fp,"%x",&addr); /*读取程序的开始地址*/ fgets(a,SIZE,fp); fgets(a,SIZE,fp); for(j=0;j>8); outportb(HPIA_L,addr&0x00ff);/*给DSP的HPID寄存器赋程序数据,先赋高位再赋低位*/ outportb(HPID_H,*(data+j)>>8); outportb(HPID_L,*(data+j)&0x00ff); addr++; /*程序地址加1*/ } for(j=0;j<4;j++) fgets(a,SIZE,fp); i++; /*循环次数加1*/} fclose(fp); /*关闭程序文件*/ outportb(HPIA_H,0x00); /*给DSP的HPIA寄存器赋007FH*/ outportb(HPIA_L,0x7f); /*将程序的起始地址start [0] 赋予DSP的HPID寄存器*/outportb(HPID_H,start[0]>>8); outportb(HPID_L,start[0]&0x00ff); printf("Write data to DSP success!\n"); /*返回写数据成功提示,程序结束*/} 四、结论通过本文可以看出,通过PC对VC5402进行HPI的程序装载属于一种基于RAM的在线编程,相比于使用并行或串行EEPROM进行DSP程序装载的方法,它不用对程序存储器进行烧写,属于一种软配置。在基于PC的插卡式测试设备开发过程中,这种方法避免了多次断电、烧写程序的不便,使设备具有了在线开发的特点。

   
利用isa总线实现对dsp芯片vc5402的软配置 来自: 免费论文网www.paper800.com

 如果觉得本篇论文可以,添加到收藏夹! [返回顶部↑
搜 索 其 它
相 关 论 文
基层央行会计风险控制初探
走出“重农抑商”探讨的误区
罪刑法定还是法律类推
会计环境与财务会计报告
法律关系背后的关系——“法律亚文化关系”初探
一种新的短波自适应天线调谐器的设计
颜回与“颜氏之儒”探微
试论管理会计与财务管理之关系
相 关 类 别
通信学论文
电子机械论文
工程建筑论文
材料工程学论文
交通运输论文
工业设计论文
环境工程论文
电力论文
水利工程论文
电子信息工程论文
自动化论文
电气工程及其自动化论文
通信工程论文
计算机科学与技术论文
电子科学与技术论文
热能与动力工程论文
测控技术与仪器论文
材料成型及控制工程论文
机械设计制造及其自动化论文
石油工程论文
矿物加工工程论文
农学论文
园林论文
园艺论文
水产养殖学论文
草业科学论文
动物科学论文
森林资源与保护游憩论文
农业资源与环境论文
林学论文
植物保护论文
水土保持与荒漠化防治论文
动物医学论文

免费论文网包含:各类免费毕业论文下载、免费法律论文、免费计算机论文、免费会计论文、免费英语论文、免费经济论文、免费管理论文、免费金融论文、大学生社会实践论文、三个代表论文、三农问题论文等所有论文均来源于网上的共享资源以及一些期刊杂志,所有论文仅供网友间相互学习交流之用,请特别注意勿做其他非法用途!如果我们有侵犯你的版权或其他有损您利益的行为,请联系我们指出,我们会立即进行改正或删除有关内容!
广告服务 | 关于我们 | 加盟合作 | 免责条款 | 人才招聘 | 联系我们