单片机串口通信平台的搭建(1)
- 格式:pdf
- 大小:699.19 KB
- 文档页数:4
串口通信流程图单片机串口通信流程图
串口通信流程图窗口通信结构
串口通信是指外设和计算机间,通过数据信号线
、地线、控制线等,按位进行传输数据的一种通讯方式。
这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。
串口是计算机上一种非常通用的设备通信协议。
大多数计算机(不包括笔记本电脑)包含两个基于RS-232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。
可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。
用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。
RS-232只限于PC 串口和设备间点对点的通信。
RS-232串口通信最远距离是50英尺。
串口通信流程图
第 1 页共 1 页。
51单片机的串口通信程序(C语言) 51单片机的串口通信程序(C语言)在嵌入式系统中,串口通信是一种常见的数据传输方式,也是单片机与外部设备进行通信的重要手段之一。
本文将介绍使用C语言编写51单片机的串口通信程序。
1. 硬件准备在开始编写串口通信程序之前,需要准备好相应的硬件设备。
首先,我们需要一块51单片机开发板,内置了串口通信功能。
另外,我们还需要连接一个与单片机通信的外部设备,例如计算机或其他单片机。
2. 引入头文件在C语言中,我们需要引入相应的头文件来使用串口通信相关的函数。
在51单片机中,我们需要引入reg51.h头文件,以便使用单片机的寄存器操作相关函数。
同时,我们还需要引入头文件来定义串口通信的相关寄存器。
3. 配置串口参数在使用串口通信之前,我们需要配置串口的参数,例如波特率、数据位、停止位等。
这些参数的配置需要根据实际需要进行调整。
在51单片机中,我们可以通过写入相应的寄存器来配置串口参数。
4. 初始化串口在配置完串口参数之后,我们需要初始化串口,以便开始进行数据的发送和接收。
初始化串口的过程包括打开串口、设置中断等。
5. 数据发送在串口通信中,数据的发送通常分为两种方式:阻塞发送和非阻塞发送。
阻塞发送是指程序在发送完数据之后才会继续执行下面的代码,而非阻塞发送是指程序在发送数据的同时可以继续执行其他代码。
6. 数据接收数据的接收与数据的发送类似,同样有阻塞接收和非阻塞接收两种方式。
在接收数据时,需要不断地检测是否有数据到达,并及时进行处理。
7. 中断处理在串口通信中,中断是一种常见的处理方式。
通过使用中断,可以及时地响应串口数据的到达或者发送完成等事件,提高程序的处理效率。
8. 串口通信实例下面是一个简单的串口通信实例,用于在51单片机与计算机之间进行数据的传输。
```c#include <reg51.h>#include <stdio.h>#define BAUDRATE 9600#define FOSC 11059200void UART_init(){TMOD = 0x20; // 设置定时器1为模式2SCON = 0x50; // 设置串口为模式1,允许接收TH1 = 256 - FOSC / 12 / 32 / BAUDRATE; // 计算波特率定时器重载值TR1 = 1; // 启动定时器1EA = 1; // 允许中断ES = 1; // 允许串口中断}void UART_send_byte(unsigned char byte){SBUF = byte;while (!TI); // 等待发送完成TI = 0; // 清除发送完成标志位}unsigned char UART_receive_byte(){while (!RI); // 等待接收完成RI = 0; // 清除接收完成标志位return SBUF;}void UART_send_string(char *s){while (*s){UART_send_byte(*s);s++;}}void main(){UART_init();UART_send_string("Hello, World!"); while (1){unsigned char data = UART_receive_byte();// 对接收到的数据进行处理}}```总结:通过以上步骤,我们可以编写出简单的51单片机串口通信程序。
单片机MSP430与PC机串口通讯设计一、引言串口通信是指通过串行通信接口进行数据传输的一种通信方式。
单片机MSP430和PC机的串口通信设计可以实现二者之间的数据传输和通信交互。
本文将从串口介绍、硬件设计和软件实现等方面详细介绍该设计。
二、串口介绍串口是一种串行通信接口,常用的有RS232和RS485等。
RS232是一种使用较为广泛的串口通信协议。
RS232接口有三根线,分别为发送线Tx、接收线Rx和地线GND。
该协议规定,发送端与接收端之间的电平差为±3至±15V,其中正电平表示逻辑0,负电平表示逻辑1三、硬件设计1.MSP430硬件设计MSP430是一种低功耗的专用于嵌入式应用的16位RISC微控制器。
它具有丰富的外设资源,包括多个通用输入输出引脚(GPIO)和两个USART (UART)接口。
其中一个USART接口用于将MSP430与PC机连接。
2.PC机硬件设计PC机通过串口连接到MSP430。
首先,需要将PC机的串口RS232转换为TTL电平,即RS232转TTL电平转换器。
其次,将转换后的TTL电平通过杜邦线连接至MSP430的USART接口的Tx和Rx引脚。
四、软件实现1.MSP430软件设计(1)串口初始化:设置数据位长度、停止位、奇偶校验等。
(2)发送数据:将要发送的数据存入发送缓冲区,并使能发送中断。
(3)接收数据:开启接收中断,并将接收到的数据存入接收缓冲区。
(4)中断处理:发送中断和接收中断时,分别从发送缓冲区和接收缓冲区读取数据并发送/接收。
2.PC机软件设计(1)打开串口:设置串口参数,如波特率、数据位长度等。
(2)发送数据:向串口发送数据,可以通过打开的串口进行写入。
(3)接收数据:使用轮询或中断方式读取串口接收到的数据。
五、总结与展望本文详细介绍了单片机MSP430与PC机串口通信设计,主要包括了串口介绍、硬件设计和软件实现。
通过串口通信,MSP430和PC机可以实现数据传输和通信交互,从而满足各种嵌入式应用的需求。
51单片机串口通信实例一、原理简介51 单片机内部有一个全双工串行接口。
什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。
串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。
其缺点是传输速度较低。
与之前一样,首先我们来了解单片机串口相关的寄存器。
SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。
从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1),同时发送、接收数据,实现全双工。
串行口控制寄存器SCON(见表1) 。
表1 SCON寄存器表中各位(从左至右为从高位到低位)含义如下。
SM0 和SM1 :串行口工作方式控制位,其定义如表2 所示。
经验分享:学习单片机重要的是实践,所以开发板是很重要,给大家推荐些淘宝上信誉良好并且软硬件及小零件等、售前售后服务良好的皇冠级金钻店铺给大家,在硬件购买上少走弯路。
按住Ctrl键单击即可:慧净电子单片机(一皇冠)【天津商盟】天津锐志(电子)单片机经营部(两皇冠)金沙滩工作室(5钻)深圳育松电子元件,模块,传感器,批发部:淘宝最全最平价(5皇冠)志宏电子(4钻)表2 串行口工作方式控制位其中,fOSC 为单片机的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。
SM2 :多机通信控制位。
该仅用于方式2 和方式3 的多机通信。
其中发送机SM2 = 1(需要程序控制设置)。
接收机的串行口工作于方式2 或3,SM2=1 时,只有当接收到第9 位数据(RB8)为1 时,才把接收到的前8 位数据送入SBUF,且置位RI 发出中断申请引发串行接收中断,否则会将接受到的数据放弃。
当SM2=0 时,就不管第位数据是0 还是1,都将数据送入SBUF,并置位RI 发出中断申请。
单片机串口通信设计方案1.绪论1.1课题背景及意义目前,单片机的发展速度大约每两、三年要更新一代,集成度增加一倍,功能翻一番。
其发展速度之快、应用范围之广已达到了惊人的地步,它已渗透到生产和生活的各个领域,应用非常广泛。
在汽车、通信、智能仪表、家用电器和军事设备的智能化以及实时过程控制等方面,单片机都扮演着非常重要的角色[1]。
因此单片机的设计开发具有广阔的前景。
所以,对于电气类学生而言,学习一种单片机的开发是十分必要的。
而51系列的单片机,随着半导体技术的发展,其处理速度更快,性能更优越,在工业控制领域上占据十分重要的地位,通过对51系列单片机的学习而掌握单片机开发的过程是一种不错的选择。
然而单片机是一门综合性、实践性都很强的学科,其学习涉及的实验环节比较多,硬件设备投入比较大,对于大多数人而言很难投入大笔资金去购买实验器件。
而且要进行硬件电路测试和调试,必须在电路板制作完成、元器件焊接完毕之后进行,但这些工作费时费力。
因此引入EDA软件仿真系统建立虚拟实验平台,不仅可以大大提高单片机的学习效率,而且大大减少硬件设备的资金投入,同时降低对硬件设备的维护工作。
EDA设计思路是:从元器件的选取到连接、直至电路的调试、分析和软件的编译,都是在计算机中完成,所用的工作都是虚拟的。
虽然现在的电路设计软件已经很多,诸如PROTEL、ORCAD、EWB 、Multisim等,不过这些软件之间的差别都不大:都有原理图和PCB制作功能,都能进行诸如频率响应,噪音分析等电路分析,主要用于模拟电路、数字电路、模数混合电路的性能仿真与分析,但对于单片机设计及软件编程,最重要的是两者的联调,这些软件都无法实现,所以造成了单片机系统设计周期长、设计费用高等缺点[2]。
新款的EDA软件Proteus解决了上述软件的不足,成为目前最好的一款单片机学习仿真软件。
Proteus 软件是由英国Lab Center Electronics 公司开发的EDA 工具软件。
51单片机串口通信(相关例程) 51单片机串口通信(相关例程)一、简介51单片机是一种常用的微控制器,它具有体积小、功耗低、易于编程等特点,被广泛应用于各种电子设备和嵌入式系统中。
串口通信是51单片机的常见应用之一,通过串口通信,可以使单片机与其他外部设备进行数据交互和通信。
本文将介绍51单片机串口通信的相关例程,并提供一些实用的编程代码。
二、串口通信基础知识1. 串口通信原理串口通信是通过串行数据传输的方式,在数据传输过程中,将信息分为一个个字节进行传输。
在51单片机中,常用的串口通信标准包括RS232、RS485等。
其中,RS232是一种常用的串口标准,具有常见的DB-9或DB-25连接器。
2. 串口通信参数在进行串口通信时,需要设置一些参数,如波特率、数据位、停止位和校验位等。
波特率表示在单位时间内传输的比特数,常见的波特率有9600、115200等。
数据位表示每个数据字节中的位数,一般为8位。
停止位表示停止数据传输的时间,常用的停止位有1位和2位。
校验位用于数据传输的错误检测和纠正。
三、串口通信例程介绍下面是几个常见的51单片机串口通信的例程,提供给读者参考和学习:1. 串口发送数据```C#include <reg51.h>void UART_Init(){TMOD = 0x20; // 设置计数器1为工作方式2(8位自动重装) TH1 = 0xFD; // 设置波特率为9600SCON = 0x50; // 设置串口工作方式1,允许串行接收TR1 = 1; // 启动计数器1}void UART_SendChar(unsigned char dat){SBUF = dat; // 发送数据while (!TI); // 等待发送完成TI = 0; // 清除发送完成标志}void main(){UART_Init(); // 初始化串口while (1){UART_SendChar('A'); // 发送字母A}}```2. 串口接收数据```C#include <reg51.h>void UART_Init(){TMOD = 0x20; // 设置计数器1为工作方式2(8位自动重装) TH1 = 0xFD; // 设置波特率为9600SCON = 0x50; // 设置串口工作方式1,允许串行接收TR1 = 1; // 启动计数器1}void UART_Recv(){unsigned char dat;if (RI) // 检测是否接收到数据{dat = SBUF; // 读取接收到的数据 RI = 0; // 清除接收中断标志// 处理接收到的数据}}void main(){UART_Init(); // 初始化串口EA = 1; // 允许中断ES = 1; // 允许串口中断while (1)// 主循环处理其他任务}}```3. 串口发送字符串```C#include <reg51.h>void UART_Init(){TMOD = 0x20; // 设置计数器1为工作方式2(8位自动重装) TH1 = 0xFD; // 设置波特率为9600SCON = 0x50; // 设置串口工作方式1,允许串行接收TR1 = 1; // 启动计数器1}void UART_SendString(unsigned char *str){while (*str != '\0')SBUF = *str; // 逐个发送字符while (!TI); // 等待发送完成TI = 0; // 清除发送完成标志str++; // 指针指向下一个字符}}void main(){UART_Init(); // 初始化串口while (1){UART_SendString("Hello, World!"); // 发送字符串}}```四、总结本文介绍了51单片机串口通信的基础知识和相关编程例程,包括串口发送数据、串口接收数据和串口发送字符串。
单片机指令的串口通信实现方法串口通信是指通过串行通信接口实现的数据传输方式。
在单片机系统中,串口通信是一种重要的通信方式,可以实现与外部设备(如PC 机、传感器等)的数据交互。
本文将介绍单片机指令的串口通信实现方法,包括硬件连接和软件编程两方面。
一、硬件连接串口通信需要通过发送器和接收器两个设备来完成数据的发送和接收。
在单片机系统中,可使用通用异步收发器(UART)作为串行通信接口。
下面是串口通信的硬件连接步骤:1. 将单片机与UART连接:首先,确保单片机具有UART接口,并根据其引脚定义将UART的发送线(TXD)连接到单片机的接收引脚,接收线(RXD)连接到单片机的发送引脚。
2. 选择波特率:波特率指每秒钟传送的位数,通常使用的波特率有9600、115200等。
在发送和接收数据时,单片机和外部设备需要使用相同的波特率,以保证数据的正确传输。
3. 连接外部设备:根据实际需求,将UART的发送线和接收线分别连接到外部设备的接收引脚和发送引脚。
二、软件编程实现单片机指令的串口通信需要编写相应的软件程序。
下面是基于C语言的软件编程实现方法:1. 初始化串口:在程序开始时,需要对串口进行初始化设置。
通过设置寄存器来配置波特率、数据位、停止位等参数。
2. 发送数据:使用发送指令将待发送的数据写入UART的数据寄存器,等待数据传输完成。
3. 接收数据:通过接收指令读取UART接收到的数据,并进行相应的处理。
可以使用中断或轮询方式进行数据接收。
4. 错误处理:在数据传输过程中,可能会出现错误,例如帧错误、奇偶校验错误等。
需要进行相应的错误处理操作,例如重新发送数据或发出错误提示。
5. 通信协议:根据通信需求,可以制定相应的通信协议。
通信协议包括数据帧结构、数据格式、数据校验等内容,用于确保数据的可靠传输。
三、实例演示下面通过一个简单的示例来演示单片机指令的串口通信实现方法。
假设我们需要实现从单片机向PC机发送一条消息,并接收PC机返回的确认信息。
51 单片机串口多机通信的实现和编程
一、51 单片机的主从模式,首先要设定工作方式3:(主从模式+波特率可变)
SCON 串口功能寄存器:SM0=1;SM1=1(工作方式3)
注:主机和从机都要为工作方式3。
【工作方式2 (SM0 SM1 :1 0):串行口为11 位异步通信接口。
发送或接收
一帧信息包括1 位起始位0、8 位数据位、1 位可编程位、1 位停止位1。
发
送数据:发送前,先根据通信协议由软件设置TB8 为奇偶校验位或数据标识位,然后将要发送的数据写入SBUF,即能启动发送器。
发送过程是由执行任何一条以SBUF 为目的寄存器的指令而启动的,把8 位数据装入SBUF,
同时还把TB8 装到发送移位寄存器的第9 位上,然后从TXD(P3.1)端口输出
一帧数据。
接收数据:先置REN=1,使串行口为允许接收状态,同时还要将RI 清0。
然后再根据SM2 的状态和所接收到的RB8 的状态决定此串行口在
信息到来后是否置R1=1,并申请中断,通知CPU 接收数据。
当SM2=0 时,
不管RB8 为0 还是为1,都置RI=1,此串行口将接收发送来的信息。
当
SM2=1 时,且RB8=1,表示在多机通信情况下,接收的信息为地址帧, 此时
置RI=1,串行口将接收发来的地址。
当SM2=1 时,且RB8=0,表示在多机通
信情况下,接收的信息为数据帧, 但不是发给本从机的,此时RI 不置为1,。
单片机与node mcu串口通信的接线方法(一)单片机与NodeMCU串口通信的接线方法介绍在项目开发中,单片机与NodeMCU之间的串口通信是常见的需求。
本文将详细介绍多种串口通信接线方法,包括硬件和软件方面的配置。
硬件接线方法直接连接1.将单片机的TX引脚连接到NodeMCU的RX引脚上。
2.将单片机的RX引脚连接到NodeMCU的TX引脚上。
3.确保单片机和NodeMCU共用一个地线。
使用转接模块1.使用一个串口转接模块,如MAX3232、CP2102等。
2.将单片机的TX引脚连接到转接模块的RX引脚上。
3.将单片机的RX引脚连接到转接模块的TX引脚上。
4.将转接模块的VCC引脚连接到单片机的电源引脚或NodeMCU的5V引脚上。
5.将转接模块的GND引脚连接到单片机的地线或NodeMCU的地线上。
使用逻辑电平转换器1.使用一个逻辑电平转换器模块,如CD4050、74HC4050等。
2.将单片机的TX引脚连接到逻辑电平转换器的输入引脚上。
3.将逻辑电平转换器的输出引脚连接到NodeMCU的RX引脚上。
4.将逻辑电平转换器的VCC引脚连接到单片机的电源引脚或NodeMCU的5V引脚上。
5.将逻辑电平转换器的GND引脚连接到单片机的地线或NodeMCU的地线上。
软件配置方法单片机编程1.在单片机的程序中设置串口通信相关的参数,如波特率、数据位、校验位等。
2.初始化串口,并确保单片机的接收和发送功能都已开启。
3.在主程序中编写发送和接收数据的代码。
NodeMCU编程1.在NodeMCU的程序中引入Serial库。
2.初始化串口,并设置相关的参数,如波特率、数据位、校验位等。
3.在主程序中编写发送和接收数据的代码,使用Serial库提供的函数进行串口通信。
总结本文介绍了单片机与NodeMCU之间串口通信的多种接线方法,包括直接连接、使用转接模块和使用逻辑电平转换器。
同时,也提到了软件配置方面的方法,包括单片机和NodeMCU的编程配置。
单片机串口应用实验报告(一)单片机串口应用实验报告引言•介绍单片机串口应用实验的背景和意义•提出实验的目的和重要性实验原理•串口的工作原理和基本概念•单片机与串口通信的原理和方法实验步骤1.准备实验所需材料和工具2.配置单片机与串口的连接3.编写单片机程序,完成串口通信的初始化设置4.设计并实现发送和接收数据的功能5.调试程序,验证通信是否正常实验结果与分析•描述实验过程中的观察和测量结果•对实验结果进行分析和解释实验总结•总结实验的目标、方法和结果•分析实验中可能存在的问题和改进的空间•强调实验对于学习和应用单片机串口的重要性参考资料•列出参考过的相关教材、论文或网络资源以上是关于“单片机串口应用实验报告”的相关文章,希望对您有所帮助。
抱歉,以上是一份简要的实验报告的大纲,以下是对每个部分的详细描述:引言在引言部分,可以简要介绍单片机串口应用实验的背景和意义。
可以提到单片机串口通信在电子产品中的广泛应用,以及为什么学习和掌握串口通信对于创作者和工程师来说非常重要。
实验原理在实验原理部分,可以详细介绍串口的工作原理和基本概念。
可以解释串口是如何通过串行传输数据的,以及常见的串口通信协议。
还可以介绍单片机与串口通信的原理和方法,包括如何将单片机与电脑或其他设备连接进行通信。
实验步骤在实验步骤部分,可以按照以下方式列出实验步骤: 1. 准备实验所需材料和工具:列出实验所需的单片机模块、串口模块、电脑等设备。
2. 配置单片机与串口的连接:描述如何将单片机与串口模块连接起来。
3. 编写单片机程序:详细介绍如何编写单片机程序,并完成串口通信的初始化设置,包括波特率、数据位、校验位等。
4. 设计并实现发送和接收数据的功能:介绍如何设计程序使单片机能够发送和接收数据,可以包括简单的数据收发、数据加工处理等。
5. 调试程序:描述如何进行程序调试,验证通信是否正常,可以介绍使用示波器、串口调试助手等工具。
第8卷第4期 防 灾 科 技 学 院 学 报 V ol.8 No.42006年12月 J.of Institute of Disaster-Prevention Science and Technology Dec. 2006作者介绍:黎珠博(1968-)男,助理工程师,主要从事地震监测工作。
收稿日期:2006-3-12单片机串口通信平台的搭建黎珠博1 罗玉芬1 张宏艳2(1 广东省地震局,广东广州市 510070;2 北京市地震局,北京市 100080)摘 要:文章介绍了串口通信的基本概念、基本原理、RS-232C 标准、地震数据采集器与MCS-51单片机的通信连接,同时介绍了串口通信在地震数据传输中的实际应用。
关键词:串口;通信;地震数据传输中图分类号:P315,69 文献标识码:A 文章编号:1673-8047(2006) 04-0074-04 Building the flat roof that the serial port communication of the SinglechipLi Zhubo 1 Luo Yufen 1 Zhang Hongyan 2(1 The province earthquake bureau of Guangdong, Guangzhou City, Guangdong 510070;2 The earthquake bureau of Peking City, Peking City 100080)Abstract:Serial port communication is widely used in the singlechip systems.It is the channels of the data and the instruction.In this paper,it is introduced the basic theory that the serial port communication,the mode of the connection,the popular reality method between the computer and the singlechip.It ’s also simply introduced practicality used of the serial port in the earthquake single transmission. Keywords: Serial port;Communication;Building;RS-232C前言在各种单片机应用系统的设计中,如智能仪器仪表、智能控制器、数据传输等,都会遇到怎么样与PC 机或数据采集器进行通信的问题。
在数据量不大、传输速率要求不高的情况下,一般都采用串行通信方式,即通过与PC 机或数据采集器的RS-232C 标准串行接口相连接,来实现应用系统与PC 机或数据采集器之间的数据交换与传输。
1 串口通信的几个概念1.1 单工、半双工和全双工通信[1,2]在串行通信中,数据通常是在两个站之间传送,按照数据的方向可分为3种基本的传送方式:单工、半双工和全双工,3种传输方式的示意图如图1所示。
1)单工单工通信使用一根导线,信号的传送方和接收方有明确的方向性。
也就是说,通信只在一个方向上进行。
打印机、电视机就是典型的日常单工设备。
2)半双工若使用同一根传输线既作为接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式称为半双工。
采用半双工方式时,通信系统每一端的发送器和接收器,通过收发开关分时转接到通信线上,进行方向的切换。
3)全双工当数据的发送和接收,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工。
在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传输。
全双工方式无需进行方向的切换。
第4期 黎珠博等:单片机串口通信平台的搭建 · 75 ·图1 单工、半双工和全双工通信1.2 同步通信和异步通信串行通信可分为两种类型,一种是同步通信,另一种是异步通信。
采用同步通信时,将许多字符组成一个组,这样,字符可以一个接一个地传输,但是,在每组信息的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有空隙。
采用异步通信时,两个字符之间的传输间隔是任意的,所以,每个字符的前后都要用一些数位来作为分隔位。
比较起来,在传输率相同时,同步通信方式下的信息有效率要比异步方式下的高,因为同步方式下的非数据信息比例比较小。
但是,从另一方面看,同步方式下,要求进行信息传输的双方必须用同一个时钟进行协调,正是这个时钟确定了同步串行传输过程中每1位的位置。
这样一来,如采用同步方式,那么,在传输数据的同时,还必须传输时钟信号。
而在异步方式下,接收方的时钟频率和发送方的时钟频率不必完全一样,而只要比较相近,即不超过一定的允许范围就行了。
在数据传输中,较为广泛采用异步通信,异步通信时的标准数据格式如下:从所列格式可以看出,异步通信的特点是一个字符一个字符传输,并且传送一个字符总是以起始比特开始,以停止位结束,字符之间没有固定的时间间隔要求。
每一次有一个起始位,过了就是5~8个的数据位,接着为校验位,可为奇检验,也可为偶校验,也可不设置,最后是1比特,或1比特半,或二比特的停止比特位,停止比特后面是不定长度的空闲比特。
停止比特和空闲比特都规定为高电平,这样就保证起始比特开始处一定有一个下降沿,从而标识数据开始传送。
1.3 波特率计算机通信速度的单位称为波特率,波特率是指单位时间内传送的信息量,信息量单位为bit,时间单位为秒,即:1波特=1位/秒=1bit/s=1bps。
例如:如果在异步通信中使用1位起始位、8位数据位、无奇偶校验位、1位停止位,则一帧的长度为10bit,如果应用中要求在1s内传送1 000个字符,则需要将波特率设为:10位/字符*1000字符/秒=10 000bit/s=10 000bps。
在异步通信中,接收方和发送方应使用相同的波特率,才能成功传送数据。
2 RS-232C标准[1,2]串行通信中,只有通信双方采用相同的接口标准,才能进行正常的通信。
由于不同设备串行接口的信号线定义、电气规格等特性都不尽相同,因此要使这些设备能够相互连接,需要一个统一的串行通信接口RS-232(又称EIA-RS-323C),是目前较为常用的一种串行通信接口,RS-232C标准的全称是EIA-RS-323C标准,其中EIA代表美国电子工业协会,RS代表推荐标准,232是标识号,C代表RS-232的最新一次的修改。
该标准对串行通信的连接电缆和机械、电气特性、信号功能以及传送过程都进行了明确的规定,适合于数据传输速率在0~20· 76 · 防灾科技学院学报 第8卷000bit/s 范围内的通信。
RS-232C 串行通信接口是目前最常用的一种串行接口。
3 地震数据采集器与MCS-51单片机的串行通信[3]3.1 通信线路的连接所有的通信都是在一定的硬件平台的基础上进行的,单片机与地震数据采集器之间的串行通信的平台主要由3部分组成:地震数据采集器串行口、单片机串行口、电平转换模块。
地震数据采集器串行口通过串口线与单片机的串口相连,通过单片机内部特定程序的驱动和控制,可实现单片机和地震数据采集器的串行通信和数据转发。
如果需要传输更远的距离,可外加MODEM 或网络模块等设备,实现地震数据采集器的数据在私有或公共网络上传输至远端数据中心。
最简单系统连接如图3。
图3 地震数据采集器与单片机的连接3.2地震数据传输链路系统图图3 地震数据传输链路系统地震信号经地震计的拾取由数据采集器内CPU 的控制下完成数据的放大,A/D 转换,存储,通过串口将数据送到单片机,再经过串口或网口等多种连接形式上传至数据中心。
而数据中心所发出的对数采控制通信的过程正好是一个逆过程。
数据中心的计算机发出的各种指令经传输部分的传送转换,最后由单版机将网口或串口信号转换为串口信号,通过串口线进入数采内部的CPU 完成中断处理,查看调取各种参数,实现控制,完成上下位机的握手及信息交换。
3.3 编程实现方法[4]在图3.2的控制中,上位机采用VB 或VC 等软件编写串行通信程序,可以使用两种方法:一种是调用Windows 的API 函数,另一种是使用自带的通信控件MsComm 来完成。
目前广泛采用的是用通信控件来完成。
MsComm 具有很多的属性,包括串口的定义(COM1、COM2),波特率的定义,缓冲区的大小定义等等,该控件可设置串行通信的数据发送和接收,对串口状态和串口通信的信息格式和协议进行设置。
在发送和接收数据过程中触发OnComm 事件,通过编程访问CommEvent 属性了解通信事件的类型,分别进行各自的处理。
对单片机通信的过程主要是:打开串口,读取串口状态,设置串口状态,设置通信缓冲区,读/写串口,关闭串口。
待数据收集后,就可进行实时显示或图形处理或判断处理回送单片机进行现场控制。
结束语随着计算机技术、网络技术、微电子芯片技术的不断发展,串口通信在仪器的控制、数据的传输第4期 黎珠博:单片机串口通信平台的搭建· 77 ·方面广泛应用,普遍的做法是将分布式串口设备或其它各种用户的智能系统通过串口外接转接设备接入到专网或INTERNET。
很多单板机内建了TCP/IP网络协议,采取嵌入式设计,体积小巧,方便地实现串口与以太网互连。
但基于串口的基本原理、连接方式、协议没有改变,仍然充当着重要的传输咽喉通道的角色,它在地震数据的传输通信上应用广泛。
参考文献[1] 龚建伟.Visual c++/Turboc串口通信编程实践[M].北京: 北京电子工业出版社,2004[2] 吴微.单片机原理及制作[M].湖北:武汉大学出版社,1991[3] 李华.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社, 1993[4] 李朝青.单片机原理及接口技术(简明修订版)[M]. 北京:北京航空航天大学出版社, 1999[5] 张毅刚.MCS-51单片机应用设计[M].黑龙江:哈尔滨工业大学出版社, 1997(上接第43页)3 异常特征分析以上4次地震(见表1)铁岭台形变仪曲线均在1~3个月内出现异常,其异常特征如下表所示:1)水管仪、垂直摆一般在异常初始阶段,曲线一般转折N倾,而进入短临阶段(10~30天),则趋势变缓,临震(几天以内)反倾,之后发震。