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

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

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

  CPLD(Complex Programmable Logic Device)是一种复杂的用户可编程逻辑器件,由于采用连续连接结构。这种结构易于预测延时,从而电路仿真更加准确。CPLD是标准的大规模集成电路产品,可用于各种数字逻辑系统的设计。近年来,由于采用先进的集成工艺和大批量生产,CPLD器件成本不断下降,集成密度、速度和性能大幅度提高,一个芯片就可以实现一个复杂的数字电路系统;再加上使用方便的开发工具,使用CPLD器件可以极大地缩短产品开发周期,给设计、修改带来很大方便[1]。本文以ALTERA公司的MAX7000系列为例,实现MCS51单片机与PC104 ISA总线并行通信。采用这种通信方式,数据传输准确、高速,在12 MHz晶振的MCS51单片机控制的数据采集系统中,可以满足与PC104 ISA总线接口实时通信的要求,通信速率达200 Kbps。

  1 系统总体设计方案

  本系统用CLPD实现单片机与PC104 ISA总线接口的并行通信。由于PC104主要完成其它方面的数据采集工作,只是在空闲时才能接收单片机送来的数据,所以要求双方通信的实时性很强,但数据量不是很大。因此,在系统设计中单片机中断方式接收数据,PC104采用查询方式接收数据。系统设计方案如图1所示。

系统设计方案

  在图1单片机部分,D[0..7]是数据总线,A[0..15]是地址总线,RD和WR分别是读写信号线,INT0是单片机的外部中断。当单片机的外部中断信号有效时,单片机接收数据。

  在CPLD部分,由一片MAX7000系列中的EPM7128LSC84来实现,用来完成MCS51与PC104ISA总线接口之间的数据传输、状态查询及延时等待。

  在PC104 ISA部分,只用到ISA的8位数据总线D[0..7],A[0..9]是PC104的地址总线;IOW和IOR是对指定设备的读写信号;AEN是允许DMA控制地址总线、数据总线及读写命令线进行DMA传输,及对存储器和I/O设备的读写;IOCHRDY是I/O就绪信号,I/O通道就绪为高,此时处理机产生的存储器读写周期为4个时钟周期,产生的I/O读写周期和DMA字节传输均需5个时钟周期,MCS51通过置此信号为低电平来使CPU插入等待周期,从而延长I/O周期;SYSCLK是系统时钟信号,是为了与外部设备保持同步;RESETDR是上电复位或系统初始化逻辑,是系统总清信号。

  2 基于MAX+plus II的硬件实现

  本系统是用ALTERA公司的CPLD开发工具MAX+plusII。它支持多种输入方式,给设计开发提供了极大的方便。系统的主体部分仍是用原理图输入方式。由于库中提供了现在的芯片,所以使用很方便。原理图输入部分如图2和图3所示。图2主要完成单片机与ISA接口通信中的数据传输和握手判断。

原理图输入部分

  • D[0..7] 单片机的8位双向数据总线;
  • PCD[0..7] ISA接口的8位双向数据总线;
  • PCRD ISA接口的读有效信号;
  • PCWR ISA接口的写有效信号;
  • 判断单片机已写数据或读走数据;
  • PCSTATE 单片机用此查询ISA接口已取走数据;
  • MSCRD 单片机的读有效信号;
  • MCSWR 单片机的写有效信号;
  • INT0 单片机的外部中断信号;

  当MCUWR信号有效后,单片机把数据锁存于74LS374(1)中,此时,PCSTATE变为高电平。PC104用STATE信号选通74LS244来判断数据位PCD0是否为高电平,如果为高,说明单片机送来了数据,那么使PCRD有效,从数据存器74LS374(1)中取走数据。此时,PCSTATE变为低电平,单片机通过判断此信号为低电平来判定PC104已取走了数据,可以发下一个数据。

  当PCWR信号有效后,PC104把数据锁存于74LS374(2)中,此时,INT0变为低电闰,单片机产生外部中断,使MCSRD信号有效,从数据锁存器74LS374(2)中取走装饰,INT0变为高电平。PC104用STATE信号选通74LS244判断数据位PCD1是否为高电平,如果为高电平,说明单片机取走了数据,可以发送下一个数据。 PC104与单片机进行通信,最关键的就是速度匹配问题。由于PC104的速度快,而单片机的速度较慢,所以,要在PC104的IOCHRDY处插入等待周期,如图3所示。

要在PC104的IOCHRDY处插入等待周期

  • IOCHRDY 用来使ISA接口等待5个时钟周期;
  • DLY_D 延时输入信号;
  • DLY_CK 延时等待时钟信号;
  • DLY_CLR 等待清除信号,为开始下一次送数周期作准备;
  • DELAY 延时5个时钟周期后的输出信号,作为DLY_CLR信号的输入;
  • SYSCLK ISA接口的系统时钟信号。

  在MCS51与PC104进行通信的过程中,DLY_D信号一直有效(高电平)。在信号SYSCLK的作用下,每5个时钟周期DELAY信号有效一次,即为高电平。此时DLY_CLR信号有效(低电平),IOCHRDY信号变为高电平,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一起成长。

【详细】

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

【详细】

凯哥博客

论坛精华

精选博文