HPID读/写操作 HPI寄存器共占用了256KB的内存空间,对应的16进制地址范围是:0X01880000~0X018BFFFF。其中,HPIC的起始地址为0X01880000,HPIA写的起始地址0X01880004,HPIA读的起始地址为0X01880008,其他地址空间保留。在CPU对HPI进行读写操作时,必须正确的设置HPI寄存器。 3 接口设计 3.1 HPI接口读/写时序 读/写时序是实现计算机操作的重要一点,如果操作时序不相符,就会导致读/写数据出错,甚至是操作失败。所以,满足操作时序是实现计算机操作的先决条件之一。DM642的HPI接口操作时间为1.3ns~12ns或大约5个CPU时钟脉冲。S3C44B0X的最高时钟频率可达66MHz(约为15.2ns),由此可知DM642的HPI与S3C44B0X在读/写时序上的满足要求,接口通信可以实现。DM642的HPI32读/写时序如图1,设计接口时,必须遵守该时序。由时序图可知,控制HPI的读/写时序,通过控制HCNTL、HR/W_ 、HSTROBE_、HCS_以及HRDY_这几个信号端口就能实现。 图1 HPI32的读/写时序图
3.2硬件设计
在本设计方案中,S3C44B0X和DM642都是32位的处理器,且DM642有HPI32模式。为了充分利用资源,发挥其优势,采用32位模式设计接口。硬件电路如图2所示。
图2 硬件接口方块电路图
各引脚连接说明如下:
①HD[31:0]与CPU的数据线D[31:0]相连。在HPI接口的复用模式,32条数据线HD[31:0]除了传输数据外,还需传输地址信号。
②片选信号HCS_接nGCS4。HPI接口映射到保留的系统存储器BANK4,主机通过操作BANK4就能控制HPI。
③因S3C44B0X没有HR/W_信号,所以用A1代替,与之相连。A2、A3接HCNTL0/1,用作接口功能选择。nOE和nWBE分别接HDS1_和HDS2_作为HPI的读/写控制信号输入。
④nEWAIT接HRDY_。由于DM642的HRDY_与nEWAIT的有效逻辑电平相反,所以要通过一个非门连接。EINT1接HINT_,用来DSP向主机发中断请求。
⑤HPI32方式下,HHWL和地址选通信号HAS_无需使用,固定接上拉电阻(高电平)。
3.3 软件设计
主机通过HPI接口访问DSP内部RAM,通过控制寄存器HPIC、地址寄存器HPIA、数据寄存器HPID实现RAM的读/写。ARM主机与DSP从机的通信就是对这几个寄存器的操作。在编写接口驱动时,HPI接口是被看作接到主机RAM的外设,由硬件设计可知,它被映射到BANK4的存储空间(对应的存储器地址是0X08000000~0X0A000000)。
结合时序分析和硬件的设计,可以编写接口驱动。驱动主要包括两部分:首先是HPI寄存器初始化,然后是HPI接口的读/写代码。以下是HPI接口驱动的部分代码。
/* 地址及数据初始化 */
#define BASE_ADDR 0X08000000 // 定义基地址
/* HPIC、HPIA、HPID读写地址的偏移量 */
#define HPIC_WR 0X00
#define HPID_A_WR 0X04
#define HPIA_WR 0X0C
#define HPIC_R 0X10
#define HPID_A_R 0X14
#define HPIA_R 0X1C
/* HPI读、写代码 */
unsigned long hpi_read_data (unsigned long addr)
{ unsigned long data;
data=read_data(BASE_ADDR+HPID_R); // 读取数据
return(data); }
unsigned long hpi_write_data (unsigned long addr)
{ unsigned long data;
set_addr(addr); // 设置起始地址
write_data(BASE_ADDR+HPID_WR); } // 写入数据
4 结语
在主从式视频监控系统中,通过HPI接口的设计,实现了S3C44B0X与DM642的高速通信。S3C44B0X运行的HPI读/写程序,通过设置相应的中断控制信号和对HPIC、HPIA、HPID三个寄存器的操作,实现对DM642内存空间的访问,并且可以控制映射到内存空间的数据采集终端及其他外设,从而实现了双核间的数据交换。由此证明,在S3C44B0X与DM642构建的主从式系统中,利用HPI设计的接口电路可以准确、实时的实现两个芯片间的数据通信。
本文作者创新点:采用HPI32(32位)方式设计主从式系统的通信接口,与HPI16(16位)和HPI8(8位)相比,速度更快,双核的协同工作性能更优。
参 考 文 献
[1]SAMSUNG.S3C44B0X USER`S MANUAL[Z]. http://www.samsung.com
[2]TEXAS INSTRUMENTS.TMS320DM642 USER`S MANUAL[Z]. http://www.ti.com
[3]李岩,荣盘祥编著.基于S3C44B0X嵌入式uCLinux系统原理及应用[M].北京:清华大学出版社.2005
[4]汪春梅,孙洪波编著.TMS320C5000 DSP系统设计与开发实例[M].北京:电子工业出版社.2004
[5]徐铮,刘方.ARM S3C4510B与DSP C5416的接口设计[J].仪器仪表用户. 2005.6.93-94
[6]杨健,张慧慧,于东琴等,一种HPI技术在双机系统通信中的应用[J].微计算机信息. 2006.22.127-129
|