用CPLD实现单片机与ISA总线并行通信 (2)

2010-01-26 21:27:36   来源:EDN China   

关键字:CPLD 单片机 ISA总线 并行通信

  地址译码部分采用文本输入方式,用ALTERA公司的硬件设计开发语言AHDL(Altera Hardware Description Language)。AHDL是一种模块化的高级语言,完全集成于MAX+plusII系统中,特别适合于描述复杂的组合逻辑、状态机和真值表,地址译码部分用文本输入方式,这充分体现了文本输入方式的优点。文本输入内容如下:

  SUBDESIGN Address

  (

  PCA[9..0] : INPUT;

  AEN,IOR,IOW : INPUT;

  RESETDR,DELAY : INPUT;

  A[15..14] :INPUT;

  RD,WR : INPUT;

  DLY_D : OUTPUT;

  DLY_CK : OUTPUT;

  DLY_CLR : OUTPUT;

  STATE : OUTPUT;

  PCRD : OUTPUT;

  PCWR : OUTPUT;

  MCURD : OUTPUT;

  MCUWR : OUTPUT;

  )

  BEGIN

  !DLY_CLR=RESETDR#DELAY;

  DLY_D=!AEN & (PCA[9..1]= =H"110");

  DLY_CK=!AEN & (PCA[9..1]= =H"110")&(!IOR # ! IOW);

  !PCWR=!AEN&(PCA[9..0]= =H"220")& !IOW;

  !PCRD=!AEN&(PCA[9..0]= =H"220")& !IOR;

  !STATE=!AEN&(PCA[9..0]= =H"221")&!IOR;

  !MCSRD=([15..14]= =H"1")& !RD;

  !MCSWR=(A[15..14]= =H"2"& !WR;

  END;

  说明:PCA[9..0]是PC104的地址信号,A[15..14]是单片机的地址信号,PC104用到端口地址220H和221H。

  3 通信软件设计

  PC104是基于ISA总线的,在系统软件设计中要防止地址冲突。PC104中使用A0~A9地址位来表示I/O端口地址,即可有1024个口地址:前512个供系统板使用,后512个供扩充槽使用。当A9=0时表示为系统板上的口地址;A9=1时,表示扩充插槽接口卡上的口地址[2]。因此,采用保留的口地址220H和221H,保证不会发生地址冲突。

  本程序中PC104采用查询方式接收数据,单片机用中断方式接收数据。

  #define pcreadwrite 0x220 /*PC104读写数据口地址*/

  #define pcrdstate 0x221 /*PC104查询状态口地址*/

  PC104写数据函数:

  Void pcwrite(int port,unsigned char ch)

  { outportb(pcreadwrite,ch);

  while ((inportb(pcrdstate)&0x02)!=0x02); /*等待单片机读走数据*/

  { }

  }

  单片机读子程序:

  MCUWR:MOV DPTR,#4000H

  MOVX A,@DPTR

  RETI

  PC104读数据函数:

  Unsigned char pcread(int port)

  { while((inportb(pcrdstate)&0x01)!=0x01);/*等待单片机写数据*/

  {}

  return inportb(pcreadwrite);

  }

  单片机写子程序:

  MCUWR:MOV DPTR,#8000H

  MOVX @DPTR,A ;等待PC104读走数据

  RET

  4 结论

  用CPLD实现单片机与ISA总线接口的并行通信,电路结构简单、体积小,1片CPLD芯片足够,并且控制方便,实时性强,通信效率高。本设计方法已成功地应用于作者开发的各种数据采集系统中,用作单片机与PC104之间的并行数据通信,效果非常理想。

[1] [2]
相关阅读
51单片机加CPLD让系统更高效 2011-12-28
CPLD的串口电路设计 2011-12-27
在便携式应用中,利用零功耗CPLD来降低系统总成本 2011-12-27
51单片机加CPLD让系统更高效 2011-12-27
基于单片机与CPLD的步进电机PWM驱动技术 2011-12-27
基于STM32和CPLD的等精度测频设计 2011-12-15
CPLD初学者入门知识 2011-11-26
基于CPLD的臭氧电源控制系统的软硬件设计 2011-09-24
基于CPLD的TMS320F2812硬件平台设计 2011-09-22
一种基于CPLD的超声波测厚系统的设计 2011-09-22
一种基于CPLD的超声波测厚系统的设计 2011-09-16
编辑:小甘
本文引用地址: http://www.eeworld.com.cn/FPGA/2010/0126/article_949.html
[发表评论]
[加入收藏]
[告诉好友]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]

小广播

最热点击

专栏

向农,EEWORLD副总编。被英特尔董事长贝瑞特称为“中国可与之对话的两名记者之一”

【详细】

总编随笔
汤宏琳,人皆称为“汤汤”,电子工程世界高级编辑。随着EEWORLD一起成长。

【详细】

汤汤手记
今年,是中国集成电路产业丰收的一年,相比较往年都有大幅提升。

【详细】

凯哥博客

论坛精华

精选博文