摘要:以Samsung公司的ARM9系列的S3C2410和TI公司的TMS320C6416为例,详细介绍S3C2410芯片外部I/O与C6416芯片HPI口硬件连接技术和基于ARM uClinux的HPI驱动程序开发。设计结果实现了接口数据稳定快速读写,此设计方案对其他双核接口设计开发有很好的指导作用。
Web技术和多媒体技术的发展成为新一代嵌入式实时监控系统的重要特性。多媒体的JPEG,MPEG2/4等标准视频数据格式及各种库函数都使用32位格式和32位的编程软件,这对32位的嵌入式微处理器的实时性提出更高的要求。ARM+DSP双核嵌入式系统,以32位ARM为核心CPU,DSP作为协处理器负责视频采集压缩,从而减轻ARM核心CPU的负担,使之更好地发挥网络传输和协调控制的功能,进一步提高系统的实时性和稳定性。
本研究结合实验室的基于虚拟动态模拟的远程机器人状态检测与智能控制技术的设计方案,主要研究ARM S3C2410处理器与DSP C6416芯片的连接软硬件设计,并介绍ARM与DSP连接的HPI接口驱动程序的编程实现方法。
1 系统硬件结构设计
系统整体结构框图如图1所示。
系统实现在本地通过浏览器,视频终端显示远程机器人状态视频信息,并通过本地指令控制台对机器人进行控制。S3C2410实现远程上位机功能,协调与DSP之间数据交换,并将数据通过网络发送到本地。此外S3C2410通过CAN总线上ARM7 S3C44B0控制机器人智能节点。
2 S3C2410与TMS320C6416硬件连接设计
2.1 ARM外部I/O与HPI硬件连接
S3C2410与TMS320C6416硬件接口如图2所示,
S3C2410的两根地址线ADDR[3:2]接HPI口的HCNTL[1:0],以实现ARM对HPI口3个寄存器的访问。S3C2410用ADDR4代替读写选通信号连接HPI口的HR/W。S3C2410片选信号nGCS1接到HPI片选HCS上,将DSP的HPI接口作为外部物理地址映射到S3C2410相应的内核空间,位于外部I/O接口BANK1地址0x08000000~0x0FFFFFFF上。
2.2 接口工作原理
S3C2410外部I/O对HPI接口3个寄存器(HPIA,HPIC和HPID)分别实现了ARM与DSP软件握手与中断请求,锁存ARM访问DSP存储单元地址,以及数据交换。S3C2410访问顺序,首先是初始化HPIC寄存器和HPIA寄存器。接下来是HPID寄存器数据读写。对于HPID读操作,S3C2410完成对HPIA访问后,DSP的EDMA自动将数据从HPIA寄存器所指定的地址预取到HPID。HPID有两个地址,s3C2410对一个地址访问,HPIA保持不变,访问其外一个地址时,HPIA地址自动加一。对于写操作原理类似,S3C2410完成对HPID的写操作后,EDMA将数据写到HPIA指定的存储地址单元里。s3c2410同样对HPID两个地址进行访问,HPIA地址随新数据的写入而更新,从而实现s3C2410对HPID的连续写入。