19.S5PV210串口基本操作


19.1.通信涉及的几个基础概念
(1)通信的发展历史;最早通信是烽火台狼烟,邮局信件;现代化通信是电子通信,譬如电报/电话/互联网。通信三要素=信息表示方法+信息解析方法+信息传输方法;通信双方事先需要约定好信息的表示方法和解析方法,否则信息不能有效传递;信号的传输方法是指经过编码后的通信信息如何在传输介质上传输的过程。通信的标准流程,首先发送方先按照信息编码方式对有效信息进行编码(编程成可以在通信线路上传输的信号形态);然后编码后的信息在传输介质上进行传输,输送给接收方;最后接收方接收到编码信息后进行解码,解码后得到可以理解的有效信息。
(2)同步通信和异步通信;发送方和接收方按照同一个时钟节拍工作就叫同步,发送方和接收方各自按照自己的时钟节拍工作就叫异步。同步通信中,通信双方按照统一节拍工作,一般需要发送方给接收方发送信息同时发送时钟信号,接收方根据发送方给它的时钟信号来安排自己的节奏,同步通信一般应用于通信双方信息交换频率固定场景或通信双方经常通信场景。异步通信中,接收方不必一直在意发送方,发送方发送信息时需要首先给接收方起始信号,接收方接收到起始信号后就认为后面紧跟有效信息,才会开始注意接收信息,直到收到发送方发过来的结束标志,异步通信一般应用于通信双方的通信频率不固定场景。
(3)电平信号和差分信号;电平信号和差分信号是用来描述通信线路传输方式,即如何在通信线路上表达1和0;电平信号的传输线中有一个参考电平线(一般是GND),然后信号线上的信号值是由信号线电平和参考电平线的电压差决定;差分信号的传输线中没有参考电平,所有都是信号线,然后1和0的表达靠信号线之间的电压差。电平信号的2根通信线之间的电平差异容易受到干扰,差分信号不容易受到干扰因此传输质量比较稳定,现代通信一般都使用差分信号,电平信号几乎没有了;看起来似乎相同根数的通信线下,电平信号要比差分信号要快,但是实际还是差分信号快,因为差分信号抗干扰能力强,因此1个发送周期更短。
(4)并行接口和串行接口;串行和并行主要是考虑通信线的根数,即发送方和接收方同时可以传递的信息量的多少;譬如在电平信号下,1根参考电平线+1根信号线可以传递1位二进制,如果我们有3根线(2根信号线+1根参考线)就可以同时发送2位二进制,如果想同时发送8位二进制就需要9根线;在差分信号下,2根线(彼此差分)可以同时发送1位二进制;如果需要同时发送8位二进制,需要16根线。听起来似乎并行接口比串行接口要快,但实际上串行接口才是王道,用的比较广,因为更省信号线,而且对传输线的要求更低,成本更低,而且串行时可以通过提高通信速度来提高总体通信性能,不一定非得要并行。
(5)单工通信和双工通信;单工就是单方向通信,双工就是双方同时收发,只能单方向通信但是方向可以改变叫半双工;如果只能A发B收则单工,A发B收或者B发A收(两个方向不能同时)叫半双工,A发B收同时B发A收叫全双工。


19.2.串口通信的基本概念
(1)串口通信为异步+电平信号+串行;异步=串口通信的发送方和接收方之间是没有统一的时钟信号的;电平信号=串口通信使用了电平信号传输;串行通信=串口通信每次同时只能传输1个bit位。RS232电平和TTL电平;电平信号是用信号线电平减去参考线电平得到电压差,该电压差决定了传输值是1还是0;在电平信号时多少V代表1,多少V代表0不是固定的,取决于电平标准;譬如RS232电平中-3V~-15V表示1,+3~+15V表示0;TTL电平则是+5V表示1,0V表示0。不管哪种电平都是为了在传输线上表示1和0,区别在于适用的环境和条件不同;RS232的电平定义比较大,适合干扰大+距离远的情况;TTL电平电压范围小,适合距离近+干扰小的情况。我们台式电脑后面的串口插座就是RS232接口的,在工业上用串口时都用这个,传输距离小于15米;TTL电平一般用在电路板内部两个芯片之间进行通信。
(2)波特率(baudrate);指的是串口通信的速率,也就是串口通信时每秒钟可以传输多少个二进制位,譬如每秒种可以传输9600个二进制位(传输1个二进制位需要的时间是1/9600秒,也就是104us),波特率就是9600。最常见的串口波特率是9600或者115200(低端单片机如51常用9600,高端单片机和嵌入式SoC一般用115200)。波特率不可以随便指定的原因,首先通信双方必须事先设定相同的波特率这样才能成功通信,如果发送方和接收方按照不同的波特率通信则根本收不到,因此波特率最好是大家熟知的而不是随意指定的,其次常用的波特率经过长久发展,就形成了共识,大家常用就是9600或者115200。
(3)起始位+数据位+奇偶校验位+停止位;串口通信时的数据收发是以周期为单位进行传输的,每个周期传输n个二进制位,该周期就叫做1个通信单元,1个通信单元=起始位+数据位+奇偶校验位+停止位。起始位表示发送方要开始发送1个通信单元;数据位是1个通信单元中发送的有效信息位;奇偶校验位是用来校验数据位,以防止数据位出错的;停止位是发送方用来表示本通信单元结束标志的。
(4)起始位的定义是串口通信标准事先指定的,是由通信线上的电平变化来反映的。数据位是本次通信真正要发送的有效数据,串口通信每次发送多少位有效数据是可以设定的,有6/7/8/9可选,99%情况下我们都是选择8位数据位,因为我们一般通过串口发送的文字信息都是ASCII码编码的,而ASCII码中1个字符刚好编码为8位。奇偶校验位是用来给数据位进行奇偶校验;把待校验的有效数据逐个位的加起来,总和为奇数奇偶校验位就为1,总和为偶数奇偶校验位就为0;可以在一定程度上防止位反转。停止位的定义是串口通信标准事先指定的,是由通信线上的电平变化来反映的,常见的停止位有1位/1.5位/2位等,99%情况下都是用1位停止位。
(5)串口通信时因为是异步通信,所以通信双方必须事先约定好通信参数,这些通信参数=波特率+数据位+奇偶校验位+停止位,串口通信中起始位定义是唯一的,所以一般不用选择。


19.3.串口通信的基本原理
(1)三根通信线Rx+Tx+GND;任何通信都要有信息传输载体,或者是有线的或者是无线的;串口通信是有线通信,是通过串口线来通信的;串口通信线最少需要2根(GND和信号线),可以实现单工通信,也可以使用3根通信线Tx+Rx+GND

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值