新闻中心

EEPW首页>EDA/PCB>设计应用> 基于FPGA的三线制同步串行通信控制器设计

基于FPGA的三线制同步串行通信控制器设计

作者: 时间:2012-08-23 来源:网络 收藏

如图3所示,根据设计要求,可将划分成3个主要功能模块:接口模块、接收模块和发送模块。

三线制同步串行通信控制器结构图
图3结构图

(1)接口模块:用于各种全局信号的逻辑组合译码控制。同时,对输入的系统时钟进行时钟分频,为接收模块和发送模块提供串行同步时钟信号。

(2)接收模块:用于接收外围串行设备传来的串行数据,此功能模块的核心是接收FIFO和串/并变换两大模块,其中接收FIFO作为数据缓冲器暂存接收到的数据。在接收数据标志、接收移位寄存器和接收移位计数器的配合驱动下,串行数据按照MSB先、LSB后的顺序经过串/并变换后,并行数据被存储于接收FIFO中,等待中断响应后CPU对数据进行处理。

(3)发送模块:用于向外围串行设备发送串行数据,此功能模块的核心是发送FIFO和并/串变换两大模块。CPU将要发送的数据先放到系统的并行数据总线上,并被暂存于发送FIFO中,在响应发送中断信号后,并行数据按照MSB首发、LSB后发的顺序,在控制信号驱动下,经过并/串变换,发送的数据最终以串行数据格式被送往外围串行设备端口。

IP核实体名接口用VHDL语言定义如下:

ENTITY SerSendRec IS

PORT( RST_n:IN STD_LOGIC;

Clk:IN STD_LOGIC;

Cs:IN STD_LOGIC;

Strobe:IN STD_LOGIC;

Rw:IN STD_LOGIC;

Addr:IN STD_LOGIC_VECTOR(2 DOWNTO 0);

Rdata:IN STD_LOGIC;

Rclk:OUT STD_LOGIC;

Rgate:OUT STD_LOGIC;

Int:OUT STD_LOGIC;

Sdata:OUT STD_LOGIC;

Sclk:OUT STD_LOGIC;

Sgate:OUT STD_LOGIC;

Data:INOUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END SerSendRec;




评论


相关推荐

技术专区

关闭