通用微处理器(ARM)与DSP的接口设计方案

1 引言
目前,市面上主流的视频监控设备,大致可以分成两类,一是基于通用微处理器,二是基于数字信号处理器dsp。两种芯片在功能上有各自的特点,通用芯片适用于系统控制、管理和信息通讯等,dsp芯片则更适合执行复杂的数字计算、音视频数据处理等。若两种芯片协同工作,就能一定程度上克服各自的不足,更好的发挥他们的优势。基于这个考虑,本文提出了一个通用微处理器(arm)与dsp的接口设计方案,以实现两者的实时通信。
2 系统概述
2.1 arm7 s3c44b0x的特点
s3c44b0x是samsung公司推出的一款16/32位的risc(reduced instruction set computer)构架的处理器,它采用的是arm7tdmi内核,最高工作频率可以达到66mhz。这是一款高性能、低功耗的微处理器,内部集成了丰富的资源,包括:8kb的cache、ram、lcd控制器、dma、uart和iic总线接口等。主要用于gps定位系统、无线通信、手持设备、监控系统和车载装置的开发。
s3c44b0x的存储系统支持256mb的空间,划分成各32mb的8部分。系统存储器分配为bank0~bank7。可以分别用作外部存储器和lcd、usb等外设的连接。其中,bank0接flash,用于存放系统bios。bank1接flash硬盘,用作系统硬盘,构建文件系统。bank2接usb口,bank3接lcd模块,bank6接sdram,bank4、bank5、bank7保留。
2.2 dsp tms20dm642的特点
tms320dm642(简称dm642)是tms320c6000系列中性能最好的一款定点dsp,基于美国德州仪器公司开发的veloci ti第二代高性能超长指令字vliw(very long instruction word)构架而设计,芯片采用两级缓存的结构,能够支持一系列功能强大的外设。dm642拥有大量片上资源:64-bit 外部存储器接口、加强型dma控制器、16/32位hpi接口、iic总线、gpio、多媒体卡控制器、usb、多通道音频接口、10/100mbs以太网、管理数据输入输出模块等,是一款性能优越的多媒体处理器,是设计数字音视频处理系统的首选。
2.3主机接口hpi介绍
hpi(host-post interface)接口是dsp与主机相连接的一个并行通信口,是构建主从式系统,实现主机与从机通信的重要接口。主机通过hpi可以访问dsp内全部的存储空间及地址空间映射的外设,进而控制dsp,实现数据交换。dm642的hpi接口有hpi16和hpi32两种工作方式,在hpi16的方式下,高16位数据端口hd[31:16]还可又用于pci接口通信。
dm642的hpi接口信号线有:32条主机数据总线,在非复用模式下,数据总线只传输数据信号,而在复用模式下,还可用于地址信号的传输;hr/w_(_表示负逻辑有效)是hpi接口的读/写信号使能;hcs_、hds1_、hds2_是片选信号,三者在dsp的内部,经过一个逻辑门,作为数据的读/写控制逻辑;hrdy_是就绪信号,当输出为低电平,表示接口忙,反之,表示可以对接口进行操作;通过控制hrdy_,可以实现主机与dsp的握手通信;hint_为dsp对主机的中断请求输出;hhwl用于在16位模式下识别高低半字;has_是地址选通信号;hcntl0/1是hpi接口的功能选择位,hcntl0/1的功能描述如表1。
表1 hcntl0/1功能描述
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设计的接口电路可以准确、实时的实现两个芯片间的数据通信。

华硕展出超宽曲屏显示器,屏幕比例达到32:9
电话远程遥控家用电器电路的工作原理及设计
联通5G智能手机首批正式交付 这是2019年最好的礼物
奥维云发布2021年度智能家居市场报告
UFS设备的物理存储空间可以有若干个独立的逻辑地址空间
通用微处理器(ARM)与DSP的接口设计方案
揭秘新一代奥迪A8技术
如何在PMSM中建立合适的坐标系(一)
传统燃料车辆动力技术转型升级,专家表示发动机热效率或可提高到50%
苹果挖走英特尔一名副总裁级高管 明年正式加盟苹果
立讯精密回应美国337封杀调查
汽车传感器技术与应用趋势
压接尺寸的快速计算方法详解
联想与新型的Yoga Slim 7 Pro机型一起发布由AMD雷诺阿-U APU驱动的Yoga 6敞篷车
舜宇光学与欧菲科技在手机摄像模组未来竞争继续加剧
台积电8月营收冲高 受益于华为和5G芯片需求
三星将为Galaxy Z Flip 2换更大的折叠外屏
台湾地区的5G频谱拍卖收入将会超过600亿新台币
浅谈液态锂离子电池与固态电池的主要区别
外媒曝iPhone 11六大升级:不需要改变设计也能卖得好