第10章 通用同步异步收发器

合集下载

通用异步收发器

通用异步收发器

通用异步收发器专业:电子信息科学与技术学号:200811526姓名:袁朝阳一实验目的:学习用vhdl语言设计通用异步收发器。

二实验仪器:pc平台,Quartus II8.0软件,EDA6000实验箱。

三实验原理:通用异步收发器由三部分组成。

1 波特率发生器UART波特率是指每个数据位的宽度,UART电路内部的工作时钟是波特率的16倍。

当波特率位2400时,内部时钟位2400*15=38.4k。

2 发送电路当启动发送电路后,发送电路发送出10位串行数据:起始位“0”,D0,D1,D2,D3,D4,D5,D6,D7,停止位“1”3 接受电路当接受到起始位“0”后,每隔一个波特率接受一位行数据。

在rxd输入端还应加有滤波电路。

四实验内容及操作步骤:1 对Quartus II8.0进行破解,操作步骤参考实验一。

2创建工程:选择菜单File->New Preject Wizard命令,即弹出“工程设置”对话框。

设置后在编辑对话框中输入Vhdl代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY EX25 ISPORT(clk : IN STD_LOGIC; -- IO30(P125) 1M clock inputrst : IN STD_LOGIC; -- IO40(P118)rxd : IN STD_LOGIC; -- IO00(P37)xmit_cmd : IN STD_LOGIC; -- IO41(P119)tbuf : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -- IO55..IO48 (P13, P12, P10, P9 , P8 , P137, P136, P135)bclk : OUT STD_LOGIC; -- IO03(P41) 2400 baudrate, 1s / (2400x16) = 26usrec_ready: OUT STD_LOGIC; -- IO04(P43)rbuf : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -- IO15..IO08 (P64, P63, P62, P60, P59, P51, P49, P48)txd : OUT STD_LOGIC; -- IO01(P38)xmit_done: OUT STD_LOGIC -- IO05(P44);END EX25;ARCHITECTURE behv OF EX25 ISSIGNAL rxd_sync: STD_LOGIC;SIGNAL baud_clk: STD_LOGIC;SIGNAL rxd_shift: STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL rxcnt16 : INTEGER RANGE 0 TO 15;SIGNAL rxd_cnt : INTEGER RANGE 0 TO 9;SIGNAL txd_shift: STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL txcnt16 : INTEGER RANGE 0 TO 15;SIGNAL txd_cnt : INTEGER RANGE 0 TO 10;SIGNAL txd_done : STD_LOGIC;BEGIN-- 生成波特率时钟每个字符位含16个脉冲,2400波特率时每个脉冲宽度为26us-- 基准时钟为1M,将1M时钟26分频即可得到。

STM32F2—通用同步异步收发器USART

STM32F2—通用同步异步收发器USART
唤醒模式 Wake = 0 如何进入 软件置位RWU
Wake = 1 软件置位RWU;或者收到不匹配的 地址 若是因为收到不匹配地址字节,则 硬件置位RWU;收到的地址字节不 会置位RxNE,也没有相应中断和 DMA请求;随后的数据不会置位 RxNE以及触发接收中断
进入后的状态
随后的数据不会置位 RxNE以及触发接收中断
发送、接收操作以及对应标志 DMA特性和中断 STM32F1和STM32F2的USART比较
13
单线半双工通信
置位HDSEL@USART_CR3
Tx和Rx线被内部连在一起
读取USRART_DR,获得内部RDR的数据 写入USART_DR的数据,从TDR发送出
只使用Tx引脚,Rx引脚可作为GPIO 发送使能的情况下(TE置位),只要往USART_DR写数据, 硬件就会把数据发送出去,需要软件来管理单线上的传 输冲突
UART4
PA1/ PC11 PA0/ PC10
UART5
PD2 PC12
* 蓝色标示的仅在176引脚封装的芯片上有 * 紫色标示的仅在100、144和176引脚封装上有
5
数据帧格式
USART数据帧的组成
起始位(1位) 数据字(8/9位,M@USART_CR1) 其中包含了校验位(0/1位,PCE@USART_CR1) 停止位(0.5/1/1.5/2位, STOP@USART_CR2)
19
同步通信的典型应用
连接SPI接口从设备
片上SPI接口不够用 需要9位数据格式 需要带校验位的数据 最高时钟7.5MHz
同步通信举例
时钟信号只能发送不能接收
只能模拟主SPI设备
只能在发送和接收未使能时 (TE=RE=0),修改时钟配置 LBCL/CPOL/CPHA

第5章 通用同步、异步收发器USART

第5章 通用同步、异步收发器USART
第 5章
通用同步/异步收发器USART
第5章 通用同步/异步收发器USART
USART(Universal Synchronous / Asynchronous Receive / Transmit)是MSP430单片机的重要外围串行通信接口。 MSP430F449有2个USART:USART0和USART1。 USART可以工作于异步模式,即通用异步收发(UART), USART也可以工作于同步模式,即SPI(Serial Peripheral Interface串行外设接口)。
URXSE = 1时,串行口检测到UART起始位是就产生接收中断,退出低 功耗模式。中断程序通过查询URXIFGx可以判断是起始中断还是结束中断。
b5~4:SSEL1,SSEL0: 时钟源选择。时钟源是计算波特率字的主要依据。
SSEL1-0 00 01 10,11
时钟源 UCLKI ACLK SMCLK
起始中断 URXSEx = 1 URXIFGx = 0
接收中断 URXSEx = 0 URXIFGx = 1
S
D0
D1
D2
D3
D4
D5
D6
D7
P
S
正常情况下,UART的接收中断应该是接收到一个有效的UART帧时发 生,此时RXBUFx是收到的数据,其它时间RXBUFx数据无效(或是前一帧 的数据)。 MSP430单片机有多种低功耗运行模式,例如在LM3模式下,MCLK、 SMCLK都是关闭。如果UART使用的是SMCLK,在正式接收UART数据前 就必须启动SMCLK。任何中断都会自动退出低功耗模,启动SMCLK。
32768 =3.413 计算: 9600
注意:UBRx ≥ 3,如果UBRx < 3, 波特率将会出现不可预见的错误。

STM32 通用同步异步收发器 USART

STM32 通用同步异步收发器 USART
STOP模式下 USART1仍可工作, 还可唤醒MCU
USART1唤醒连到EXTI25
AHB分频 因子 APB分频 因子 PCLK max 48MHz
fCK SYSCLK max 48MHz HSI LSE 8MHz 32.768KHz
USART1SW[1:0] @ RCC_CFGR3
USART1
检测阶段结束
成功检测到波特率 硬件置位ABRF、RxNE,并同时由硬件更新USART_BRR 如果线路噪声过大,检测值BRR不准确 硬件置位ABRF、RxNE,以及ABRE和FE等错误标志 无论是否成功检测,第一个数据都能接收 ABRE置位时,收到RDR中的数据可能不正确
硬件检测数据块结尾,无需软件或其他资源干预
RTU:通过超时@USART_RTOR检测长时间的空闲总线 中 断 ASCII:通过特定的字符序列进行字符匹配 中断
协议的控制部分,地址识别、数据块完整性控制、命令 解析,需要软件实现
13
智能卡模式
支持ISO 7816-3标准定义的智能卡异步通信协议
Transmit message DTE DEAT
DEM: 方向信号使能,DE信号从RTS引脚输出 DEP: 方向信号(输出)极性 DEAT[4:0]: Driver Enable assertion time DEDT[4:0]: Driver Enable deassertion time
发送、接收引脚可通过软件交换@SWAP 发送、接收使能应答 新增标志
BUSY:表示接收线上是否有通信在进行 REACK:进入STOP模式前用以确认模块准备好接收了 TEACK:用于发送空闲帧时确保满足TE=0的最小时间(复位TE之 后,置位TE之前)

通用异步收发器UART设计说明

通用异步收发器UART设计说明
bclk<=~bclk;
end
end
else
div_16baud<=div_16baud+8'd1;
end
endmodule
C.//接收子模块:u_rec
//u_rec.v
module u_rec (bclk16,reset,rxd,rec_ready,rbuf);
input bclk16;
input reset;
//状态机状态编码,使用独热码
parameter r_Start =5'b00001;
parameter r_Center=5'b00010;
parameter r_Wait =5'b00100;
parameter r_Sample=5'b01000;
parameter r_Stop =5'b10000;
begin
state<=r_Center;
center<=1'b1;
end
end
r_Wait:
begin
Shift<=1'b0;
if(samplecnt==4'd13)
begin
center<=1'b0;
if(datacnt==Framelen)
state<=r_Stop;
else
begin
state<=r_Sample;
通用异步收发器UART设计
——现代电子系统设计
一、实验原理:
通用异步收发器是一种广泛应用的短距离串行传输接口。常用于短距离,低速,低成本的微机与下位机的通讯中,—基本的UART连接通信图如下:

通用异步收发器

通用异步收发器
一般而言UART和外界通信只需要两条信号线RXD和TXD,其中RXD是UART的接收端,TXD是UART的发送端,接收与发送是全双工形式。由于可编程逻辑器件技术的快速发展,FPGA的功能日益强大,其开发周期短、可重复编程的优点也越来越明显,在FPGA芯片上集成UART功能模块并和其他模块组合可以很方便地实现一个能与其他设备进行串行通信的片上系统。
查看原图(大图)
以其中一次的测试为例进行说明,从PC上输入ASCII码的“6”,设定波特率发生器时钟作为SignalTapⅡ的采样时钟,采样波形如图4所示,其中“recstart”表示开始接收数据帧标志;“divl6”表示16倍波特率时钟;“cnt_rxd”表示数据位采样计数器,一次完整的采样计数从Oh~9h共10次采样(1个起始位,8个数据位,1个停止位);“rxd”表示串口的接收端;“rxd_buf”表示移位寄存器,当数据停止位确认后,移位寄存器输出收到的数据“36h”,表明了该UART工作稳定可靠。
1 UART功能设计
1.1 UART的工作原理
异步通信时,UART发送/接收数据的传输格式如图1所示,一个字符单位由开始位、数据位、停止位组成。
查看原图(大图)
异步通信的一帧传输经历以下步骤:
(1)无传输。发送方连续发送信号,处于信息“1”状态。
(2)起始传输。发送方在任何时刻将传号变成空号,即“1”跳变到“O”,并持续1位时间表明发送方开始传输数据。而同时,接收方收到空号后,开始与发送方同步,并期望收到随后的数据。
3结语
基于FPGA设计和实现UART,可以用片上很少的逻辑单元实现UART的基本功能。与传统设计相比,能有效减少系统的PCB面积,降低系统的功耗,提高设计的稳定性和可靠性,并可方便地进行系统升级和移植。

UART通用异步收发器的设计

UART通用异步收发器的设计

UART通用异步收发器的设计UART(通用异步收发器)是一种用于串行通信的电子设备,它可以在计算机与其他设备之间进行数据传输。

UART的设计基于异步串行通信的概念,其中数据位、停止位和校验位都能够灵活配置,以满足不同的通信需求。

下面将介绍UART的设计原理和一些关键要素。

UART的设计原理基于异步数据传输的概念。

在异步串行传输中,发送方和接收方的时钟不需要同步,它们仅通过起始位和停止位来识别数据的开始和结束。

UART将数据位与起始位、停止位和校验位组合起来,构成了一个完整的数据包,以便在串行通信链路上传输。

UART的设计包含以下几个关键要素:2. 数据位(Data Bits):数据位定义了每个数据包中实际传输的数据位数。

UART支持的数据位常见有5位、6位、7位和8位。

更多的数据位可以传输更大范围的数据。

3. 停止位(Stop Bits):停止位用于标示数据包的结束。

UART通常支持1位和2位的停止位,其中1位停止位常用,而2位停止位可增加数据的可靠性。

4. 校验位(Parity Bit):校验位用于检测传输过程中的错误。

它是一个额外的位,通过特定的算法计算,并与数据位一起传输。

校验位也可以灵活配置,例如奇校验、偶校验或无校验。

在实际设计UART时,可以采用以下步骤:1.确定通信需求:首先,需要明确UART所连接的设备之间的通信需求,包括波特率、数据位数、停止位和校验位的要求。

2.硬件设计:基于通信需求,设计UART的硬件电路。

该电路通常包括发送电路和接收电路。

发送电路负责将数据位、校验位和停止位组合为一个完整的数据包,并通过串行接口将数据传输出去。

接收电路负责接收串行数据,并将其解析为数据位、校验位和停止位。

3.编程设计:根据硬件设计,编写相应的程序来控制UART的工作。

编程包括配置波特率和其他参数,以及发送和接收数据。

4.验证和调试:完成硬件和软件设计后,进行验证和调试。

通过使用适当的工具和设备进行测试,确保UART能够按照设计要求正常工作。

通用同步异步收发器USART

通用同步异步收发器USART
13
单线半双工通信
置位HDSEL@USART_CR3
Tx和Rx线被内部连在一起
读取USRART_DR,获得内部RDR的数据 写入USART_DR的数据,从TDR发送出
只使用Tx引脚,Rx引脚可作为GPIO 发送使能的情况下(TE置位),只要往USART_DR写数据,
硬件就会把数据发送出去,需要软件来管理单线上的传 输冲突
RX
PA10/ PB7
PC7/ PG9
TX
PA9/ PB6
PC6/ PG14
SCK
PA8
PC8/ PG7
nCTS
PA11
PG15
nRTS
PA12
PG8/ PG13
USART2
PA3/ PD6 PA2/ PD5 PA4/ PD7 PA0/ PD3 PA1/ PD4
低速外设总线APB1
USART3
UART4
情况下,写RWU没有作用
17
培训内容
帧格式
数据帧的字长度 校验位 时钟波特率控制和时钟容忍
通信方式
单线半双工通信 多处理器通信
集成的多种模式
支持同步通信模式(输出时钟信号) 支持调制解调操作(硬件流控) 支持红外(IrDA)SIR ENDEC规范 支持Smart Card协议 支持LIN协议
低电平:可以发送数据(前提是TxE置位了) 高电平:不发送,等待nCTS变成低电平
如果在数据传输过程中CTS跳变高电平,此帧结束后停止传输 CTS信号的跳变会置位CTSIF,并可以触发中断
中断使能CTSIE@USART_CR3 用来告诉发送方,接收方就绪了或者没有准备好
22
模式支持小结
RX对应引 脚可做它用
14
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



3. 波特率发生器初值寄存器SPBRG
要启动串口通讯首先要选择合适的波特率,PIC的USART模块中 有一个8位的波特率发生器,它根据SPBRG寄存器的值来决定周 期;另外在异步通信的方式下波特率还和BRGH位的状态有关。


4. 发送缓冲器TXREG和接收缓冲器RCREG
发送缓冲器TXREG和接收缓冲器RCREG分别是两个8位的数据 寄存器。待发数据要写入发送缓冲器TXREG中;每次收到的数 据可以从接收缓冲器RCREG中读出。
10.1.4 串行通信的帧结构

在串行通信中,信息必须经过“组装”后才能在线路 上传输,信息组装的最小形式称为帧( Frame )。 一帧通常由起始位、数据位、校验位和停止位 4 个部 分组成,由起始位开始,至停止位结束,每帧传输一 个字符。在一帧中,数据位可为 5 ~9 位,校验位可 有可无。
10.1.5 串行通信的校验与纠错方式
正确使用USART异步串行发送器的编程步骤:



(6)若选择了发送的是 9 位数据,则要将第 9 位数据写入 TX9D (TXSTA <0> )。 (7)将要发送的 8 位数据送入 TXREG 寄存器, 从而启动发送器开始串行发送数据。 (8)若要中断来处理发送过程,则需确保 GIE 、 PEIE ( INTCON <7 : 6> )已被置位且 TXIE (PIEI <4 > )已被置位。当 TXREG 内的数据被 装入 TSR 时, TXIF 会被置位并向 CPU 申请中 断, CPU 可在中断服务程序中向 TXREG 送新的 数据。
10.2.1 与USART模块相关的寄存器
发送控制状态寄存器TXSTA各位功能
10.2.1 与USART模块相关的寄存器
接收控制兼状态寄存器RCSTA各位功能
10.2.2 USART模块的波特率发生器BRG


波特率:每位信息的时间宽度——每秒发送的信息位 个数。 USART 模块内有一个 8 位的波特率发生器 BRG ( Baud Rate Generator ) ,它可以根据设定的数值产 生串行数据中每一位数据的时间长度。波特率寄存器 SPBRG 中所存放的值为 BRG 提供了一个不断循环 的定时周期,实际上是 SPBRG 中的 8 位数作为减法 计数器的初值。当该 8 位减法计数器发生借位时(也 即减到 00H 后,下一个计数脉冲到达时),SPBRG 中所存放的值会被再次装载到该减法计数器中,如此 周而复始。在异步模式下,波特率由 SPBRG 和 TXSTA 中的 BRGH 位共同决定。
10.1.2 串行通信的方式

1. 单工传送方式

单工(Simplex)通信是指单方向通信,是指信息流只 能单方向流动、由发方传输到收方,而不能逆向传输。 半双工(Half Duplex)通信是指不完全的双方向通信, 是指信息流能分时地在同一信道内双方向流动。 全双工(Full Duplex)通信是指完全双方向通信,有 两个信息传输的途径,信息流能在双方同时向对方传。
10.2.3 USART模块的异步工作方式


对发送状态与控制寄存器TXSTA的位4(SYNC) 清零,即将USART设置为异步工作模式。 在 USART 的异步工作模式下含 4 个功能部件:


波特率发送器 BRG 采样电路 异步发送器 异步接收器
10.2.3 USART模块的异步工作方式
10.1.11 串行通信的基本类型
10.1.11 串行通信的基本类型

2. 同步传送方式


同步传送是指需要同步时钟的传输,即在传输过程中, 通信的两端需采用同一时钟来同步传输的数据。 在物理上往往要增加一条时钟线。同步时钟通常由主 控方提供。若无同步时钟线,则需采用其他措施保证 通信双方时钟的严格同步,例如在每组信息(或称数 据包)的开头处加上同步字符(又称为同步头)。通 常每组信息由多个字符组成,称为一帧。同步通信要 求连续的数据流,不允许数据包间有间断,在没有信 息传输时,要插入空字符。相比异步通信,同步通信 具有传输效率高和同步精确度好的优点,其通信的实 例包括 SPI 、 I2C 等。
10.1.3 串行通信的RS-232C标准



2. RS-232C 电气特性规定 RS-232C 对电器特性、逻辑电平有如下规定:
① 在 TXD 和 RXD 上,逻辑 1 为-3V ~-15V 。 ② 逻辑 0 为+3v ~+ 15 V。

在 RTS 、 CTS 、 DSR 、 DTR 和 DCD 等控 制线上有如下规定:
10.2.1 与USART模块相关的寄存器
10.2.1 与USART模块相关的寄存器


1. 发送控制兼状态寄存器TXSTA
TXSTA是6位可读/写的寄存器,位3没有使用,位1(TRMT)是 只读位,是发送移位寄存器TSR的状态位。


2. 接收控制兼状态寄存器RCSTA
RCSTA是8位可读/写的寄存器,低3位是接收寄存器的状态位。
10.1.3 串行通信的RS-232C标准


e. DCD ( Data carrier Detection 数据载波检测): 当本地 DCE 设备收到对方的 DCE 设备送来的载波 信号时,使 DCD 有效,通知 DTE 准备接收,并且由 DCE 将接收到的载波信号解调为数字信号,经 RXD 线送给 DTE 。 f. RI (Ringing 振铃信号):当 DCE 收到对方的 DCE 设备送来的振铃呼叫信号时,使该信号有效, 通知 DTE 已被呼叫。
第十章 通用同步/异步收发器
第十章 通用同步/异步收发器ຫໍສະໝຸດ 10.1 串行通信的基本概念
10.2 PIC中档单片机的USART模块 10.3 USART模块的使用方法和编程技术 10.4 实验



10.1 串行通信的基本概念

10.1.1 串行通信的基本类型 1.异步传送方式


异步传送是指无需同步时钟的传输,就是在传输信道 的两端(收方和发方)可以用各自的时钟,而不需要 用同一个时钟来同步两端的通信事件和通信过程。 异步传输通常是以字符为单位来传输的,且通信双方 需按事先的约定或协议来进行通信活动,其中包括从 起始位开始字符的传输、数据传输率(波特率)的大 小、字符的位数、是否有校验位以及停止位的个数等。 包括起始位、数据位、校验位、停止位在内的一组信 息称为一个数据帧。
10.1.3 串行通信的RS-232C标准


③ 信号地线 1 条
GND ( Signal Ground 信号地):无方向。 上述控制信号线何时有效/无效的顺序表示了接口信号 的传送过程。例如,只有当 DSR 和 DTR 都处于有效 状态时,才能在 DTE 和 DCE 之间进行传送操作。若 DTE 要发送数据,则预先将 DTR 线置为有效状态, 等 CTS 线上收到有效状态的回答后,才能在 TXD 线 上发送串行数据。这种顺序的规定对半双工的通信线 路特别有用,因为只有半双工的通信才能确定 DCE 已由接收方向改为发送方向,这时线路才能开始发送。



1. 奇偶校验:根据被传输的一组二进制代码的数 位中“ 1 ”的个数是奇数或偶数来进行校验。 2. CRC 校验: 又称“循环冗余校验”,由分组 线性码的分支而来,是数据通信领域中最常用的 一种高效差错校验码。 3. 若要对发送的一批数据进行总体校验,可采样 “和校验”方法,也就是在发送方,将发送的每 个数据进行累加(或“逻辑加”),将结果的低 字节作为最后一个字节发出。在接收方用相同的 方法对收到的数据进行相加,并与最后一个字节 比较,若相同则传输正确,否则传输错误。

1. USART异步发送器
正确使用USART异步串行发送器的编程步骤:





(1)选择合适的波特率,并将对应的参数值写入波 特率寄存器 SPBRG 。若要选择高波特率,应该将 BRGH (TXSTA < 2 > )置位。 (2)设置 SYNC (TXSTA <4> )清零、 SPEN ( RCSTA <7> )置位,使 USART 工作于异步串行 模式。 (3)若需要通过中断来处理发送过程,则 TXIE (PIEI <4> )置位。 (4)若要发送的是 9 位数据帧结构,则 TX9 (TXSTA <6> )置位。 (5)使 TXEN ( TXSTA <5> )置位,使 USART 处 于发送模式,这也会导致 TXIF 被置位。


② 数据发送与接收线 2 条
a. TXD ( Transmitted data 发送数据):通过 TXD 终端将串行数据发送到通信设备,即 DTE 到 DCE 。 b. RXD ( Received data 接收数据):通过 RXD 线 终端接收从通信设备发来的串行数据,即 DCE 到 DTE 。

2.半双工传送方式


3. 全双工传送方式

10.1.3 串行通信的RS-232C标准
RS-232C标准最初是为远程通信连接数据终端设备 DTE与数据通信设备DCE而制定。接口最大传输速率 为200kpbs,线缆最长为15米。 1. RS-232C信号定义



① 联络控制信号线 6 条

a. DSR (Data Set Ready 数据设备就绪):有效时(ON) 表明数据通信设备处于可以使用的状态。 b. DTR (Data Terminal Ready 数据终端就绪):有效时 (ON)表明数据终端可以使用。这两个信号有时连到电源上, 上电就立即有效。这两个设备状态信号有效只表示设备本身 可用,并不说明可以开始进行通信了,能否开始进行通信要 由下面的控制信号决定。
相关文档
最新文档