摘要:为了保证空间光通信图像处理系统快速、稳定处理CCD(charge couple device)图像和与上位机进行数据交换,设计了基于HPI(Host Port Interface)的主-从机系统。通过从机提供的HPI主机实现从机与上位机间的数据交换;从机程序HPI引导加载;对从机的故障诊断和系统测评。介绍了HPI硬件设计原理和系统软件设计基本思想。 关键词:主机接口;数字信号处理器;引导加载;故障诊断;系统测评
1 引言 空间光通信系统要求CCD拍摄目标卫星发出的信标,计算目标卫星坐标位置,从而实现通信链路。为了符合系统实时性和精确性要求,设计了图 1 所示的基于HPI的主-从机图像采集处理系统。

图1中从机系统主要由TMS320VC5416 DSP(后文简称VC5416)和IEEE1394总线组成。VC5416提供了增强型HPI主机接口,用来与主设备或者主处理器建立数据交换通道。通过HPI ,主机可以访问DSP 内部的各种资源, 而不会影响DSP 的运行。主机系统由TMS320LF2407A DSP(后文简称LF2407A), SRAM,CAN总线和并行总线驱动器组成。LF2407A是TI公司推出的一款定点数字信号处理器,具有低成本,低功耗,处理性能好,外设集成度高,程序存储空间大等特点,常用于电机数字化控制[1]。图像处理系统利用其CAN控制器和数据I/O实现从机与上位机间的数据交换;利用其大容量的程序存储空间来实现从机程序存储;结合内部时钟实现对从机的故障诊断和系统测评功能。
2 HPI介绍与设计
2.1 HPI介绍
VC5416内部提供增强型HPI8可访问所有片内RAM空间,支持主设备与VC5416之间高速传输数据,最快可达到64Mbps[2]。主机通过访问其内部寄存器HPIA, HPIC, HPID 即可实现对从机片内RAM进行数据访问。其中HPIA是地址寄存器,存放当前HPI存储单元的地址;HPIC是控制寄存器,主、从机通过对其设置来控制HPI工作方式;HPID是数据寄存器,用于暂存通信数据。HPI主要引脚及其功能如下:
HD[0-7]: 双向三态数据线
HBIL:字节识别信号,低表示第1字节,高表示第2字节
/HCS:片选输入信号
HCTNL[0-1] :主机控制信号,用于对内部寄存器HPIA,HPIC,HPID的选择
HR/W:读写信号,高表示读,地表示写
/HDS[1,2]:数据选通信号,在主机寻址HPI周期内控制数据传送方向
/HINT:中断输出信号,由HPIC中HINT位控制
HRDY :HPI准备好,忙时被拉为低,不能访问
/HAS:地址选通信号,当地址,数据线分开时,此引脚拉高
HPIENA: HPI使能,高电平有效,在复位期间被采样
HPI16 :HPI16模式选择,选择HPI8时,此引脚拉低
HPI 寄存器地址由HCTNL[0-1]决定。HCTNL[1-0]=00时,主机可以读/写HPIC。 HCTNL[1-0]=01时,主机可以读/写HPID。每读1次,HPIA事后增1;每写1次,事前增1,因此在该方式下写操作前,HPIA中的地址值应该比要访问存储单元的地址值小1。HCTNL[1-0]=10时,主机可以读/写HPIA,该寄存器指向HPI存储器。HCTNL[1-0]=11时,主机可以读/写HPID,HPIA不受影响。HPI总线每次只能访问一个字节,对于16位DSP来说,一个单元需要访问两次。访问的是高字节(MSB)还是地字节(LSB)由HBIL引脚状态和HPIC中的BOB位决定。当BOB=1时,第一个字节为低字节;BOB=0时,第一字节为高字节。
2.2 HPI硬件设计
图像处理系统中,通过将主机/IS信号与从机HPI选通信号相连,将从机HPI寄存器映射到IO空间。如图2 所示。

图2 HPI 硬件连接图
|
图2 中主机的8根数据总线D[0-7] 与HD[0-7]相连,可以实现每次对HPI寄存器进行一个字节的访问; R/W,/RD,WE分别连接VC5416的R/W,/HDS1, /HDS2实现读写逻辑控制;HPIENA拉高,对HPI模块进行选择,HPI16接地,选择HPI-8模式。通过XINT1与/HINT相连实现从机对主机的中断请求。为了实现HPI程序引导,将/HINT与/INT2相连。由于2407A的数据总线和地址总线是分开的,所以/HAS接高。为了防止主机和从机同时访问资源冲突, 将HRDY与主机的READY相连,当HPI模块忙时,主机插入等待周期。A0-A2连接从机的HBIL, HCTNL0,HCTNL1,实现主机对从机内部寄存器进行字节寻址。通过配置HPIC中的BOB位可得到各字节所对应的IO地址, BOB=0时各寄存器高、低字节对应的IO地址如表1 所示。当BOB=1时,表1 中各寄存器的高字节与低字节要对调。
表 1 BOB=0时HPI寄存器字节对应IO地址
|
IO地址 |
寄存器对应字节 |
|
0 |
HPIC MSB |
|
1 |
HPIC LSB |
|
2 |
HPID MSB (地址自增模式) |
|
3 |
HPID LSB (地址自增模式) |
|
4 |
HPIA MSB |
|
5 |
HPIA LSB |
|
6 |
HPID MSB (非地址自增模式) |
|
7 |
HPID LSB (非地址自增模式) |
3 软件设计基本思想
图像处理系统软件设计包括主机部分和从机部分,这里只对前者进行介绍。主机系统的程序开发采用TI 公司的DSP 集成开发软件CCS 并结合硬件仿真器来完成,采用C 语言编程。主-从机系统用户程序均通过仿真器烧写在主机片内FLASH中。主机系统工作流程可简述为:上电复位,主机系统程序自引导,系统初始化,从机程序HPI引导加载,进入循环等待中断。主机系统初始化包括看门狗,时钟,中断,CAN总线,并行总线等模块的初始化。系统中的中断包括来自CAN总线,并行总线,HPI和用于监控从机运行状态的计时器中断。其优先级顺序为:并行总线中断>CAN总线中断>HPI中断>计时器中断。
3.1 HPI 程序引导
HPI程序引导按照VC5416程序引导规则来完成。VC5416上电后,检查MP/MC脚状态,如果为高,则从外部程序存储器的0FF80H起执行用户程序;否则从片内ROM的0FF80H开始执行程序,选择自举方式[2]。VC5416的加载方式有多种,这里采用HPI引导模式。从机自举过程中,先对系统进行初始化,然后检查/INT2引脚状态,如果为低,则进入HPI引导模式,否则查询包括HPI引导在内的各种引导模式,直到检测到一种可用的引导模式。进入HPI引导模式后,VC5416检查07EH,和07FH的内容,当其中内容不为0的时候,分别将07EH, 07FH的内容装载到XPC和PC中,跳转到用户程序入口地址,开始运行用户程序。VC5416用户程序代码以数组的形式存放在主机数据空间。从机代码获取方式参照文献[3]:在CCS中编写从机程序,编译、链接得到.out文件(new.out),编译前在Project\Build Options中设置处理器版本为-548。编写一个.cmd文件(MY.cmd),内容如下:new.out;-o new.hex;-a;-memwidth 16;-romwidth 16;-boot;-bootorg SERIAL。在hex500.exe 中输入MY.cmd 即可得到二进制文件:new.hex。其机构如图 3所示。在C编译器中编写程序读出该文件数据,去掉代码头,组合成希望得到的数组形式。程序引导时,先给从机复位。复位后,/HINT变低,将从机的/INT2拉底。从机自举检测到/INT2有效, 进入HPI模式,循环查询地址07EH和07FH内容,由于一直为0,从机一直处于等待状态。主机按照图3提供的结构,将各段数据按先后顺序写入以该段首地址为首地址的从机RAM中。写完最后一段后,监测到从机程序结束标志位:00,说明程序代码已经写完,将代码入口地址XPC,PC写入从机地址07EH和07FH内,此时从机将入口地址装入程序计数器,开始运行用户程序,引导加载完毕。为了保证程序加载无误,在写入口地址之前,将程序代码读回来与数组内相应代码进行比较,如果不同则修改;直到所有代码相同。引导结束后,主机清除HPIC中HINT位,继续往下执行。

图3 主机用户程序二进制代码结构
3.2 数据通信
为了保证从机处理图像速率,与上位机的通信任务有主机系统完成,其工作过程是: 从机捕获到目标时,将目标位置坐标写入指定地址,将/HINT 置低,向主机发中断请求。主机响应中断,通过HPI读取坐标数据,通过并行总线或者CAN总线发送给上位机。上位机要求图像处理系统执行某项命令时,将数据发送到并行总线或者CAN总线上,相应的中断被触发,主机进入接收中断。主机“翻译”命令号,通过HPI将命令内容写入从机相应的命令存储单元,并在“命令地址寄存器”中写入该命令单元地址。从机处理完数据帧后,查询“命令地址寄存器”,如果为0,则没有接到命令,如果不为0,则读取地址所对应的命令,清除“命令地址寄存器”,执行命令。从上面的过程可以看出,从机只在空闲的时候查询命令,并不影响到其处理图像。
3.3 从机系统故障诊断和系统测评
从机系统是一个独立的复杂系统,运行时会出现各种意料不到的故障,通过主机对其运行状态进行实时的跟踪查询,找出故障,及时进行处理。另外还可以将系统与通用计算机相连,在长时间无人监管情况下对系统进行监视,实现系统性能测评,给后续改善提供依据。故障诊断时,从机系统每进入一个功能模块后,将该模块的“模块号”按先后顺序写入一个预定好的从机系统“状态寄存器组”中。主机每隔一段固定时间,对“状态寄存器组”进行
查询。当出现故障时,“状态寄存器组”中的“模块号”顺序与预定的顺序不相符,或者根本没有往下执行。通过对故障进行分析,可以界定故障出现的位置和原因,从而采取有效措施。系统测评时,把LF2407A的SCI接口的SCIRXD和SCITXD经电平转换后接到MAX232上,组成RS232总线,与个人电脑相连,如图4 所示。当LF2407A检测到故障时,将故障的全部信息和故障分析结果通过RS232总线发送给个人电脑,个人电脑将其信息和当时时间存储在存储器中。由于个人电脑稳定可靠,存储量大,可以在无人参与的情况下对系统进行长时间测评。

图 4系统测评连接图 |
4 结论
HPI的应用实现了图像处理系统中主、从机协同完成图像处理任务。主机系统是从机系统稳定运行的保障,通过HPI引导从机用户程序,无需对从机进行外部ROM扩展,减小了从机系统硬件设计难度;通过HPI对从机进行实时检测,实现对从机的故障诊断和系统测评,减轻了从机软件开发难度,加快了开发进程。实验证明,HPI的应用提高了图像处理单元稳定性,增强了系统故障诊断和故障处理能力。经测试,在无人监管情况下图像处理单元与没有主机系统时相比,稳定运行周期延长了十至二十倍。基于双DSP的图像处理单元具有硬件设计简洁,工作稳定等特点,对于基于HPI的主机系统在通信,对从机系统进行故障诊断和系统测评方面具有较强的借鉴意义。
参考文献
[1] 王和平,王维俊. TMS320LF240x DSP C语言开发应用,北京航空航天大学出版社,2003.
[2] 戴明桢,周建江.TMS320C54x DSP结构、原理及应用,北京航空航天大学出版社,2002.
[3] 左韬,潘炼.DSP通过FLASH并行加载的分析和实例,微计算机信息,2007年vol.23(2-2):184~186.
|