欢迎大家来到IT世界,在知识的湖畔探索吧!
(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; 3 仿真与验证 利用Xilinx ISE和ModelSim SE工具平台对三线制同步串行通信控制器IP核进行综合和功能仿真。数据发送仿真波形如图4所示,数据接收仿真波形如图5所示。可以看出,仿真结果完全正确,符合设计的预定目标。
图4 数据发送仿真波形
图5 数据接收仿真波形
从图4的仿真波形中可以看到,data信号线上是系统要向外围串行设备发送的并行数据,在各种控制信号逻辑组合满足情况下,系统响应发送中断信号Int后,CPU先将待发送的数据暂存在04H地址缓冲寄存器中,在帧同步脉冲信号Sgate正脉冲触发下,每个Sclk周期发送一位串行数据Sdata。图中并行数据99H和E3H对应的串行数据分别为“10011001”和“11100011”。 同理,从图5可知,当开始接收数据时,在Rgate正脉冲触发下,Rdata数据信号线上待接收的二进制串行数据通过串/并变换成“11101010”和“11010111”,并分别暂存在07H和06H所对应的地址缓冲寄存器中,在接收中断信号Int响应下,将对应的并行数据“EA”和“D7”传送到系统数据总线上,CPU对数据进行处理。 本文在对三线制同步串行通信机制进行介绍的基础上,对三线制同步串行通信控制器IP核进行了结构划分和详细设计,并结合Xilinx公司的FPGA器件,采用VHDL硬件描述语言,对设计方案进行了仿真与验证,通过功能仿真波形得出了设计方案的正确性,并被成功用于航天某工程项目中。因其兼具较高的数据传输率和IP核的可移植性,可以预见,其在通信领域中将具有更加广阔的发展空间。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/18186.html