电子园51单片机学习网 k*St$t:]^l{4M2@\/E
rR'p!q3R44606 图1 总线
|\g'dBa2O44606
Bia1N/l?Z+O44606 (2)节省CPLD芯片的I/O口线。如图二所示,如果将图中的译码器DECODER设置足够的译码输出,并安排足够的锁存器,就能仅通过19根o口线在FPGW与单片机之间进行各种类型的数据与控制信息交换。
*l.s|n!w44606
电子园51单片机学习网jjxy#Ax.J F
电子园51单片机学习网_eVHUUx7L 图2 CPLD芯片I/O口线
~]$S4Y}'nTa44606电子园51单片机学习网1S|1a,^cB9c
(3)相对于非总线方式,单片机编程简捷,控制可靠。
Lo.TV8{7M;z44606电子园51单片机学习网~Azg)|5u
(4)在CPLD/FPGA中通过逻辑切换,单片机易于与SRAM或ROM接口。这种方式有许多实用之处,如利用类似于微处理器系统的DMA的工作方式,首先由CPLD/FPGA与接口的高速A/D等器件进行高速数据采样,并将数据暂存于SRAM中,采样结束后,通过切换,使单片机与SRAM以总线方式进行数据通信,以便发挥单片机强大的数据处理能力。 电子园51单片机学习网9F:r*h OKi#T/kL`m
*~ ett-J%i44606 单片机与CPLD/FPGA以总线方式通信的逻辑设计,重要的是要详细了解单片机的总线读写时序,根据时序图来设计逻辑结构。图一是MCS-51系列单片机的时序图,其时序电平变化速度与单片机工作时钟频率有关。图中,ALE为地址锁存使能信号,可利用其下降沿将低8位地址锁存于CPLD/FPGA中的地址锁存器(LATCH_ADDRES)中;当ALE将低8位地址通过P0锁存的同时,高8位地址已稳定建立于P2口,单片机利用读指令允许信号PSEN的低电平从外部ROM中将指令从P0口读入,由时序图可见,其指令读入的时机是在PSEN的上升沿之前。接下来,由P2口和P0口分别输出高8位和低8位数据地址,并由ALE的下降沿将P0口的低8位地址锁存于地址锁存器。若需从CPLD/FPGA中读出数据,单片机则通过指令“MOVXA,@DPTR”使RD信号为低电平,由P0口将图二中锁存器LATCH_IN1中的数据读入累加器A;但若欲将累加器A的数据写进CPLD/FPGA,则需通过指令“MOVX ·DPTR,A”和写允许信号WR。这时,DPTR中的高8位和低8位数据作为高、低8位地址分别向P2和P0口输出,然后由WR的低电平并结合译码,将累加器A的数据写入图中相关的锁存器。
9U1\c q6m44606
3M_a:^v4W!E44606
电子园51单片机学习网4c`h2nFe4mu
电子园51单片机学习网6J+hb6W:lX(`-fke 独立方式的接口设计方法比较简单,在此不拟做详细介绍。下面介绍图二所示的总线接口逻辑设计,其外部接口如图三所示。
lU:~/hY,s%kx44606电子园51单片机学习网 c0Jo9bgyfv
电子园51单片机学习网m Z/U-D(xqy
/}3F!x!l.L5X[0^v44606
)@'[/KA`.t[44606 这是一个CPLD/FPGA与MCS-51系列单片机接口的VHDL电路设计。MCS-51以总线方式工作,例如,由8031将数据#5AH写入目标器件中的第一个寄存器LATCH_OUT1的批令是: 电子园51单片机学习网]YqD3J5X
电子园51单片机学习网1`M:Gx3\Wwwv/Z%|![M
MOV A,#5AH 电子园51单片机学习网 u_ V,~'e*`\
MOV DPTR,#6FF5H
k'GG#i1Y44606 MOVX @DPTR,A
(~{ gS*Oue@44606电子园51单片机学习网5FE#F/_%f
当READY为高电平时,8031从目标器件中的寄存器LATCH_IN1将数据读入的指令是:
Q2jP1AU3}Z"` I,s44606
a yTiB,f;l;G g;C44606 MOV DPTR,#9F7EH 电子园51单片机学习网^ J/F+S8p/P+O
MOVX A,@DPTR
3AR1K%Pg V44606
G@:yw;a%rO,l44606 以上介绍了MCS-51单片机与CPLD/FPGA接口逻辑设计的两种接口方式,希望对从事单片机和CPLD/FPGA研发的朋友能有所启发。
文章评论(0条评论)
登录后参与讨论