您好,欢迎来到99网。
搜索
您的当前位置:首页PCI和Local总线冲突问题的研究

PCI和Local总线冲突问题的研究

来源:99网
维普资讯 http://www.cqvip.com ≥ PCl ̄l:lLocal总线冲突问题的研究 【余群陈岗王群生】 l_圜 从一 ̄CDMA2000 BTs的故障出发,故障现象为,信道模块向主控模块索取 _ 一 软件版本,经解压缩后报cRc错误导致无法启动。经反复测试和细致分析,最终 定位为PCI与Local总线之间存在冲突,产生了异常重读操作导致数据丢失。文章 余群 广州大学信息与机电工程学院,通信专业讲师,主要研究方向为:通信理论 与技术。 陈岗 广东轻工职业技术学院,电子与通信工程系。 王群生 华南理工大学,电子与信息学院。 1 问题的提出 般地,按照数据进行扩频调制的前后区别, 一报cRc错误,版本异常,从而无法正常启动。软件于是重 新复位,重新要版本,经反复测试,有时候要到的版本能 够解压缩成功,有时候要到的版本报cRc错误,错误的概 率较大,约占8O%。几乎同时,该问题不仅在基带子系 CDMA2000的BTs(基站收发信机)可划分成2个子系统: 基带子系统和射频子系统。基带子系统负责cDMA扩频前 信号的处理与传输,射频子系统负责cDMA扩频后信号的 处理与传输。 统内出现,还在射频子系统内出现,射频收发模块复位后 向射频主控模块要版本的过程也报同样的错误。 在一次对cDMA200o基站进行测试的过程中,基带 子系统的信道处理模块上电复位后,需要从基带主控模块 2 问题的分析及解决过程 2.1 BTS功能划分 索取软件版本,然后把要到的版本进行解压缩,不过经常 2007.4‘广东通信技术 维普资讯 http://www.cqvip.com 技i 术 交流 CDMA2000 BTS的系统框架如图1所示。 化为无线信号,经空中接口,最后到达终端。 从图1可见,基带子系统内采用以太网进行通信,射 从BSC(基站控制器)过来的信令以及媒体数据,经 Abis接口,传输到BTS的基带子系统,然后经以太网到达 频子系统内采用RS485进行通信,而这两个子系统的主控 模块之间采用HDLC进行通信。 信道处理模块,进行CDMA2000的调制处理,变成扩频信 号,传输到射频子系统,由射频收发模块进行高频调制转 接口: 信 道 处 ● lIII州 翱 刑 频 模 块 ;llI● 块 收 发 幔 块 图1 BTS系统框 圜 困 囡 园 2.2故障的定位过程 最初怀疑是数据传输的问题,不过很快被排除,因 为基带子系统内采用百兆以太网通信,而射频子系统内采 ● ●●●●●●● ●●●上,为了深入定位问题,需要对主控模块进行分析。图2 是基带子系统主控模块的实现原理 。 ●●●●● 用RS485通信,经测试,两个通信的链路是正常的,并且 两种通信采用的方式差别很大,不太可能同时存在误码。 偶然发现,如果将射频主控模块拔了出来,信道处 i j I 址 J ^A III 理模块复位后每次都能正常要到版本,将射频主控模块插 入机框,问题立刻出现。由于这两个子系统的主控模块之 间不断进行HDLC通信,另外版本存储在Compact Flash 卡(简称CF卡)上,初步怀疑是主控模块的HDLC通信与 、 , 图2 基带子系统主控模块原理框图 CF卡的信息读取存在冲突。因此,编写测试程序,在这 两个主控模块之间保持HDLC通信的同时,对CF卡进行循 CPU采用飞思卡尔半导体公司(F reescale SemicondUcto r lnc)提供的高性能Powe rPC系列 环读写,一旦发现CF卡读写异常,打印异常信息。从打 印的结果可以看到,从CF卡读出来的数据比实际的数据 少了24"字节,而CF卡的数据宽度为16bit,也即少了一个 读操作的数据。并且丢失的数据会累积,过一段时间少4 MPC8240,MPC8349,嵌入式实时操作系统采用 VxWORKS。CF卡采用ATA接口协议,是基于FlFO结 构,即数据的接口地址是相同的,从存储地址读取一个 数据后,再从相同的地址读,就会取得下一个数据 。这 个字节,再少6个字节,以此类推。数据存在丢失,就无 法通过CRC校验,这就解析了版本错误的问题。 点与基于RAM架构的读写是有明显区别的,对RAM而 言,数据存干不同的地址,从同一个地址读,得到的是相 2_2.1主控模块功能原理 同的数据,需要从另一个地址读,才能得到另一个数据。 HDLC(位于FPGA内,由逻辑实现)和CF卡都挂在Local 问题初步定位到主控模块的HDLC与CF卡这两个点 60 维普资讯 http://www.cqvip.com PCl ̄llLocal总线冲突问题的研究 上。桥片9054 ̄13HDLC是Local总线的Master设备,Local 仲裁器由EPLD实现。 9054配置DMA的相关参数,立刻释放总线权。参数配 置完毕,CPU收到一个中断,接着发起通过9054的数据 搬迁操作,搬迁过程中需要通过9054申请总线权,发起 HDLC—SDRAM方向的DMA传输。 信道处理模块向主控模块索取版本的流程为:请求 通过以太网发出,被主控模块通过信令流网!El接收,经 PCI发向CPU,CPU确认申请,然后申请PCI总线,获取 总线权后,通过PCI访问桥片9054,进行PCI到Local总 线的转换,到达Local后,需要向Local仲裁器提出使用 Local的申请,获申请后读取挂在Local下的CF卡内的版本 数据,并将该版本数据通过以太网发往信道处理模块。 与此同时,基带子系统的主控制模块还与射频子系 统的主控模块进行HDLC通信,HDLC模块收到对方的数 据后,需要向Local Bus仲裁器提出使用Local的申请,获 取申请后通过DMA的方式,经桥片9054进行Local ̄ PCI 的转换,发往CPU。 测试发现,如果HDLC只进行单向的发送,不进行接 收,则与CF卡的读写是不会冲突的。HDLC单向发送的过 程中,提出占用总线的只有9054这一方,不存在问题; 如果增加HDLC接收过程,HDLC会提出申请总线,则立 刻产生数据丢失问题。而且HDLC申请Local总线权的情 况只会发生在HDLC向9054 ̄置DMA参数的这一小段时 间,其余时间都不会申请总线。因此,可将异常范围再缩 小到HDLC向9054 ̄7.置DMA参数的操作与对CF卡的读写 操作造成冲突。 2-2.2时序分析 软件编写测试程序,让该主控模块进行大流量HDLC 因此,需要占用Local总线权的情况有: (1)桥片9054读取CF卡数据,9054需要申请使用权。 (2)HDLC发送,桥片9054需要申请总线权,然后发 起SDRAM—HDLC方向的DMA传输。 的内部环回测试,同时对CF卡进行反复读写,一旦发现 数据异常,启动触发条件,通过逻辑分析仪捕捉信号波 形,如图3所示。 圈 困 国 园 (3)HDLC接收,HDLC需要申请总线权,向桥片 图3逻辑分析仪捕捉到的0X1A数据丢失时的Local波形 图3信号说明 。, : LA4—2:Local总线地址。 LD7—0:低8比特。 FPGALocal总线数据,受示波器通道数所限,仅跟踪数据线的 HOLD:HDLC(位于FPGAI ̄部)提出申请Local信号,高电平 61 2007.4广东通信技术 维普资讯 http://www.cqvip.com 有效。 FPGA—况,即FPGA使用总线权的时候, 9054同时也在申请占 HOLDA:HDLC获取Local请信号,高电平有效。 用总线权,接着FPGA释放总线权,然后9054E ̄请到了总 H0LD: 9054提出申请Local信号,高电平有效。 9054获取Local申请信号,高电平有效。 CF卡读信号,低电平有效。 LHOLDA: RD CF: CS CF1: CS CF2: ADS: 线权,对CF卡进行了读写,不过9054却连续申请了2次, 对CF卡读写了2次,读出的第一个数据0X1A在CPU丢失 了,第二个数据0X3C没有丢失。 从图3中,我们看到了数据丢失时候的Local波形, CF卡片选1信号,低电平有效。 CF卡片选2信号,低电平有效。 地址锁定指示信号,低电平有效。 数据准备好指示信号,低电平有效。 突发中止信号,低电平有效。 最后一个突发数据指示信号,低电平有效。 LREAD Y= BTERM: LBLAS 不过总线的申请和仲裁是正常的,没有发生仲裁异常的情 况。问题是,第一个数据已经从Local正常送出了,为什 么会丢失呢?为此,我们有必要再向CPU的方向分析,首 先分析PCI的时序,如图4所示。 分析图3数据(0X1A)丢失前的几个时钟节拍,可以发 现,FPGA HOLD和HOLD有一段较长时间同时有效的情 圜 困 国 园 图4逻辑分析仪捕捉到的0X80数据丢失时的PCI和Local的波形 图4信号说明 FRAME:PCI传输开始信号,低电平有效。 IRDY:DEVSEL:TRDY:PCI启动方准备完毕指示信号,低电平有效。 PCI设备地址解码完毕指示信号,低电平有效。 PCI目的方准备完毕指示信号,低电平有效。 等待超时而发出STOP信号,取消了这次传输,并且发起 了重试。不过就在要发起重试的时候,9054却申请到了 使用权将Local数据0X80读走。接着PCI重传,导致9054 多读一次。这个抓图很好地解析了问题,暴露了PCl和 Local的冲突。PCI有2次拉低FRAME的动作,Local也有2 次拉低RD CF的动作,不过PCI认为只有1个操作有效, 而Local认为2个操作都有效。PCI可能认为,对同一个地 址的重读操作,得到的还是存于这个地址内的原数据,不 会造成数据的丢失。不过,对于FIFO而言,数据一经读 STOP:PCI目的方请求启动方中止当前传输。 图4是另外的一个抓图,图中丢失的数据: ̄0X80。由 图4可见,CPU在PCI总线发起了一次传输,将FRAME拉 低,然后等待目的方(桥片9054)将TRDY拉低,不过由 于9054E ̄请不 ̄lJLocal使用权,无法回应数据,导致CPU 62 维普资讯 http://www.cqvip.com 传,是问题解决的关键。 PCI由于等待超时放弃传输了,Local却没有相应地 将本次传输放弃,这是为什么呢?这是因为,PCI和Local 是一个异步的系统,采用各自的时钟,采用各自的状态 机,依赖二者之间的一个FlFO机制进行同步。PCI由于 等待超时,放弃了传输,将该“放弃”的信息同步到 Local,需要一定的时间,如果恰好在这段时间内Local已 经申请到了使用权,发起了传输,则会造成这次“放弃” 没有真正地被放弃,造成重复操作。但是基于FIFO的CF 卡,是不允许这种操作的。 2.2.3解决方案 桥片9054的手册提到一种Local的延时读的模式,该 模式操作过程为:PCI发起了读请求,9054立刻返回延时读 命令(通过拉 ̄STOP实现),然后申请Local总线读取Local 数据,当读完Local数据后,才将数据返给PCI。PCI收到 延时读命令后,反复重新发起读请求,9054反复返回延 时读命令,直 ̄J9054将数据向PCI送出为止。采用这种方 法,尽管PCI发起了多次的操作,也能保证Loca1只操作一 次,避免Local的重传,经测试,丢失数据的问题不再出 现。 从图4中可看出,从PCl发起一个读传输(拉低 FRAME)开始, ̄9054由于申请不到总线而回应一个传 输失败(拉 ̄STOP)为止,经过了约1 的时间。如果 可以将在回应STOP信号之前的等待时间拉长,大于 FPGA占用Local总线的最大时间,即在FPGA占用总线而 9054申请不到总线的时候,9054不回应STOP信号,则能 够避免PCI的重传,从而有效地解决问题。桥片9054手册 中寄存器(LBRD0:PCI18h,LOC98h)Local Address Space0,Expansi0n Rom Bus Region Descriptor高四位 “PCI Target Retry Delay Clocks”能够配置这个等待时 间。4比特,最大值为0XF,查表可知,对应的最大等待 时间为3.6Ps,能满足大于FPGA占用总线的最大时间 方法,将9054的Mode/DMA Arbitration寄存器的Delayed Read Mode使能。 (2)方法二,避免PCl的重传。修改9054的寄存器 “PCI Target Retry Delay Clocks”,将其配置为0XF, 使9054在回应PCI的STOP信号前等待的时间拉长到足够 范围。 值得注意的是,如果Local侧的设备占用Local总线的 时间大于寄存器“PCI Target Retyr Delay Clocks”所能 确定的最大范围,则方法二失效。相对而言,方法一较为 通用,推荐使用。 3结论 圜 问题的顺利解决,对于理解和分析PCI和Local总线 困 有着一定的实际应用价值。另外,问题的解决留下一个值 国 得关注的问题:在对存储数据进行读写操作的时候,有时 园 会存在某种操作上的异常,例如超时,或者受到了干扰 等,导致操作失败,可能需要重新发起操作。如果存储数 据是基于RAM架构的,重读或重写一般不会造成问题; 不过,如果存储数据是基于FIFO架构的,则需要采取额 外必要的保护措施,简单的重读或重写可能会造成数据的 丢失。 参考文献 1 Freescale Semiconductor Inc.MPC8240 Integrated Processor User’S Manual,Rev 1.http://www.freescale. com/ifles/32bit/doc/datasheet/MPC8240EC.pdf, _2001/1,P11—428 ——2 Freescale Semiconductor Inc.MPC8349E PowerQUICC II Prolntegrated Host Processor Fami『y Reference Manua1.Rev 1.http://www.freescale.comlfiles132bitldod ref_manual/MPC8349EARM.pdf,2005/8,P1—1・3_22 3 Hitachi Ltd.CompactFlashTM 256 MByte/1 92 MByte/1 60 MByte/1 28 MByte/96 MByte/64 MByte/32 MByte,Rev 3.0.http://www.ortodoxism.ro/datasheets/ (下转第71页) 63 2007.4‘广东通信技术 维普资讯 http://www.cqvip.com 船载动中通伺服系统 圆锥扫描的跟踪方式,降低了系统实现的难度,提 高了系统的整体性能,同时降低了系统成本。本系统已经 完成在三轴转台上的测试,并T2003年在福州海关进行 了实际环境下的性能测试。具体测试条件如表1: 表1测试条件 测试结果如表2 表2测试结果 结果表明,该系统满足船用条件下的各种性能要 求。系统结构的合理化的设计,提高了该系统的性价比, 使得其具有广阔的市场前景。 跟踪的研究[J1.西安电子科技大学学报,1998,25(5): 650-655. 3 August Golden Jr.Radar Electronic Wa rfare[M].American Institute ofAeronautics and Astronautics Inc,1987. 4 Eaves J L1Reedy E K.Principles of modern radar[M].New 参考文献 1 陈振国,杨鸿文,郭玉彬.卫星通信系统与技术【M】.北京:北京 York:Van Nostrand Reinhold Copany,1 987 5 赵来定,胡正飞,曹伟,季鸿宇.卫星通信圆锥扫描跟踪,现代雷 邮电大学出版社,2003. 2 严武升,刘宏.郭润秋.基于前馈补偿的舰载雷达三轴稳定 达,2006,28(5):76~78. (收稿日期2007—03—19) (上接第63页) HitachiSemiconductor/mXwvxrt.pdf.2000/1 0.P1—26 4 PLX Technology Inc.PCI9054 Data Book,Rev 2.1.http:H WWW.plxtech.com/dts/download.asp?f=/PCI9000/9054/ databook/9054db.21.pdf,2000/1,P47—291 5 PCI Special Interest Group.PCI Local Bus Speciicatfion, Rev 2.2.http://www.pcisig.com/members/downloads  2 2.pdf, /specifications/conventional/conventionalpci~1998/12.P27-13O 6 Shanley T,Anderson D著,刘晖,冀然然,夏意军译.PCI系统 结构,Rev4.北京:电子工业出版社,2000/7,P40-80 技=术=交=流一 (收稿日期2007-03-16) ■●■一■●■_■●■_■●■_■●■_■●■_■●■_■一 刊登在《广东通信技术》2007年第2期_EP58-61文章“基于 E.Model的voIP语音质量测量”中作者简介有误 原作者简介: 更正为: 杨宗林重庆邮电大学硕士研究生 张治中重庆邮电大学博士生导师 《广东通信技术》编辑部 2007年4f]12日 杨宗林南京邮电大学硕士研究生 张治中南京邮电大学博士生导师 71 2007.4’广东通信技术 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务