移动自组网节点中HPI层间传输方案设计与实现
2014-10-15李司
李司
【摘要】 为满足基于TDD同步调度机制的移动自组网设计方案中网络层路由算法与MAC层调度协议处理需求,构建了基于S3C6410 ARM处理器与TMS320C6416 DSP处理器的多核构架的移动自组网节点路由与调度处理单元,并给出了基于HPI接口的多处理器层间数据交互硬件设计方案与软件设计架构。实现结果证明HPI接口可靠、稳定,满足自组网节点层间高速数据传输要求。
【关键词】 移动自组网 ARM DSP HPI
一、引言
移动自组网是由一组带有无线收发装置的节点组成的一个临时性多跳自治网络,网络中的每一个节点同时具有普通网络节点和路由器的双重功能。该网络无需任何基础设施,可随时随地快速灵活部署,且具有极强的抗毁特性,在军事作战和民用应急通信领域都具有广阔的应用前景,是目前网络构建方案研究中的热点问题。
移动自组网节点设备作为该网络构建的基础,其特殊的体系结构是自组网系统具有无中心、自组织、抗毁性强等特性的关键。目前自组网节点设备实现技术的研究中有两类主流实现方案:1)基于CSMA/CA的竞争方案,该方案多采用嵌入式处理器加802.11协议标准的制式芯片实现,其中ARM处理器实现自组网路由协议处理,制式芯片实现物理层及MAC层功能。该方案实现简单,但由采用基于竞争的MAC层协议,因此网络吞吐量无法得到保障。2)基于TDD的同步调度方案,该方案采用同步调度机制,大大减少碰撞发生,从而保障了网络的吞吐量。但该方案尚未有相关制式芯片可以使用,因此需要采用软件无线电方案自主研发。本文中移动自组网节点基于TDD同步调度方案实现,采用ARM+DSP+FPGA的多处理器协同结构,其中ARM实现节点业务接入与网络路由协议处理,DSP实现同步式MAC层协议处理,FPGA实现宽带无线收发基带处理。在上述多处理器协同方案设计中,处理器间数据交互方案是系统设计的关键问题之一。本文将重点介绍ARM与DSP间基于HPI接口的数据交互方案设计。
二、移动自组网节点整体结构
移动自组网节点硬件结构如图1所示。节点设备包括路由与调度单元以及无线收发单元两部分,其中路由与调度单元承载自组网节点的网络协议与同步MAC层处理算法,无线收发单元在MAC层协议调度下实现基于TDD的物理层无线收发处理。
在路由与调度单元硬件设计中,ARM处理器选用SAMSUNG公司的S3C6410。该芯片是一款低功耗、高性能的适用于移动便携设备的通用嵌入式处理器,基于64/32位的RISC(Reduced Instruction Set Computer)构架。它采用ARM1176JZF-S内核,最高工作频率可达667MHz,具有强大的外设管理功能,适合于自组网节点路由算法、业务接入处理以及人机交互操作管理。
DSP处理器选用TI公司的TMS320C6416。该处理器是TI公司C6000系列中的一款高性能定点DSP器件。在最高1GHz主时钟下,其处理能力达到8000 MIPS,其强大的处理能力可满足MAC层的分布式网同步算法以及实时资源调度的处理需要。同时它具有丰富的外部设备接口,可实现与不同外部处理器间的数据交互。
在路由与调度功能单元的双处理器设计结构中,ARM作为主处理器,需要实时与DSP进行上下行业务数据以及信令数据交互。本方案选择HPI作为处理器间通信接口。该接口硬件复杂度低,无需添加外置逻辑电路。且该接口基于DMA方式完成数据传输,占用DSP处理资源较少,不会影响DSP中其它高优先级的实时处理工作。
三、节点中HPI接口硬件设计
HPI(Host Port Interface)是TMS302C6416中的一个并行数据端口。ARM通过该端口可作为主处理器直接访问DSP内部的存储空间以及存储器映射的外设,并且可通过DMA/
表1 HPI接口引脚信号及其功能
信号名称 类型 信号数 主机连接 信号功能
HD[15:0] I/O 16 数据总线 数据输入输出
THCNTL[1-0] I 2 地址线 HPI寄存器访问控制
THHWIL I 1 地址线 半字识别输入
THR/W I 1 读/写选通 读写选择
THCS I 1 片选控制线 数据选通输入
THDS2 I 1 写选通 数据选通输入
THDS1 I 1 读选通 数据选通输入
THRDY O 1 异步准备信号 当前HPI访问的准备状态
THINT O 1 主机中断输入 向主机发出的中断信号
EDMA控制器来访问存储空间。在具体数据交互的操作中,ARM通过对HPIC(HPI控制寄存器)、HPIA(HPI地址寄存器)以及HPID(HPI数据寄存器)寄存器的读写操作来实现HPI数据接口通信。此外HPI数据总线宽度可通过外部配置引脚设置为HPI16(16bit总线)与HPI32(32bit总线)两种模式。
ARM(S3C6410)与DSP(TMS320C6416)硬件连接如图2所示。根据层间数据吞吐要求设置HPI总线为HPI16模式,并将HPI接口的HD[15:0]总线连接到ARM的数据总线。在层间数据交互操作中,ARM作为主机,DSP看作是ARM的一个外部设备。HPI接口信号的功能定义如表1所示。
ARM 通过ADDR2与ADDR1地址线控制THCNTL1/0信号,联合选择要访问的HPI寄存器。此外通过地址线ADDR3控制THHWIL信号,用于识别在HPI16模式下传输的是第一个半字还是第二个半字。
在TMS320C6416芯片内部,对于HPI读写数据总线选通处理,采用了特殊的设计结构。如图3所示,在DSP内部对HPI接口的THCS、THDS1、THDS2三个输入信号进行组合逻辑运算,生成数据闸门信号,控制读写数据总线选通。该设计增加了主机处理器与DSP间硬件连接的灵活性,从而使HPI接口可以很好的匹配不同处理器的数据接口。本设计根据S3C6410接口时序特性,采用CSn5、OEn、WEn分别与THCS、THDS1、THDS2连接。
四、节点中HPI接口软件设计
ARM主处理器基于嵌入式Linux操作系统,其在完成网络层路由算法处理的同时实现业务数据的吞吐与协议封装,而后再通过HPI接口将上下行业务数据以及系统信令数据与DSP进行交互。在HPI接口的数据交互处理中,ARM将该操作视为对一种外部设备的读写处理,软件设计分为驱动程序设计与应用程序设计两个层次实现。
4.1驱动程序设计
在HPI接口软件设计中,驱动程序是ARM与DSP通信实现的关键。ARM在嵌入式Linux下,通过对HPI设备驱动文件的打开、关闭、读、写等操作来完成对HPI的设备操作。与应用程序不同,驱动程序与硬件相关,且工作在内核空间,可对中断、存储空间等底层资源进行操作和调配,直接影响硬件效率和系统稳定性。此外,设计中HPI驱动程序不但要实现ARM与DSP的双向传输通道,而且要在保证稳定性和应用层效率的条件下,尽量提高传输速率。
驱动程序的总体结构如图4所示,可分为应用层接口、内核线程、数据结构、通信协议和硬件实体操作五部分。
4.1.1应用层接口
为保证应用程序的可移植性,驱动程序需采用标准化文件接口,包括open、close、write、read、以及ioctl。
open和close实现接口的打开和关闭以及资源的申请和释放,为了保证应用层的效率,write和read采用阻塞的读写方式,通过wait_queue机制,使应用程序在无法得到驱动资源的情况下进入休眠状态,提高系统整体运行效率。
4.1.2内核线程
为保证高数据率的总线传输,读与写的操作不能顺序化,必须采用应用层接口函数操作和底层硬件操作异步进行方式。通过write_thread和read_thread两个内核线程实现应用层操作的异步化。以写过程为例,应用程序调用write后,驱动程序并不直接进行硬件总线操作,而是迅速将数据写入驱动缓存,驱动程序在CPU空闲时从缓存内取出数据,进行总线读写,从而大大提高了传输效率。内核线程与应用层线程区别较大,不能完全依靠系统调度,根据操作流程需要,通过软件设计干预系统调度。
4.1.3数据结构
考虑到后级吞吐能力,驱动程序设计中还要考虑速率匹配问题。本设计中实现了深度可变的FIFO数据结构,方便对各种大小的数据单元进行缓存,根据系统需求进行数据速率匹配,从而保证不会使后级发生溢出,同时兼顾系统的低延时要求。
4.1.4通信协议
在通信协议设计方面,驱动程序通过设计可用标志、数据大小、数据存储区指针等内存关键字段,实现ARM与DSP间的总线上层通信协议。此外,通过标志位的互斥,保证了DSP内存临界区的数据安全。
4.1.5硬件操作实体
在硬件层面上,ARM主处理器与DSP间的数据交互是通过对控制寄存器HPIC、地址寄存器HPIA以及数据寄存器HPID的读写操作实现的。驱动程序实现的底层硬件通信就是对上述寄存器的操作。驱动设计中需要注意:ARM外部设备I/O 端口的物理地址只有被映射到内存地址空间才能被访问,即所谓内存映射。因此,需要将HPI接口的物理地址映射到内核空间,这样每个寄存器就具有了相应内存地址,通过对相应地址单元的读写即可完成对相应寄存器的操作。
4.2应用程序设计
应用程序工作流程如图5所示。在下行业务数据处理过程中,ARM由网口接收数据,进行协议封装后,调用HPI接口驱动程序发送给DSP。上行业务处理流程与上述过程相反不再赘述。应用程序由网口UDP接收、发送以及HPI接口接收、发送四个内核进程实现移动自组网上下行业务的传输。
五、结束语
本文在移动自组网节点实现技术研究的基础上,给出了适用于TDD同步调度机制自组网系统的多处理器节点设计架构,并重点介绍了节点设备中TMS320C6416 DSP和S3C6410 ARM处理器间,基于HPI接口的层间数据传输软硬件设计方案。经过实际测试表明,设计中HPI接口可以满足层间高速数据交互处理要求。本方案中HPI接口硬件设计简单灵活、性能稳定可靠,且具有通用性,可适用于其它实时高速数据传输应用。
参 考 文 献
[1]张程,移动自组网关键技术研究[D],重庆大学,2010.
[2]徐伟 陆珉,探底雷达显控单元中的HPI应用技术研究[J],现代电子技术,2013,3,5期:10-12.
[3]孙德玮. 基于HPI接口实现DSP和ARM间的通信[J],微处理机. 2009,6,3期:61-63.
[4] TEXAS INSTRUMENTS. TMS320C6000 DSP Host Port Interface(HPI) Reference Guide. 2008.
[5] SAMSUNG. S3C6410X RISC Microprocessor USERS MANUAL. 2008.