第一篇:串行通信的工作方式
串行通信的工作方式数据按时间顺序(分时)先后一位一位地通过单通信通路传送的通信方式。
①从通信距离上看:并行通信适宜于近距离的数据传送,通常小于30米。而串行通信适宜于远距离传送,可以从几米到数千公里。
②从通信速率上看:在短距离内,并行接口的数据传输速率显然比串行接口的传输速率高得多,但远距离串行数据传送速率比并行数据传送速率易于提高。由于串行通信的通信时钟频率较并行通信容易提高,因此许多高速外部设备如数字摄像机与计算机之间的通信也往往使用串行通信方式。
③从抗干扰性能上看:串行通信由于只有少数几根信号线,信号间的互相干扰比较小。
④从设备和费用上看:随着大规模和超大规模集成电路的发展,逻辑器件价格趋低,而通信线路费用趋高,因此对远距离通信而言,串行通信的费用显然会低得多。另一方面串行通信还可利用现有的电话网络来实现远程通信,降低了通信费用。
第二篇:单片机串行通信实验
实验四 单片机串行通信实验
一、实验目的
1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。
2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。
3、学习串口通讯的中断方式的程序编写方法
二、实验说明
利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。发送方读入按键值,并发送给接收方,接收方收到数据后在LED上显示。
三、实验仪器
计算机
伟福实验箱(lab2000P)
四、实验内容与软件流程图 1、8051的RXD、TXD接线柱在POD51/96仿真板上。
2、通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD上,这样按下的键,就会在本机LED上显示出来。
3、若想与标准的RS232设备通信,就要做电平转换,输出时要将TTL电平换成RS232电平,输入时要将RS232电平换成TTL电平。可以将仿真板上的RXD、TXD信号接到实验板上的“用户串口接线”的相应RXD和TXD端,经过电平转换,通过“用户串口”接到外部的RS232设备。可以用实验仪上的逻辑分析仪采样串口通信的波形
4、软件流程图
5、实验电路连接方式
①双机串行通信方式。TXD脚和RXD脚分别用于发送和接收数据。
②单机通信的情况下,只需将自己的TXD脚与RXD脚连接就可以,不用公地操作。
五、思考题
1、接收到的数据加1显示出来;
2、保存前一个接收到的数据,数据向前推动显示。
六、源程序修改原理及其仿真结果 实验结果图 源程序:
加1显示:
接收到的数据先前推送:
七、心得体会
通过这次实验,我掌握了单片机串行口工作方式的程序设计,及简易三线式通讯的方法。了解了实现串行通讯的硬环境、数据格式的协议、数据交换的协议。学习了串口通讯的中断方式的程序编写方法。
第三篇:无线串行通信技术总结
无线串行通信技术总结
与传统的有线串行(RS232)通信不同,无线串行通信具有设备移动方便(特别在通信设备空间相互隔离不便连线的情况下)、通信距离远(可达几十km)等特点。
无线串行通信应用领域非常广,常用的有:无线抄表;工业遥控、遥测;无线数据传输;银行POS系统;无线数据采集;楼宇自动化、无线监控、门禁系统;智能家居、工业控制;汽车检测设备;无线LED显示屏系统。
目前,比较常用的无线串行通信技术有红外、蓝牙、ZigBee和无线数传等四种。四种方式都有不少公司推出了标准模块,价廉物美,特别适用于嵌入式系统及PC机之间的串行通信。
1、红外串行通信,符合IrDA1.x标准,利用950 nm近红外波段的红外线作为传递信息的载体,通过红外光在空中的传播来传递信息,由红外发射器和接收器实现。其最大优点是:不易被人发现和截获,保密性强;几乎不会受到电气、天电、人为干扰,抗干扰性强。此外,红外线通信机体积小、重量轻、结构简单、价格低廉。不足之处在于它必须在视距内通信,且收发端必须是直线对射。
红外转RS232模块有武汉波士电子的IR232、北京水木行的SMH-IR220等,波特率可达115.2Kbps,通信距离在1m以上。
2、蓝牙串行通信,符合蓝牙协议(BlueTooth)V1.x,使用2.4GHz的ISM(工业、科学、医学)频段。频道共用23个或79个,频道间隔均为 1MHz,采用时分双工方式,调制方式为BT= 0.5的GFSK。蓝牙的数据传输率可达1Mbs,与红外一样,蓝牙的传输距离也较短。
生产蓝牙转RS232模块的公司也有不少,例如:南京国春电气设备有限公司的GC-232-1,深圳蓝色飞舞科技的BF10等。
3、ZigBee串行通信,Zigbee是IEEE 802.15.4协议的代名词,这个协议规定的技术是一种短距离、低功耗的无线通信技术。其特点是近距离、低功耗、低成本。主要适合用于无线测控、无线抄表、智能家电、安防报警等领域,可以嵌入各种设备。其最高波特率可达384K,传输距离在1000m以内。
ZigBee转RS232典型产品有:赫立讯科技(北京)公司的IP-Link 2220H,深圳市鼎泰克电子有限公司的DTK系列等。
4、无线数传模块,有RFID和无线电台技术两种,前者用在中、短距离,后者用在远距离,可达几十km。国内生产无线数传模块的公司有很多,比较知名的有深圳技卓科技有限公司(JZ87x系列)和北京捷麦通信器材有限公司(F21系列);进口的有日本日精ND系列等。
第四篇:PLC和PC机间的串行通信
关键词:RS-232串行通信 可编程控制器 自由端口模式 数据缓冲区
HG-2003型温升测控装置是笔者与我国北京某科学研究联联合开发的一套专门用于高压晶闸管阀温升检测试验的测控装置。考虑到PLC及其网络已被公认为现代测控装置开发的几大支柱之一,而且从近几年的统计数字来看,PLC产品在世界范围内的产量、销量高居各测控器件榜首,因此笔者决定本测控系统的核心器件采用可编程控制器(PLC),其基本功能可通过软件编程实现。PLC的三大亮点是:(1)集电控、电传、电仪三电于一体;(2)网络的性能价格比高;(3)可靠性高。这些亮点就使得整个测控设备结构简单、可靠性高,同时也为实现系统控制功能的二次开发奠定了良好的技术基础。本文主要讨论设备中所采用的西门子公司的S7-200型PLC和PC机之间的串行通信问题。
1、温升测控系统整体介绍
1.1 HG-2003测控装置的测控对象及结构
先来介绍一下该温升试验测控装置的基本工作流程。10kV电源进线经过进线框中的高压断路器CB和高压隔离开关柜中的隔离开关G(用于在设备检修或维护时形成一个明显的断点)后,加在10kV转换变压器T1上。该变压器将三相电转化为单相电。这主要是由于做实验时负载电流很大,如果使用三相电源,容易造成负荷电流的不平衡从而造成试验故障。在转换变压器的输出端(二次侧)连接单相温升试验变压器T2。该温升变压器的一次侧应加装用于无功功率补偿的电容柜,二次侧则通过有载分接开关直接连接试验品(即高压晶闸管阀)进行温升试验。
从基本工作流程不难知道测控装置的测控对象,本装置的具体测控对象如表1所示。
表1 测控对象表
测控装置的物理结构分为两部分:操作控制台和试区控制箱。其中,试区控制箱即PLC控制箱被安装在试验区的隔离开关框内。操作控制台即PC机人机办是非曲直操作台则安装在控制室内。由于二者之间相距约40m,所以采用PC/PPI电缆传输测控信号时需加装中继器。
1.2 HG-2003测控装置的基本功能
本测控系统的基本功能包括:开关分合控制指示功能;设备和试品的过流、过压、过热报警及保护功能;各种操作连锁功能,如电源开关柜内10kV电源断路器和隔离开关柜内的手动隔离开关、控制室门触点、试验大厅门触点间的连锁保护功能等,并设有相关的报警提示画面。这些功能可以避免操作顺序出错。
2、S7-200通信程序的设计与实现 2.1 PC机与S7-200的通信方式
西门子S7-200 PLC的通信功能较强,有多种通信方式可供用户选择,如:单主站方式、多主站方式以及使用调制解调器的远程通信方式等。在本测控装置中,笔者采用单主站方式。在运行Windows或Windows NT操作操作的个人计算机(PC机)上安装STEP 7-Micro/WIN32编程软件后,PC机就可作为通信中的主站。它可与一个或多个从站相连,STEP 7-Micro/WIN 32每次和一个S7-200 CPU通信,但可以访问网络上的所有CPU。该通信方式的硬件配置为PLC到PC机通信口的电缆连接器,即带RS-232口的隔离型PC/PPI电缆,用五个DIP开关设置波特率和其它配置项。它支持的波特率为9.6kbps或19,2kbps,支持的协议为PPI协议。这里并没有使用PPI协议,而是使用PC/PPI电缆和自由端口通信功能来实现S7-200 CPU与PC机间的通信。自由端口模式是计算机或其它带有串行通信接口的设备与S7-200 CPU之间通信的一种廉价和灵活的方法。它以用户定义的通信协议为基础,通过使用相关的中断指令和专用的通信指令控制S7-200 CPU通信口的操作模式,实现与多种智能设备的连接。
具体地说,所谓自由通信端口模式是指CPU的串行通信接口可由用户程序控制的一种通信操作模式,其梯形图程序可以使用接收完成中断、字符接收中断、发送完成中断、发送指令(XMT)和接收指令(RCV)等控制通信过程。在该模式下,通信协议完全由用户程序控制。
CPU处于STOP模式时,自由通信端口模式被禁止,CPU重新建立使用其它协议的通信,例如与编程设备的通信。只有当CPU处于RUN模式时,才能使用自由通信端口模式。通过将特殊寄存器字节SM30或SM130的协议选择域(mm)置1可以将通信端口设置为自由端口模式,处于该模式时不能与编程设备通信。
可以用反映CPU模块上的工作方式开关当前位置的特殊存储器位SM0.7来控制自由端口模式的进入。当SM0.7为1时,工作方式开关处于RUN位置,可选择自由端口模式;当SM0.7为0时,工作方式开关处于TEM位置,应选择PC/PPI协议模式,以便用于编程设备监视或控制CPU模块的操作。
2.2 自由端口模式下PLC串行通信程序的编程要点
计算机与可编程控制器通信时,为了避免通信中的各方争用通信线,一般采用主从工作方式,即计算机为主机,可编程控制器为从机;只有主机才有权主动发送请求报文,从机收到后返回响应报文。下面主要谈一谈编程过程中应注意的几个问题。
首先是电缆切换时间的处理。因为使用了PC/PPI电缆,所以在S7-200 CPU的用户程序中应考虑电缆的切换时间。S7-200 CPU接收到RS232设备的请求报文到它发送响应报文的延迟时间必须大于等于电缆的切换时间。波特率为9600bps和19200bps,电缆的切换时间分别为2ms和1ms。在梯形图程序中可用定时中断实现切换延时。
其次就是通信可靠性的处理,校验码的采用是提高通信可靠性最常用的措施之一。用得较多的是异或校验,即将每一帧中的第一个字符(不包括起始字符)到该帧中正文的最后一个字符作异或运算,并将异或的结果(展品或校验码)作为报文的一部分发送到接收端。接收方接收到数据后计算出所接收到的数据的展品或校验码,再与发送方传过来的校验码比较,如果不同,可以判断通信有误。
最后需注意的是防止起始字符、结束字符与数据字符的混淆。因为报文的起始字符和结束字符只有8位,接收到的报文数据区内出现与起始字符或结束字符相同的数据字符的机率很大,这可能会引起字符混淆。可以在发送前对数据作某种处理,例如选择起始字符和结束字符为某些特殊的值,而将数字字符转化为BCD码或ASCII码后再发送,这样可以避免出现上述的情况,但是会增加编程的工作量和数据传 送的时间。2.3 通信程序中关键指令的使用与说明
发送指令XMT(Transmit)用于启动自由端口模式下数据缓冲区(TBL)数据的发送,指令格式如图1所示。通过指定的通信端口(PORT),将存储在数据缓冲区(TBL)中的信息发送。使ENO=0的错误条件:SM4.3(运行时间),0006(间接寻址),009(在端口0同时XMT/RCV),000B(在端口1同时XMT/RCV)。
XMT指令可以方便地发送1~255个字符,如果有中断程序连接到发送结束事件上,在发送完缓冲区中的最后一个字符时,端口0会产生中断事件9,端口1会产生中断事件26。可以监视发送完成状态位SM4.5和SM4.6的变化,而不是用中断进行发送。数据缓冲区中的起始字符和结束字符是可选项,第一个字节的“字符数”是要发送的字节数,它本身并不发送出去。
接收指令RCV(Receive)可以方便地接收一个或多个字符,最多可接收255个字符。通过指令的通信端口(PORT),将接收信息存储在数据缓冲区(TBL)中。数据缓冲区中的第一个字节用来累计接收到的字节数,它本身不能接收到,起始字符和结束字符是可选项。如果有中断程序连接到接收结束事件上,在接收完最后一个字符时,端口0产生中断事件23,端口1产生中断事件24。
使ENO=0的错误条件:SM86.6和SM186.6(RCV参数错误),SM4.3(运行时间),0006(音接寻址),009(在端口0同时XMT/RCV),000B(在端口1同时XMT/RCV)。CPU不是在自由端口模式。
可以监视SM86.6或SM186.6的变化,而不是用中断进行报文接收。SM86.6或SM186.6为非零时,RCV指令未被激活或接收已经结束。正在接收报文时,它们为0。
当超时或校验错误时,要自动中止报文接收功能。必须为报文接收功能定义一个启动条件和一个结束条件。
RCV指令允许通过参数设定选择报文开始条件和报文结束条件,即设定特殊存储器字节SM86~SM94(用于端口0)和SM186~SM194(用于端口1)。
另外两个比较重要的指令是获取与设置通信口地址指令。获取通信口地址指令(GET ADDR指令)用来读取PORT指定的CPU口的站地址,并将数值放入ADDR指定的地址中。设置通信口地址指令(SET ADDR指令)用来将通信口(PORT)站地址设置为ADDR指定的数值。设置的新地址不能永久保存,断电后又上电,通信口地址将恢复为上次的地址值(用系统块下载的地址)。图2为使用RCV指令和接收完成中断接收数据的通信程序流程图。
3、计算机通信程序的设计与实现
3.1 Windows环境下的PC机通信程序 在Windows环境下,操作系统通过驱动程序控制各硬件资源,不允许用户像在DOS环境下那样直接对串口进行底层的操作。为此,Visual Basic提供了一个串行通信控件:MSComm控件。程序员只需设置和监视MSComm控件的属性和事件,就可以劲易而易举地实现串行通信。
3.2 MSComm控件的属性
MSComm控件主要属性如下:(1)Comm Port:设置并返回通信端口号。(2)Settings:以字符的形式设置并返回波特率、奇偶校验位、数据位和停止位。其中字符n、o、e分别代表无校验、奇校验、偶校验。(3)Port Open:设置并返回通信端口状态。设置为Ture时,打开端口;设置为Flase时,关闭端口。另外,还有Input、Output、Input Mode、In Buffer Count等属性,这里不再一一介绍。3.2 MSComm控件处理接收信息的方式
MSComm控件提供两种处理方式:(1)事件驱动方式:RTHreshold属性非0时,收到字符或传输线发生变化时就会产生串口事件On Comm。通过查询CommEvent属性可以捕获并处理这些通信事件。(2)查询方式:通过查询Iuput Buffer Count(接收缓冲区的字节数)属性值,处理接收到的信息。本装置中采用事件驱动方式。
用Visual Basic语言设计串行通信程序简单实用,关键是如何形成一个友好的用户界面。编程的细节这里不再详述。
随着工业PC机的推出,个人计算机在工业现场支行的可靠性问题也得到了解决。因此在各类测控设备中实现PLC和PC机间的串行通信有着重大的意义。这样一方面有助于将个人计算机开发成简易工作站或者工作终端,实现集中显示、集中报警功能;另一方面也可把个人计算机开发成PLC编程终端,通过编程器接口接入PLC网络,进行编程、调试及监控,并最终达到PLC测控设备结构简单、运行可靠、维护容易、便于二次开发的技术特点。
第五篇:实验一简单的异步串行通信实验报告
实验一 简单的异步串行通信实验
一、实验目的及要求
1、了解掌握RS-232接口标准以及 DB9的主要引脚功能;
2、了解掌握串口通信的基本原理;
3、学习掌握RS-232电缆的制作和测试方法;
4、学习掌握使用串口调试程序进行串口之间的通信实验。
二、实验原理
1、异步串行通信原理
在计算机系统中,每个字符一般使用一个 8 位二进制代码表示。在数据通信中,通常将 传送的每个字符的二进制代码按照由低位到高位的顺序依次发送的方式称为串行通信。图 2-1 是串行通信的示意图。由于串行通信只需在发送方和接收方之间建立一条通信信道,因 此可以减小通信系统的造价。在远程通信中,一般采用串行通信方式。
图 1-1 串行通信示意图
同步是数据通信中必须解决的一个重要问题。所谓同步就是要求通信的收发双方在时间基准上保持一致。在串行通信中,“异步”是同步收发双方通信的重要方式。在异步串行通信中,每个字符作为一个独立的整体进行发送,字符之间的时间间隔可以是任意的。为了实现同步,需要在每个字符的第一位前加 1 位起始符(逻辑 1),并在字符的最后一位后加 1位、1.5 位或 2 位停止位(逻辑 0)。异步串行传输的比特流结构如图 2-2所示。
图 1-2 异步串行传输的比特流结构
常用的串行通信接口标准包括RS-232、RS-449、V.24、V.35等。其中,RS-232是最常 用的串行通信标准之一。个人计算机及终端系统中配备的串行接口几乎都符合 RS-232 标准。
2、RS-232 接口标准
串行口是一种最基本的通信接口,基本上所有的个人计算机及通信终端设备都配有这种接口。RS-232 的主要内容就 是定义数据终端设备DTE(data terminal equipment)和数据通信设备DCE(data circuit equipment)之间的接口标准。RS-232 是美国电子工业协会 EIA 推荐使用的串行通信标准。其初衷是为了促进利用电话网进行数据通信应用的发展,现在也普遍应用于各类计算机或终端设备之间的短距离连接。
RS-232 使用的连接器包括 DB-
25、DB-15 和 DB-9 等几种类型,不同类型连接器使用的引脚定义也各不相同。
计算机 RS-232 串行通信的基本过程。图 1-4 异步串行通信实验总体结构示意图
三、实验过程与实验步骤
1、使用制作的 RS-232电缆将 2台计算机的可用 COM 口连接起来。
2、复制串口调试助手到硬盘上。
3、直接双击 “串口调试助手 3.0”运行软件。检查串口线是否连接到计算机和设备上。确定串口(本机为com1)。在串口调试助手中打开串口:com1。
4、使用字符串收发
5、使用文件传输功能
使用文件传输功能,在 2 台电脑上传输文件,这对于某些特定场合可以用到该功能。首先由接收一端在打开串口后,按下接收文件按钮。
之后会弹出一个对话框,等待对方发送文件。
发送一端在打开串口后,先选择发送文件(如下图)
选择文件后,按下发送按钮,文件开始传输中,这时 2 端都可以看到发送的进度条。发送完毕后,软件会提示!
四、实验结果与分析:串口(com1)
1、正常发送:
(1)A机:波特率相同(9600)、校验位相同(none)、数据位相同(8)、停止位相同(1)
B机:波特率相同(9600)、校验位相同(none)、数据位相同(8)、停止位相同(1)结果:A机发“你好”,B机收“你好”,(图1); B机发“哈哈”,A机收“哈哈”,(图2);
图1
图2(2)、A机:波特率相同(19200)、校验位相同(ODD)、数据位相同(8)、停止位相同(2)
B机:波特率相同(19200)、校验位相同(ODD)、数据位相同(8)、停止位相同(2)结果:A机发“我很好”,B机收“我很好”;图3); B机发“你呢”,A机收“你呢”;图4);
图3
图4
2、波特率不同
A机:波特率相同(4800)、校验位相同(ODD)、数据位相同(8)、停止位相同(1)B机:波特率相同(9600)、校验位相同(ODD)、数据位相同(8)、停止位相同(1)结果:A机发“01 02 03”,B机收“胉”;(图5); B机发“yjw”,A机收“?”;(图6); 分析: 图6
图5 波特率控制采样时间间隔,波特率不相同,收发双方在 相等时间内接收和发送数据 不一致。
3、数据位不同
A机:波特率相同(9600)、校验位相同(ODD)、数据位相同(6)、停止位相同(1)B机:波特率相同(9600)、校验位相同(ODD)、数据位相同(8)、停止位相同(1)结果:A机发“040506”,B机收“?”,(图7); B机发“lys”,A机收“,9>”,(图8); 分析:数据位不相同,收发双方在相等时间内接收和发送数据不一致,所以结果不相同
图7
图8
4、奇偶校检不同
(1)A机:波特率相同(9600)、校验位相同(EVE)、数据位相同(8)、停止位相同(1)
B机:波特率相同(9600)、校验位相同(ODD)、数据位相同(8)、停止位相同(1)结果:A机发“54 85 96 75”,B机收“54 85 96 75”;(图9)B机发“第五种”,A机收“第五种”;(图10)分析:因为校验位用于检验 接收和发送的数据的正确性的,在最终转换时会去除校验位,所以接收到的有效数据和发送的有效数据相同,发送与接收结果一样。
图9
图10(2)A机:波特率相同(9600)、校验位相同(NONE)、数据位相同(8)、停止位相同(1)
B机:波特率相同(9600)、校验位相同(ODD)、数据位相同(8)、停止位相同(1)结果:A机发“54 85 96 75”,B机收“
”;(图11)
B机发“第六种”,A机收“第六种”;(图12)
分析:由于A机无校验位,B机有校验位,所以B机在收到数据并校检,后会自动去除校检位以致发双方的有校数据不一致,结果不一样。
相反的。当A机为接收方时,虽然A机无检验位,但是因为A机已接收到8位数据故不接收B机发送的校检位。结果一样。
图11
图12
5、停止位不同
A机:波特率相同(9600)、校验位相同(ODD)、数据位相同(8)、停止位不同(1)B机:波特率相同(9600)、校验位相同(ODD)、数据位相同(8)、停止位不同(2)
图13
结果:A机发“B机收“B机发“
”,A机收“
”,”;(图13)”;(图14)
图14 分析:
5、发送文件
A机:波特率相同(9600)、校验位相同(NONE)、数据位相同(8)、停止位相同(2)B机:波特率相同(9600)、校验位相同(NONE)、数据位相同(8)、停止位相同(2)结果分析:
当有校检位时,不可以接收文件;波特率不同、校验位不同、数据位同或停止位不同时,文件无法接收;即唯有当波特率相同、数据位相同、停止位相同且无校检位时,方可以正确接收文件。
五、思考并回答以下问题:
(1)在本实验中,RS—232 串口电缆处于 OSI 参考模型的什么位置?它的作用是什么?
答:处于OSI 参考模型的物理层,其作用是作为传输介质,连接通信的网络节点,实现比特流的透明传输,为数据链路层提供数据传输服务。
(2)在本实验中,数据和信号分别体现在 OSI参考模型的什么位置?两者之间有何区别?
答:数据体现在数据链路层,信号体现在物理层。两者区别在:数据链路层:为网络层提供服务的,解决两个相邻结点之间的通信问题,传送的协议数据单元称为数据帧。物理层:OSI模型的最底层。它提出了网络的物理特性,比如连接的电缆类型。这里是二进制值0和1的世界,也就是数据以信号的电特性(高低电平)来表示。
(3)什么是波特率?为何两台 PC 的波特率不同就不能正常通信?
答:波特率又称调制速率、传码速率,记为Nbd,是指在数据通信系统中,每秒钟传输信号码元个数,单位是波特。
在串口通信,一般包括起始位,数据位,校验位(可无)和停止位。以起始位为标志,通信双方进行同步,然后发送方以一个固定的时间间隔进行比特位的传输,接收方以一个固定的时间间隔进行比特位的接收,如果双方的波特率不同,就意味着发送方和接收方所采用的时间间隔不相等,就可能导致接收数据的错位。一般认为通信双方的波特率相差2.5%以内可保证正常通信。