盛泽建设局网站,做网站上传服务器吗,黄页软件app大全,石家庄建设局网站串口UART
串行端口是异步的#xff08;不传输时钟相关数据#xff09;#xff0c;两个设备在使用串口通信时#xff0c;必须先约定一个数据传输速率#xff0c;并且这两个设备各自的时钟频率必须与这个速率保持相近#xff0c;某一方的时钟频率相差很大都会导致数据传输…串口UART
串行端口是异步的不传输时钟相关数据两个设备在使用串口通信时必须先约定一个数据传输速率并且这两个设备各自的时钟频率必须与这个速率保持相近某一方的时钟频率相差很大都会导致数据传输混乱。
###1 硬件连接 UART可以理解为可以用一线总线就可以完成数据的传输连接图如下
VCC 用来给设备提供电源的如果设备有电源可以省略TX 顾名思义 就是CPU发送数据给设备-对应接设备的RXRX 顾名思义 就是CPU接收设备的数据-对应接设备的TXGND 地线的作用做嵌入式的应该必须要了解没有GND怎么有参考信号 ###2 软件通信协议 UART作为异步串口通信协议的一种工作原理是将传输数据的每个字符一位接一位地传输。 串口通信协议还有很多其他的详细可以看这个串口通信协议
UART协议定义如下图
其中各位的意义如下
起始位先发出一个逻辑”0”的信号表示传输字符的开始。资料位紧接着起始位之后。资料位的个数可以是4、5、6、7、8等构成一个字符。通常采用ASCII码。从最低位开始传送靠时钟定位。奇偶校验位资料位加上这一位后使得“1”的位数应为偶数(偶校验)或奇数(奇校验)以此来校验资料传送的正确性。停止位它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的并且每一个设备有其自己的时钟很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束并且提供计算机校正时钟同步的机会。适用于停止位的位数越多不同时钟同步的容忍程度越大但是数据传输率同时也越慢。空闲位处于逻辑“1”状态表示当前线路上没有资料传送。波特率是衡量资料传送速率的指标。表示每秒钟传送的符号数symbol。一个符号代表的信息量比特数与符号的阶数有关。例如资料传送速率为120字符/秒传输使用256阶符号每个符号代表8bit则波特率就是120baud比特率是120*8960bit/s。这两者的概念很容易搞错。波特率计算示例如图第一个字节的10位(1位起始位8位数据位和1位停止位)共占约1.05ms这样可计算出其波特率约为10bit / 1.05ms X 1000 ≈ 9600 bit/s
一般UART设置窗口如下图
##3 示波器逻辑分析仪测量UART波形 如果你是一个做嵌入式软件的但是你不会量波形会很丢脸至少我可以知道示波器有一个AutoSet的按钮当然你也可以用逻辑分析仪这个对软件工程师来说更加方便。 下面列举协议分析的图片 连续的数据波形0xFF0x00,…0x80的波形。可以看出如果要发送0b0000 0001, 按时间顺序则是低(起始位)高(1)低(0)低(0)低(0)低(0)低(0)低(0)低(0)。但是后面的7个连续的低电平连接在一起就形成了一个较长低电平。 更具体的可以查看这个网站 http://www.51hei.com/bbs/dpj-39824-1.html
喜欢可以关注微信公众号嵌入式Linux