专业建站公司怎么收费,电脑系统网站建设,郑州网站推广,东莞网站建设 硅橡胶一、概述
只讨论嵌入式编程中较为常用的异步串行接口#xff08;Universal Asynchronous Receiver/Transmitter#xff0c; UART#xff09;#xff0c;TTL电平。 串口的参数一般有#xff1a; 1.波特率#xff0c;数据传输速率#xff0c;单位bps#xff08;bits per…一、概述
只讨论嵌入式编程中较为常用的异步串行接口Universal Asynchronous Receiver/Transmitter UARTTTL电平。 串口的参数一般有 1.波特率数据传输速率单位bpsbits per second即每秒传输的位数常见的波特率有9600bps、19200bps、115200bps等如果波特率为115200bps则传输一个bit的时间是1/115200s≈8.68us 2.空闲位当总线处于空闲状态时信号线的状态为‘1’即高电平表示当前线路上没有数据传输 3.起始位总线空闲时为高电平所以开始一次通信时先发送一个明显区别于空闲状态的信号即低电平’0’来表示传输字符的开始 4.数据位起始位之后跟着要传输的数据数据可以是5、6、7、8、9等位构成一个字符一般是8位一般先发送最低位最后发送最高位LSB使用低电平表示‘0’高电平表示‘1’完成数据位的传输 5.校验位校验数据传送的正确性分为以下几种方式 ①无校验no parity即不使用校验位 ②奇校验odd parity如果数据位中“1”的数目是偶数则校验位为“1”如果“1”的数目是奇数校验位为“0” ③偶校验even parity如果数据为中“1”的数目是偶数则校验位为“0”如果为奇数校验位为“1” ④ Mark校验校验位始终为1 ⑤Space校验校验位始终为0 6.停止位表示数据传输结束高电平可为1、1.5或2位 7.传输方向即数据是从高位(MSB)开始传输还是从低位(LSB)开始传输 下面通过逻辑分析仪抓取的串口通信的数据波形直观地感受、理解各个参数的含义。
二、Uart通信数据波形
1.串口配置9600bps8数据位无校验1个停止位从低位开始传输LSB数据为0xAA 从上图可看出BEGIN为起始位低电平然后是8位数据位从低到高位依次是0、1、0、1、0、1、0、1即二进制10101010十六进制为0xAA没有校验位紧跟着一个END为停止位高电平之后保持高电平空闲起始位、数据位、停止位共10位时间间隔约为1.042ms经测量传输每一位的时间是一致、平均的则传输每1位的时间为0.1042ms波特率为9596.9bps≈9600bps误差较小。
2.串口配置19200bps8数据位奇校验1个停止位从低位开始传输LSB数据为0xAA、0xBA 从上图可看出加上校验位后11位传输用时572us则平均每位用时52us即19230.8bps≈19200bps数据0xAA中共有4个“1”是偶数所以校验位为1而0xBA中共有5个“1”奇数所以校验为是0图中的“Right”表示校验正确。 将配置改为偶校验其他不变校验位如下图对照偶校验的定义可知校验正确 将配置分别改为Mark校验、Space校验其他不变校验位分别如下面两图可知校验正确 Mark校验校验位是1 Space校验校验位是0 3.串口配置19200bps8数据位无校验2个停止位从低位开始传输LSB数据为0xAA 由前文可知19200bps时每位的时间约52us而上图中停止位END所占时间为M1与M2之间的间隔104us因此停止位为2位。
4.串口配置19200bps8数据位无校验1个停止位从高位开始传输即MSB方式瑞萨的RL78系列MCU可以设置LSB或者MSB模式数据为0xAA 上图与前面几张图对比LSB模式下数据0xAA在BEGIN起始位之后是按照从低到高位即0、1、0、1、0、1、0、1的顺序传输的而上图是按照1、0、1、0、1、0、1、0的顺序传输的逻辑分析仪也设置为按照MSB的模式接收即可正确识别出数据0xAA。
5.串口配置19200bps7数据位无校验1个停止位从低位开始传输LSB数据为0xAA 上图中传输的数据是0xAA正常情况下BEGIN起始信号后面应该是0、1、0、1、0、1、0、1然后是停止位END但实际上缺失了最后的1即0xAA的最高位1只有7位数据变成了0x2A 再试着发送数据0xFF其他配置不变 数据变为0x7F仍然是最高位的1缺失 接下来发送数据0x7E 虽然数据只有7位但是正确的因此在数据只有7位的情况下传输小于0x7F的数据即最高位本来就是0的情况数据是可以正确传输的例如传输ASCII码。 51单片机支持9位数据模式可通过SCON寄存器的SM0、SM1、TB8、RB8位设置 我们以51单片机STC8G1K08为例来观察9位数据的的波形将串口配置数据为改为9位其他不变单片机串口1模式3TB8位置0即第9位数据为0SBUF中的数据为0xAA 从上图可看出正确发出了9位数据 下面将TB8位置1即第9位数据为1其他不变数据波形第9位是1