1 引 言
tms320vc5402是ti公司的一种16位数字信号处理器,以其独有的低功耗和高性价比,受到用户的欢迎。c54x操作灵活及运行速度高;使用改进的哈佛结构,具有专用硬件逻辑的cpu、片内存储器和外设接口,以及高度专业化的指令集。而且, c54系列dsp与主机连接通过hpi(host port interface)接口,以逻辑电路设计简单、不需要额外的存储器和程序更新方便优点,可以应用灵活多样的引导加载模式以实现接口和处理功能开发。
hpi口是c54x dsp系列芯片内部的并行接口部件,用于与其他总线或cpu主机之间进行连接通信,主机是hpi口的主控者,通过专用地址和数据寄存器、hpi控制寄存器以及外部数据和接口控制信号与hpi口通信。
本文基于对一个脑电信号采集系统中数字处理电路部分的研究,设计并实现了tms320vc5402应用程序的hpi自举加载,hpi方式通信,详细介绍了调试方法与过程,对开发
基于dsp处理芯片的脑电信号采集系统有很大的参考价值。
2 系统介绍
脑电信号(eeg)是一种比较特殊的微弱信号。它是由脑神经活动产生并且始终存在于中枢神经系统的自发性电位活动,含有丰富的大脑活动信息。脑电信号的采集处理对于生物医学工程学研究具有重要意义,可以为临床手术中的麻醉镇静监护分析提供必要的数据。脑电信号数据采集系统主要功能是将人脑部的生物电信号通过脑电极提取出来,经过放大处理,传输至上位机显示并存储。本文所研究的数字脑电采集系统就是基于dsp 芯片vc5402 处理能力强、实时性高等优点的应用。由系统模拟部分对脑电信号进行放大和预处理,经过a/d 变换后送往数字处理部分。数字处理部分由dsp 芯片和usb 等芯片构成,由dsp 控制实现对脑电数字信号的采集与处理,并完成dsp 与usb 芯片的通信,最后通过usb总线将数据送往上位机实时显示与储存。
系统的核心为tms320vc5402,有三个功能:首先,控制整个系统模数转换并设置各种模拟部分的参数;其次,对a/d变换后的数据进行各种算法处理,包括信号滤波与分析等,也是高性能脑电数字信号采集器的重点;最后完成数据接口功能,把数据按一定的格式打包,通过高速的hpi总线把数据交给usb接口芯片并送往pc机。图(1)为整个方案的原理图,其中虚线部分为调试过程示意图。调试过程中,通过集成开发环境keil c51和ccs 5000系统,可视化的调试过程有利于整个方案的后期调试。
图 1 系统方框图
3 透明式usb通信设计
vc5402 自身提供了标准的串行口, 时分复用(tdm) 串行口和自动缓冲串行口bsp(auto-buffered serial port),这些接口必须通过pc 机的串口与pc 机进行通信,而pc 机的串口无法满足高速数据采集对速度的要求。本文采用cy7c68013a 芯片通过hpi(hostport interface)接口和dsp 芯片tms320vc5402 相连,再由cy7c68013a 通过usb2.0 将数据传送到pc 机上,方便满足系统对传输速度的要求。
3.1 硬件
cy7c68013a芯片有56脚ssop,56脚qfn,100脚tqfp以及128脚tqfp四种封装形式。引脚少的芯片占用pcb面积小,价格低,功能基本满足需要。但在开发阶段,选取100脚tqfp封装形式以支持在线调试,可以节省开发时间。实际生产阶段,可以采用56脚封装芯片来做实际电路应用。
3.2 开发工具
本文选用keil uvision3作为usb接口芯片固件程序的开发工具能提高开发效果。keiluvision3是一个集成开发环境,拥有c51编译器、a51汇编器以及bl连接定位器等工具和模拟仿真与调试器。它能够支持c程序和汇编程序混合的编程工作,对软件的开发便利。
3.3 固件开发与调试过程
在编写固件程序时需要用到大量的函数,可以应用cy7c68013a芯片的开发工具包。该开发包提供了开发所需的固件框架程序以及一些例程,以简化其固件开发过程。在cypress c51固件框架程序下的主要工作有:
1、修改设备描述符表: usb 设备与主机建立通信前须先向主机提供具体配置,包括设备的厂商、产品识别号(vid,pid),设备的供电方式以及能量消耗等系列信息。而有关设备的信息是通过设备描述符表提供给主机的,从而决定主机使用哪一个usb 设备驱动和采用哪种方式建立与设备之间的连接。
2、cy7c68013a有可编程接口gpif。可编程接口gpif是主机方式,可以由软件编写读写控制时序,几乎可以和所有8/16 bit接口的控制器、存储器和总线进行无缝连接。在调试过程中,把cy7c68013a芯片的串口接到pc机的串口上,无需仿真器就能完成在线仿真工作。利用cypress提供开发工具包的monitor程序,能对应用程序实施单步运行、断点设置和变量查看等调试工作,既降低了固件程序的开发难度,又加速了usb系统开发的过程。
4 dsp部分设计
4.1 hpi方式自举加载
vc5402片内rom 固化有ti公司的自举引导程序bootloader,在上电复位时把用户代码从外部存储器引导到片内ram 并运行。vc5402支持多种引导方式,如hpi引导、并行eprom引导、并行i/o引导、串行口引导等。dsp采用哪种引导模式取决于硬件设计。vc5402上电复位后,先检测mp/mc引脚,如果mp/mc=“0”,表示使用片内rom引导。此时,dsp从0xff80处开始执行ti的片内引导程序。进入引导程序后,首先hint引脚变为低电平,然后开始检测int2是否为低电平(有效)。若int2为低电平,则进入hpi引导方式;否则,检测其它引导方式是否有效。在硬件连接上,为了使vc5402复位后进入hpi启动方式,直接使int2接到hint引脚上,使hpiena引脚接高电平。对hpi接口的操作主要通过以下三个寄存器来完成:hpi地址寄存器(hpia)、数据锁存器(hpid)和控制寄存器(hpic)。如当前进行的是读操作,则hpid中存放的是要从hpi存储器中读出的数据;如果当前进行的是写操作,则hpid存放的是要写到hpi存储器的数据。
4.2 软件部分设计
ccs(code composer studio)是ti开发的一个dsp集成开发环境。其集成了常规的开发工具,如源程序编辑器、代码生成工具(编译器,连接器)以及调试环境等。ccs的编译器和链接器生成coff格式文件,用hex转化程序hex500.exe将coff格式代码转换为标准的ascii十六进制格式ti tagged,支持16位地址。转换而成的hex文件为ascii码形式的,不能用于hpi自举,需将其转换为二进制(bin)格式。
4.3 用户代码下载(hpi)
由于intel的hex代码格式是分段的,本文编写的代码段,是将一个intel 的hex代码段通过hpi接口写入dsp ram中。下面代码段为hpi加载子程序,count为要写入代码的长度,address为起始地址,ep2fifobuf是指向hex代码段的指针,hpi_writea子程序功能是写hpi地址寄存器,hpi_writed2完成部分程序的写入。代码如下:
4.4 写入dsp入口地址并运行
在tms320vc5402进入hpi启动模式后,它将一直检查0x007f这个地址是否为0,如不为0,则跳转到0x007f指向的地址处执行代码。在将dsp的代码写入之后,只需将程序的入口地址写入0x007f这个地址,dsp将自动跳转到入口执行程序。程序的入口地址可以在ccs生成的.map文件中看到,其格式如:entry point symbol: _c_int00 address: 000020be。
由于调用的是hpi_writed2()函数写数据,而hpi_writed2()在写数据之前,会自动将地址+1,所以在调用之前写入地址时,调用的是hpi_writea(0x007e),这样,最后调用hpi_writed2(m_dat)时,地址会自动指向0x007f。
4.5 观察写入代码
tms320vc5402 在仿真时候其hpi接口也是正常工作的,这就方便了对hpi启动方式的调试。首先把5402连接到仿真器上,然后打开ccs5000集成环境。此时可以利用ccs5000的memoryview来观察5402的内部ram数据。调试中,先通过hpi接口把dsp的代码下载进去,再通过ccs5000集成环境观察,同时用ultraedit十六进制编辑器打开由hex500.exe生成的.hex文件。由于两者都是以ascii码形式显示,可以直观地比较各个地址空间中的代码是否完全相同以及下载的代码是否完全正确。
4.6 整体方案测试效果
上述的各个模块调试通过后,又编写了上位机应用程序。上位机应用程序功能包括:建立usb 通信、加载dsp 代码、读取dsp 代码、写入口地址、数据采集与保存等功能。在把各个模快连接之后,用控制台通过hpi 接口加载dsp 代码5402 code.i00,并写入程序入口地址0x20be,启动下位机进入采集过程。图2 为上位机控制台应用程序截图。
图2 应用程序截图
5 结 论
利用 c54x 的hpi 接口在脑电数据采集系统中的设计与实现,可用于自发脑电信号实时准确的高速采集。如从dsp 的实际应用环境出发,利用dsp 的hpi 加载方式和jtag 调试相结合的开发模式,可以在线调试该电路板的制作,自行编制相应的主机软件,设计dsp kernei和hpi 接口逻辑,还可以实现开发基于hpi 自举和通信的dsp 应用设计方案。这样做可以缩短开发周期,且硬件资源透明。该透明化开发过程更利于学习者理解和掌握dsp 的软硬件原理。该方案还可以从脑电采集系统设计推广到其它领域。
将usb接口芯片cy7c68013a(100引脚)的在线仿真和dsp芯片tms320vc5402的jtag仿真结合起来,设计vc5402基于usb2.0和hpi自举加载的脑电采集系统。通过ccs5000集成环境,能即刻查看dsp内部hpi加载代码,使该方案设计的采集系统直观地调试并缩短开发时间。该方案还可以从脑电采集系统设计方面推广到其它领域。
包装生产线的PLC控制器如何实现远程监控和上下载
如何修复烘缸轴承位磨损问题
探讨无人机典型机型的反制思路
汉威科技:提升自身研发能力促进传感器技术发展
移动式DR机与固定DR相比,它具备哪些优势
基于DSP5402芯片HPI接口技术分析
剖析最新一代ADAS平台及区域控制器
小米米家喷墨打印机将于9月17日开售 售价999元
小米6Plus什么时候上市?最新消息:小米6抢不到没关系,大屏党福利来了,小米6Plus马上就来!
索尼Xperia 1 II 5G手机:4K屏、微单技术
测试测量:CPU在有涂抹硅脂和没有情况下的温度相差多大?
磁振子纳米纤维研究:为新兴技术及的构造开辟了道路
区块链技术对生态令有什么帮助
如何选择4G模块 4G模块选型注意事项
PCIe Gen3/Gen4接收端链路均衡测试(上篇:理论篇)
2024年三元材料海外订单预期或持续走低
示波器以太网测试标准、测试项目与测试描述
浅聊一下铜缆跳线
如何手势控制鼠标
魅族Pro7最新消息:小米6发布过后的余温,魅族Pro7即将发布,售价2699起!