HPI工作模式和硬件信号连接
2022-09-20

 简介

  HPI接口是TI为处理器之间直接互连通讯定义的一种异步接口,大多数TI DSP芯片上都有HPI接口。HPI接口是从(Slave)端口,接在主机的扩展内存总线上,DSP不能通过HPI向主机(Host)的访问,只能被主机读写。两个DSP的HPI接口之间不能通讯。两个DSP之间互连,可以将一个DSP(从)的HPI接到另一个DSP(主)的扩展内存接口(F)上[1]。

  1. HPI工作模式

  不同系列DSP上的HPI接口版本有所不同,区别体现在DSP对HPI的控制上,如C6727上的UHPI可通过寄存器使能与关闭HPI接口,对主机访问DSP内存空间的控制,以及对HPI接口信号的功能复用上。但从主机访问的角度,HPI的工作模式分为:复用模式(Multiplexed-Mode)和非复用模式(Non-multiplexed-Mode)。

  复用模式下没有地址线,主机访问DSP的地址信息是以数据方式送到HPIA(HPI地址寄存)。从硬件信号的角度,地址,数据信号是由同一组数据线传递,所以称为复用模式。

  非复用模式的数据线与地址线是分开的,与内存接口连接相似。非复用模式不需要操作HPIA寄存器,主机访问的地址信息通过地址总线直接送给HPI.

  所有的HPI接口都支持复用模式,但不是所有芯片的HPI接口都支持非复用模式(参考相应的芯片手册确定是否支持)。除了有无HPIA的操作区别外,两种模式的操作没有区别。因为非复用模式的操作是复用模式操作的子集,为方便起见,本文以复用模式展开讨论。

  2. HPI硬件信号连接

  HPI接口复用模式连线如图1所示,根据在应用当中的必要性分为:必要的,和可选的两组信号。可选的信号以虚线表示。

 

图1. HPI接口复用模式硬件连接

  数据线HD[0:n]:在复用模式下,数据线的宽度一般为CPU位宽的一半,一个HPI访问分为高低半字的两次访问,如C5000是16-bit CPU,HPI数据线为8位,C6000是32-bit CPU,其HPI数据线为16位。C64x系列的HPI支持32位,在32位模式下一个HPI访问不需要分为高低半字两次访问组成一个完整的访问。

  HCNTL0/1,HWIL:HCNTL0/1选择要访问的HPI寄存器,HWIL控制访问寄存器的高低半字,必须先高后低。一个寄存器的高低半字的两次访问一定要连续完成,中间不能插入其它的HPI操作。只有HPIC可以只访问半个字。

  HR/W:指示对HPI寄存器进行读,还是写操作。如果主机的读,写信号是分开的,可以利用其中一个信号,但要注意做上拉或下拉处理以控制其在三态时的电平。

  HCS,HDS1/2:这三个信号根据图2的逻辑产生内部HSTROBE信号,其逻辑关系是要求HDS1和HDS2信号相反,HCS低有效。HSTROB下降沿的时间点反应的是三个信号中最后跳变的信号。HPI在HSTROB的下降沿采样控制信号HR/W,HCNTL0/1,HWIL以判断主机要对哪个寄存器进行读,或者写操作命令。注意控制信号在HSTROBE的下降沿之前需要最少5ns的setup稳定时间,而HDS1/2和HCS到HSTROBE信号内部门电路的延时是皮秒级的,所以控制信号的setup时间需要外部时序保证。

 

图2. HSTROBE信号产生逻辑

  HRDY:HPI的输出信号,指示当前操作状态,用做硬件流量控制握手信号。

  HINT:通过HPI,主机与DSP之间可以互发中断。HINT是HPI送给主机的中断信号,DSP对HPIC[HINT]位写1,HINT信号线上送出高电平信号,主机可利用此信号做为中断信号输入。DSP不能清除HPIC[HINT]状态,主机在响应中断后,需要对HPIC[HINT]位写1清除状态,DSP才能再次对HPIC[HINT]置位发中断。主机通过写HPIC[DSPINT]置1给DSP产生中断,DSP在响应中断后,需要对HPIC[DSPINT]写1清除状态,主机才能继续操作HPIC[DSPINT]给DSP发中断。通过HPI传输数据,结合互发中断做为软件层的握手信号,可有效提高通讯的效率与灵活性。

 

  ALE:存在于地址,数据线复用的主机上用来指示地址信号周期,这种总线复用的主机很少见,所以通常将ALE固定上拉处理,只用HSTROBE采样控制信号。

  BE:Byte Enable信号,这个信号只出现在32位的C6000 DSP上。因为应用当中通常都是对整个32-bit字进行访问,所以直接做上拉使能处理。

  3.HPI寄存器地址映射

  HPI口提供给主机端访问的寄存器只有4个,通过HCNTL[1:0]选择。

表1. HPI寄存器访问选择

 

  由于在复用模式下数据线通常只有寄存器宽度的一半,所以一个完整的数据访问由高低半字两次访问组成,由HWIL信号控制,HWIL信号必须是先低后高。通常将HWIL和HCNTL[1:0]接在主机的地址线上,将4个寄存器映射为主机端的8个内存单元,下表中的地址线连接方法将8半字寄存器映射到主机的8个连续的内存单元。这里的地址线是用来选择HPI的寄存器,与非复用模式下的地址线直接访问DSP的内存空间是完全不同的作用。

表2. HPI寄存器地址映射

 

  4. HPI寄存器功能说明

  HPIC (HPI Control Register)

  HPI控制寄存器HPIC的位图如表3所示,C6000系列DSP的HPI寄存器是32位的,也只有低16位有效,与C5000系列DSP的HPIC寄存器定义的功能保持一致。不同版本的HPI接口的HPIC位定义的主要不同之处在于软件握手HRDY位的有无,其它位名称可能存在细小差异,但功能定义都是一样的。

表3. HPI Control Register

 

  主机在对HPI进行访问前可以通过HPIC配置字节序(HWOB)和地址寄存器模式(DUALHPIA)。默认的配置为HWOB=0,即先访问高半;DUALHPIA=0,即单地址寄存器模式,读和写操作使用同一个HPIA;通常都采用默认的HPIC寄存器配置。

  HWOB与硬件信号HWIL是没有联系的,HWIL信号必须保证先低后高分别访问两个半字单元。至于先访问一个字当中的高或低半字,是由HWOB控制的。

  HPIA (HPI Address Register)

  物理上存在HPIAR,HPIAW两个地址寄存器。HPIAR是读操作地址寄存器;HPIAW是写操作地址寄存器。由HPIC的DUALHPIA位来决定是采用双地址寄存器模式还是单地址寄存器模式。如果采用双地址寄存器模式,在对HPIA操作之前,通过设置HPIC的HPISEL位选择下一个要访问的HPIA.通常为了简化在读写操作转换时对HPIC的操作,选用单地址寄存器模式。

  HPIA的地址信息在不同系列DSP上有所不同:

  在C5000上,数据空间,I/O空间只能按16位字寻址,程序空间按字节寻址。HPI的DMA访问属于I/O空间,HPIA的值代表16位字地址。如主机端要访问DSP内存字节地址0x100, 则要往HPIA写的地址值是0x80.在用HPI启动时,要注意DSP代码是按字节地址链接的,即代码段的地址是字节地址,主机端要将代码段的地址信息除以2再送到HPIA.

  在C64上,HPIA的值代表字节地址,但是HPI访问的数据是32位的,所以HPI会忽略HPIA地址值的低两位。

  在C64+的DSP上,HPIA代表32位字地址,HPI会将字地址左移两位转换成字节地址,主机若要访问DSP字节地址0x100,则要赋值HPIA为0x40.

  HPID (HPI Data Register)

  主机通过HPI对DSP的内存访问是间接访问,主机只能访问HPID,HPID与DSP内存之间是通过HPI专属的DMA进行数据搬运的。如图3所示。

 

图3. HPI读写数据流

 

  HPID的访问分为自增模式和非自增模式。在自增模式下,访问HPID后,HPIA会自动增加指向下一个字地址,在连续访问时,自增模式因为减少了主机对HPIA的操作,可以增加HPI数据访问的吞吐率。非自增模式下访问HPID后,HPIA的值保持不变,主机需要更新HPIA来访问下一个地址。

  在写操作时,主机把数据写到HPID,HPI将第二个半字的数据通过HSTROBE的上升沿锁存到HPID后,将HRDY置为忙状态,并启动HPI DMA将HPID的内容搬到HPIA所指向的内存单元,然后清除HRDY指示可以进行下一次操作。

  在读操作时,在第一个HSTROBE的下降沿,HPI采样到HR/W为读命令,则将HRDY置为忙状态,启动HPI DMA将HPIA指向的内存单元的数据搬到HPID,清除HRDY忙状态,主机端方可结束总线访问周期,锁存数据线上的有效数据。

  5. HPI操作流程

  主机对HPI的一次总线访问周期为分三个阶段:主机发起访问,HPI响应,主机结束访问周期。

  A. 主机发起访问:即对HPI寄存器的读,或者写命令。主机送出的硬件信号为HSTROBE(由HCS, HDS1/2产生),HR/W,HCNTL0/1,HWIL,以及HD[0:n].HPI在HSTROBE的下降沿采样控制信号HR/W,HCNTL0/1,HWIL判断主机的操作命令。

  B. HPI响应:HPI在HSTROBE的下降沿采样控制信号,根据控制信号做出相应的响应。如果是写(HR/W为低)命令,则在HSTROBE的上升沿将数据线上的信号锁存到HCNTL0/1和HWIL指向的寄存器。如果是读命令(HR/W为高),如果是读HPIC,或者HPIA寄存器,HPI将寄存器的值直接送到数据总线上;如果读HPID,HPI先将HRDY置为忙状态,HPI DMA将数据从HPIA指向的内存单元读到HPID,再送到数据线上,并清除HRDY忙状态,在读HPID后半字时,数据从寄存器直接送到数据总线上,不会出现HRDY信号忙状态。

  C. 主机结束访问周期:对于写操作,主机将数据送出后,只要满足芯片手册中HPI对HCS的最小宽度要求,即可结束访问周期。对于读HPID操作,要等HRDY信号由忙变为不忙,主机才能结束访问周期。

  a) 两次连续的HPI操作的间隔,在芯片手册的HPI时序参数表里有要求,最小间隔为两个HPI功能模块时钟周期。

  6. HPI常见故障案例分析

  在HPI应用调试过程中,常遇到的问题分为:写数据不成功,读数据不正确,HRDY常高。这些问题通常都是由于时序不正确造成的,下面结合实际应用当中的案例进行分析。

  6.1 写数据不成功

  案例的硬件连接如下:

 

硬件连接

  首先关注核心信号HSTROBE由DSP_CS,ARM_WR(HDS1),ARM_RD(HDS2)产生,从下面时序图可以看出ARM_WR的下降沿是最后产生的,所以写操作时HSTROBE的下降沿反应的是ARM_WR的下降沿。

  写HPIC的时序截图如下:

 

写HPIC\HPID的时序截图

  两个时序图显示主机送出的数据111b在HSTROBE(ARM_WR)的下降沿后,很快被改变成其它值000b.在写HPID的时序截图中,第一个HSTROBE的下降后,HPI送出HRDY信号,然后数据线被改变,首先判断HPI对主机的命令做出了响应,通过HRDY信号的出现时机,说明HPI判断这是一个读操作,可以判断为HSTROBE的下降沿采样HR/W信号不正确。

  从硬件连接来看,HSTROBE(HR/W)要采样HR/W,HCNTL0/1来判断主机命令, HR/W的与HSTROBE为同一信号源,且同为下降沿,HR/W与HSTROBE的下降沿之间的setup时间不够,采样HR/W的电平状态出现误判,认为是高电平读命令,HPI对读命令的响应则是在第一个HSTROBE的下降沿之后送出HRDY信号,并在HRDY之后,HPI送出数据到总线上。

  对于该问题,需要对参与HSTROBE逻辑译码的HR/W信号的下降沿做延时处理,可在逻辑电路如CPLD或FPGA里实现,以确保HSTROBE的下降沿采样到稳定的HR/W电平。

 

  6.2 读数据不正确

  通常表现为读读HPIC,HPIA正常,但读HPID不正常,前半字为0,后半字正确,对同一个地址读两次,第二次的数据完全正确。

  在案例中,用示波器观察HCS与HRDY之间的时序关系,发现HCS的上升沿在HRDY的上升沿之前,即主机在HPI数据有效之前结束了访问周期。HRDY的上升沿其实是因为HCS的结束而拉高的,并非数据真正有效。

 

示波器观察HCS与HRDY之间的时序关系

  用户由于没有在硬件上将HRDY与主机PowerPC的TA信号互连,没有硬件握手机制,于是从软件配置上加大主机的总线访问周期,即增加HCS的宽度,故障现象没有变化。

  原因分析:读HPID与HPIC,HPIA时序不同,读HPID操作需要HPI DMA从HPIA所指向的地址读数据到HPID,会有时间上的延时。而读HPIC和HPIA直接从寄存器读数据,没有延时,所以读HPIC,HPIA是正确的。在读HPID时,HPI会在第一个HSTROBE的下降沿后将HRDY置位,指示数据未准备好的忙状态,主机应当在总线上插入等待周期,数据准备好后HPI清除HRDY,主机才可以结束总线周期,通过HCS的上升沿将有效数据锁存。

  HSTROBE的下降沿到数据有效之间的延时与芯片及HPI接口的工作频率相关,以C5502,C5501为例,在芯片手册中,这个延时参数H1在SYSCLK1与CPU时钟的分频为4时,最大延时为12*2H+20(ns),H=SYSCLK1/2,在HPI启动期间,PLL没有倍频,处于旁通状态,系统输入时钟就是CPU的工作时钟,SYSCLK1默认分频为CPU时钟的4分频,以输入时钟为25MHz为例,最大延时为:

 

延时计算  这个时间长度通常超出了主机端总线周期的软件配置范围,所以通过软件配置增加HCS的宽度不一定能满足HRDY的最大延时要求。在有的DSP芯片手册上只提供了HRDY的最小延时,最大延时与芯片的优先级设置,及系统配置相关而不确定,比如与系统中其它主模块如EDMA同时访问DDR,那么延时与HPI的优先级,EDMA的优先级,EDMA的burst长度,以及DDR的命令排序等配置相关,这样通过延长主机的总线访问周期,更加不可靠。

  解决办法:在硬件设计之初,一定要利用HRDY硬件握手信号[2][3]。虽然有的芯片HPIC寄存器提供了HRDY软件握手方式,只能做为弥补硬件设计之初遗漏HRDY硬件握手信号的权宜之计,软件轮循HRDY的办法会带来额外的开销,降低HPI总线的吞吐率,增加主机软件实现的复杂度。而且有的芯片HPI不支持HRDY软件查询方法,只能通过硬件HRDY保证数据的有效性。

  6.3 HRDY常高

  有的系统在长时间运行中偶尔出现HRDY常高,导致主机端总线访问异常,需要重新上电才能恢复HPI的正常操作。这种故障是由于HPI状态机出现异常。

  从实际故障定位中总结出以下几点原因:

  A. HPI的高低半字访问的顺序访问被其它HPI访问打断:在复用模式下,一个完整的HPI访问是由高低半字两次访问组成,需要严格保证,否则会破坏HPI的状态机,从而导致不可预期的后果。

 

  B. 主机通过HPI访问了DSP内部的保留空间,或者破坏了DSP的程序,数据空间,导致DSP运行异常,进而导致HPI状态机异常。

  C. 主机的HSTROBE信号有毛刺,或者信号完整性不好,如下图中HCS(些案例HSTROBE是由HCS控制)的上升沿的回勾,都会导致HPI误判断为主机的新的访问的开始,从而打乱了高低半字的访问顺序要求,导致HPI状态机的错乱。

 

HSTROBE信号

  7. 总结

  HPI是一种简单的异步接口,只要设计中满足了时序要求,即可稳定工作。在开发当中遇到数据读写不正确,从HSTROBE信号入手检查与之相关的信号的时序关系,便可以找出问题原因。另外,信号完整性是任何系统稳定工作的前提。

  关于特定芯片上HPI接口的特有功能本文没有针对讨论,如C6727的字地址模式和字节地址模式可通过HPIC配置;C6727在HPI启动后ROM bootloader将HPI关闭,需要软件重新使能才能使用等;以及不同芯片的HPI启动模式下的跳转方式不同,请参考相应芯片的HPI手册及bootloader应用手册。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 封装
  • 工艺
  • 光刻
  • SMT
  • IC芯片的晶圆级射频测试

         对于超薄介质,由于存在大的漏电和非线性,通过标准I-V和C-V测试不能直接提取氧化层电容(Cox)。然而,使用高频电路模型则能够精确提取这些参数。随着业界迈向65nm及以下的节点,对于高性能/低成本数字电路,RF电路,以及模拟/数模混合电路中的器件,这方面的挑战也在增加。  减少使用RF技术的建议是在以下特定的假设下提出来:假设RF技术不能有效地应用,尤其是在生产的环境下,这在过去的确一...

    11-29
  • 微动开关的工作过程

    微动开关由带纯银触点的动静触头、作用弹簧、传动杆和胶木外壳等组成。LX31系列基本型、JW系列基本型微动开关的结构如图6-30所示。微动开关采用具有弯片状弹簧的

    11-28
  • LM358封装基础知识

    封装,就是指把硅片上的电路管脚,用导线接引到外部接头处,以便于其它器件连接。封装形式是指安装半导体集成电路芯片用的外壳。它不仅起着安装、固定、密封、保护芯片及增

    11-23
  • TM7705如何读数据 TM7705中文资料封装图IC读取程序

      TM7705中文资料、TM7705简介:  TM7705是应用于低频测量的2/3通道的模拟前端。该器件可以接受直接来自传感器的低电平的输入信号,然后产生串行

    11-22
  • PCB设计中的eSMT贴片工艺要求介绍

    一、Mark的处理步骤规范有哪些?1、Mark的处理方式,是否需要Mark,放在模板的那一面等。2、Mark图形放在模板的哪一面,应根据印刷机具体构造(摄像机的

    11-22
  • 高速高频覆铜板的工艺制作流程解析

    覆铜板又名基材,将补强材料浸以树脂,一面或两面覆以铜箔,经热压而成的一种板状材料,称为覆铜箔层压板。它是做PCB的基本材料,常叫基材。当它用于多层板生产时,也叫

    11-18
  • IC芯片封装测试工艺流程

    共读好书 Introduction of IC AssemblyProcess IC封装工艺简介 扫码关注半导体封装工程师之家视频号 扫码关注半导体封装工程师之家微信公众号

    11-10
  • PE工艺管理常用工具知识

    共读好书 1.常用的管理知识  2.问题的概念 3.数据处理的一般方法 4.常见的解决问题的流程 一、PE工作的总结 事前预防功能 -设计标准化的监督;-重新审视设计标准,例:焊盘的形状、电路板的外形尺寸; -安全性一一寻求确保安全的措施; ■评价功能 -试产机型

    11-10
  • 陶瓷封装电路键合引线冲击应力下的短接判定方法

    共读好书 季振凯 徐彦峰 卢礼兵 (中国电子科技集团公司第 58 研究所) 《电子与封装》   摘要:   高可靠集成电路普遍采用陶瓷封装。但是陶封电路内部的空封结构易导致键合线在受到外界机械冲击后引起相邻键合线短接。因此在设计阶段对键合线的选择、布线布

    11-10
  • 封装体叠层(PoP)技术及其应用

    共读好书 FlynnCarson (STATS ChipPAC公司) 摘要   在逻辑电路和存储器集成领域,封装体叠层(PoP)已经成为业界的首选,主要用于制造高端便携式设备和智能手机使用的先进移动通讯平台。对于小而薄PoP解决方案的需求将会继续,预计PoP将会在目前市场份额的

    11-10
  • 塑封对叠层固体铝电解电容器性能的影响

    共读好书 王国平 (福建国光电子科技股份有限公司)   摘 要 :   塑封工序中塑封材料和注塑压强是影响叠层固体铝电解电容器的两个主要因素。具有柔性好(韧性强度好)的塑封料,流动长度长,与芯片摩擦力小,高温(140-195 度之间)黏度小以及固化收缩率小的

    11-10
  • 高热导率LTCC基板的散热性能测试分析

    共读好书 肖刚 郝沄 杨宇军 袁海 陈宁 (西安微电子技术研究所)   摘要:   提出了一种内置微流道的LTCC基板结构,制定了LTCC的内置微流道基板制作方案。按照方案进行基板制作,测试其散热效果,对测试结果进行了分析,研究结果对提高LTCC基板的散热能力具有

    11-10
下载排行榜
更多
广告