6.1双端口RAM的设计与实现该3G手机采用的是双CPU的架构,由于.DOC

6.1双端口RAM的设计与实现该3G手机采用的是双CPU的架构,由于.DOC

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.1双端口RAM的设计与实现该3G手机采用的是双CPU的架构,由于

6.1双端口 RAM的设计与实现 该3G手机采用的是双CPU的架构,由于需要支持高达7.2Mbps的高速3G 数据服务及64kbps恒定速率VT数据通讯服务。双CPU间采用USB、3G应用对速度的要求,功耗大、增加处理器开销的问题都难以解 决,并且专门占用一个USB 口资源。而双端口 RAM是实现CPU间大量数据高速交 换的较好方法,现在许多类似的系统也是釆用该种设计方案。因此,在VIVA手 机中釆用了 Cypress 公司的 Dual-Port Static RAM(DPR)模块实现 Intel PXA270 与Qualcomm MSM6280双CPU间高速的数据传输。 6.1.1 DPR的硬件结构 图6-1双端口 RAM硬件连接简图 如图6-1所示,PXA270与DPR间的接线有地址总线、数据总线、读写控制 线、状态线。PXA270通过GPIOO针脚响应QualCommMSM6280产生的中断,通过 GPI018针脚发中断信息给QualComm MSM6280。CPU在写数据到DPR后就会产 生中断,通知对方进行中断处理,接收传输的数据,以实现双CPU间的数据传输。 6.1.2 DPR驱动在Windows CE的位置【13〗 从软件层次框图可以看出,DPR作为驱动程序同时运行在Intel PXA270和 Qualcomm的MSM6280两侧。DPR驱动被虚拟成为一个Windows CE操作系统下的 COM接口,然后供高层的模块如RIL等进行使用〃 6.1.3 DPR的内存空间划分 根据实际使用的需要,我们将16K Word大小的双端口 RAM划分成两个通道 (如图6-3所示):AT channel、Data channel。AT通道是用于WinCE系统与 Qualcomm modem间AT命令的发送与响应,传输的数据量很小,所以只分配了 1K 字节大小的缓冲区。而Data通道是用于传输Video Telephone数据和高速上网 服务等3G高速数据服务,因此分配了 15K字节的缓冲区。 如图6-4所示,AT通道和DATA通道在实现机制上是相同的,每个子通道都 支持双向数据传输。Tx Buffer和Rx Buffer以回环方式进行数据缓冲。因此带 2Byte长度的头尾指针,用于指示当前传输数据所在的内存位置。往缓冲区写数 据时修改尾指针的位置,读出缓冲区数据时修改头指针位置?当头尾指针重合时 表明缓冲区已满,则无法写入数据。 6.1.4 Mail Box寄存器实现DPR的消息交互 DPR通道称为端口,每个端口都有一个与之对应的Mail box寄存器(如图 6-5所示),当一个端口向另一个端口的Mail Box寄存器写入数据时,会在另 一个端口产生一个中断。Mail Box所属的端口读自己的Mail Box寄存器时,中 断就会清除。一个端口可以读另一个端口的Mail Box寄存器而不重置中断。 规定Mail Box低位字节各位表示通道号,高位字节各位表示对方相应通道 的应答标志。 6.1.5数据发送接收流程 6.1.5.1写操作步骤(如图6-6所示) 1)发送方获取发送子通道的头指针和尾指针,并计算发送子通道的剩余空 间。 2)如果没有剩余空间,则等待Ack事件,超时后返回。 3)如果有剩余空间或超时前有Ack事件,发送方屏蔽中断,写入数据并更新 写指针。 4)写对方的Mailbox的相应位,用于产生Notice中断。如果己经写完指定的 字节数则返回,否则继续下面步骤。 5)读取中断输入电平状态,若为无效则返回。若有效,则调用中断处理程序 (不同于1ST)。 6)中断处理程序中检测通道信息,设置相应的事件,若为当前处理的通道的 Ack中断,则不设置事件并读取头尾指针计算可用的剩余空间。 7)写入数据,更新写指针。 8)写对方的Mailbox的相应位,用于产生Notice中断? 9)打幵中断并返回。 6.1.5.2读操作步骤(如图6-7所示) 1)接收方获取接收子通道的头指针和尾指针,并计算接收子通道的已接收(待 读取)的数据的字节。 2)如果没有数据,则等待Notice事件,超时后返回? 3)如果有数据或超时前有Notice事件,接收方屏蔽中断,读取数据并更新读 指针。 4)写对方的Mailbox的相应位,用于产生Ack中断,如果已经读取完指定的字 节数则返回,否则继续下面步骤。 5)读取中断输入电平状态,若为无效则返回。若有效,则调用中断处理程序 (不同于IST)? 6)中断处理程序中检测通道信息,设置相应的事件,若为当前处理的通道, 则不设置事件并读取头尾指针计算待读取数据的字节数^ 7)读取数据,更新读指计《 8)写对方的Mailbox的相应位,用于产生Ack中断。 9)打幵中断并返

您可能关注的文档

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档