三是系统控制线RESET、CLK,RESET为模块复位输入,CLK为模块时钟输入,通信的波特率由CLK来决定(实际的波特率是CLK/4)。

基于Verilog的UART串行通信接口电路设计

UART的图元模块结构

RDFULL、TDEMPTY为两个状态标志位,RDFULL为输入寄存器满标志,高电平表示已经接收到一个有效数据并存储到输入数据寄存器中,当CS、RD有效将数据读出后变为低电平无效。

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

2.1 发送模块设计

发送模块由发送控制进程、写数据进程、并/串转换进程、状态操作进程等进程构成。其中,最主要的是发送控制进程,在发送控制进程中声明了一个6比特的变量scit_v,由它的取值(状态机)状态来控制整个发送过程。scit_v被分为高四位的sh_t和低两位的sl_,tscit_v在系统复位后被赋初值28(011100B),每来一个时钟scit_v增量,每来四个时钟sh_t增量,当sh_t为0111B时发送起始位,sh_t为1000~1111B时发送8比特的数据。下面给出的是发送控制进程和发送接收数据进程的原代码:

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

PROCESS(clk,reset)

variablescit_v:integerrange0to63;

variablescit_s:STd_LOGIC_vector(tdownto0);

BEGIN

IF(reset=0‘)’THEN

scit_v:=0;--“000000”

ELSIF(clkE‘VENTANDclk=1’)‘THEN

IF(scit_v

关于接口,总线,驱动就介绍完了,您有什么想法可以联系小编。