单片机串口通信技术

串口通信

随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。

通信有并行通信和串行通信两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。

并行通信通常是将数据字节的各位用多条数据线同时进行传送 ,如下图:

并行通信的特点:

并行通信控制简单、传输速度快;

由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。

串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送,如下图:

串行通信的特点:

传输线少,长距离传送时成本低;

且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。

异步通信与同步通信:

1、异步通信

异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。

异步通信的数据格式 :

异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。

2、同步通信

同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。

二、串行通信的传输方向

1、单工

单工是指数据传输仅能沿一个方向,不能实现反向传输。

2、半双工

半双工是指数据传输可以沿两个方向,但需要分时进行。

3、全双工

全双工是指数据可以同时进行双向传输。

串行通信的错误校验 :

1、奇偶校验

在发送数据时,数据位尾随的1位为奇偶校验位(1或0)。奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。

2、代码和校验

代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。

3、循环冗余校验

这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用于同步通信中。

传输速率 :

1、传输速率

比特率是每秒钟传输二进制代码的位数,单位是:位/秒(bps)。如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为:

10位×240个/秒 = 2400 bps

串行通信接口标准

一、RS-232C接口

RS-232C是EIA(美国电子工业协会)1969年修订RS-232C标准。RS-232C定义了数据终端设备(DTE)与数据通信设备(DCE)之间的物理接口标准。

1、机械特性

RS-232C接口规定使用25针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义。

参考文章:

http://www.cnblogs.com/menlsh/archive/2013/01/28/2880580.html

单片机串口通信技术

时间: 2024-10-12 16:20:50

单片机串口通信技术的相关文章

51单片机串口通信

一.原理简介 51 单片机内部有一个全双工串行接口.什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行:既可接收又可发送,但不能同时进行的称为半双工:能同时接收和发送的串行口称为全双工串行口.串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信.其缺点是传输速度较低. 与之前一样,首先我们来了解单片机串口相关的寄存器. SBUF 寄存器:它是两个在物理上独立的接收.发送缓冲器,可同时发送.接收数据,可通过指令对SBUF 的读写

VS win32命令控制台程序与单片机串口数据传输

最近有个小的训练 大致是需要用摄像头检测圆,然后把圆的xy坐标发送给单片机. 但是网上大部分都是基于MFC串口控件的例程.大海捞针找到了个win32命令控制台的串口例程 ,自己改了一下贡献出来. 直接调用API实现串口通信 两个例程 如果编译运行有问题 直接复制源文件到新win32命令工程中运行 平台-VS2013-win32 例程1:摄像头识别小圆,然后通过串口输出小圆的xy坐标.单片机可以直接接受,具体串口配置自己配置.摄像头需要 opencv的库,我的库是opencv2.4.12. 例程2

关于单片机串口通信的问题

最近在调板子的时候又遇到了单片机MCU检测不到的问题,之前百度了一堆驱动问题,已经可以正常烧写程序,但是昨天又写不了了,连单片机都检测不到,将驱动器的RxD与TxD短接,使用串口助手自己给自己发送数字,是可以接收到的,证明仿真器没有问题,交换驱动器与单片机的RxD与TxD,从顺接改为交叉连接,还是不行.后来在一哥们的指导下解决了该问题.然后发 现一个小小的串口通信其实门道很多,特别是对于对单片机不熟悉的初级选手是个不小的挑战,所以今天跟小伙伴们聊聊我的感受. 我的问题概而论之就是对于CH340驱

51单片机串口通信时的定时器设置的相关问题

51单片机在串口通信时需要有一个定时器去调节与计算机通信的波特率,而定时器设置时需要中断寄存器(IE), 定时器控制寄存器(TCON) ,还有T/C控制寄存器共同配合作用, 但在启动定时器功能时,这三个寄存器的配置顺序十分重要,因为在数据传输时的高速情况下,一点点的数据误差就会导致传输的数据出现错误.而在51单片机的串口通信时必须将配置TCON放在配置这三个寄存器的最后,因为在TCON中含有启动定时器的TR1和TR0位,若先启动后对工作方式和溢出率进行配置,就会导致启动时定时器根本无法像预先设定

单片机串口通讯RXD与TXD如何对接详解

http://blog.csdn.net/sdwuyulunbi/article/details/6632382 相信很多人都对单片机与计算机或者芯片通信时,RXD与TXD如何连接比较困惑.因为在一些电路图中,有的是直连接法,有的是交叉接法,让人有点摸不着头脑. 首先需要明白两个概念,就是DTE和DCE.DTE是指数据终端设备,典型的DTE就是计算机和单片机.DCE是指数据通信设备,典型的DCE就是MODEM.RS232串口标准中的RXD和TXD都是站在DTE立场上的,而不是DCE.明白了这一点

【已解决】单片机串口通讯中RXD与TXD如何连线?

首先我们需要明白两个概念,就是DTE和DCE.DTE是指数据终端设备,典型的DTE就是计算机和单片机.DCE是指数据通信设备,典型的DCE就是 MODEM. RS232串口标准中的RXD和TXD都是站在DTE立场上的,而不是DCE.明白了这一点,再讲下面的接线方法,就很好理解了. 单片机与计算机进行串口通信时,单片机的RXD接计算机的TXD,单片机的TXD接计算机的RXD. (1)使用串口直通线.设计电路时,单片机的RXD连接电路板DB9的TXD,单片机的TXD连接电路板DB9的RXD,具体实现

深入理解51单片机串口通信

串口通信的基本认识 通信分为并行通信和串行通信,并行通信时的数据各个位同时传送,可以实现字节为单位通信,但通信线多占用资源,成本高.以前用到的的P1=0x55,一次给P1口的8个管脚分别赋值,同时进行信号输出,类似于8个车道可以过去8辆车,这样的形式是并行的,一般称P0,P1,P2,P3为51单片机的4组并行总线. 串行通信,就是一个车道,一个只能通过一辆车,如果一个0x55这样一个字节的数据要传输过去的话,假如低位在前,高位在后的话,那发送方式是:0-1-0-1-0-1-0-1,一位一位的进行

STC12C5A60S2单片机 串口调试

与串口1中断相关的寄存器有IE.IPH和IP 串口中断允许位ES位于中断允许寄存器IE中. EA:CPU的总中断允许控制位,EA=1,CPU开总中断:EA=0,CPU关总中断.各中断源首先受EA控制,其次还受各中断源自己的中断允许控制位控制. 与串口2中断相关的寄存器IE2.IP2H和IP2 串口2中断允许为ES2位于中断寄存器IE2中. 1 #ifndef _UART_H_ 2 #define _UART_H_ 3 4 #define uchar unsigned char 5 #define

8051单片机串口波特率计算方式

STC12C5A60S2单片机兼容80C51单片机,其串口波特率可以由定时器产生,也可以由独立波特率发生器产生.其波特率模式可以是固定的,也可以是可变的. 固定波特率:当 模式0的通信速度设置 位UART_M0x6/AUXR.5 = 0时,其波特率 = SYSclk/12 当 模式0的通信速度设置 位UART_M0x6/AUXR.5 = 1时,其波特率 = SYSclk/2 可变波特率:使用串行通信模式2,即可自定义串口通信波特率,其计算公式为:波特率 = 2^SMODE /64×( SYScl