UART接口说明

逼近年关事情多,少了更新。今天冒个泡。说下UART通信接口。

UART扫盲

前面做了SPI和I2C,前两者一个是摩托,一个是飞利浦背书,简单好理解。这个UART就相对复杂一点,全称universal Asynchronous Receiver/Transmitter 通用异步通信协议,也有叫异步全双工通信协议。用线也很少,就俩,TX,RX,和I2C与SPI最大的不同就是少了时钟通讯线。少了时钟通讯线,那就要约定点什么:波特率,数据位,奇偶校验位,停止位等(保命等)。比方说的9600bps,1bit传输就是104.16us,115200bps,1bit传输就是8us。

UART资源

UART很好用,看看有多少片上资源,额,太多,首先支持11个UART,11个中第一个是全功能的UART,怎么个全功能,它是8线制(TXD,RXD,CTS,RTS,CDn,RIn,DTR和DSR),且带64字节的FIFO。然后5个带流式控制(2、4、6、8、10)4线制的(TXD,RXD,CTS,RTS),5个丐版标准制(0、3、5、7、9)。

重点来了,支持三种模式,红外、RS-485、LIN(Local Interconnect Network)模式(迟迟搞不懂的协议)。

RS-485模式

这个是3个中最好理解的,也是最常见到的。

主要它相对于232,首先传输通过的是差分信息(就是两线传递取电压差),这个就是抗干扰能力强,传输距离远,可带的负载多,两根线能挂128设备。但是呢,是半双工的,可能是唯一的缺点了。另外232的电平是5~15V,-5~-15V,可能取负电平为1。458呢是压差2~6V,负-2~6V。

NUC970支持9位传输模式,第9位当是字节代表地址时,会被置为1,当为数据字节时,会被置为0。NUC970支持有三种485工作模式:普通多节点操作模式(NMM)、地址自动匹配模式(AAD)、自动方向控制模式(AUD)

NMM普通多节点操作模式

这个模式的核心是通过控制RX_DIS(UA_FCR[8])来控制是否允许接收器接收数据。

猜测,当下还是猜测,当发现地址位后,判断地址后,可以通过RX_DIS来选择是否接收后续数据。

控制流程如下:(以后对寄存器也要多多记忆^ ^)

  1. 设置FUN_SEL(UA_FUN_SEL[2:0])为RS485模式;
  2. 设计RX_DIS(UA_FCR[8])在接收地址位前是否接收数据;
  3. 通过(UA_ALT_CSR[8])设置RS485_NMM模式。
  4. 当地址位被发现,硬件为设置RLS_IS(UA_ISR[2])和RS485_ADD_DETF(US_FSR[3])标志位;
  5. 判断完地址后,软件决定是否再接收数据信息;
  6. 重复4与5步。

AAD地址自动匹配模式

这个模式就是纯自动化的了,当发现第9位是1以后,拿8位数据和ADDR_MATCH(UA_ALT_CSR[31:24])做匹配,匹配对了,就把数据存进RX-FIFO里。

AUD自动方向模式

这个模式其实和上两者不是并列的,就是引入的RTS线,控制LEV_RTS(UA_MCR[9]),来让控制器进入第三态状态。拉低就是无效,拉高就是允许操作。

LIN模式

这边呢,本来想先写红外模式的,结果发现坑没墙上,就先写LIN模式。LIN模式呢之前接触的少,查资料发现说是简化版的CAN模式(数据传输以帧的形式),说明资料很少,只能从手册中看看了。好在手册讲的挺清楚,NUC970在主机模式下支持空白与分隔的发射与侦听,在从机模式下支持头信息侦听和自动同步功能。

LIN的数据结构,一个完整的帧由主机发送的头和从机的反馈组成。头部又分空白信息,同步信息,帧ID。反馈信息包括数据与字节校验码。核心是帧ID,主机通过不同的帧ID说明帧的目标,而从机通过帧ID判断是否进行回复。

灵魂画手出动:

主机模式下,数据位都是以一个0位开始,跟8个字节,没有奇偶校验,再跟1个停止位(值为1)。总共11位。操作流程如下:

  1. 设置通讯速率 
  2. 将端口设置为LIN模式
  3. 设置WLS(UA_LCR[1:0]=11),PBE(UA_LCR[3]=0),NSB(UA_LCR[2]=0),11位数据位,无奇偶校验,1个停止位。

 然后NUC970支持帧头的三种不同发送方法,手动、半自动、全自动。通过配置LIN_HEAD_SEL(UA_LIN_CTL[23:22])选择,如果不是全自动,就要把0x55与帧ID写入UA_THR中,全自动就把帧ID写入LIN_IDPEN(UA_LIN_CTL[31:25])

然后LIN的break位可以进行设置。

NUC970可以侦听空白与分隔位,当接收了超过11个低位的信号,则置位LIN_BRDET_F。当只有主机不再发送数据的时候,侦听到空白则会对RDA_IF/FEF进行置位。

主机模式下,只能最多从机8个字节数据。

从机模式(留坑)

红外模式

红外模式的核心是将时序信号转换成脉冲信号,再通过红外发射装置进行发射与接收,此处看后续是否要填坑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
UART(Universal Asynchronous Receiver/Transmitter)是一种用于将并行数据转换为串行数据,或将串行数据转换为并行数据的通信接口UART详细设计说明书包括以下内容: 1. 设计目的和功能描述:明确设计UART的目的,例如用于嵌入式系统中实现与外部设备的通信。描述UART的主要功能,如数据传输速率、数据位数、校验位、停止位等。 2. 硬件电路设计:包括串行数据输入引脚、串行数据输出引脚、时钟信号引脚、控制信号引脚等的设计。描述UART的硬件连接方式,如与微控制器的连接方式、与外设设备的连接方式。 3. 数据传输过程:详细描述UART数据传输的步骤。包括数据的发送和接收过程。例如,发送数据时,将并行数据转换为串行数据,通过发送引脚传输;接收数据时,将串行数据转换为并行数据,通过接收引脚接收。 4. 波特率设置:描述UART的波特率设置方法。波特率表示单元时间内传输的数据位数,是衡量UART传输速率的重要指标。可以通过设置寄存器来设置波特率。 5. 错误检测与校验:描述UART中的错误检测与校验机制。例如,校验位用于检测数据传输过程中的错误,并确保数据的完整性和准确性。常用的校验方式有奇偶校验、偶校验和无校验。 6. 中断处理:描述UART中断处理的方法。UART可以通过中断的方式进行数据传输的控制和处理,包括发送和接收中断。应描述中断触发的条件、中断服务程序的编写和处理方式。 7. 时序图和状态机:通过时序图和状态机描述UART的工作原理和数据传输过程,便于理解UART的工作流程。 8. 软件设计:简要描述驱动程序的设计,包括初始化UART、发送和接收数据的函数。 9. 性能指标:描述UART的性能指标,如最大数据传输速率、最大传输距离、最大传输误差等。 UART详细设计说明书需要详细描述UART的硬件设计、数据传输过程、波特率设置、错误检测与校验、中断处理、时序图和状态机、软件设计以及性能指标等内容,以便开发人员能够理解和实现UART的功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值