精简ISA总线扩展应用实例试题.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
精简ISA总线扩展应用实例 ? 的嵌入式主板系列产品为了支持客户的各种应用扩展,所有的ARM9系列和X86系列的嵌入式主板均带有精简ISA扩展总线。ISA总线是PC机最经典的扩展总线(在嵌入式领域,通常以PC104总线的形式出现),在工业控制领域有着广泛的应用,以及深厚的应用基础。所谓精简ISA总线就是在保持通用ISA总线时序不变的前提下,仅保留常用的总线信号,以最大限度的减少总线总的信号数量,以适应模块的小型化。的精简ISA总线包括8位数据总线、5位地址总线(可扩展到13位)、片选控制线、读写控制线以及中断请求线。所提供的评估开发底板将这些信号线制定了一个接口标准,采用双排20芯 IDC插针,用户可利用精简ISA总线进行系统功能的扩展。 ? ??????? 在的精简ISA总线中,设置了2条独特的片选控制信号CS0#和CS1#,这样就省去了大量的高位地址总线。CS0#和CS1#为低电平有效的脉冲信号。在x86 系列的嵌入式产品中,CS0#片选信号的地址区域为0x200–0x21F,CS1#片选信号的地址区域为0x300 – 0x31F。在ARM9系列的嵌入式产品中,客户就不用关心精简ISA总线的绝对地址,只要选定一个片选信号及基于这个片选的地址偏移量即可。如在X86系统下选用了CS1作片选信号,对0x301进行操作,则相对于ARM系统,可使用CS1#、地址偏移量为1的端口。ARM9系列板卡的CS0#、CS1#所对应的地址区域范围有所不同。EM9000有13条地址线,每位片选可访问8K的地址空间。EM9160、EM9161的每位片选可访问32 个地址空间。EM9260、EM9360的CS0#可访问到8K的地址空间,CS1#可访问到1K的地址空间。 ? ??????? 以下是所提供的精简ISA扩展总线接口的信号定义: 信号名称及简要描述 精简ISA 信号名称及简要描述 PIN# PIN# ? RESET#,复位输出,低有效 1 2 ? SA0,地址总线 ? SD0,数据总线,LSB 3 4 ? SA1,地址总线 ? SD1,数据总线 5 6 ? SA2,地址总线 ? SD2,数据总线 7 8 ? SA3,地址总线 ? SD3,数据总线 9 10 ? SA4,地址总线 ? SD4,数据总线 11 12 ? WE#,写信号控制线,低有效 ? SD5,数据总线 13 14 ? RD#,读信号控制线,低有效 ? SD6,数据总线 15 16 ? CS1#,I/O片选线,低有效 ? SD7,数据总线,MSB 17 18 ? VCC,电源输出 ? IRQ,中断请求,上升沿有效 19 20 ? GND,公共地 ? ??????? 为了便于用户理解精简ISA总线接口如何进行编程,本节以x86指令和ARM系统为例,简单介绍基于嵌入式主板的精简ISA的应用。由于x86、EM9000、EM9x6x三种系统的ISA总线读写操作函数不一样,所以在具体使用时,应当参考相应的*.h文件。以下是基于的嵌入式主板的精简ISA总线操作指令表,以便查询: 系统 ISA读 ISA写 ? x86系列 ? inport( ) 或 inportb( ) ? outport( ) 或 outportb( ) ? EM9000 ? EM9000_READ( ) ? EM9000_WRITE( ) ? EM9x6x系列 ? ISA_ReadUchar( ) ? ISA_WriteUchar( ) ? ??????? X86系统使用DOS操作系统,其指令也是标准的C函数,所以操作ISA时使用的时绝对地址。ARM嵌入式主板使用的WINCE操作系统,存在地址映射问题,同时使用户更加方便对ISA的使用,所以对ISA操作的过程被封装成一个操作函数后再提供给用户,在对ISA操作时不需要给出绝对地址,但是需要指明所使用的片选信号及基于当前片选信号的偏移地址。下面的读操作也是相同的。 ? ISA总线的写操作: ??????? C语言ISA总线写操作函数: ??????? outportb ( 0x301,? ub1 );?// 将ub1的数据写入0x301地址或寄存器 ? ??????? EM9000 ISA总线写操作函数: ????????#define?CS1# 1??// ARM系统的CS1片选信号的定义,以下不再说明 ??????? EM9000_WRITE ( CS1# , 0x1 , ub1 );?// 将ub1的数据写入CS1片选信号使能的1偏移地址 ? ??????? EM9x6x ISA总线写操作函数: ??????? ISA_WriteUchar ( CS1#, 0x1 , ub1);?// 将ub1的数据写入CS1片选信号使能的1偏移地址

文档评论(0)

1112111 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档