任务1-3 熟悉串口通信_第1页
任务1-3 熟悉串口通信_第2页
任务1-3 熟悉串口通信_第3页
任务1-3 熟悉串口通信_第4页
任务1-3 熟悉串口通信_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务1-3熟悉串口通信

本节学习要点行业背景无锡地铁SCADA系统中RS232,RS422及RS485等串口通信技术的应用相关知识1.数据通信的传输方式2.数据通信的传输方向3.串口通信4.在Windows操作系统上查看串口参数5.串口通信过程任务实施1.计算机发送数据给微控制器2.微控制器发送数据给计算机3.用串口监视器观察数字信号4.用串口监视器观察模拟信号5.用串口通信数据直接控制微控制器上LED灯思考与练习行业背景在轨道交通电力监控系统中,变电所综合自动化(SCADA)系统是整个系统的核心部分。变电所综合自动化系统采用集中管理、分散布置的模式,分层、分布式系统结构。系统由站级管理层、网络通信层、间隔设备层组成。系统以供电设备为对象,通过网络将所内的35kV开关柜、1500V开关柜、0.4kV开关柜、有源滤波装置、整流变压器、整流器、动力变压器、交直流屏、单向导通装置、排流柜、钢轨电位限制装置配置的综合测控保护装置、智能采集装置等间隔层设备连接起来。如图1-3-1所示是无锡地铁SCADA系统结构图,从图中可以看到除了以太网(Ethernet)通信之外,还有大量RS232,RS422及RS485等串口通信技术的应用。图1-3-1无锡地铁SCADA系统结构图相关知识计算机通信网络是城市轨道交通系统的中枢。通信网络、现场总线和以太网是城市轨道交通电力监控系统的基础。在城市轨道交通电力监控系统中,除了计算机与计算机之间、计算机与外设之间的通信之外,大部分的实时数据来自现场的控制设备和检测传感器。这些设备的各功能单元之间、设备与设备之间以及这些设备与计算机之间遵照一定的通信协议,利用数据传输技术传递信息,这就是城市轨道交通电力监控系统中的数据通信。数据通信的实质和任务,就是把计算机技术和通信技术相结合,并应用于电力监控系统领域中,通过智能化的现场设备把工业数据安全准确地传送到上层的网络中,从而为城市轨道交通调度指挥和决策提供全生命周期的设备和现场数据。在数字化通信中,数据在各个设备之间,借助某种介质,以1和0的二进制信息流串行地进行传输。无论是简单的RS232串行通信,还是千兆位以太网,本质上都是数据通信。下面介绍数据通信的基本知识。1.数据通信的传输方式按数据的传输方式,数据通信可分为串行通信和并行通信。串行通信也叫串行口通信,简称串口通信。并行通信也叫并行口通信,简称并口通信。1)并行通信数据以成组的方式在多个并行信道上同时进行传输。并行通信方式是指将数据以成组方式在两条以上的并行信道上同时传输,还可附加一位数据校检位。如图1-3-2显示了二进制代码01101010如何以并行方式从发送端传输到接收端,每位都有自己的传输线路,因此,所有的8位均可同时在一个时钟脉冲周期(T)内传输。并行通信的优点是速度快,但发端与收端之间有若干条线路,导致费用高,仅适合于近距离和高速率的通信。图1-3-2并行通信方式2)串行通信

串行通信方式是指按时间先后将数据依次在一条信道一位一位地传送,如图1-3-3显示了二进制代码01101010如何以串行方式从发送端传输到接收端,它需要在8个时钟脉冲周期(8T)来传送。由于计算机内部都采用并行通信,因此,数据在发送之前,要将计算机中的字符进行并/串变换,在接收端再通过串/并变换,还原成计算机的字符结构,才能实现串行通信。串行通信的特点是收、发双方只需要一条传输信道,易于实现,成本低,但速度比较低,常用于远距离通信。图1-3-3串行通信方式2.数据通信的传输方向按数据的传输方向分为单工通信、半双工通信和全双工通信。1)单工通信单工方式(SimplexCommunication)的数据传输是单向的。通信双方中,一方固定为发送端,一方则固定为接收端。信息只能沿一个方向传输,使用一根传输线。无线电广播和电视都属于单工通信,如图1-3-4所示。图1-3-4单工通信方式2)半双工通信半双工方式(HalfDuplex)通信使用同一根传输线,既可以发送数据又可以接收数据,但不能同时进行发送和接收,如图1-3-5所示。数据传输允许数据在两个方向上传输,但是,在任何时刻只能由其中的一方发送数据,另一方接收数据。当改变传输方向时,要通过开关装置进行切换。半双工信道适合于会话式通信,比如公安系统使用的“对讲机”和军队使用的“步话机”。半双工方式在计算机网络系统中适用于终端与终端之间的会话式通信。图1-3-5半双工通信方式

3)全双工通信全双工方式(FullDuplex)通信允许数据同时在两个方向上传输,如图1-3-6所示。因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。在全双工模式中,每一端都有发送器和接收器,有两条传输线,信息传输效率高。比如手机通话。图1-3-6全双工通信方式3.串口通信

1)串口通信简介串行口通信(SerialCommunications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。RS232是IBM-PC及其兼容机上的串行连接标准,如图1-3-7所示。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。在Windows操作系统中,串行接口称为COM,并以COM1,COM2等编号标示不同的接口。RS232只限于PC串口和设备间点对点的通信,RS232串口通信最远距离是50英尺。

图1-3-7RS232通信线与接口RS232(9针)接口RS232通信线为了增强信号抗干扰能力,RS232的信号电压在±3V~±15V之间。高于3V电位的为0,低于-3V电位的为1。介于+3V和-3V之间电位的信号则为不确定值。TTL信号是晶体管数字集成电路信号电压,高电位是电源电压,一般为5V,低电位是0V。由于电压不同,RS232设备和和微控制器之间需要加装一个信号电位转换元件(如MAX232)才能相连,如图1-3-8所示。图1-3-8RS232信号电压与TTL信号电压比较

随着微处理器的速度不断提升,新型的串行接口速度也在不断提高。电脑上的USB、HDMI显示器接口、SATA硬盘接口,甚至蓝牙无线接口都是采用的串行通信接口。USB的全名是UniversalSerialBus(通用串行接口),意思是用来取代旧式RS232,PS/2键盘与鼠标等所有串行接口,统一于此的新标准。USB设备分成主控端和从端两大类,电脑和手机属于主控端,鼠标,U盘,存储卡属于从端,主控端可以连接和控制从端,从端之间不能互连。USB接口有4根线,2根电源线,2根数据线。2)串口通信的数据格式串口进行数据传输时,是一个字节一个字节地传输,每个字节一位一位地进行传输的。每一个字节的前面都有一位起始位,字节本身由8位数据位组成,接着字节后面是一位校验位(检验位可以是奇校验、偶校验或无校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位,停止位和空闲位都规定为高电平。实际传输时每一位的信号宽度与波特率有关,波特率越高,宽度越小,在进行传输之前,双方一定要使用同一个波特率设置。串口通信的数据格式如图1-3-9所示。

图1-3-9串口通信的数据格式

(1)起始位和停止位:每传输一个字节,总是以“起始位”(低电平)开始,以“停止位”(高电平)结束,字节之间没有固定的时间间隔要求。停止位代表“发送完毕”,停止位是按长度来算的。串行异步通信从计时开始,以单位时间为间隔(一个单位时间就是波特率的倒数),依次接受所规定的数据位和奇偶校验位,并拼装成一个字符的并行字节;此后应接收到规定长度的停止位“1”。所以说,停止位都是“1”,1.5是它的长度,即停止位的高电平保持1.5个单位时间长度。一般来讲,停止位有1,1.5,2个单位时间三种长度。

(2)校验位:在数据传输过程中,可能会受到干扰或其他因素影响,导致数据发生错误,传输协议中加入了能让接受端验证数据是否正确的校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。(3)波特率:在进行串口通信时,发送端和接收端要步调一致(同步),这样才能准确地传递数据,这是通过设置波特率这个参数来保证的。波特率就是每秒钟传输的数据位数。波特率的单位是每秒比特数(bps),常用的单位还有:每秒千比特数Kbps,每秒兆比特数Mbps。串口典型的传输波特率9600bps,1200bps,2400bps,4800bps,9600bps,19200bps,38400bps。最常用的波特率是9600bps。9.6Kbps

4.Windows系统串口参数的查看器件之间传输数据的方式称为协议,每一种器件的协议都不太一样。就像每一台电视机都用红外线遥控器,但各厂家的红外线通信协议不同,所以遥控器无法交换使用。通信协议(protocol)代表通信设备双方所遵循的规范和参数,通信双方的设定要一致,才能相互沟通,否则会收到一堆乱码。从串口调试软件或是Windows的设备管理器里,都可以看到串口的通信设置情况。当微控制器通过串口数据线插入电脑的USB端口时,Windows的设备管理器会将它当成一个USB串口设备,如图1-3-10所示。

图1-3-10Windows操作系统上的串口设备图1-3-11串口的参数查询

同步数据通信有些串口,像IIC和SPI,有单独的时钟线(Clock,通常简写成CLK)来确保通信设备两端采用一致的步调传输数据,也称作数据同步。而RS232和USB串口数据线都没有时钟线,所以需要事先协调好传输速度,并且在传送数前后加上“开始”和“结束”信号。这种传输方式统称通用非同步收发传输器(UniversalAsynchronousReceiver/Transmiter,简称UART)。异步数据通信5.串口通信过程

RS232串口,也叫UART(非同步串口),使用两条数据线与周边设备通信。其中一条负责发送数据,在微控制器上的引脚用TXD标示,另一条负责接收数据,引脚用RXD标示。一个UART接口只能和一个周边设备通信,如图1-3-12所示。图1-3-12串口数据线的接线方式在开始传输数据之前,UART的传送与接收端口都处于高电位状态。传送数据时,它将先发送一个代表“要开始传送喽”的起始位,接着才传送真正的数据位,每一组数据单元可以是5-8位,通常是8位即一个字节。如图1-3-13所示。

图1-3-13串口的数据发送过程任务实施通信技术是计算机网络技术的基础。换句话说,计算机网络是计算机技术与通信技术结合的产物。而串口通信技术在计算机网络里得到大量的应用,尤其是在电气控制系统的数据采集层。国际上许多大公司在生产自己的智能化电气设备时各自制定了自己的数据通信标准,这些标准都是基于串口通信基础之上的,它们的通信规则也有许多相通之处。下面我们通过几种串口通信的实例,理解一下计算机是如何与底层的电气设备之间进行数据通信的。1.计算机发送数据给微控制器

1)电路连接如图1-3-14所示是计算机与微控制器连接的实物图,使用的是USB数据线。

图1-3-14计算机与微控制器实物连接图如图1-3-15所示是计算机与微控制器连接的内部接线图。2)程序编写如图1-3-16所示,首先声明一个变量,变量名为“接收的数据”,数据类型为“字符型”。字符是指键盘上的键符号,字符的编码是ASCII码。如‘a’,‘b’的编码是10100001和10100010。字符‘123’和数字123的区别:字符‘123’的ASIIC十进制码是49,50,51,二进制码是00110001,00110010和00110011,数字123的二进制码是01111011。

图1-3-16计算机发送数据给微控制器微控制器串口通信功能块接收与发送数据的步骤如下:当计算机从TX端口给微控制器发送一个字符‘a’时。(1)微控制器从RX端口接收字符到数据缓冲区。(2)微控制器将它存到变量名为“接收的数据”的存储单元中。(3)微控制器将变量“接收的数据”中的数据回传给计算机。(4)计算机串口助手的接收区显示出字符‘a’。数据传递的过程如图1-3-17所示。图1-3-17计算机与微控制器传递数据的过程

现在计算机与微控制器通过串口数据线连接已经可以进行通信了。那么,怎样能够知道计算机发送数据给微控制器了呢?将上面的程序下载给微控制器,打开Mixly软件里的“串口监视器”在“发送”窗口键入字符‘a’,点击“发送”按钮,在“串口监视器”的“接收”窗口就可以看到字符‘a’,这就是计算机发送给微控制器的数据,如图1-3-18所示。

图1-3-18在串口监视器窗口观察数据程序里变量声明为“字符”,这样打印出来的是ASCII字符。声明变量为“整数”,这样打印出来的是ASCII码数值。如在发送窗口输入字符‘a’,接收窗口接收到的是数据97。如图1-3-19所示。

图1-3-19字符与数据的比较如果直接读数据,这样打印出来的只能是ASCII码的码值,而不能够转成字符,如图1-3-20所示。所以程序里加入变量,可以使数据通信更加灵活。

图1-3-20只能打印ASCII码的码值的功能块2.微控制器发送数据给计算机

1)电路连接如图1-3-14所示。2)程序编写

微控制器发送数据给计算机非常简单,只需要下面如图1-3-21所示的功能块就可以实现。

图1-3-21

Mixly软件里的串口打印功能块

如图1-3-22所示,微控制器发送数据给计算机程序里加延时功能块是为了观察数据的方便。

图1-3-22微控制器向计算机发送数据3)观察计算机接收的数据将图1-3-22的程序下载给微控制器,打开Mixly软件里的“串口监视器”,在“串口监视器”下面的“接收”窗口就可以看到每隔一秒,微控制器发送给计算机的字符‘G’,这就是微控制器发送给计算机的数据。再如,微控制器向计算机发送字符“k”的程序也可以如图1-3-23所示这样写。

图1-3-23微控制器向计算机发送字符“k”的程序下面如图1-3-24所示的程序是让微控制器向计算机发送1-10的数字。从串口监视器的接收窗口可以看到循环显示0-10的数字。

图1-3-24微控制器向计算机发送1-10的数字3.用串口监视器观察数字信号(以按键控制LED灯为例)1)电路搭建如图1-3-25所示。D2——数字输入端口,接按键S。D8——数字输出端口,接LED灯。

图1-3-25用串口监视器观察数字信号的电路搭建2)程序编写

此程序就是在按键控制LED灯亮灭的基础上加入了串口打印功能块,如图1-3-26所示。 此功能块是将数字输出管脚2的状态信号采集出来,作为数字输入数据传送给串口,串口可以将其从串口监视器显示出来。

图1-3-26串口采集D2引脚的数字量数据用串口监视器观察数字信号的的程序如图1-3-27所示。

图1-3-27用串口监视器观察数字信号程序3)观察数字信号将图1-3-27程序下载到Arduino,打开串口监视器,按下按键S,可以观察到D2端口的电位状态变化情况,如图1-3-28所示。

图1-3-28用串口监视器观察数字信号当然,串口也可以在输出字符串,如“ON”,“OFF”之类,这样可以使输出信息更加直观,程序如图1-3-29所示。打开串口监视器,按下按键“S”,可以在输出窗口看到字符串“ON”和“OFF”。

图1-3-29输出字符串信息串口甚至可以输出中文字符,如“亮”,“灭”之类,这样可以使输出信息更加直观,程序如图1-3-30所示。打开串口监视器,按下按键“S”,可以在输出窗口看到字符串“亮”和“灭”。如果中文字符多,可能会显示不完整。

图1-3-30输出中文字符信息

4.用串口监视器观察模拟信号1)电路搭建用串口监视器观察模拟信号电路如图1-3-31所示,其中:A0——模拟信号输入端口。D3——模拟信号输出端口。

图1-3-31用串口监视器观察模拟信号电路

2)程序编写此功能块的功能是将模拟输入管脚A0的数据采集出来,作为模拟输入数据传送给串口,串口可以将其从串口监视器显示出来,如图1-3-32所示。

图1-3-32串口采集A0引脚的模拟量数据用串口监视器观察模拟量输入信号的程序如图1-3-33所示。图1-3-33用串口监视器观察模拟量输入信号程序3)观察A0端口模拟数据串口监视器直接读取模拟输入管脚A0的值如图1-3-34所示。从串口监视器可以看到,调节电位器R2阻值的大小,模拟输入端口A0的数值变化范围是0-1023。

图1-3-34用串口监视器观察模拟量信号下面的程序是调光灯程序,我们将输入模拟数据通过变量n进行转换,然后在串口监视器里可以观察到n的数据变化范围是0-255。同时可以看到D3引脚的LED灯随着数据的变化而产生明暗的变化,如图1-3-35所示。

图1-3-35观察输入的模拟量值图1-3-35的程序也可以改写为如图1-3-36所示的程序,功能是一样的。

图1-3-36观察输入的模拟量值程序的另一种写法

5.用串口通信数据直接控制微控制器上LED灯

任务要求:计算机与微控制器使用USB数据线连接,要求用计算机上的键盘“1”和“2”键控制微控制器板上LED灯的亮灭。1)电路搭建电路连接如图1-3-37所示。图1-3-37用串口通信数据直接控制微控制器上LED灯亮灭电路2)程序编写与效果演示

如图1-3-39所示程序不能控制D3引脚LED灯的亮灭,因为如图1-3-38所示使用串口“读”功能块,Ardu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论