电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 接口/总线/驱动 > 详细信息
接口/总线/驱动:用CPLD实现单片机与ISA总线接口的并行通信
来源:   时间: 2007-4-28 12:03:04    

摘要:介绍了用ALTERA公司MAX7000系列CPLD芯片实现单片机与PC104ISA总线接口之间的关行通信。给出了系统设计方法及程序源代码。

关键词:CPLD ISA总线 并行通信

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

1 系统总体设计方案

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

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

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

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

2 基于MAX+plusII的硬件实现

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

D[0..7] 单片机的8位双向数据总线;

PCD[0..7] ISA接口的8位双向数据总线;

PCRD ISA接口的读有效信号;

PCWR ISA接口的写有效信号;

STATE ISA接口的查询选通信号,用来判断单片机已写数据或读走数据;

PCSTATE 单片机用此查询ISA接口已取走数据;

MCURD 单片机的读有效信号;

MCUWD 单片机的写有效信号;

INT0 单片机的外部中断信号。

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

当PCWR信号有效时,PC104把数据锁存于74LS374(2)中,此时INT0变为低电平;单片机产生外部中断,使MCURD信号有效,从数据锁存器74LS374(2)中取走数据。此时INT0变为高电平,PC104用STATE信号选通74LS244判断数据位PCD1是否为高电平,如果为高电平,则说明单片机取走了数据,可以发送下一个数据。

PC104与单片机进行通信,最关键的就是速度匹配问题。由于PC104的速度快,而单片机的速度较慢,所以要在PC104的IOCHRDY处插入等待周期。如图3所示,各信号说明如下:

IOCHRDY 用来使ISA接口等待5个时钟周期;

DLY_D 延时输入信号;

DLY_CL 延时等待时钟信号;

DLY_CLR 等待清除信号,为开始下一次送数据其做准备;

DELAY 延时5个时钟周期后的输出信号,作为DLY_CLR信号的输入;

SYSCLK ISA接口的系统时钟信号。

在MCS51与PC104进行通信的过程中,DLY_D信号一直有效(高电平),在信号SYSCLK的作用下,每5个时钟周期DELAY信号有效一次,即为高电平。此时DLY_CLR信号有效(低电平),IOCHRDY信号变为高电平,PC104可以读写数据。

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

SUBDESIGN Address

(

PCA[9..0] :INPUT;

AEN,IOR,IOW :INPUT;

RSETDR,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;

!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)

;等待单片机读走数据

{ }

}

单片机读子程序:

MCUR:MOV DPTR,#400H

MOVX A,@DPTR

RETI

PC104读数据函数:

Unsigned char pcread(int port)

{ while ((inportb(pcrdstate)&0x0!=0x01)

;等待单片机写数据

{ }

return inportb(pcreadwirte);

}

单片机写子程序:

MCUWR:MOV DPTR,#8000H

MOVX @DPTR,A

;等待PC104读写数据

RET



相关信息
发表评论
打印本页 关闭本页
EPC-X270C2 PC104工控机在汽车焊接线监控系统上的应用
    在汽车生产线的焊接流水线生产过程中,需要对各个焊接工位的实际焊接情况进行监控并记录,采用CAN-bus现场总线作为监控数据的传输方式,能够保证在焊接现场的苛刻环境中数据传输的可靠性与实时性,完全满足焊接流水线监控系统的设计要求。整个焊接流水线监控系统由数据采集系统、现场监控系统和中央管理系统组成。 在数据采集系统中,利用iCAN4050数字I/O模块采集并控制激光焊机的工...
>>详细内容
基于以C8051F060MCU为核心,采用PC104总线的动态称重测量板的设计
    摘要:在分析了现有系统问题的基础上,提出了基于PC/104总线的、以C8051F060MCU为核心的动态称重测量接口板的设计,C8051F060具有独立的双通道16位逐次比较型A/D转换器等功能。经一年多的实际使用证明该设计具有简化了硬、软件设计、增强了系统的工作可靠性、降低了造价等优势。   关键词:PC/104总线;动态称重;模数转换器   被测对象处于非静止状态,即被称重或测力的物体在...
>>详细内容
基于PC104无人机网络视频系统的构建
    无人机具有体积小、重量轻、灵活机动、成本低等特点,可以用于对地侦察拍照,还可以广泛应用于军事侦察、地质勘探以及对火灾等危险区域的勘察预报等,因而在无人机上构建一个网络视频系统就显得十分重要。本文以基于PC104的无人机为基础,构建一个网络视频系统,其中,无人机视频数据的采集、压缩、解压缩、传输都是无人机网络视频系统中的关键技术,本文将针对这几部分的关键问题进...
>>详细内容
工业PC/嵌入式/PC104主板液晶屏搭配方案
    所谓工业PC/嵌入式PC104主板搭配方案主要指通过内嵌CPU及显示控制功能的IPC(工业主板)或ARM直接控制液晶屏实现显示。如原理框图3-1. 目前市场上嵌入式主板的种类繁多,功能各异,平望科技可以针对不同的主板制作专用信号线缆、LVDS转接板等,提供完整的显示解决方案。这种方案主要优点:直接控制,环节少,使用简单,调试方便,信号传输失真小。 同时,杭州平望科技有限公司与...
>>详细内容
Eurotech的PC104/MVB总线接口面向铁路通信应用
    Eurotech公司推出一款PC/104外设模块COM-1240,该MVB接口板可作为PC/104系统和MVB总线之间的网关。   COM-1240能提高安装在铁路车辆中的设备的通信能力,可简化连接和扩展的复杂性。该板拥有32位、24MHz的RISC处理器,支持可达会话层的完整Class 3 (可选Class 4)TCN协议栈。COM-1240能大幅解除主CPU模块的负担,使其仅需处理TCN应用层的信息。此外该接口板还具有重量轻、功耗低的...
>>详细内容
基于PC104总线的故障诊断装置的设计
    摘要:为了解决某装置故障诊断的难题,提出了一种基于PC104总线的便携式故障诊断装置的设计方案。分析了采用模块化结构设计的硬件,介绍了利用多媒体技术实现的专家系统。该装置也可为其它大型机电设备进行故障诊断提供参考。   关键词:故障诊断 专家系统   某装置是集机、电、液一体化的大型复杂设备。该设备由计算机通过继电器控制电磁阀的闭合,进而控制液压系统,完成装置...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com