| | 网站首页 | 技术文章 | 专业论文 | PLC可编程 | 单片机 | 变频器 | 传感器 | 嵌入式系统 | 电源技术 | 运动与伺服 | | 校园招聘 | 留言板 | |
|
![]() |
|
| 您现在的位置: 自动化学习网 >> 技术文章 >> 单片机 >> 文章正文 |
|
|||||
| 单片机+CPLD结构体系在电子设计中的应用 | |||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-5-12 ![]() |
|||||
|
摘要:介绍在数字电路设计中,单纯以单片机为主体结构的优缺点;结合CPLD的特点,提出单片机+CPLD体系结构在实际应用中的优势,并给出应用实例。 关键词:单片机 CPLD VHDL 自20 世纪80年代单片机引入我国以来,学习和应用单片机的热潮始终不减,特别是MCS51系列。这是由单片机的特点决定的。实际上,从应用通用数字集成电路系统,到广泛应用单片机,是我国电子设计在智能化应用水平上质的飞跃。据统计分析,单片机的销量到目前为止依然逐年递增,而且在很长一段的时间内,单片机依然会是电子设计的主角(虽然这一地址已经受到了CPLD的挑战)。 1 纯单片机系统优缺点 ①大量的外围芯片和接口电路使得单片机应用系统的设计变得简单而且快捷,新型单片机的上市和高级语言的支持(如C51) ②长期稳定的发展和使单片机性价比非常高,而且积累了大量的资料并拥有了大量的工程技术为员。这一点是CPLD目前难以达到的。 但是,单片机的缺点也有目共睹: ①低速。即使是高速度单片机也只能工作在μs级,这是由单片机串行工作的特点所决定的。 ②低可靠性。虽然目前有很多器件与设计在一定程序上解决了部分问题,如看门狗的广泛应用,但在某些情况下瞬间的复位也会造成严重后果。 2 纯CPLD设计的优缺点 即使单纯的单片机结构能完成的功能,在某些情况下也宁可使用纯数字电路完成。而当前开始流行的CPLD,则不但克服了单片机的缺点,而且由于可采用VHDL 语言编程,进一步打破了软硬件工程师的界限,加速了产品的开发过程,使纯数字电路的设计变得简单。人们甚至在讨论用C作为下一代硬件描述语言。难怪有专家指出, ①由于历史的原因,我国的电子设计人员大部分应用的是MCS51系列单片机,还没听说哪家公司提供软核或硬核集成。而让这么多人改学其它系列单片机还需要一段时间,而且原有的程序更使人不愿改动。 ②单片机价格低廉,而PLD如果增加单片机内核的话,至少在目前形势下价格会比较昂贵。 所以,由于单片机和PLD的互补性,利用单片机加PLD的结构至少在近期内将一种较好的选择。下面通过作者设计的实例,介绍MCS51+EMP703S结构体系的特点及注意事项。 3 单片机+CPLD结构体系设计实例 本设计用于自动化控制,设计要求如图1所示。 对于一个熟悉单片机系统设计的工程师而言,上述设计不会有技术上的困难,问题在于:①要用两个全双工串口;②要求比较多的输入输出口。如果用传统设计方法,势必要用比较多的芯片,电路板的设计也较麻烦,一旦设计有误,必须重新设计整个电路板,费时、费力、费钱。而采用MCS51+EMP7032S设计后,基本上做到了模块化设计,电路的修改只是编程而已。从开始设计到定型所用的时间,基本上就是制作电路板的时间。由于设计了输出信号锁存,完全避免了单片机程序跑飞和看门狗复位所引起的输出的跳变,这时设备完全至关重要。图2是设计原理电路图。 从设计的原理图可以看出,主要部分只需要两片集成电路:单片机AT89C51和CPLD——EPM7032S,并且电路板采用模块化设计,预留了扩展接口,只需要配上不同的处理模块,就可以实现数据采集、键盘扫描、显示驱动和继电器控制等许多功能。单片机和EPM7032S之间采用了类似SPI接口的通信方法。如图2所示。采用这种方法,既实现了单片机和CPLD之间的通信,又具有灵活性,并且节约了大量的端口资源。 图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; 通过程序可以看出,利用CLK和SEND线发送控制信号;利用END作为结束位,无论什么情况,如果没有结束位的下降沿脉冲,PLD的输出端口不会改变,这样可确保输出信号的稳定。这种输出锁存使单片机在死机复位时依然不影响继电器原输出。PLD在接收到单片机的控制信号后首先暂存,直到收到END的下降沿脉冲时再把数据输出,作出相应的置高低电平的动作。 由上述设计可以看出,单片机和PLD在使用上有很强的互补性:在逻辑运算、智能控制方面,单片机具有不可替代的优越性;而在高速稳定等方面,PLD无疑是首选。因此,在目前的电子设计中,充分利用单片机+PLD结构将起到事半功倍的效果。 |
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 基于PIC的无线数据传输发射机… 基于PSD3XX与ADMC401接口设计… 基于ST72单片机的快速充电系… 基于单片机的MicroDrive接口… 基于单片机的喷墨打印机控制… 利用ASSP实现成本节约,加速… 如何仿真单片机的外围设备 非接触式e5551读写器的开发 基于80C166单片机PEC服务的P… 基于8位微控制器控制硬盘进行… |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 文章索引 | 网站地图 | |
| 声明:本网站资源均来源于网络,如涉及版权问题,请通知我们,我们将尽快删除! QQ:279619038 备案序号:吉ICP备06005743号 自动化学习网版权所有 站长:guxing |
|