历史上的今天
今天是:2025年03月29日(星期六)
2020年03月29日 | 单片机小白学习之路(二十一)---单片机串口通信理解(一)
2020-03-29 来源:eefocus
目标: 单片机串口通信理解(一)
1.通信的基本概念
通信的方式可以分为多种,按照数据传送方式可分为串行通信和并行通信。按照通信的数据同步方式,可分为异步通信和同步通信。按照数据的传输方向又可分为单工、半双工和全双工通信。在这个单片机上起的作用是单片机与上面模块的通信和单片机之间的通信
1.1串行通信与并行通信
(1)串行通信
串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。
特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂,速度慢
(2)并行通信
并行通信通常是将数据字节的各位用多条数据线同时进行传送,通常是8位、16位、32位等数据一起一块一块的传输。
特点:控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难,抗干扰能力差。
1.2异步通信与同步通信
(1)异步通信
异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双
方的收发协调,要求发送和接收设备的时钟尽可能一致。
异步通信是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间
间隔可以是任意的。当然,接收端必须时刻做好接收的准备。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。
特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。
(2)同步通信
同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收方的同步可以通过两种方法实现。
1.3单工、半双工与全双工通信
(1)单工通信
单工是指数据传输仅能沿一个方向,不能实现反向传输。
(2)半双工通信(RS485)
半双工是指数据传输可以沿两个方向,但需要分时进行。
(3)全双工通信(RS232)
全双工是指数据可以同时进行双向传输。
1.4通信速率
衡量通信性能的一个非常重要的参数就是通信速率,通常以比特率(Bitrate)来示。比特率是每秒钟传输二进制代码的位数,单位是:位/秒(bps)。
如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为:
10位×240个/秒 = 2400 bps
比特率(不是波特率):定时器,或者说是计数器。使用计数器对一个较稳定的频率信号计数,比如使用11.0592M的晶振,12分频产生921600Hz的频率信号。这个921600就是51的串口的时基。
比特率
是测量每秒可传输数据比特位(1或者0)数量的单位。例如,Bitrate=1024bps是指每一秒钟传输了1024个1或者0。
波特率
表示每秒钟一个信号(从0变为1或从1变为0)或符号(连接的电压、频率或相位)在通信通道中改变状态或发生变化的次数。例如,Baudrate=1024Bdps是指该通道每秒钟最多改变状态1024次。
在上面的例子中,波特率和比特率是相同的。但由于波特率可以被理解为单位时间内传输符号的个数(传符号率),通过不同的调制方法可以在一个符号上负载多个比特信息。
所以如果该符号是二进制的话,波特率在数值上等于比特率的,但是意义还是不同,一个是符号,一个是比特。
为了提高通信速度,更高级的调制解调器会使用能在一个符号中发送多个位的调制技术。如果通道在一个波中发送4个位,那么波特状态只改变1次。因此,在这种情况下比特率等于波特率的4倍。
史海拾趣
|
希望有好心人能提供小弟一些关于USB接口下载线的电路,元件资料!本人想自己做一个~~但找不到资料!QQ:934277256 邮箱:star-night2004@163.com… 查看全部问答> |
|
1)不要贪快,俗话说得好:欲速则不达。毕竟硬件的编程和软件的编程还是有很大的不同,否则一旦出错,无从下手 2)做到一定程度,要存档,要总结。(备份) 3)要看你所开发的DSP的文档,并且要详细反复的看,这一点尤为重要。 4)多参考示例代 ...… 查看全部问答> |
|
修改注册表 把Launch50 的 explorer 换成了 myapp 为了保险,还弄了修改regedit和 挂起保存的两个按钮,想说即使不行也可以修改注册表。 开机后发现不行!!! 远程连接只能够传文件,EVC的远程注册表连不上了,(没有控制面板不能,禁用DM9000 ...… 查看全部问答> |
|
在linux下怎样应用DMA呢?是要先写驱动吗?系统目录linux/arch/arm/mach-s3c2410/dma.c下的这个文件make后直接insmod行吗?谢谢!… 查看全部问答> |
|
我使用的是义隆的编译器:WICEPLUS 程序调试窗口显示: file.s -- 0 erroe(s) 0 warning(s) file.s -- 0 erroe(s) 0 warning(s) file.s(76): AS73: Invalid register index file.s(13 ...… 查看全部问答> |
|
新手求助 在CCS中模拟平台下写了个最简单的显示图像的程序 #include #include #include #define ROW 576 #define COL 720 void main() { int i,j; unsigned char Y[576][720]; uns ...… 查看全部问答> |
|
PC端给PPC通过UDP发送字符串,ppc端接受的都是乱码。 应该是unicode转换的问题,我查了些资料,无论是在pc端,还是在ppc端转换都不好使,大虾们帮看下: pc端转换: char ansi[]=\"转换一二\"; ...… 查看全部问答> |
|
看了讲座,就在网上到处翻阅学习AM335X Sitara开发板的资料 我们来看部分电路,是StarterKit板子的背光控制模块。 他用了一块TPS61081 把电池电压升到20V供给LCD背光,而我们可以通过IO(应该是C12 Pin )来控制背光的亮灭,甚至用PWM信号来调 ...… 查看全部问答> |
|
电子信息类工程师知识体系分析信息技术发展迅速,迄今已发展出许多分支学科,电子工程师也因所掌握技能的不同被划分为不同的种类。通俗地说,电子工程师可被分为硬件和软件工程师,硬件工程师又分为模拟和数字硬件工程师,软件工程师同样有许多不同 ...… 查看全部问答> |




