UART原理及接受模块设计

合集下载

UART

UART

通用异步收发器(Universal Asynchronous Receiver Transmitter,UART)是数字通信领域流行和广泛使用的一种接口设备,主要用来控制符合RS 232-C协议的计算机与串行设备间的通信。

普通串行外设和计算机间的通信,一般使用通用的串行接口芯片,但是这种接口芯片存在体积较大、接口复杂以及成本较高的缺点,会使得硬件设计更加复杂,并且结构与功能相对固定,无法根据设计的需要对其逻辑控制进行灵活的修改。

而目前日趋成熟的SOC技术则要求将整个设计的功能集成在单片或几块芯片当中,因此,将UART的功能集成在FPGA芯片当中,可以使整个系统更为灵活、紧凑,性能也更加稳定。

本文提出了一种使用VHDL语言开发UAWT的方法,实现了FPGA与计算机之间的数据通信,并将其应用于FPGA芯片开发的功能验证当中,从而衍生出了将UART嵌入到EPGA芯片,与计算机互联的一种直观的FPGA设计的验证和调试方法。

1 UART通信原理UART采用通用的RS 232-C串行接口标准,该协议的优点是使用广泛,几乎所有计算机和串行外设当中都置有这种接口,其传输距离可达15 m,并且实现较简单,用于双向连接时最少只需要2条导线即可实现基本通信。

UART的具体帧格式如图1所示,每帧数据由开始位、数据位、奇偶校验位和停止位四部分依次组成。

其中,开始位为低电平;数据位长度为5,6,7,8不等;奇偶校验的模式有无校验、奇校验、偶校验、粘附校验1和粘附校验0;停止位为高电平,具体长度为1位、1.5位和2位不等,这些选项都通过UA RT内部的线性控制寄存器来确定。

当没有数据发送时,发送和接收引脚都保持高电平。

2 UART的FPGA实现本实现中,UART主要包括接收模块、发送模块、MODEM控制器和中断仲裁4个部分。

它们的具体功能如下:接收模块具体作用是接收从串行数据输入端口SIN送来的异步数据,并进行串/并转换,此外,接收模块还包含模块控制和模块状态配置功能,用来设置接收数据帧的属性以及向中断仲裁模块输出状态信号;发送模块其作用是对从CPU送来的并行数据进行并/串转换,将串行数据从SOUT输出到串口,同接收模块相同,该模块也包含模块控制和模块状态配置功能;中断仲裁模块其作用是用来实现外部接口对内部寄存器的操作以及中断信号的仲裁操作,在UART的工作过程中,发送和接收模块的状态信号都送入该模块的线性状态寄存器中,经过内部的逻辑操作输出相应的中断信号,指示与UART相连的外部设备进行相应的读写操作;MODEM模块其作用是用来和外部的调制解调器或者其他的UART设备进行通信。

单片机UART通信实现

单片机UART通信实现

单片机UART通信实现在单片机系统中,UART(通用异步收发器)通信是一种常见的串口通信方式。

通过UART通信,可以实现单片机与外部设备之间的数据传输。

本篇文章将介绍如何使用单片机实现UART通信,并提供相应的代码示例。

一、UART通信原理UART通信是一种串行通信方式,其中数据按照位的形式依次传输。

UART接口包括发送端和接收端,发送端将要传输的数据通过串行方式发送出去,接收端将接收到的数据按位恢复为原始数据。

通信的核心是波特率,即数据传输的速度。

发送端和接收端必须以相同的波特率进行通信,以确保数据的正确传输。

二、单片机UART通信的硬件连接实现单片机UART通信的关键是正确连接相应的硬件。

典型的单片机UART通信硬件连接如下:发送端:- 单片机的TX(发送)引脚连接到外部设备的RX(接收)引脚- 单片机的GND引脚连接到外部设备的GND引脚接收端:- 单片机的RX(接收)引脚连接到外部设备的TX(发送)引脚- 单片机的GND引脚连接到外部设备的GND引脚三、单片机UART通信的软件实现在软件方面,需要编写相应的代码来配置单片机的UART通信模块。

以下是一个示例代码,用于实现基本的UART通信功能。

```c#include <reg51.h>#define BAUDRATE 9600 // 波特率设置为9600bpsvoid uart_init(){TMOD = 0x20; // 设置定时器1为8位自动重装模式TH1 = -(256 - (11059200 / 12 / 32) / BAUDRATE); // 设置波特率TL1 = TH1; // 初始化定时器1的初值TR1 = 1; // 启动定时器1SCON = 0x50; // 标识为8位UART模式EA = 1; // 允许全局中断ES = 1; // 允许串口中断}void uart_send(unsigned char dat)SBUF = dat; // 将数据写入发送寄存器 while (!TI); // 等待发送完毕TI = 0; // 清除发送完成标志}unsigned char uart_receive(){while (!RI); // 等待接收完毕RI = 0; // 清除接收标志return SBUF; // 返回接收到的数据}void main(){unsigned char data;uart_init(); // 初始化UART通信模块 while (1)data = uart_receive(); // 接收数据uart_send(data); // 发送接收到的数据}}```以上代码是基于8051系列单片机的实现示例,具体的单片机型号和编程语言可能有所不同,但基本原理是相同的。

浅谈UART通信协议 UART接收数据时序设计

浅谈UART通信协议 UART接收数据时序设计

浅谈UART通信协议UART接收数据时序设计串口通信也是一个基础实验,是FPGA与电脑、单片机、DSP通信的一种最简单的方案,对通信速率要求不高时可以选择UART通信。

您可能已经知道UART时序的控制、波特率的配置等方面的内容,但在实际使用时还是会遇到一些问题,比如如何才能恰当的和其它模块进行衔接?为什么时序明明没问题,却无法和其它控制单元成功通信?本文致力于全面解析在设计UART通信时的思路方法。

UART通信协议UART通信的一帧一般由11到12位数据组成。

1bit的起始位,检测为低电平表示数据开始传输;紧接着8bits的数据;然后是1bit的奇偶校验位,可以是奇校验或者偶校验;最后是1bit或2bits的停止位,必须为高电平,表示一个字符数据的传输结束。

其中校验位是可选的,用来检验数据是否传输正确。

如果有校验位,则需要保证收发双方选择同样的一种检验方式。

奇校验就是保证数据中的1是奇数,比如如果8bit数据中有3bits的1,校验位置0;如果有4bits的1,校验位置1。

偶校验就是保证数据中的1是偶数。

波特率的配置波特率表示数据传输的速率,单位bps,表示位每秒。

比如9600bps就表示1s可以传输9600bits的数据。

异步收发没有时钟打拍来控制数据的传输,就需要保证收发双方在波特率设置上的一致。

确保接收数据的完整性。

程序中通常使用16倍速率对UART通信时序进行采样,则UART通信所需的时钟就是16*bps,如9600bps通信所需的驱动时钟大小就是16*9600=153.6kHz。

程序中可以使用一个计数器对系统时钟分频产生UART通信时钟。

// 分频生成UART通信时钟always @(posedge clk50 or negedge rst_n)if (!rst_n)beginclkout 《=1b0;。

uart串口发送和接受的程序的实现原理

uart串口发送和接受的程序的实现原理

UART串行端口传输和接收程序工作像繁忙的邮政办公室为你的数据!它遵循UART(UART)通用同步接收器、传输器(Transmitter)协议,其中数据以特定baud速率的节奏舞蹈比特发送,开始和停止比
特引导方向。

当您想要将数据发送到世界时,程序首先会设置带有正
确baud率和其他配置的UART模块,然后它会欢快地将您的数据丢
入传输缓冲器。

从那里,UART硬件接管,刷刷你的数据并发送出来在TX针,遵循所有的规则和设置你已经规定。

这就像一个精心编程的表演,与你的数据占据中心阶段!
基本上,UART模块总是在检查RX针上的任何线程数据。

一旦它检
测到一个起始位,它开始根据指定的baud速率抓取其余位。

在获得
包括开始和停止位数在内的整个数据包后,它会保存接收缓冲中的所
有数据。

程序可以从接收缓冲器中获取数据来查看里面有什么。

处理任何潜在的错误,如框架错误或等值错误,在接收过程中可能出现,
也是非常重要的。

UART串行端口传输和接收程序的实施遵循UART协议的原则和政策,促进设备之间的数据交换。

程序精心配置了UART模块,其中包含关于baud率,数据比特,stop比特,以及等价的具体参数,并认真遵
守了规定的准则。

随后,要传输的数据被有效存储并写入UART传输缓冲器。

接收后,从接收缓冲中勤勉地检索数据,确保UART模块准确处理并存储了iing数据。

通过坚持规定的UART协议和有条不紊地
配置UART模块,程序按照既定的政策和指令,有效建立了设备间连续免疫的可靠和安全的通道。

uart工作原理

uart工作原理

uart工作原理
UART(Universal Asynchronous Receiver/Transmitter)是一种
常见的串行通信协议,用于在计算机和外设之间传输数据。

它的工作原理如下:
1. 数据传输格式:UART使用一种异步的方式传输数据,即发送和接收的时钟不同步。

每个数据帧由一个起始位(低电平)、数据位(通常为8位)、可选的奇偶校验位和一个或多个停止位(高电平)组成。

2. 波特率设置:UART通信的速度由波特率决定,波特率表示每秒传输的数据位数。

通常通过配置寄存器设置波特率,常见的波特率有9600、115200等。

3. 发送数据:当发送方要发送数据时,UART首先检查数据线是否空闲。

空闲状态时,发送方发送起始位(低电平),然后连续发送数据位和奇偶校验位(如果使用),最后发送一个或多个停止位(高电平)。

接收方在每个位的中间时刻读取数据。

数据传输完成后,UART会等待下一个字节的发送。

4. 接收数据:当接收方准备好接收数据时,它等待一个起始位的到来。

一旦检测到起始位的低电平,接收方开始读取后续的数据位和奇偶校验位(如果使用)。

最后,停止位的高电平告知接收方数据传输完成。

需要注意的是,UART是一个单工的通信协议,即发送和接收不能同时进行,而且没有错误检测和自动重传机制。

因此,在
实际应用中,常常会结合其他协议,如RS-232或RS-485,来提供更可靠的通信和错误检测机制。

uart通信原理与程序

uart通信原理与程序

uart通信原理与程序UART(通用异步收发传输器)是一种串行通信协议,用于在电子设备之间传输数据。

它广泛应用于各种通信设备和嵌入式系统中,是实现设备间通信的一种基本方式。

本文将详细介绍UART的工作原理和编写UART通信程序的步骤。

一、UART的工作原理UART通信是一种简单的、异步的、串行通信方式。

它使用一个数据线(TXD)和一个时钟线(CLK)实现数据的收发。

UART通信的工作原理如下:1.数据传输格式:UART通信使用帧来表示一个完整的数据包,每个帧由起始位、数据位、校验位和停止位组成。

起始位是一个低电平信号,用来告诉接收方接下来的数据的开始。

数据位是实际要传输的数据,可以是一个字节或多个字节。

校验位用于检查数据的准确性,常用的校验方式有奇偶校验和循环冗余校验(CRC)。

停止位是一个高电平信号,用来表示数据的结束。

2.波特率:3.串行传输:UART通信使用串行传输方式,即每个bit按顺序依次传输。

发送方将数据一位一位地发送到TXD线上,接收方通过CLK线来同步数据的传输。

发送方和接收方都在预定的时钟频率下将数据从一个电平变为另一个电平,以便接收方正确地接收数据。

4.启动和停止:UART通信在数据的开始和结束位置需要一些额外的控制位来标识。

当数据传输开始时,发送方发送一个起始位(低电平),接收方通过检测起始位来确定数据传输的开始。

当数据传输完毕时,发送方发送一个或多个停止位(高电平)来表示数据的结束。

5.同步与异步:UART通信是一种异步通信方式,即发送方和接收方的时钟不同步。

发送方和接收方使用各自的时钟来同步数据的传输,接收方通过检测起始位和停止位来确定数据的开始和结束位置。

二、编写UART通信程序的步骤下面是编写UART通信程序的一般步骤:1.设置波特率:首先,需要设置UART的波特率,确保发送方和接收方使用相同的波特率。

波特率的设置通常是通过设置寄存器完成的,具体的方法可以参考芯片的数据手册。

uart的概念及工作原理

uart的概念及工作原理嗨,朋友!今天咱们来唠唠UART这个超有趣的东西。

UART呢,它的大名是通用异步收发传输器(Universal AsynchronousReceiver/Transmitter)。

你可以把它想象成一个超级小邮差,在电子设备的世界里跑来跑去传递信息呢。

UART主要是用来做串口通信的。

啥叫串口通信呀?就好比是两个人之间通过一根线来聊天,只不过这根线是在电子设备里哦。

它不像咱们平常聊天,可以同时说好多话,它是一个字一个字地来传递信息的,就像古代的飞鸽传书,一只鸽子只能带一封信。

那UART的工作原理就像是一场精心编排的小舞蹈。

在发送端,设备就像一个小作家,先把要发送的数据按照一定的规则打包。

这个规则可有趣啦,它会给数据加上一些小标记,就像我们写信的时候,要写上收信人的地址、姓名一样。

比如说,它会有一个起始位,这个起始位就像是一声响亮的“嗨,我要开始发消息啦”,告诉接收端“注意啦,有消息来咯”。

然后呢,就是真正的数据位,这就是我们要传递的内容啦,可能是一个数字,可能是一个字母对应的编码。

接着,还有可能有校验位,这个校验位就像是一个小保镖,检查一下数据在传递过程中有没有被调皮捣蛋的家伙弄乱。

还有停止位,这就相当于说完话后的一个小句号,告诉接收端“我说完啦”。

在接收端呢,就像一个耐心的小读者。

它一直在那儿等着起始位这个小信号,一旦听到了“嗨,我要开始发消息啦”,就立马精神起来,开始按照规则去解读后面的数据位、校验位。

如果校验位发现数据有点小问题,就像发现信上的字有点模糊不清,那接收端可能就会要求发送端重新发一次。

等读完了所有的内容,看到停止位这个小句号,就知道这个消息接收完啦。

你看,UART是不是很像一个小小的通信世界呢?它在很多地方都发挥着大作用。

比如说,我们的电脑和一些老的设备连接的时候,像以前那种很经典的打印机,可能就是通过UART来通信的。

电脑就像一个大老板,把要打印的文件内容一个字一个字地通过UART这个小邮差传给打印机这个小员工,打印机呢,就乖乖地按照收到的内容把文件打印出来。

uart的工作原理

uart的工作原理UART(通用异步收发传输)是一种常见的串行通信接口,广泛应用于各种设备之间的数据传输。

其工作原理如下:1.串行传输:UART采用串行传输,即一位一位地传输数据。

与之相对的是并行传输,即同时传输多个数据位。

串行传输可以减少传输线的数量和复杂性,提高系统集成度和可靠性。

2.异步通信:UART采用异步通信方式,即在数据传输过程中不需要外部时钟信号来同步发送和接收数据。

发送端和接收端根据事先约定的数据帧格式进行数据传输,并通过特定的控制位来标识数据的开始和结束位置。

3.数据帧格式:UART将每个数据帧分为起始位、数据位、校验位和停止位。

起始位用于表示数据传输的起始位置,一般为逻辑低电平;数据位用于存储传输数据;校验位用于进行数据校验,可以检测和纠正传输错误;停止位用于表示数据传输的结束位置。

4.数据传输过程:发送端根据事先约定好的数据帧格式,依次发送起始位、数据位、校验位和停止位。

接收端根据接收到的信号,解析出数据帧,并进行校验,判断数据的可靠性。

如果校验正确,接收端将从数据位中提取出数据。

5.波特率:6.数据缓冲:UART通过数据缓冲来存储待发送和已接收的数据。

发送端通过将数据写入发送缓冲区,由硬件自动进行数据发送;接收端则通过读取接收缓冲区,获取已接收的数据。

7.错误处理:UART在数据传输过程中,会遇到各种错误,如传输错误、校验错误等。

对于传输错误,UART通常会进行重试或重传;对于校验错误,UART 可以通过重新计算校验位或直接丢弃错误数据。

8.应用范围:UART广泛应用于各种设备之间的数据传输,如计算机与外部设备的串行通信、嵌入式系统与传感器的数据采集、工控设备与PLC的通信等。

总结:UART是一种常见的串行通信接口,通过串行传输和异步通信方式,实现设备之间的数据传输。

它采用数据帧格式、波特率、数据缓冲等机制来实现数据的可靠传输。

在应用方面,UART广泛应用于各种设备之间的数据传输,是一个重要的通信接口。

串口通信UART模块基本介绍

串口通信UART模块基本介绍串口通信(UART)是一种通过串行接口进行数据传输的通信协议和硬件实现方式。

它是计算机和外设之间最常用的通信方式之一,也是嵌入式系统和单片机等小型设备中常用的通信方式。

UART通过串行方式传输数据,即通过单一的数据线一次只能传输一个bit位。

在串口通信中,通常需要两条线,一条用于发送数据(TX),一条用于接收数据(RX)。

UART通常通过一对相互连接的芯片实现,称为UART芯片或UART模块。

它包含一个发送器和一个接收器。

发送器将要发送的数据从并行格式转换为串行格式,并通过发送线路发送出去。

接收器则接收到的串行数据转换为并行格式以供系统使用。

UART芯片通常由硬件设计工程师在集成电路中设计和实现。

UART通信具有以下特点和优势:1.简单易用:UART通信是一种非常简单和易用的通信协议。

它的实现简单,适用于各种不同的应用场景。

2.可靠性高:UART通信使用的是硬件实现,不受软件的控制和干扰。

它具有较高的可靠性和稳定性。

3. 速度灵活可调:UART通信可以根据不同的应用需求进行速度调整。

通常,UART通信支持的波特率范围很大,可以从几十bps到多Mbps。

4.支持半双工和全双工通信:UART通信可以支持半双工和全双工两种通信方式。

在半双工模式下,发送和接收不能同时进行;而在全双工模式下,可以同时进行发送和接收。

5.通信距离远:UART通信使用串行线路进行数据传输,因此可以通过扩展串行线路的长度来实现较远距离的通信。

6.多种应用:UART通信广泛应用于各种设备和领域,如计算机、嵌入式系统、单片机、电子设备、通信设备等。

值得注意的是,UART通信只是一个物理层的通信协议,它只负责数据的传输,而不负责数据的解码和处理。

因此,在使用UART通信时,通常需要配合其他协议或编码方式,如RS-232、RS-485、Modbus等,来完成完整的通信过程。

总结来说,UART通信是一种简单、可靠、灵活的串行通信协议和硬件实现方式。

uart串口通信电路设计 -回复

uart串口通信电路设计-回复UART(通用异步收发传输)是一种常用的串口通信协议,可以实现设备之间的数据传输和通信。

在本文中,将详细介绍UART串口通信电路的设计步骤。

一、什么是UART串口通信电路?UART串口通信电路是一种数字电路,用于将串行数据转换为并行数据,实现设备之间的数据传输和通信。

UART串口通信电路通常由发送电路和接收电路两部分组成。

发送电路:发送电路将并行数据转换为串行数据,并对数据进行格式化。

它通常由一个发送缓冲器、一个发送时钟和控制逻辑组成。

接收电路:接收电路将串行数据转换为并行数据,并对数据进行解码和处理。

它通常由一个接收缓冲器、一个接收时钟和控制逻辑组成。

二、UART串口通信电路的设计步骤1. 确定通信参数在设计UART串口通信电路之前,首先需要确定通信参数,包括波特率、数据位数、校验位数和停止位数等。

这些参数将决定串口通信的速率和精度。

2. 设计发送电路发送电路的主要任务是将并行数据转换为串行数据,并将数据发送到接收设备。

设计发送电路时,需要考虑以下几点:(1)发送缓冲器:发送缓冲器用于存储待发送的数据。

它通常由一个FIFO (先进先出)缓冲器实现,可以提高通信的效率。

(2)时钟和控制逻辑:发送电路需要一个时钟信号来同步数据传输,并且需要控制逻辑来控制数据的发送和处理。

(3)格式化:发送电路需要对数据进行格式化,包括数据位、校验位和停止位的配置。

格式化的目的是提高数据的准确性和可靠性。

3. 设计接收电路接收电路的主要任务是将串行数据转换为并行数据,并将数据传输到接收设备。

设计接收电路时,需要考虑以下几点:(1)接收缓冲器:接收缓冲器用于存储接收到的数据。

它通常由一个FIFO 缓冲器实现,可以提高数据的接收效率。

(2)时钟和控制逻辑:接收电路需要一个时钟信号来同步数据传输,并且需要控制逻辑来控制数据的接收和处理。

(3)解码和处理:接收电路需要对接收到的数据进行解码和处理,包括校验数据的正确性和提取有效数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2 UART 原理
2.1 UART 的通信原理
UART 即通用异步收发器,是一种串行通信方式。

数据在传输过程中是通过一位一位地进行传输来实现通信的,串行通信方式具有传输线少,成本底等优点,缺点是速度慢。

串行通信分为两种类型:同步通信方式和异步通信方式。

但一般多用异步通信方式,主要因为接受和发送的时钟是可以独立的这样有利于增加发送与接收的灵活性。

异步通信是一个字符接着一个字符传输,一个字符的信息由起始位、数据位、奇偶校验位和停止位组成。

每一个字符的传输靠起始位来同步,字符的前面一位是起始位,用下降沿通知收方开始传输,紧接着起始位之后的是数据位,传输时低位在前高位在后,字符本身由5~8位数据位组成。

数据位后面是奇偶校验位,最后是停止位,停止位是用高电平来标记一个字符的结束,并为下一个字符的传输做准备。

停止位后面是不同长度的空闲位。

停止位和空闲位都规定为高电平,这样可以保证起始位有一个下降沿。

UART 的帧格式如图2.1所示。

图2.1 UART 的帧格式
Figure 2.1 The frame format of UART UART 的帧格式包括线路空闲状态(idle ,高电平)、起始位(start bit ,低电平)、5~8位数据位(data bits)、校验位(parity bit ,可选)和停止位(stop bit ,位数可为1、1.5、2位)。

在串口的异步通信中,数据以字节为单位的字节帧进行传送。

发送端和接收端必须按照相同的字节帧格式和波特率进行通信。

其中字节帧格式规定了起始位、数据位、寄偶效验位、停止位。

起始位是字节帧的开始。

使数据线处于逻辑0状态 ,用于向接收端表明开始发送数据帧,起到使发送和接收设备实现同步。

停止位是字节帧的终止,使数据线处于逻辑1状态。

用于向接收端表明数据帧发送完毕。

波特率采用标准速度9600bit/s 。

这种格式是由起始位和停止位来实现字符的同步。

UART内部一般有配置寄存器,可以配置数据位数(5~8位)、是否有校验位和校验的类型、停止位的位数(1,1.5,2)等设置将发送器和接收器模块组装起来,就能较容易地实现通用异步收发器总模块,而且硬件实现不需要很多资源,尤其能较灵活地嵌入到FPGA/CPLD的开发中。

2.2 UART的结构
UART的设计采用模块化的设计思想,主要分为3个模块:数据发送模块、数据接收模块及波特率发生器控制模块。

发送模块实现数据由并行输入到串行输出,接收模块实现数据由串行输入到并行输出,波特率发生器模块控制产生UART时钟频率。

图2.2 UART的典型结构图
Figure 2.2 The typical structure of UART
从图中可以看出UART主要有由数据总线接口、控制逻辑、波特率发生器、发送部分和接收部分组成且控制逻辑一般是由MP即微处理器模块实现,图中的对象器件一般指和CPU 进行通信的外围串行通信设备类打印机等。

连线采用最简单的3线制连接模式,即只需要两根信号线和一根地线来完成数据收发。

而FPGA 只需要选择两个普通I/O引脚分别与接口芯片MAX3232对应引脚T2IN、R2OUT相连即可完成将串口电平转换为设备电路板的工作电平,即实现RS-232电平和TTL/ CMOS 电平的转换。

一个MAX3232芯片可以支持两个串口的电平变换,我们选择其中的一组接口,图中的4个电阻可以省去。

在电路中加入了0Ω的跳线电阻,是为了在这组接口出故障时可以方便地跳线,使用另一组接口。

3 UART模块设计
3.2 接收模块
3.2.1 接收模块的实现方法
串行数据帧和接收时钟是异步的,发送来的数据由逻辑1变为逻辑0可以视为一个数据帧的开始。

接收器先要捕捉起始位,在rdn信号有效的条件下,由rxd1非与rxd2相与,启动接收程序,计数器开始计数,数据从rxd[7..0]串行输入,由接收移位寄存器rsr[7..0]逐位移位接收,并在接收完成时传送给接收缓冲寄存器rbr[7..0],最后,接收缓冲寄存器rbr[7..0]将接收的数据传送至dout[7..0],由它并行输出。

确定rxd输入由1到0,逻辑0要8个CLK16时钟周期,才是正常的起始位,然后在每隔16个CLK16时钟周期采样接收数据,移位到输入接收移位寄存器rsr,最后输出数据dout。

还要输出一个数据接收标志信号标志数据接收完。

当rdn为0的情况下,接收器才开始接收数据,而数据由接收移位寄存器传给接收数据缓冲器主要由no_bits_sent信号控制。

当no_bits_sent==0时SDO的值为0,就是数据的起始位,当no_bits_sent==1,2,3,4,5,6,7,8时开始接收八位数据,当no_bits_sent==9时sdo〈=奇偶校验位的值此时的位叫做一个数据侦中的奇偶校验位,当no_bits_sent==10时此时sdo 〈=1,为停止位,标志着数据接收结束,由dout并行输出。

3.2.2 接收模块的端口信号
此模块是本设计的重点,完成对并行数据的串行输出。

接收器的端口信号如下图3.3所示。

图3.3 接收器模块信号引脚
Figure 3.3 The signal chip of the receiving module
Table3-2 The signal chip definition of the receiving module
表3-2 接收器模块引脚定义
端口信号名I/O 备注
rst input 全局复位,低电平有效
Clk16x input 全局时钟由波特率发生器提供
rdn input 控制是否将接收缓冲器(rbr)中的数据由CPU读取(在本程序中表现的是
由dout输出),当rdn为0可以
dout output 接收模块并行输出
Dataready output 接收模块数据接收完毕标志
framing_error output 奇偶出错标志
parity_error output 奇偶校验出错标志
rxd input 接收模块串行输入
3.2.3 接收模块的前仿真
图3.4 接收模块前仿真
Figure 3.4 The function simulation of receiving module
接收模块功能仿真结果如上图3.4所示。

二进制数11101010从引脚rxd[7..0]串行输入,rxd1非和rxd2相与,启动发送程序,计数器开始计数,接收移位寄存器rsr[7..0]将串行输入的数据逐位移位接收,并通过接收缓冲器rbr [7..0]发送并行数据至并行数据输出端dout。


no_bits_sent==0时SDO的值为0,就是数据的起始位,当no_bits_sent==1,2,3,4,5,6,7,
8时开始接收八位数据,当no_bits_sent==9时sdo〈=奇偶校验位的值此时的位叫做一个数据侦中的奇偶校验位,当no_bits_sent==10时此时,为停止位。

并行输出dout为11101010,起始位0,8位数据位,1位停止位,证明了接收模块的正确性。

相关文档
最新文档