单片机串行通信基础理论

今日头条

1151人已加入

描述

学单片机的动力是什么,学单片机来做什么,需要多长时间把它学会。

做什么事情没有动力都坚持不了多久,端正的学习心态,单片机学习过程是孤独寂寞的、枯燥乏味的过程,知识获取没有捷径,只有循序渐进,脚踏实地,一步一脚印踩出来,才能学到真功夫,学单片机其次还需要多动脑勤动手,单片机具有很强的实践性,是一门很注重实践动手操作的技术学科,不动手实战是很难学会单片机的,还有就是一定要虚心交流,在单片机学习过程中每个人都会遇到无数当下解决不了的问题,这个时候你需要向经验丰富的过来人虚心求教,比起一味的自己埋头摸索会少走很多弯路,节约很多时间。

单片机

单片机串行通信基础理论,收发双方波特率是一致的,这样收发双方能够解析同一个数据,比如八个数据位约定好按照4800的波特率来发,也就是说发送这一帧数据的时候是按照4800的波特率来发,接收的时候也按照4800波特率来接,才能够相互之间识别到发送的是什么数据,接收和发送的是一个数据,所以在做通讯的时候,首先需要配置的就是配置波特率,同时还要配置数据位,是一次传输的数据位的帧格式里面是八位数据位还是七位数据位,或者其它的数据位也是需要配置的,另外一个还需要约定的就是停止位,停止为一般都是一,发送完这一帧数据想再发送一帧数据,先增加一个起始位,然后是的数据位,这两帧数据之间的时间间隔是任意的,发送完这一帧,再发送另外一帧数据的时候时间间隔是不要求的,这个叫做异步。

单片机

发送这一帧数据当中的每一位之间的时间是有严格要求的,比如4800的波特率里面每一位是要同步的,里面发送这一帧数据当中的每一个位之间的时间间隔必须是1/4800,收发双方才不会出错,但是这两帧数据之间没有一个时间的要求,发送完这一帧可以间隔很长时间再去发送下一帧的数据,在发送下一帧数据的时候首先发的是70位,能够监控到总线,知道要发送数据了,就按照约定的波特率去收数据,能够得到一个正确的结果,异步是指两帧数据之间的时间是任意的,没有一个要求,但是这一帧数据当中的数据传送的时候是有要求的,并不是任意的,就这一帧数据当中每一位和每一位之间的时间,传送完这一位在传输下一位,时间是有要求的按照波特率来传,一秒钟传输4800,每一位之间的时间间隔就是四千八百分之一秒,时间是必须要一致的,收发双方才能够识别到。

除了传输的波特率之外还要有软件层的协议,协议实际上已经是一个帧格式的协议,在做串行通讯的时候需要设两个协议,一个是帧格式的协议,也就是波特率是多少,需要做具体通信的时候,还需要做软件层、应用层的协议,一个主机多个从机的时候,数据到底代表什么含义,是应用层的软件协议,要有所区分,想做通信要首先规定好这一帧数据怎么传,接下来有了能够传出这一帧一帧的数据之后,由这些帧数据可以打成一个数据包,构成一个软件层的应用协议来具体约定,比如第一个代表地址,第二个代表命令或者数据,有一个软件层的约定协议,但是协议是建立在帧的协议的基础上,实际上硬件的威廉希尔官方网站 是非常简单的芯片,只需要几个简单的电容就可以完成TTL电平转换成232电平,借助电平转换芯片,可以把信号转成232电平,通过线连接到计算机一端,因为计算机本身就是在232的接口。

单片机

单片机和计算机之间的232接口进行通信的时候,笔记本电脑没有232接口,单片机端可以有转成USB信号,转成USB信号之后再和它进行通信,比如说有专门的USB转换器件,经常用单片机用串行口来下载程序的时候,就会用一个USB的下载器,电平转换芯片,它可以把的USB的信号转成的异步串口通讯信号从而来做通信,才能够把用计算机的USB口把程序通过单片机的串口下到单片机里面去,USB转uart的接口芯片,或者是USB转USB的接口芯片。

单片机和单片机之间要想做稍微距离远点的东西,比如说做到十米的左右的距离通信,TTL电平大概只能做到一米左右,电平就衰减的差不多了,要想做十几米的通信可以借助于232,增加一个232电平转换器件,单片机转成232,再转成单片机的异步串口通信,两个单片机就可以借助于232来进行通信了,距离就可以做到15米,但是具体的软件编程还是单片机的串行口的编程,只不过硬件层用了一个电平转换芯片,把TTL电平或者怎么电平转成了232电平,因为电平-3V到-15V,3V到15V之间来表示。

在工业上用的时候,经常传输距离要达几公里,可以借助于485,要想实现485的东西可以用单片机这边用一个电平转换芯片,另一边无论是计算机还是单片机,它也没有接口,可以用过485芯片,就可以通过单片机转成485信号,然后两个485之间做连接,也可以用485再转成的TCL,或者是485转成232就可以了,单片机是有232接口或者是USB可以转成485信号,然后它俩之间就可以借助硬件层来做通信,但是对于软件编程实际上最终使用了单片机这一端,还是使用了单片机的串行通信,所以无论是使用的232还是使用了485,实际上都是使用单片机的内部的串行口,只不过的硬件要借助电平转换芯片,把它的电气特性转换成485的电气特性,或者是232的电气特性。

单片机

软件层实际上都是异步串口通信,都是用到单片机的串行口,单片机的串口是异步串口通信的通信的制式,主要有单工、全双工和半双工,485就是半双工,想用查分来做全双工传输就可以用422芯片,它是全双工的通信,刚才提到的232通信实际上只能实现短距离的通信,也就是15米以内的通信,要实现一个主机对多个从机的通讯,232是没办法解决的,可以借助485,因为它是一种总线型的网络,可以实现多层的通信,很多设备都是配备485的接口,但是无论是哪种接口,最终使用单片机这边都是使用它的内部的异步串口通信接口。

对单片机感兴趣的可以查看往期分享内容,希望能帮助大家在学习单片机的路上少走一些弯路,想要入门单片机可以持续关注创为单片机编程,,回复“带我学习”查看更多内容分享。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分