单片机+CPLD在电子设计中的应用

发布者:bdwhsc最新更新时间:2012-10-23 来源: 21ic 关键字:单片机  CPLD  电子设计  结构体系 手机看文章 扫描二维码
随时随地手机看文章

自20世纪80年代单片机引入我国以来,学习和应用单片机的热潮始终不减,特别是MCS51系列。这是由单片机的特点决定的。实际上,从单片机/CPLD应用通用数字集成电路系统,到广泛应用单片机,是我国电子设计在智能化应用水平上质的飞跃。据统计分析,单片机的销量单片机/CPLD到目前为止依然逐年递增,而且在很长一段的时间内,单片机依然会是电子设计的主角(虽然这一地址已经受到了CPLD的挑战)。

1 纯单片机系统优缺点

①大量单片机/CPLD的外围芯片和接口电路使得单片机应用系统的设计变得简单而且快捷,新型单片机的上市和高级语言的支持(如C51)进一步延长了单片机的寿命。

②长期稳定的发展和使单片机性价比非常高,而且单片机/CPLD积累了大量的资料并拥有了大量的工程技术为员。这一点是CPLD目前难以达到的。

但是,单片机的缺点也有目共睹:

①低速。即使是高速度单片机也只能工作在μs级,这是由单片机串行工作的特点所决定的。

②低可靠性。虽然单片机/CPLD目前有很多器件与设计在一定程序上解决了部分问题,如看门狗的广泛应用,但在某些情况下瞬间的复位也会造成严重后果。

2 纯CPLD设计的优缺点

即使单纯单片机/CPLD的单片机结构能完成的功能,在某些情况下也宁可使用纯数字电路完成。而当前开始流行的CPLD,则不但克服了单片机的缺点,而且由于可采用VHDL语言编程,进一步单片机/CPLD打破了软硬件工程师的界限,加速了产品的开发过程,使纯数字电路的设计变得简单。人们甚至在讨论用C作为下一代硬件描述语言。

难怪有专家指出,电子设计的单片机时代即将过去,而以PLD为核心的EDA(电子设计自动化)将是单片机/CPLD未来设计的方向。由于超大规模集成电路技术的发展,单片PLD芯片上已经可以集成上百万门,就系统规模而言,将单片机设计在内也没什么问题。美国的可编程器件厂商已经以软核和硬核嵌入两种形式(将单片机电路嵌入PLD)为设计人员提供帮助。PLD器件取代单片机是早晚的事。但是,在我国当前的普遍应用中,单纯依靠PLD器件还有点早,原因如下:

①由于历史单片机/CPLD的原因,我国的电子设计人员大部分应用的是MCS51系列单片机,还没听说哪家公司提供软核或硬核集成。而让这么多人改学其它系列单片机还需要一段时间,而且原有的程序更使人不愿改动。

②单片机价格低廉,而PLD如果增加单片机内核的话,至少在目前形势下价格会比较昂贵。

所以,由于单片机和PLD的互补性,利用单片机加PLD的结构至少在近期内将一种较好的选择。下面通过作者设计的实例,介绍MCS51+EMP703S结构体系的特点及注意事项。

3 单片机+CPLD结构体系设计实例

本设计用于单片机/CPLD自动化控制,设计要求如图1所示。

 

 

对于一个熟悉单片机系统设计的工程师而言,上述设计不会有技术上的困难,问题在于:

①要用两个全双工串口;

②要求比较多的输入输出口。如果用传统设计方法,势必要用比较多的芯片,电路板的设计也较麻烦,一旦设计有误,必须重新设计整个电路板,费时、费力、费钱。而采用MCS51+EMP7032S设计后,基本上做到了模块化设计,电路的修改只是编程而已。从开始设计到定型所用的时间,基本上就是制作电路板的时间。由于设计了输出信号锁存,完全避免了单片机程序跑飞和看门狗复位所引起的输出的跳变,这时设备完全至关重要。图2是设计原理电路图。

 

 

从设计的原理图可以看出,主要部分单片机/CPLD只需要两片集成电路:单片机AT89C51和CPLD——EPM7032S,并且电路板采用模块化设计,预留了扩展接口,只需要配上不同的处理模块,就可以实现数据采集、键盘扫描、显示驱动和继电器控制等许多功能。单片机和EPM7032S之间采用了类似SPI接口的通信方法。如图2所示。采用这种方法,既实现了单片机和CPLD之间的通信,又具有灵活性,并且节约了大量的端口资源。

EPM7032S有36个I/O口,除去用于和单片机通信的7个端口,还有29个端口可以使用。可满足大部分对于端口扩展设计的需求。图3是为EPM7032编写的测试程序的波形仿真图。

 

 

图3中:CLK为同步时钟;SEND为数据接收;END为SEND信号的控制端;S为位选端,用业控制串行通信端口选择;RXD、TDX为单片机和EPM7032之间的串行通信端口;RXD1、TXD1、RXD2、TDX2为串行通信扩展口。这种方案,已经过多次检验,对于节省PCB板的面积和布线难度、提高设计可靠性和提高设计效率都非常有帮助。
[page]

单片机程序

sdosend:

setb clk

setb end

mov r7,#06h

ssend:

rrc a

mov send,c

nop

nop

clr clk

nop

nop

setb clk

djnz r7,ssend

nop

nop

clr end

nop

nop

setb end

ret

VHDL 语言程序

Library ieee;

Use ieee.STd_logic_1164.all;

Entity pldse1 is

Port

(

so,clk,send :in std_logic

);

end pldse1;

architecture io1 of pldse 1 is

begin

process(cs)

begin

if(cs=\'0\')then

casep qout is

when "000000"=>

when "000001"=>

when "000010"=>

··················

when "000100"=>

when "000101"=>

when others=>null;

end case;

else null;

end if;

end procESS;

process(clk)

begin

if(clk\'event and clk=\'0\')then

qout<=data &qout(5 downto 1)

else null;

end if;

end process;

end io 1;

通过程序单片机/CPLD可以看出,利用CLK和SEND线发送控制信号;利用END作为结束位,无论什么情况,如果没有结束位的下降沿脉冲,PLD的输出端口不会改变,这样可确保输出信号的稳定。这种输出锁存使单片机在死机复位时依然不影响继电器原输出。PLD在接收到单片机的控制信号后首先暂存,直到收到END的下降沿脉冲时再把数据输出,作出相应的置高低电平的动作。

由上述设计可以看出,单片机和PLD在使用上有很强的互补性:在逻辑运算、智能控制方面,单片机具有不可替代的优越性;而在高速稳定等方面,PLD无疑是首选。因此,在目前的电子设计中,充分利用单片机+PLD结构将起到事半功倍的效果。

关键字:单片机  CPLD  电子设计  结构体系 引用地址:单片机+CPLD在电子设计中的应用

上一篇:基于MSP430单片机的虚拟示波器
下一篇:基于MC9S12XSl28单片机的智能循迹小车的硬件设计

推荐阅读最新更新时间:2024-03-16 13:11

一种基于单片机的智能气动泵控制系统
  引言   以C8051F020单片机为核心的智能气动泵控制系统,能很好地解决在火炮身管气动擦拭过程中遇到的气体计量问题,因为C8051F020单片机在模拟信号的采集和模数、数模转换及模拟信号的输出等功能方面作出了许多的完善,非常适合于军工业控制系统的自动化和智能化发展。   1 C8051F020单片机功能简介   C8051F020器件是完全集成的混合信号系统级MCU芯片,具有64个数字I/O引脚。其主要特性:1)高速、流水线结构的8051兼容的CIP-51内核(可达25MIPS);2)全速、非侵入式的在系统调试接口(片内);3)真正12位、100ks/s的8通道ADC,带PGA和模拟多路开关;4)真正8位500ks/s
[单片机]
一种基于<font color='red'>单片机</font>的智能气动泵控制系统
蓝桥杯STC15单片机复习——DS1302
前言 本次实验测试STC15的定时计数器,,STC15F2K60S2单片机共有三个定时计数器,我们比较常用的只是定时器0和定时器1.所谓计数器,就是计算定时计数器对应引脚的脉冲,对于国信长天的板子,上面搭载有NE555的谐振电路,可以输出频率可调的方波,本此实验通过计数器采集其输出的方波并计算显示其大致频率。 1、计数器 首先配置定时计数器0为计数器模式,用于采集NE555的信号输出。 #include STC15F2K60S2.h #define uint unsigned int #define uchar unsigned char void ALL_Init(); void delay_ms(uint
[单片机]
从零开始51单片机教程 —— 定时器/计数器的方式控制字
从上一节我们已经得知,单片机中的定时/计数器都能有多种用途,那么我怎样才能让它们工作于我所需要的用途呢?这就要通过定时/计数器的方式控制字来设置。 定时/计数器共有四种工作方式 在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。顺便说一下,TMOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。 TMOD结构 从图1中我们能看出,TMOD被分成两部份,每部份4位。分别用于控制T1和T0,至于这里面是什么意思,我们下面介绍。 TCON结构 从图2中我们能看出,TCON也
[单片机]
从零开始51<font color='red'>单片机</font>教程 —— 定时器/计数器的方式控制字
单片机中进制转换知识
1.如何把一个四字节的十六进制数转换为十进制数,十六进制数的格式低位在前,假设第一个字节位hex_buf ,hex_buf ,hex_buf ,hex_buf 。 方法: uint64 add_sum =0; sum += hex_buf ; sum += hex_buf 8; sum += hex_buf 16; sum += hex_buf 24; 即可得到四个字节十六进制数的十进制数。 2.如何把一个十进制数转换为一个十六进制数。 比如:123456789 首先确认这个数需要用几个字节的十六进制数表示,比如一个字节可以表示的最大数ff也就255,两个字节0xff
[单片机]
Atmel 90系列AVR单片机烧录器
AVRPRO烧录器,是针对ATMEL公司的90系列AVR精简指令单片机设计的专用烧录工具该产品只有软件部分,无需硬件支持,仅仅只需4根线,将计算机并口和用户板相连,这都是因为采用了ISP串行编程。软件支持擦、写、校验、写保护位以及批处理。使用极其方便。 该产品的最大优点有: 1.使用串行编程,达到了在线编程,节省了购买万用编程器和适配器的费用(万用编程器需2千元左右,适配器需3、4百元,并各个芯片和封装需不同适配器)。用户板也无需在焊插座(带来可靠性下降),而且为软件升级带来了极大的便利。 2.使用方便,无需硬件,给现场调试带来了极大的便利,不用再带笨重的编程器,而且为AVR单片机的使用上带来了方便。 3.价格实在太便
[单片机]
51单片机6自由度机械臂调试程序,带LCD1602PWM显示
以前学习51的时候为了调试机械臂角度编写的程序,用在开发板上也比较方便,但是由于是普通的舵机,不是总线的,所以需要自己洞洞板焊一个供电带电路。 单片机源程序如下: #include reg52.h #include lcd1602.h #define uchar unsigned char #define uint unsigned int sbit duoji0=P2^0; //PWM输出 sbit duoji1=P2^1; sbit duoji2=P2^2; sbit duoji3=P2^3; sbit duoji4=P3^1; sbit duoji5=P3^0; #define GPIO_KEY P1
[单片机]
51单片机8*8LED点阵翻页 闪烁 静止 平移显示
基于单片机的LED点阵设计 基本要求:利用单片机AT89C51设计LED点阵,显示器能显示不同的字符、图形,能够用独立键控制不同字符的切换效果。 创新:显示效果可以是闪烁;静止;平移等。 任务区分:A——每隔1s闪烁1次 B——循环平移,速度自定 . 单片机源程序如下: #include reg52.h sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit KEY = P3^5; unsigned int cnt,m,stage,sec=1000; unsigned char code image =
[单片机]
51<font color='red'>单片机</font>8*8LED点阵翻页 闪烁 静止 平移显示
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved