自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板的面积和布线难度、进步规划可靠性和进步规划功率都十分有协助。
单片机程序
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结构将起到事半功倍的作用。