引言:
无论哪种类型的单片机,I/O口是有限的。在某些应用场合,单片机的I/O口是不够用的,这时需要扩展单片机的I/O口,本设计选用CPLD扩展单片机的I/O口,实现单片机对FlashRom的读写控制。之所以选用CPLD,由于CPLD具有高集成度、高可靠性以及硬件逻辑结构的可描述性等特点。采用CPLD作为接口扩展芯片,大大减少了所用芯片的种类和数目,缩小了体积,降低了功耗,进步了系统的可靠性和整体性。
1ispMACH4032ZCPLD
复杂可编程逻辑器件CPLD(ComplexProgram2mableLogicDevice)是一种半定制的专用集成电路ASIC(ApplicationSpecificIntegratedCircuit)。其芯片上按一定排列方式集成了大量的门和触发器等基本逻辑元件。通过软件编程可以实现这些元件的连接,从而使之完成某个逻辑电路或系统的功能,成为一个可在实际电子系统中使用的ASIC。
本设计采用的是ispMACH4000ZCPLD。ispMACH4000ZCPLD系列器件的主要特点是,静态功耗仅为目前低电压CPLD的20%,而且运行速度极快。该系列第一种产品ispMACH4032Z,管脚至管脚的迟延为3.5nS,时钟至输出的迟延为3.0nS,建立时间为2.2nS,工作频率高达265MHz。ispMACH4032Z目前已经上市,有商用、产业用和车用三种温度选择,采用48脚TQFP或球间距为0.8毫米的49球芯片栅格阵列封装。
2系统的总体设计
2.1硬件设计
众所周之,无论哪种型号的单片机,I/O口是有限的,假如不往扩展I/O口,单片机的应用将受到局限。而CPLD具有丰富的I/O口的逻辑器件,单片机用COLD扩展接口可以大大扩展单片机的实现功能,在单片机对FlashRom的读写控制中,采用CPLD实现单片机对FlashRom读写控制,不仅可以实现I/O口有限的局限,也充分体现了CPLD逻辑控制器件不仅能扩展I/O口,而且具有逻辑功能的特点,系统的设计思想阐述如下:
系统硬件连接框图如图

图1系统总体设计框图
上述框图设计说明如下:利用单片机ADUC831的P2.5、P2.6分别与FlashRom的写控制端相连。P0口作为CPLD与单片机I/O相连,P2.0作为CPLD的控制选择端,P2.7作为CPLD同步控制端,CPLD的输出A0-A7作为FlashRom的低8位地址,A8-A15为FlashRom的高8位地址,D0-D7作为数据的输进输出口。
2.2CPLD软件设计
ALTERA公司的CPLD开发软件有MAX+PlusII和QuartusII,这里使用MAX+PlussII完成系统的软件设计,MAX+PlussII支持原理图输进、VHDL语言输进、状态图输进和混合输进等输进方法。VHDL硬件描述语言,与具体的工艺技术和器件无关,易于共享和复用,具有多层次描述系统硬件功能的能力。单片机通过CPLD实现对FlashRom的控制,在设计中,CPLD需要实现的功能是CPLD对FlashRom读和写,大大缩减了单片机的工作。用VHDL对该功能模块编程编译。程序片断如下:
Architectureflashromis
Signaloel,opl:std_logic
Signaloeh,oph:std_logic
Signalrdw,rdr:std_logic
Begin
Status_select:block
Signaltmp:std_logic_vector(5downto)
Signalreg:std_logic_vector(44down0)
Tmp<=”01011011000zz01”whenreg=”00000”else
”00011011000zz01”whenreg=”00000”else
”01010111000zz01”whenreg=”00000”else
”11110001000zz01”whenreg=”00000”else
”111100110000zz01”
Process(clk)
Begin
Ifclk’eventandclk=’1’then
Reg<=status;
Endif;
Endprocess;
2.3单片机程序设计
单片机主要完成系统的控制功能,在实现输出控制接口时需要与CPLD配合,提供CPLD需要的数据和地址及控制线。当需要某一组输出工作时,先将该组地址存进DPTR中,再使用指令:MOVXA,@DPTR,同时“WR”被拉低,而CPLD的通道选择端口与单片机的P0、P2.0、P2.7相连接。CPLD通过这组信号判定选择并且使能FlashRom,完成FlashRom读写操纵。
3结束语
使用单片机和CPLD结合可以有效地实现过往需要利用单片机和大量外围接口芯片才能完成的功能。采用CPLD作为接口扩展芯片,大大减少了所用芯片的种类和数目,缩小了体积,降低了功耗,进步了系统的可靠性和整体性。用CPLD实现单片机对FlashRom的读写控制不仅可以实现I/O口有限的局限,也充分体现了CPLD逻辑控制器件不仅能扩展I/O口,而且具有逻辑功能的特点.近年来,随着采用先进的集成工艺和大批量生产,CPLD器件本钱不断下降,集成密度、速度和性能都大幅度进步。这样,一个芯片就可以实现一个复杂的数字电路系统;再加上使用方便的开发工具,给设计修改带来很大方便,可以大大缩短系统的设计周期,从而极大进步产品的市场竞争力。
参考文献
[1]张毅刚,彭喜源,曲春波.单片机应用技术.哈尔滨:哈尔滨产业大学出版社。1997
[2]侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计。西安:西安电子科技大学出版社,1999。
[3]陈耀.VHDL语言设计技术.北京:电子产业出版社.2004