原创 精简ISA总线扩展应用

2009-7-24 15:11 2165 4 4 分类: MCU/ 嵌入式

文章来源:http://www.emtronix.com/case/case2008188.html


     英创公司的嵌入式主板系列产品为了支持客户的各种应用扩展,所有的ARM9系列和X86系统的嵌入式主板均带有精简ISA扩展总线。ISA总线是PC机最经典的扩展总线(在嵌入式领域,通常以PC104总线的形式出现),在工业控制领域有着广泛的应用,以及深厚的应用基础。所谓精简ISA总线就是在保持通用ISA总线时序不变的前提下,仅保留常用的总线信号,以最大限度的减少总线总的信号数量,以适应模块的小型化。英创公司的精简ISA总线包括8位数据总线、5位地址总线(可扩展到13位)、片选控制线、读写控制线以及中断请求线。英创公司所提供的评估开发底板将这些信号线制定了一个接口标准,采用双排20芯 IDC插针,用户可利用精简ISA总线进行系统功能的扩展。


 

        在英创的精简ISA总线中,设置了2条独特的片选控制信号CS0#和CS1#,这样就省去了大量的高位地址总线。CS0#和CS1#为低电平有效的脉冲信号。在x86 CPU的嵌入式产品中,CS0#的片选区域为0x200 – 0x21F,而CS1#的片选区域为0x300 – 0x31F。在ARM9 CPU的产品中,应用程序通过专用的API函数来进行总线读写,读写函数支持选择CS0或CS1片选,而偏移量则直接表示SA0 – SA4的状态。

 

        以下是英创公司所提供的精简ISA扩展总线接口的信号定义:

 


信号名称及简要描述精简ISA信号名称及简要描述

PIN#

PIN#

RESET#,复位输出,低有效
12
SA0,地址总线

SD0,数据总线,LSB
34
SA1,地址总线

SD1,数据总线
56
SA2,地址总线

SD2,数据总线
78
SA3,地址总线

SD3,数据总线
910
SA4,地址总线

SD4,数据总线
1112
WE#,写信号控制线,低有效

SD5,数据总线
1314
RD#,读信号控制线,低有效

SD6,数据总线
1516
CS1#,I/O片选线,低有效

SD7,数据总线,MSB
1718
VCC,电源输出

IRQ,中断请求,上升沿有效
1920
GND,公共地


 

总线时序图,以及和C语言、汇编指令之间的关系

 

        为了便于用户理解精简ISA总线接口如何进行编程,本节以x86指令为例,简单介绍C语言中的指令、用户操作的函数与总线的时序之间的关系。

 

        C语言端口输出函数:

 

        outportb ( 0x30a,  ub1 );

 

        上述C语言函数把字节变量ub1的内容写到总线地址为0x30A的寄存器,该寄存器对应的片选信号为CS1#,5位地址总线SA[4:0]在CS1#片选有效期间为5'b01010。

 

        对应的汇编指令为:

 

        mov  dx ,  30AH

        mov  al ,   byte ptr ub1         ;byte ptr ub1为变量ub1对应的存储器

        out   dx ,  al

       

        对应的总线写时序图为(本文中的总线周期均以ETR232i模块为例):

 

200881151456792.gif

 

IO输出指令产生的总线时序

 

        C语言端口输入函数:

 

        char ub1 = inportb ( 0x30a );

 

        上述C语言函数从总线地址为0x30A的寄存器读取一个字节存放到字节变量ub1中,该寄存器对应的片选信号为CS1#,5位地址总线SA[4:0]在CS1#片选有效期间为5'b01010。

 

        对应的汇编指令为:

 

                mov  dx ,  0x30a

                in    al ,   dx

                mov  byte ptr ub1,  al      ; byte ptr ub1为变量ub1对应的存储器

 

 


 


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条