用CPLD实现单片机与ISA总线接口的并行通信

上传人:壹****1 文档编号:436315634 上传时间:2022-10-29 格式:DOC 页数:3 大小:17.50KB
返回 下载 相关 举报
用CPLD实现单片机与ISA总线接口的并行通信_第1页
第1页 / 共3页
用CPLD实现单片机与ISA总线接口的并行通信_第2页
第2页 / 共3页
用CPLD实现单片机与ISA总线接口的并行通信_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《用CPLD实现单片机与ISA总线接口的并行通信》由会员分享,可在线阅读,更多相关《用CPLD实现单片机与ISA总线接口的并行通信(3页珍藏版)》请在金锄头文库上搜索。

1、用CPLD实现单片机与ISA总线接口的并行通信摘要:介绍了用ALTERA公司MAX7000系列CPLD芯片实现单片机与PC104ISA总线接口之间的关行通信。给出了系统设计方法及程序源代码。 关键词:CPLD ISA总线 并行通信CPLDplex Programmable Logic Device是一种复杂的用户可编程逻辑器件,由于采用连续连接构造,易于预测延时,从而使电路仿真更加准确。CPLD是标准的大规模集成电路产品,可用于各种数字逻辑系统的设计。近年来,由于采用先进的集成工艺和大指量消费,CPLD器件本钱不断下降,集成密度、速度和性能大幅度进步,一个芯片就可以实现一个复杂的数字电路系统;

2、再加上使用方便的开发工具,使用CPLD器件可以极大地缩短产品开发周期,给设计修改带来很大方便【1】。本文以ALTERA公司的MAX7000系列为例,实现MCS51单片机与PC104ISA总线接口的并行通信。采用这种通信方式,数据传输准确高速,在12MHz晶振的MCS51单片机控制的数据采集系统中,可以满足与PC104 ISA总线接口实时通信的要求,通信速率达200Kbps。1 系统总体设计方案用CPLD实现单片机与PC104ISA总线接口的并行通信,由于PC104主要完成其它方面的数据采集工作,只是在空闲时才能接收单片机送来的数据,所以要求双方通信的实时性很强,但数据量不是很大。因此在系统设计

3、中,单片机用中断方式接收数据,PC104采用查询方式接收数据。系统设计方案如图1所示。在单片机局部,D是数据总线,A是地址总线,RD和WR分别是读写信号线,INT0是单片机的外部中断,当单片机的外部中断信号有效时,单片机接收数据。在CPLD局部,用一片MAX7000系列中的PM7128 ESLC84来实现,用来完成MCS51与PC104ISA总线接口之间的数据传输、状态查询及延时等待。在PC104ISA局部,只用到PC104的8位数据总线D,A是PC104的地址总线;/IOW和/IOR是对指定设备的读写信号;AEN是允许DMA控制地址总线、数据总线和读写命令线进展DMA传输以及对存储器和I/O

4、设备的读写;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主要完

5、成单片机与ISA接口通信中的数据传输和握手判断。在图2中,各信号说明如下:D 单片机的8位双向数据总线;PCD ISA接口的8位双向数据总线;PCRD ISA接口的读有效信号;PCWR ISA接口的写有效信号;STATE ISA接口的查询选通信号,用来判断单片机已写数据或读走数据;PCSTATE 单片机用此查询ISA接口已取走数据;MCURD 单片机的读有效信号;MCUWD 单片机的写有效信号;INT0 单片机的外部中断信号。当MCUWR信号有效时,单片机把数据锁存于74LS3741中,此时PCSTAE变为高电平;PC104用STATE信号选通74LS244来判断数据位PCD0是否为高电平,假

6、如为高,说明单片机送来了数据,那么使PCRD有效,从数据锁存器74LS3741中取走数据,此时PCSTATE变为低电平,单片机通过判断此信号为低电平来断定PC104已取走了数据,此时可以发下一个数据。当PCWR信号有效时,PC104把数据锁存于74LS3742中,此时INT0变为低电平;单片机产生外部中断,使MCURD信号有效,从数据锁存器74LS3742中取走数据。此时INT0变为高电平,PC104用STATE信号选通74LS244判断数据位PCD1是否为高电平,假如为高电平,那么说明单片机取走了数据,可以发送下一个数据。PC104与单片机进展通信,最关键的就是速度匹配问题。由于PC104的

7、速度快,而单片机的速度较慢,所以要在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信号变为高电平,P

8、C104可以读写数据。地址译码局部采用文本输入方式。用ALTERA公司的硬件设计开发语言AHDLAltera Hardware Description Language实现。AHDL是一种模块化的高级语言,完全集成于MAX+plus II系统中,特别合适于描绘复杂的组合逻辑、状态机和真值表,地址译码局部采用文本输入方式充分表达了文本输入方式的优点。文本输入内容如下:SUBDESIGN Address(PCA :INPUT;AEN,IOR,IOW :INPUT;RSETDR,DELAY :INPUT;A :INPUT;RD,WR :INPUT;DLY_D :OUTPUT;DLY_CK :OUTP

9、UT;DLY_CLR :OUTPUT;STATE :OUTPUT;PCRD :OUTPUT;PCWR :OUTPUT;MCURD :OUTPUT;MCUWR :OUTPUT;BEGIN!DLY_CLR=RESETDR#DELAY;DLY_D=!AEN(PCA= =H110);DLY_CK=!AEN(PCA= =H110)!IOR#!IOW;!PCWR=!AEN(PCA= =H220)!IOW;!PCRD=!AEN(PCA= =H220)IOR;!STATE=!AEN(PCA= =H221)!IOR;!MCSWR=(A= =H2)!WR;END;说明:PCA是PC104的地址信号,A是单片机的地

10、址信号,PC104用到端口地址220H和221H。3 通信软件设计PC104是基于ISA总线的,在系统软件设计中要防止地址冲突。PC104中使用A0A9地址位来表示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)#123; outportb(pcreadwrite,ch);while (inportb(pcrdstate)0x02)!=0x02);等待单片机读走数据#123; #125;#125;单片机读子程序:P styl

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号