精简ISA扩展总线应用
英创公司的嵌入式网络模块系列产品均具有精简ISA扩展总线,通常包括若干地址总线、8位数据总线、读写控制线、片选控制线以及中断请求线。英创公司所提供的评估开发底板将这些信号线制定了一个接口标准,采用双排20芯IDC插针,交错排列,用户可用该扩展总线进行硬件扩展。片选线CS1出厂默认选择地址段为300H—37FH,例如,当(A6A5A4A3A2A1A0)=(0000101’b),CS1加5条地址线的译码输出端口地址为305H,以下是扩展总线接口的定义:
1、总线时序图,以及和C语言、汇编指令之间的关系
为了便于用户理解精简ISA总线接口如何进行编程,本文简单介绍C语言中的指令、用户操作的函数与总线的时序之间的关系。各个不同模块的CS1#片选地址范围不同,详见相关技术手册,下面以ETR232i的使用为例进行讲解,在此CS1#对应的片选地址范围为300h——37Fh,其中A0——A6的译码为0ah。
C语言端口输出函数:
outportb ( 0x30a, ub1 ); //把ub1字节送到0x30a寄存器
对应的汇编指令为:
mov dx , 0x30a
mov al , byte ptr ub1;byte ptr ub1为变量ub1对应的存储器
out dx , al
对应的总线写时序图为(本文中的总线周期均以ETR232i模块为例):
C语言端口输入函数:
char ub1 = inportb ( 0x30a ); //把0x30a地址寄存器的内容读入变量ub1
对应的汇编指令为:
mov dx , 0x30a
in al , dx
mov byte ptr ub1, al ; byte ptr ub1为变量ub1对应的存储器
评论