📄 pxa270处理器pcmcia-cf接口设计及wince5_0驱动实现 - 丁雷专栏 - csdnblog.htm
字号:
<H1><A class=headermaintitle id=Header1_HeaderTitle
href="http://blog.csdn.net/suck666/">丁雷专栏</A></H1>
<P id=tagline>追求梦想</P></TD></TR></TBODY></TABLE></DIV>
<DIV class=HeaderBar>
<TABLE class=HeaderBar id=HeaderBar>
<TBODY>
<TR>
<TD class=HeaderBarTab noWrap> <A href="http://www.csdn.net/"
target=_blank>CSDN</A> | <A href="http://community.csdn.net/"
target=_blank>社区</A> | <A href="http://dev.csdn.net/"
target=_blank>技术中心</A> | <A id=Header1_MyLinks1_HomeLink
title=到聚合站点 href="http://blog.csdn.net/"
target=_blank>BLOG首页</A> | <A id=Header1_MyLinks1_PersonalHome
title="访问 丁雷专栏" href="http://blog.csdn.net/suck666/"
target=_blank>我的首页</A> | <A id=Header1_MyLinks1_PersonalResume
href="http://job.csdn.net/resumes/suck666.aspx">个人档案</A> | <A
id=Header1_MyLinks1_ContactLink accessKey=9
href="http://blog.csdn.net/suck666/contact.aspx">联系作者</A> | <A
id=Header1_MyLinks1_Syndication
href="http://blog.csdn.net/suck666/Rss.aspx">聚合</A> <A class=XMLLink
id=Header1_MyLinks1_XMLLink
href="http://blog.csdn.net/suck666/Rss.aspx"><IMG
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/xml.gif"
border=0></A> | <A id=Header1_MyLinks1_HyperLink1
href="http://search.csdn.net/search_blog.asp"
target=_blank>搜索</A> | <A id=Header1_MyLinks1_Admin
href="http://writeblog.csdn.net/">登录</A> <IMG id=Header1_BlueTab
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/BlueTabRight.jpg"
align=absMiddle border=0> </TD>
<TD class=HeaderBarTabBack noWrap width="100%">
<DIV class=BlogStatsBar>
<TABLE class=BlogStatsBar>
<TBODY>
<TR>
<TD width="100%"></TD>
<TD class=BlogStatsBar noWrap> 0篇原创: 0篇翻译: 0篇转载: 0次点击:
0个评论<SPAN style="DISPLAY: none">: 0个Trackbacks</SPAN>
</TD></TR></TBODY></TABLE></DIV></TD></TR></TBODY></TABLE></DIV></DIV>
<DIV id=leftmenu>
<H3 class=listtitle>文章</H3>
<UL class=list>
<LI class=listitem><A
href="http://blog.csdn.net/suck666/category/264412.aspx">wince</A><A
href="http://blog.csdn.net/suck666/category/264412.aspx/rss">(RSS)</A>
<LI class=listitem><A
href="http://blog.csdn.net/suck666/category/265842.aspx">生活</A><A
href="http://blog.csdn.net/suck666/category/265842.aspx/rss">(RSS)</A></LI></UL>
<H3 class=listtitle>收藏</H3>
<UL class=list></UL>
<H3 class=listtitle>相册</H3><!--category title-->
<UL class=list></UL>
<H3 class=listtitle>wince</H3>
<UL class=list></UL>
<H3 class=listtitle>存档</H3>
<UL class=list>
<LI><A
href="http://blog.csdn.net/suck666/archive/2006/12.aspx">2006年12月(4)</A></LI></UL><SPAN
id=Anthem_RecentComments_ltlComments__><SPAN
id=RecentComments_ltlComments></SPAN></SPAN><BR><BR></DIV>
<DIV id=main>
<DIV class=Tag>
<SCRIPT language=javascript
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/urltag.aspx"></SCRIPT>
<DIV style="CLEAR: both"></DIV></DIV>
<SCRIPT>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</SCRIPT>
<DIV class=post>
<DIV class=postTitle><A
href="http://blog.csdn.net/suck666/archive/2006/12/20/1450158.aspx"><IMG
height=13
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/authorship.gif"
width=15 border=0> PXA270处理器PCMCIA/CF接口设计及WinCE5.0驱动实现</A> </DIV>
<DIV class=postText> <FONT face=Verdana>本文以Intel PXA270开发平台Mainstone
II(Bulverde DVK NBMMNS2B0PC)为基础,用实例论述在XScale
PXA270处理器在省去硬件逻辑器件CPLD/FPGA的情况下,如何实现单PCMCIA接口、CF接口和Windows CE 5.0的驱动。。
<BR></FONT>
<P><FONT face=Verdana>英特尔开发代号为Bulverde的XScale
PXA270系列处理器时钟频率高达624MHz,支持无线多媒体指令集扩展(Wireless
MMX),允许PXA270以较低的时钟频率实现增强的多媒体性能,同时该处理器引用了英特尔的SpeedStep技术来延长电池寿命。另外可以配合内部开发代号为Marathon的2700G多媒体加速器,提升高分辨率图像处理和3D加速处理能力,构建手持终端中的“骨灰级”多媒体应用
</FONT></P>
<P><FONT face=Verdana>Intel Xscale PXA270处理器内部集成了双通道16位PCMCIA PC
Card/CF控制器。支持8位/16位I/O模式和Memory模式的访问,但不支持32位的Card
Bus,符合工业标准的32位PC卡和16位PC卡通常可以从外观上辨别。 </FONT></P>
<P><FONT face=Verdana>I/O模式和Memory模式是可以在相同的硬件设计上通过驱动和软件来控制的。而在CF规范中描述的True
IDE模式,可参考Intel关于IDE模式的设计资料,本文不作详细讨论。 </FONT></P>
<P><FONT face=Verdana>在Mainstone
II平台上,PCMCIA的控制逻辑将状态转换中断和读写中断交给CPLD和FPGA处理后通过单一的GPIO交由CPU处理,通常在开发平台上,为了适合不同接口和设备的实验,CPLD和FPGA成为不可缺少的必要组件,但在实际的产品,尤其是手持产品应用中,考虑成本和功耗的因素,通常将逻辑部件用成本更低的电路实现。对于PXA270这样的高性能处理器来说,用软件实现PCMCIA接口的时序和中断逻辑可以说很容易,关键是要清楚CPLD和FPGA到底在什么时间点做了哪些工作。
</FONT></P>
<P><FONT face=Verdana><IMG alt=""
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/200608041427584432.jpg"
onload="return imgzoom(this,550)" border=0><BR><BR><FONT
face=Verdana>图1:PXA270的PCMCIA接口逻辑图。(说明:图中几个锯齿符号是电阻,上面的横线是电压VCC3)<BR></FONT></FONT></P>
<P><FONT
face=Verdana>先来看看PXA270的PCMCIA接口逻辑图,如图1。除去MD(15:0)数据线和MA(25:0)地址线之外,PCMCIA/CF在I/O和Memory模式所需的控制信号的名称和定义如表1。
</FONT></P>
<P><FONT
face=Verdana>图2是PCMCIA/CF接口的参考原理,可以看到CD1/CD2被拉高到VCC,而插卡进去时,卡内将此两脚对地短接,则表现为低电平,在简化的系统设计中,还可以忽略BVD1/-STSCHG用CD的沿来做卡插入/拔出中断。考虑到WINCE中PC
CARD设备在整个系统一般不作为高优先级的中断设备,RESET和IRQ可连接到PXA270的空余用户GPIO,即除0/1之外的其它空闲GPIO。详细硬件设计,可参考设计指南文档。
</FONT></P>
<P><FONT face=Verdana>关于Windows CE的驱动,在安装Windows CE5.0选择Xscale的支持后,就会安装Mainstone
II平台的BSP。以此为基础,开始修改并完善自己的PXA270平台的BSP。建议用BSP Wizard“克隆”一套自己的BSP,而不是在原先Mainstone
II平台修改。 </FONT></P>
<P><FONT face=Verdana><IMG alt=""
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/200608041428426897.jpg"
onload="return imgzoom(this,550)" border=0><BR><FONT
face=Verdana>图2:PCMCIA/CF接口的参考原理图。<BR><IMG alt=""
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/200608041429237485.jpg"
onload="return imgzoom(this,550)" border=0><BR></FONT></FONT></P>
<P><FONT face=Verdana>目录:针对Mainstone II平台PCCARD驱动的相关目录。<BR> </FONT></P>
<P><FONT face=Verdana>针对Mainstone II平台PCCARD驱动的相关目录(见目录(a)、(b)、(c)、(d)、
(e)),如果是用PCMCIA或者CF接口的网卡作以太网调试,则还需要关注目录(f)和目录(e)。 </FONT></P>
<P><FONT face=Verdana>各个目录中的文件修改 </FONT></P>
<P><FONT face=Verdana>目录(a)有3个CPP文件和一个注册表文件,修改思路如程序1所示。 <BR><IMG alt=""
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/200608041430456339.jpg"
onload="return imgzoom(this,550)" border=0><BR><FONT
face=Verdana>说明1:目录(a)的修改思路。<BR><BR>目录(b)和目录(c)比较关键的就是intr.c文件,前者是WinCE接受BSP层外部中断的接口。后者是CPU系统处理中断的优先级和内部中断的配置,以及内外部中断的交互。
</FONT></FONT></P>
<P>目录(c)中的intr.c的g_IntPriorities中去掉一组0x00000000,在IRQ_GPIO1前面或者后面加上IRQ_GPIOXX_2,并将目录(b)的intr.c中PCMCIA相关的BLR语句屏蔽。
</P>
<P><IMG alt=""
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/200608041431296557.jpg"
onload="return imgzoom(this,550)" border=0><BR><FONT
face=Verdana>说明2:BSPIntrInit部分添加。<BR> <BR></FONT><FONT
face=Verdana>BSPIntrInit部分添加如程序2(a)所示,程序2(b)是和PCCARD驱动相关的中断函数,可参照以下思路具体实现针对轮询方式的卡插入/取出中断处理,关于传输的中断可参考卡插入取出中断处理自行实现(见程序3):
</FONT></P>
<P><FONT face=Verdana><IMG alt=""
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/200608041432198767.jpg"
onload="return imgzoom(this,550)" border=0><BR></FONT></P>
<P><FONT face=Verdana>说明3:调整xlli_mainstone_defs.inc。<BR> </FONT></P>
<P><FONT face=Verdana>需要注意的是,在WindowsCE
2.0以后,BVD1/2状态中断可以用CD中断来代替,而不需要单独使用。而CD1/2的状态一般情况都是相同的,经过实验,选取其中之一也是切实可行的,可自行决定是否全部采用。
</FONT></P>
<P><FONT
face=Verdana>目录(d)下需要修改INC\xllp_pccardsocket.h和SOURCE\xllp_pccardsocket.c,将读取BLR需要修改为读取GPIO的方式。
</FONT></P>
<P><FONT face=Verdana>调整xlli_mainstone_defs.inc </FONT></P><FONT face=Verdana>
<P><FONT face=Verdana>(见程序4),目录(e)在这里是MDD层的驱动,通常不用修改。 </FONT></P>
<P><FONT face=Verdana>在所有的中断和BLR机制都修改完成后,即可开始编译平台测试,而Bootloader部分若采用CF/PCMCIA
NE2000有线网卡调试,上述除XLLP外的其他部分在Eboot里面是不起作用的,正确修改的XLLP部分可结合Eboot来验证硬件设计的正确性.
<BR><IMG alt=""
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/200608041432559241.jpg"
onload="return imgzoom(this,550)" border=0><BR><FONT
face=Verdana>程序4<BR></FONT><BR><IMG alt=""
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/200608041433578240.jpg"
onload="return imgzoom(this,550)" border=0><BR><FONT
face=Verdana>表1:PCMCIA/CF在I/O和Memory模式所需的控制信号的名称和定义。<BR></FONT></FONT></P>
<P><FONT face=Verdana><STRONG>本文小结 <BR></STRONG></FONT><FONT
face=Verdana><BR>表1:PCMCIA/CF在I/O和Memory模式所需的控制信号的名称和定义。<BR> <BR>本文在一个成功实验的平台上提供Intel
XScale PXA270的PCMCIA/CF控制器的设计和CE 5.0驱动的实现过程,在必要的部分作了一定幅度的精简,需仔细研读Intel XScale
PXA270相关设计文档和Windows
CE5.0的帮助,并根据实际设计情况结合本文的思路方可具体实现完整的PCMCIA驱动。此外,本文提供的中断和GPIO操作的思路也可进一步应用于其他外部设备的硬件设计和Windows
CE驱动编写工作中。</FONT></P></FONT><BR><BR>
<P id=TBPingURL>Trackback:
http://tb.blog.csdn.net/TrackBack.aspx?PostId=1450158</P><BR></DIV>
<DIV class=postFoot>
<SCRIPT src=""></SCRIPT>
[<A title=功能强大的网络收藏夹,一秒钟操作就可以轻松实现保存带来的价值、分享带来的快乐
href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(saveit=window.open('http://wz.csdn.net/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=590,height=300,left=75,top=20,status=no,resizable=yes'));saveit.focus();">收藏到我的网摘</A>]
suck666发表于 2006年12月20日 10:46:28 </DIV></DIV><LINK
href="http://blog.csdn.net/suck666/Services/Pingback.aspx" rel=pingback><!--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:dc="http://purl.org/dc/elements/1.1/"xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><rdf:Descriptionrdf:about="http://blog.csdn.net/suck666/archive/2006/12/20/1450158.aspx"dc:identifier="http://blog.csdn.net/suck666/archive/2006/12/20/1450158.aspx"dc:title="PXA270处理器PCMCIA/CF接口设计及WinCE5.0驱动实现"trackback:ping="http://tb.blog.csdn.net/TrackBack.aspx?PostId=1450158" /></rdf:RDF>-->
<SCRIPT>function hide(){showComment();}</SCRIPT>
<BR>
<DIV class=post>
<DIV class=postTitle>相关文章:</DIV>
<UL class=postText>
<LI><A href="http://blog.csdn.net/bekars/archive/2006/02/27/611063.aspx"
target=_blank>基于ARM核的Intel XScale嵌入式系统 </A>2006-02-27 <A
href="http://blog.csdn.net/bekars/" target=_blank>bekars</A>
<LI><A href="http://blog.csdn.net/zcxx5201314/archive/2005/12/06/545221.aspx"
target=_blank>中断</A> 2005-12-06 <A href="http://blog.csdn.net/zcxx5201314/"
target=_blank>zcxx5201314</A>
<LI><A href="http://blog.csdn.net/leopardibrah/archive/2005/03/23/327942.aspx"
target=_blank>详解 Intel PXA 处理器 </A>2005-03-23 <A
href="http://blog.csdn.net/leopardibrah/" target=_blank>leopardibrah</A>
<LI><A href="http://blog.csdn.net/kmajian/archive/2006/03/30/644722.aspx"
target=_blank>ARM处理器中断处理的编程实现</A> 2006-03-30 <A
href="http://blog.csdn.net/kmajian/" target=_blank>kmajian</A>
<LI><A href="http://blog.csdn.net/sbamdanb00/archive/2005/05/31/384957.aspx"
target=_blank>基于ARM7的无线局域网MAC层上系统架构</A> 2005-05-31 <A
href="http://blog.csdn.net/sbamdanb00/"
target=_blank>sbamdanb00</A></LI></UL></DIV><BR><BR>
<DIV class=post id=csdn_zhaig_ad_yahoo></DIV><SPAN
id=Anthem_Comments.ascx_ltlComments__><SPAN id=Comments.ascx_ltlComments><BR>
<DIV id=comments>
<H3></H3>没有评论。 </DIV></SPAN></SPAN>
<SCRIPT language=javascript>
ad_width=468;
ad_height=60;
adcss=2;
unionuser=19;
ad_type='j';
count=5;
</SCRIPT>
<SCRIPT language=javascript
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/showads.js"
type=text/javascript></SCRIPT>
<SCRIPT language=javascript
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/showgm.js"
type=text/javascript></SCRIPT>
<SCRIPT type=text/javascript>document.write("<img src=http://counter.csdn.net/pv.aspx?id=24 border=0 width=0 height=0>");</SCRIPT>
<DIV class=CommentForm id=commentform>
<H3>发表评论</H3>
<DIV id=Anthem_PostComment.ascx_UpdatePanel1__>
<DIV id=PostComment.ascx_UpdatePanel1>
<TABLE class=CommentForm>
<TBODY>
<TR>
<TD width=69 height=0></TD>
<TD></TD></TR>
<TR>
<TD width=70>大名:</TD>
<TD align=left><INPUT id=PostComment.ascx_tbName style="WIDTH: 300px"
disabled size=40 value=chenyt2007 name=PostComment.ascx:tbName> <SPAN
id=PostComment.ascx_RequiredFieldValidator2
style="DISPLAY: none; COLOR: red" initialvalue=""
evaluationfunction="RequiredFieldValidatorEvaluateIsValid"
display="Dynamic" errormessage="<br>请输入尊姓大名"
controltovalidate="PostComment.ascx_tbName"><BR>请输入尊姓大名</SPAN> </TD></TR>
<TR>
<TD width=70>网址:</TD>
<TD align=left><INPUT id=PostComment.ascx_tbUrl style="WIDTH: 300px"
size=40 name=PostComment.ascx:tbUrl> </TD></TR>
<TR>
<TD colSpan=3>评论 <SPAN id=PostComment.ascx_RequiredFieldValidator3
style="DISPLAY: none; COLOR: red" initialvalue=""
evaluationfunction="RequiredFieldValidatorEvaluateIsValid"
display="Dynamic" errormessage="<br>请输入评论"
controltovalidate="PostComment.ascx_tbComment"><BR>请输入评论</SPAN> <BR><TEXTAREA id=PostComment.ascx_tbComment style="WIDTH: 381px; HEIGHT: 193px" name=PostComment.ascx:tbComment rows=10 cols=50></TEXTAREA>
</TD></TR>
<TR>
<TD colSpan=3><SPAN id=Anthem_PostComment.ascx_btnSubmit__><INPUT language=javascript class=Button id=PostComment.ascx_btnSubmit onclick="javascript:Anthem_FireCallBackEvent(this,event,'PostComment.ascx:btnSubmit','',true,'','','正在处理...',true,null,null,null,true,true);return false;WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("PostComment.ascx:btnSubmit", "", true, "", "", false, false))" type=submit value=提交 name=PostComment.ascx:btnSubmit></SPAN>
</TD></TR>
<TR>
<TD colSpan=3><SPAN id=PostComment.ascx_Message
style="COLOR: red"></SPAN></TD></TR></TBODY></TABLE></DIV></DIV></DIV></DIV>
<P id=footer>Powered by: <BR><A id=Footer1_Hyperlink2
href="http://scottwater.com/blog" name=Hyperlink1><IMG
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/100x30_Logo.gif"
border=0></A> <A id=Footer1_Hyperlink3 href="http://asp.net/"
name=Hyperlink1><IMG
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/PoweredByAsp.Net.gif"
border=0></A> <BR>Copyright © suck666 </P>
<SCRIPT
src="PXA270处理器PCMCIA-CF接口设计及WinCE5_0驱动实现 - 丁雷专栏 - CSDNBlog.files/counter.js"></SCRIPT>
<SCRIPT type=text/javascript>
<!--
var Page_Validators = new Array(document.getElementById("PostComment.ascx_RequiredFieldValidator2"), document.getElementById("PostComment.ascx_RequiredFieldValidator3"));
// -->
</SCRIPT>
<INPUT id=__EVENTVALIDATION type=hidden
value=/wEWBQL+raDpAgKqtOi0AwLAsuLbDAKi687YCQKG6K6RCHrZdbdDQIH9YeG5hN3MZV7FHAgf
name=__EVENTVALIDATION>
<SCRIPT type=text/javascript>
<!--
var Page_ValidationActive = false;
if (typeof(ValidatorOnLoad) == "function") {
ValidatorOnLoad();
}
function ValidatorOnSubmit() {
if (Page_ValidationActive) {
return ValidatorCommonOnSubmit();
}
else {
return true;
}
}
// -->
</SCRIPT>
</FORM>
<SCRIPT language=javascript type=text/javascript>
<!--
try{
hide();
}
catch(e){
}
//-->
</SCRIPT>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -