打印
[应用笔记]

KF32A136学习总结之USART模块

[复制链接]
2196|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
呐咯密密|  楼主 | 2024-2-22 11:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这款芯片的USART特性有:

1、全双工异步通信:就是在同一时间既可以发送也可以接收这就是全双工,而异步则是说咱俩通信没有通过时钟线来发送或者接收消息。在停止位之后不再紧接着传输下一帧,则线路电平会保持在高电平状态也就是逻辑1,代表处于空闲状态。

2、半双工同步通信:半双工顾名思义就是,在同一个时间里,不能同时发送或者接收消息,而同步则是有时钟线来控制消息的发送和接收。这款单片机在全双工模式下,RX是数据输入引脚,而TX是数据输出引脚,那是咋实现半双工同步通信的呢?很简单,咱把RX当数据线,TX当时钟线不就行了嘛,那反过来RX当时钟线TX当数据线行不行呢?在这个单片机上不行,换一款指不定可以。

3、NRZ标准格式:乖乖这是啥子? 中文全称是双极性不归零编码,英文全称是Non-Return-to-Zero(百度的不是瞎编),逻辑1表示高电平,逻辑0表示低电平,在每个时钟周期内只有一个比特位被传输,在传输开始的时候,信号线保持前一个状态叫起始位,传输结束的时候,信号线保持最后一个状态叫停止位,低电平不会到0V或者以下,没有使用极性反转,可能会导致时钟漂移等问题。

4、可编程数据长度(8位或9位):这简单就是说发一帧里面的数据占多少个位,通常是用8位,一个字节的长度去发送。

5、可配置停止位(1位或2位):一帧一般由起始位、数据位、奇偶校验位和停止位组成,停止位一定是逻辑1用来表征这一帧的结束,可以用一个逻辑1也可以用两个逻辑1来表示。

6、单独发送器和接收器使能位:就是可以单独打开发送器或者接收器,或者单独关闭发送或者接收器。

7、支持硬件奇偶校验:也就是说在硬件电路上就实现了奇偶校验,那什么是奇偶校验呢?很简单,就是检测数据位当中有多少个逻辑1,如果逻辑1的数量是偶数则设置成0,反之则为1,在数据流当中插入冗余检测位提高通信过程中数据的可靠性。

8、硬件自动波特率检测和校准:咱就是说在这个模式下,你不知道你发送器件的波特率是多少,没办法匹配接收器件的波特率,但是你能通过发送器件发送帧消息,你的前4位就是起始位+前个3个数据位满足0101的要求,就能检测出你发送器件所使用的波特率是多少,从而校准接收器件的波特率,但是你不能够使用小数波特率哈检测不出来滴。

9、16位整数波特率设置,8位分数波特率设置:这是啥子阿?其实就是用整数+分数来设置波特率,从而实现小数波特率功能,具体看下图。

10、兼容LIN总线协议:啥子是LIN总线协议呢?首先,LIN是基于主从架构,一个主节点控制多个从节点的通信(最大支持16个节点1主15从,并且数据速率在20Kbps以内),具有简单、低成本、低速、低带宽、低功耗、灵活性好(组网方便)等特点。

        那LIN的主机任务干什么事情呢,定义通信速率、发送报文帧头,监控总线通信、使从机进入唤醒或者睡眠状态。那从机任务呢?等待主机任务发送的同步间隔,让从机和主机在同步场中获得同步。分析标识符场,是不是跟自己相关。检查和发送校验和。接受主机任务的唤醒和睡眠请求。

        在LIN总线的一帧由报文头和报文响应组成,报文头是由主机节点的主机任务发送,而报文响应则是从机任务可以在主机节点是跑也可以是在从机节点上跑。报文头分为同步间隔场和同步场再加上PID场组成,而报文响应则是由2/4/8个字节的数据场、1个字节的校验和场组成。报文头和报文响应之间要有的一个帧间空间分隔。

        同步间隔场,是什么呢?就是从机节点连续检测到至少11个显性位就代表是用来同步的间隔信号。在间隔信号同步完了之后,再发送同步场即0x55看是否同步成功了,之后再转入PID(protected ID)场,在这个场中定义和报文的内容和长度,分为了6个标识符位和2个ID奇偶校验位,ID0-ID3代表了这个报文是什么内容,而ID4和ID5表明了数据长度,00U代表2个字节,01U代表4个字节,11U代表8个字节。而报文响应则是数据和校验了,校验和场是数据场所有字节和的反码。

11、支持RS-485模式:那什么是RS485呢?RS485有双线模式和四线模式可以选择,一般是双线模式,那是怎么表示逻辑1和0的呢?两根信号线之间的电压差值在 +(2到6)V则是逻辑1,而电压差值在-(2到6)V则是逻辑0,最大通信速率在10Mbps,对于anti-noise的抗干扰能力很强。

12、支持智能卡接口7816协议:什么是7816协议呢?是基于ISO 7816-3标准,基本的接口时序是一个起始位后面跟8个数据位以及一个校验位,再以两个etu的guard time结束。在前面起始位+8个数据位+1个校验位共10个etu时间,在10.5个etu时间的时候如果接收电路校验数据为正确的则插入两个etu的guard time信号,如果校验出来的结果是错误的,则在第10.5etu拉低IO,产生error signal信号,发送方在第11个etu时没有检测到error 信号的时候说明正确,如果错了,在等待2个etu之后重发数据,这就是7816的发送接收以及数据错误处理。

13、IrDA红外调制解调:IrDA是一个半双工通信协议,0作为高脉冲(脉冲的宽度要宽于1.41us),1作为低电平,如下是USART码流转换成IrDA码流的图。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_70995226/article/details/130419701

使用特权

评论回复
沙发
发GV第几啊| | 2024-2-24 10:40 | 只看该作者
非常详细的介绍,感谢分享!你对这款芯片的USART特性进行了很清晰的解释,这对于理解数字通信和芯片的应用场景非常有帮助。

特别是你对NRZ标准格式的解释,以及在PCB板设计中的布局原则的讨论,对于数字电路设计者来说是非常实用的建议,希望你能继续分享更多关于电子设计和通信协议的知识。
我没毕业,我爱看。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:苏州澜宭自动化科技嵌入式工程师
简介:本人从事磁编码器研发工作,负责开发2500线增量式磁编码器以及17位、23位绝对值式磁编码器,拥有多年嵌入式开发经验,精通STM32、GD32、N32等多种品牌单片机,熟练使用单片机各种外设。

497

主题

3881

帖子

47

粉丝