用CPLD实现单片机与ISA总线并行通信
发布时间:2008/6/3 0:00:00 访问次数:732
     肖小锋 盛 文 李演仁 来源:《单片机与嵌入式系统应用》
     摘要:用altera-p.htm" target="_blank" title="altera货源和pdf资料">altera公司max7000系列cpld芯片实现单片机与pc104
     isa总线接口之间的并行通信,给出系统设计方法及程序源代码。包括通信软件和ahdl设计部分。
    
    
     关键词:cpld
     isa总线 并行通信
     cpld(complex programmable logic device)是一种复杂的用户可编程逻辑器件,由于采用连续连接结构。这种结构易于预测延时,从而电路仿真更加准确。cpld是标准的大规模集成电路产品,可用于各种数字逻辑系统的设计。近年来,由于采用先进的集成工艺和大批量生产,cpld器件成本不断下降,集成密度、速度和性能大幅度提高,一个芯片就可以实现一个复杂的数字电路系统;再加上使用方便的开发工具,使用cpld器件可以极大地缩短产品开发周期,给设计、修改带来很大方便[1]。本文以altera-p.htm" target="_blank" title="altera货源和pdf资料">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-p.htm" target="_blank" title="altera货源和pdf资料">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信号
     肖小锋 盛 文 李演仁 来源:《单片机与嵌入式系统应用》
     摘要:用altera-p.htm" target="_blank" title="altera货源和pdf资料">altera公司max7000系列cpld芯片实现单片机与pc104
     isa总线接口之间的并行通信,给出系统设计方法及程序源代码。包括通信软件和ahdl设计部分。
    
    
     关键词:cpld
     isa总线 并行通信
     cpld(complex programmable logic device)是一种复杂的用户可编程逻辑器件,由于采用连续连接结构。这种结构易于预测延时,从而电路仿真更加准确。cpld是标准的大规模集成电路产品,可用于各种数字逻辑系统的设计。近年来,由于采用先进的集成工艺和大批量生产,cpld器件成本不断下降,集成密度、速度和性能大幅度提高,一个芯片就可以实现一个复杂的数字电路系统;再加上使用方便的开发工具,使用cpld器件可以极大地缩短产品开发周期,给设计、修改带来很大方便[1]。本文以altera-p.htm" target="_blank" title="altera货源和pdf资料">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-p.htm" target="_blank" title="altera货源和pdf资料">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信号
上一篇:歌乐汽车多媒体音响技术详解