基于FPGA芯片的UART接口电路设计

网友投稿 222 2022-11-14

基于FPGA芯片的UART接口电路设计

1 UART简介

图1 UART数据帧格式

2 UART功能实现

UART可以分解为3个子模块:波特率发生器模块;发送模块;接收模块。UART的功能主要由VHDL硬件描述语言编程,图2是编译后生成的图元SCI,它包括了UART的最主要的部分,即发送模块和接收模块。SCI的外部口线可分为3类:

一是与数字系统的接口,包括数据DATA[7.0],片选CS,读写RD、WR,状态RDFULL、TDEMPTY.这部分接口完成的功能是将待发送的数据写入SCI或从SCI读出已接收到的数据。

二是串行通信接口2条线RXD、TXD,其中RXD是接收数据线、TXD是发送数据线,因此,SCI实现的是全双工通信的设计。

图2 UART的图元模块结构

TDEMPTY为输出寄存器空标志,高电平表示由CS、WR有效写入到输出寄存器的数据已经发送完毕,可以向输出寄存器写入另外待发送的数据,低电平时表示数据目前正在发送中。

2.1 发送模块设计

-----数据发送控制进程-----

PROCESS(clk,reset)

variablescit_v:integerrange0to63;

variablescit_s:STd_LOGIC_vector(tdownto0);

BEGIN

scit_v:=0;--“000000”

ELSIF(clkE‘VENTANDclk=1’)‘THEN

IF(scit_v<=27)THEN

IF(tdEMPTY_s=0’‘ANDwr=1’)‘THEN

scit_v:=28;--sci_v=“011100”

ELSE

scit_v:=0;

ENDIF;

ELSE

scit_v:=scit_v+1;

ENDIF;

ENDIF;

scit_s:=conv_std_logic_vector(scit_v,6);

scit<=TO_STDULOGICVECTOR(scit_s);

ENDPROCESS;

------数据的串行发送-----

PROCESS(sh_t)

BEGIN

WHEN“0111”=>txd<=0’;‘

WHEN“1000”=>txd<=din_latch(0);

WHEN“1001”=>txd<=din_latch(1);

WHEN“1010”=>txd<=din_latch(2);

WHEN“1011”=>txd<=din_latch(3);

WHEN“1100”=>txd<=din_latch(4);

WHEN“1101”=>txd<=din_latch(5);

WHEN“1110”=>txd<=din_latch(6);

WHEN“1111”=>txd<=din_latch(7);

WHENOTHERS=>txd<=1’;‘

ENDCASE;

ENDPROCESS;

图3给出的是发送数据的仿真图。当CS和WR有效时写入数据55H,同时EMPTY被置成无效状态,开始数据的发送,从图中可以看到TXD上电平的变化过程,当发送结束后EMPTY变为有效。

图3 发送数据的仿真波形

2.2 接收模块设计

UART接口模块由接收控制进程、读数据进程、接收数据串/并转换进程、状态操作进程等进程构成。

----接收行数据的串/转换进程---

PROCESS(clk,reset)

BEGIN

IF(reset=0’)‘THEN

d_fb<=“00000000”;

ELSIF(clkE’VENTANDclk=0‘)’THEN

IF((sh_r>=“1000”)AND(sh_r<=“

1111”)AND(sl_r=“01”))THEN

d_fb(7)<=rxd;

d_fb(i)<=d_fb(i+1);--d_fb(0)被移

出;d_fb(7)被移空

ENDLOOP;

ENDIF;

ENDIF;

ENDPROCESS;

图4给出的是接收数据的仿真图。当rxd出现低电平后便启动一次接收过程,当8比特的数据接收完毕后,rxd变为高电平,同时将RDFULL信号置为高电平有效,RDFULL有效表示接收寄存器已经存储了一个刚刚接收到的数据,当CS和RD有效时将数据(实际接收到的数据是2AH)读出,同时RDFULL被置成无效状态。

图4 接收数据的仿真波形

2.3 波特率发生器模块

3 结论

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微软云计算介绍与实践(实践之九)
下一篇:使用sharding
相关文章

 发表评论

暂时没有评论,来抢沙发吧~