版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重点:仪表之间、仪表与上位机之间、多台仪表之间的通信方法。了解:RS-232C标准,串行通信方式和实现方法。第六章智能化测量控制仪表的通信接口第六章智能化测量控制仪表的通信接口在自动化测量和控制系统中,各台仪表之间需要不断地进行各种信息的交换和传输。而信息的交换是通过仪表的通信接口进行的。本章的重点是单片机内部的UART串行口以及RS-232接口。6.1串行通信通信接口6.1.1RS-232C标准
RS-232C是EIA(美国电子工业协会)1969年修订RS-232C标准。RS-232C定义了数据终端设备(DTE)与数据通信设备(DCE)之间的物理接口标准。它还包括按位传送的电气指标。6.1串行通信通信接口起始位D0D1D2D4D3D5D6D7X标志停止位检验位图6.1RS232C数据格式
RS-232C是数据格式如下所示。在电气性能方面,采用负逻辑,逻辑“1”电平在-15~-5V范围内,逻辑“0”在+5~+15V范围内。6.1串行通信通信接口RS-232C的电平转换RS-232C的逻辑电平与TTL电平不兼容,为了与TTL的单片机器件连接,必须进行电平转换。目前常用的RS-232c收发器是MAX232系列。图6.2MAX232引脚6.1串行通信通信接口图6.2典型应用电路6.1串行通信通信接口机械特性RS-232C接口规定使用25针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义。分类符号名称引脚说明地线
机架保护地(屏蔽地)1
信号地(公共地)7
数据信号线TXD数据发送线2在无数据信息传输或收/发信息间隔期,RXD/TXD电平为1。辅助信道传输速率较主信道低。其余同RXD数据接收线3TXD辅助信道数据发送线14RXD辅助信道数据接收线16定时
信号
线
DCE发送信号定时15指示被传输的每个bit信息的中心位置
DCE接收信号定时17
DTE发送信号定时24
控制线RTS请求发送4DTE发给DCECTS允许发送5DCE发给DTEDSRDCE装置就绪6
DTRDTE装置就绪20DTE发给DCEDCD接收信号(载波)检测8DTE收到满足标准的信号时置位
振铃指示22由DCE收到振铃时置位
信号质量检测21由DCE根据数据信息是否有错而置位/复位
数据信号速率选择23指定两种传输速率中的一种RTS辅助信道请求发送19
CTS辅助信道允许发送13RCD辅助信道接收检测12备用线
9未定义,保留供DCE装置测试使用
10
11
18
25表6.1RS232C信号线及其在DB-25的针脚号6.1串行通信通信接口6.1串行通信通信接口数据终端设备数据通信设备(a)(b)图6.3通信系统结构6.1串行通信通信接口通信系统在工作之前,需要进行初始化,即进行一系列控制信号的交互联络。第一步:由终端发出“请求发送”信号(高电平),表示终端设备要求通信设备发送数据;第二步:数据通信设备发出“清除发送”信号(高电平)予以相应,表示该设备准备发送数据;第三步:终端设备使用“数据中断就绪”信号进行回答,表示已处于接收数据状态;第四步:发送数据6.1串行通信通信接口终端设备通信设备请求发送清除发送终端就绪发送数据6.1串行通信通信接口通信前的初始化工作6.1串行通信通信接口6.1.2串行通信方式1、同步通信在同步通信中,串行数据的输出前,发送和接收移位寄存器必须同步初始化,即在传输过程中,发送与接收应保持一致。发送和接收移位寄存器和初始同步是使用一个同步字符完成的。
外同步自同步6.1串行通信通信接口2、异步通信
异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。
异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间是异步的(字符之间不一定有“位间隔”的整数倍的关系),但同一字符内的各位是同步的(各位之间的距离均为“位间隔”的整数倍)。6.1串行通信通信接口6.1串行通信通信接口异步通信的数据格式:异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。同步通信与异步通信相比较:同步通信传输数据速度快,但使用较多的连接线。若一次串行数据传输错误,会造成成批数据报废。异步通信传输速度慢,连线少,即使传输错误,仅影响一个字节数据。在测量、控制系统中,多采用异步通信方式。6.1串行通信通信接口发送端发送第一个数据,并启动发送过程6.1串行通信通信接口第一个移位脉冲到来,发送第一个数据的起始位6.1串行通信通信接口发送端发送结束位,并向CPU申请中断,要求发送下一个字节数据6.1串行通信通信接口接收端接收到停止位,将数据送入接收缓冲器中,并申请中断,要求CPU取走刚接收到的数据。6.1串行通信通信接口6.2串行通信的实现补:80C51的串行口
单片机有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H;接收器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。
在全双工工作方式下,对于CPU,事先并不知道所发生的中断时发送中断还是接收中断,因此必须采用查询来进行判断。如:对于发送方,JBCRI,LOOP;
若RI=1,则表示接收到对方的应答信号;;在清零的同时并读取应答信号进行判断CLRTI……LOOP:MOVA,SBUF……
6.1串行通信通信接口对于接收送方,JBCRI,LOOP;
若RI=1,则表示接收到一个新的字节数据;;在清零的同时并读取新的数据CLRTI……LOOP:MOVA,SBUF……
6.1串行通信通信接口6.2串行通信的实现6.2.1仪表之间的通信
两台基于51的智能化仪表,采用点对点串行通信方式实现A与B通信。具体指标如下:(1)晶振为6MHz,串行口设定为工作方式3(9位UART),每帧数据11位,第9位用于奇偶校验,波特率为2400b/s。(2)仪表A将本机片外数据存储器4000H~407FH单元中的数据向仪表B发送。(3)仪表B对收到的数据进行奇偶校验,将校验位P的状态放在TB8中,若正确,向仪表A发00H。A收到00H后再发下一帧数据。B发0FFH作为错误信号,A将重新发送。B将正确数据存在以4000H为首的片外数据存储器。6.2串行通信的实现这里采用定时器T1为波特率发生器,设2400b/s,T1以方式2工作,T1的定时器常数为:X=28-(6×106)/(2400×12×232/smod)
取Smod=1。X=0F3H。6.2串行通信的实现图6.5仪表A主程序流程图开始T1、串口初始化置初值开中断取发送数据补偶操作启动串行口等待中断MAIN:MOVTMOD,#20HMOVTH1,#0F3HMOVTL1,#0F3H;波特率设置SETBTR1MOVPCON,#80H;Smod=1MOVSCON,#0D0H;串口工作方式3,允许接收MOVDPTR,#4000HMOVXR0,#80H;发送字节数SETBESSETBEAMOVXA,@DPTRMOVC,PMOVTB8,C;奇偶标志送TB8MOVSBUF,AHERE:SJMPHERE6.2串行通信的实现取原发送数据补偶操作启动串行口发送取新发送数据修改指针补偶操作清除发送中断标志关串行口中断接收应答信息是接收中断?数据发送完?中断返回是00H?中断返回图6.5仪表A中断子程序流程图仪表A中断服务程序入口NNNYYYSERVE1:JBCRI,LOOP;是接收中断,则RI清零,转入接收仪表B的应答信息CLRTI;是发送中断,TI清零SJMPENDTLOOP:MOVA,SBUF;取仪表B的应答信息CLRCSUBBA,#01H;判断应答信号是否为00HJCLOOP1;是00H,表明发送正确MOVXA,@DPTR;否则重新发送原来的数据MOVC,PMOVTB8,CMOVSBUF,ASJMPENDT6.2串行通信的实现6.2.1仪表相互之间的通信接下一页6.2.1仪表相互之间的通信6.2串行通信的实现LOOP1:INCDPTR;修改地址指针,准备发送下一个数据MOVXA,@DPTR;MOVC,P;补偶操作MOVTB8,CMOVSBUF,A;发送数据DJNZR0,ENDT;数据未全部发送完毕,继续CLRES;数据全部发送完毕,禁止串行口中断ENDT:RETI;中断返回6.2串行通信的实现6.2.1仪表相互之间的通信开始T1、串口初始化置初值开中断等待中断MAIN:MOVTMOD,#20HMOVTH1,#0F3HMOVTL1,#0F3H;波特率设置SETBTR1MOVPCON,#80H;Smod=1MOVSCON,#0D0H;串口工作方式3,允许接收MOVDPTR,#4000HMOVXR0,#80H;接收字节数SETBESSETBEAHERE:SJMPHERE图6.6仪表B主程序流程图6.2串行通信的实现6.2.1仪表相互之间的通信仪表B中断服务程序入口N数据送缓冲区发送应答#00H发送应答#FFH修改指针清除发送中断标志关串行口中断接收数据是接收中断?数据发送完?中断返回中断返回奇偶校验正确么?中断返回YYYNN图6.6仪表B数据传送中断子程序LOOP2LOOP3奇偶校验开始RB8=1?P=1?正确错误RB8=1?YYYNNN本例题采用偶校验的方法,即接收到的8位数据若P和接收到的第9位校验位RB8关系如下:P=1RB8=1RB8=0错误正确P=0RB8=1RB8=0正确错误6.2串行通信的实现6.2.1仪表相互之间的通信6.2串行通信的实现6.2.1仪表相互之间的通信SERVE2:JBCRI,LOOP CLRTI SJMPENDTLOOP:MOVA,SBUF MOVC,PJCLOOP1;ORLC,RB8;P=0,且RB8=0则说明数据正确,转LOOP3JCLOOP2;否则接收数据错误,转LOOP2SJMPLOOP3LOOP1:ANLC,RB8JCLOOP3;P=1,且RB8=1则说明数据正确,转LOOP3因为在方式2和方式3下,TB8和RB8是作为发送和接收的第9位数据,若TB8=1,则RB8=1;若TB8=0,则RB8=0。偶校验6.2串行通信的实现6.2.1仪表相互之间的通信LOOP2:MOVA,#0FFHMOVSBUF,ASJMPENDTLOOP3:MOVX@DPTR,AMOVA,#00HMOVSBUF,AINCDPTRDJNZR0,ENDTCLRESENDT:RETI错误处理校验正确LOOP2LOOP3奇偶校验开始RB8=1?P=1?正确错误RB8=1?NYYYNN本例题若采用奇校验的方法,P和接收到的第9位校验位RB8关系如下:P=1RB8=0RB8=1错误正确P=0RB8=1RB8=0错误正确6.2串行通信的实现6.2.1仪表相互之间的通信6.2串行通信的实现6.2.1仪表相互之间的通信SERVE2:JBCRI,LOOP CLRTI SJMPENDTLOOP:MOVA,SBUF MOVC,PJCLOOP1;ORLC,RB8;P=0,且RB8=0则说明数据正确,转LOOP3
JNCLOOP2;否则接收数据错误,转LOOP2SJMPLOOP3LOOP1:ANLC,RB8
JNCLOOP3;P=1,且RB8=1则说明数据正确,转LOOP36.2串行通信的实现6.2.1仪表相互之间的通信LOOP2:MOVA,#0FFHMOVSBUF,ASJMPENDTLOOP3:MOVX@DPTR,AMOVA,#00HMOVSBUF,AINCDPTRDJNZR0,ENDTCLRESENDT:RETI多台仪表之间进行通信6.2串行通信的实现TB8作为区别当前所发送的字节是地址还是数据。当TB8=0时表明数据;当TB8=1时表明地址。接收端将RB8作为区分数据和地址的标志。上位机入口返回接收?地址或数据?是否正确?是否结束?回送00H是否一致?回送FFH接收数据发送数据接收校验码接收地址0SM2返回YYYYNNNN地址数据6.2串行通信的实现P296ORG0000LJMPMAINORG0023H
LJMPSUB1NAMEEQU#1MAIN:MOVSCON,#0F8H MOVTMOD,#20H MOVTL1,#0FDH MOVTH1,#0FDH MOVIE,#90H SETBTR1MOVR0,#30HLJMP$SUB1:
JNBRB8,LAB1MOVA,SBUFCJNEA,NAME,LAB2CLRSM2LAB2:CLRRIRETILAB1:MOVA,SBUFMOV@R0,AINCR0CLRRIRETIEND6.2串行通信的实现仪表与PC机之间的通信6.2串行通信的实现6.2串行通信的实现6.2.2仪表与上位机之间的通信
由IBM-PC机作为上位机,以80C51为核心的职能化测量控制仪表作为下位机构成小型集散式测量控制系统。下位机仪表完成现场数据采集和各种控制任务,同时将数据上传上位机进行各种处理。上位机与各个仪表之间的数据交换实际上是一种多机通信。IBM-PC机内具有异步通信适配器板,主要器件为8250UART芯片,可以与具有标准RS-232C串行通信接口的计算机或设备进行通信。6.2串行通信的实现6.2.2仪表与上位机之间的通信
80C51本身具有一个全双工的串行口,只要外接一个MAX232电平转换器就可以与PC机的RS-232C串行口连接,组成一个简单可行的通信接口。8250主要特点如下:(1)波特率范围大;(2)具有优先级的中断系统可提供对发送、接收的控制以及错误、线路状态的检测中断等;(3)可设置通信数据长度(5-8位)、奇偶校验位、停止位位数(1/1.5/2位);(4)内部的各个寄存器都有独立的端口地址。6.2串行通信的实现6.2.2仪表与上位机之间的通信8250内部寄存器的端口地址序号名称端口地址输入/输出形式1数据发送保持寄存器3F8H输出2数据接受寄存器3F8H输入3波特率因子寄存器(低位)3F8H输出4波特率因子寄存器(高位)3F9H输出5中断控制寄存器3F9H输出6中断识别寄存器3FAH输入7通信线路控制寄存器3FBH输出8MODEM控制寄存器3FCH输出9通信线路状态寄存器3FDH输入10MODEM状态寄存器3FEH输入6.2串行通信的实现6.2.2仪表与上位机之间的通信对8250的编程,异步串行通信编程步骤如下:step1:设定通信的规程,如波特率、奇偶校验方式、数据格式、数据字节长度等;step2:读取通信线路(或MODEM)的状态,判断是否可以进行通信;step3:送出(或接收)一个字节;step4:重复step2和step3直到通信完毕。当允许中断时,CPU送出(或接收)一个字节后,并不需要不断查询控制器的状态,而可转向执行其他任务。当有中断信号INT4发生并响应后,再按上述step2、step3第三步处理即可。
6.2串行通信的实现6.2.2仪表与上位机之间的通信应用8250进行串行通信时,首先要对其初始化,即设置波特率、通信采用的数据格式、是否使用中断、是否自测试操作等。初始化后,则可采取程序查询方式或中断方式进行通信。
在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS-232-C接口(又称EIARS-232-C)是目前最常用的一种串行通讯接口,是美国电子工业协会EIA(ElectronicIndustryAssociation)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程费率招标文件模板汇编集锦
- 购销合同违约方履行警告函
- 食品安全质量保障声明
- 儿童成长的安全护航
- 个性化印刷品委托合同
- 英文版建材采购合同
- 私家车安全责任承诺
- 社会投资人招标文件模板的创新发展
- 守纪律讲规矩的承诺
- 员工违规处理办法
- GB/T 13033.1-2007额定电压750V及以下矿物绝缘电缆及终端第1部分:电缆
- 《 小二黑结婚 》课件-统编版高中语文选择性必修中册
- FZ/T 21001-2019自梳外毛毛条
- CB/T 3780-1997管子吊架
- 第三部分31课财报阅读方法与技巧
- 四川省阿坝藏族羌族自治州《综合知识》事业单位国考真题
- 2023年人民法院电子音像出版社招聘笔试题库及答案解析
- 采购合同采购合同采购合同
- 四年级上册美术课件5我和动物交朋友-冀教版共
- 《机制制造技术基础》习题课件
- 儿童口腔保健及不良习惯课件
评论
0/150
提交评论