- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)打幵中断并返
您可能关注的文档
最近下载
- 2025年江西工业职业技术学院单招职业技能测试题库及完整答案1套.docx VIP
- 等级医院评审33项核心条访谈.docx VIP
- 《企业会计准则第31号——现金流量表》解释文档.pdf
- 2025年湖南交通职业技术学院高职单招职业技能考试题库及答案解析.docx
- 《GB/T 43552-2023家用和类似用途舒适风扇及其调速器 性能测试方法》.pdf
- 第十四章欧姆定律题型专项练习:动态电路计算(敏感电阻类) 2024-2025学年苏科版九年级上册物理.docx
- 2023华润悦府推广提报策划案 #长沙# #城市综合体#.docx
- QGDW11261-2014配电网检修规程.pdf
- 幼儿园中班社会活动《小小清洁员》课件.ppt
- 2025年湖南理工职业技术学院单招职业适应性测试模拟试题及答案解析优质 2025.pdf VIP
文档评论(0)