工业网络技术-通用串行端口的数据通信_第1页
工业网络技术-通用串行端口的数据通信_第2页
工业网络技术-通用串行端口的数据通信_第3页
工业网络技术-通用串行端口的数据通信_第4页
工业网络技术-通用串行端口的数据通信_第5页
免费预览已结束,剩余118页可下载查看

下载本文档

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

文档简介

1串行通信的有效性措EIA-232-D的接口标准及EIA-EIA-485的端口连EIA-485的网络连485网络的主从式通信管理(通信协议基于485总线 通信系 4.1行通信的有设置起始、停止异步传输传送一个字符的典型格式:如EIA-1位8位1位1位5678 567812波形8位数据

空闲态 连接握确认双方已建立连接,收发准备就实软件硬件握手线:如EIA-确接收方收 中中断源、中断请求信中断服务程序、中断矢中断事件特征:随中断控制器:中 、优先级控制复杂、效率高、可轮周期控制简单、资源浪费、可靠性不 4.1串行通差错检冗余数据校验:如2次重奇偶校验:数据位加上校验位中的1的总数为偶数则校验和:按字相加运CRC循环冗余校验接收方的出错处请求重发布出错信不理 EIA-232-D的接口串行 口的物理层规电子工 EIA制1969年:RS-232-1987年:EIA-232-在微机 口中广泛采内机械特性、电气特性、功能特性、规程特性、 EIA-232-D的接口机械特标准连接DB-25、DB-插针、插结构尺 EIA-232-D的接口电气特传输方式:每个信号用一根线传输,共用地负逻辑电逻辑“1”:-5~逻辑0”:+5~EIA-232-D的电气连 EIA-232-D的接口标电气特电平转TTL电逻辑“1逻辑“0232接口与TTL器件连接–采用MAX232、MAX220传输特速率20Kbps内、距离15m标准波特率系列:1200、4800、9600、19200 EIA-232-D的接口标主要技术参 EIA-232-D的接口标功能特DTE:数据终端设备,如个人计算DCE:数据通信设备,如调制解调信号联络 DB-9连接器的引线引脚信号名符流功1载波检表示DCE接收到载2接收数DTE3发送数DTE4数据终端DTE准备5信号信号公共6数据设备DCE7请求发DTE请求DCE将线路切换到发送8允许发DCE告诉DTE线路已接通可发送9指表示DCE与线路接通,出 规程特

EIA-232-D的接口标建立物理发起物理连接:发出DTR信物理连接就绪:接收到DSR信CD、数据传输请求发送数据:发出RTS信数据传输准备就绪:接收到CTS信数据传TxD、RxD、物理连接清除DTR信 EIA-232-D的接口标端口的直接连无握手连接:3全握手连自握手连 EIA-232-D串行通信的实硬件设计:接与TTL器件的连接:选用接 •+5V供2个发送24个外部电EIA-232-D串行通信的实硬件设计:接与TTL器件的连EIA-232-D串行通信的实微机串口通信的基本原理示意可编程串行 可编程中断控制器

……

EIA-232-D串行通信的实软件设应用串口调试助手测初始串行接口的初始化中断控制器的初始化查询方接收中断服务程中断退出程主程 4.2.2EIA-232-D串行通信的实串口调试助手简串口配选择端口 选择波特选择数据位数、停止位数、校验方打开或关闭串收发数据编ASCII码、二进发送方自动、手 EIA-232-D串行通信的实初始化:串行接口的初始化流程置置波特率寄存器标设置数据格式:设置数据格式:串串行接口允许接收中 4.2.2EIA-232-D串行通信的实初始化:串行接口的初始化程void{

/*writedivideregisterflag/*9600bps /*1,7,odd*/outportb(0x3fc,0x08|0x03);/*setRTS,DTR;8250INTRPToutputenableoutportb(IER, /*receiveinterruptenable} 可编程异步串行 口内部寄存器地串行口3F8---写发送寄存器/读接收寄存3F8---除数寄存器低字节(波特率因子3F9---除数寄存器高字3F9中断允3FA---中断识3FB线路控3FC---MODEM控3FD线路状3FE---MODEM状 线路控制寄存器数据位长D1005

01----6位10----7 81-----1.5位(数据位长为5)或2位(数据位长为6、7或奇偶校验选择D5D4000-----无校 001-----奇校 偶校101---奇校验,附加位为终止位D6: 正常发

111---偶校验,附加位为 终止正常发除数标志D7:0---正如设置数据格

1 波特率outportb(0x3fb, /*1,7,odd 波特率因子寄存器(高字节0x3F9、低字节波特率=1.8432MHz查表波特如设置波特率为outportb(0x3fb,0x80);/*设置 outportb(0x3f8,0x0C);outportb(0x3f9, MODEM控制寄存器D0(DTR):1-握手信号DTR有D1(RTS):1-握手信号RTS有D2D3(OUT2):1-8250的中断请求信号INTRPT可以输D4(自检控制):1-自检,即上述4个输出信号分别和串D7D6D5--无如设置握手信号如设置串行接口的中断信号允outportb(0x3fc, 中断允许寄 中D0接收数据就

1--允许中D3MODEM状态变D7D6D5D4--0000(未使用 4.2.2EIA-232-D串行通信的实查询方式发送一个字符子程序N发送移位寄存器空Y发发送一个字返 EIA-232-D串行通信的实查询方式发送一个字符子程voidsend_character(char{charstatus;{status=inportb(0x3fd)&/*waitforsendshiftregisterempty*/outportb(0x3f8,ch); /*写发送寄存器(0x3F8) } 线路状态寄存器D1-溢出D2-奇偶D3-帧格式D4D5-发送寄存器D6-发送移位寄存器D7-未若发送移位寄存器为

1有inportb(0x3fd)& 4.2.2EIA-232-D串行通信的实初始化:中断控制器的初始化流程关关中清空清空串口接收寄存器、状态寄存器 EIA-232-D串行通信的实中断退出的流程图关关中复位状态寄存器复位状态寄存器恢复恢复原中断向开中 可编程中断控制器8级硬件中IRQ4-异步通信COM1中断(中断类型号IRQ3-异步通信COM2中断(中断类型号获取中断向voidinterrupt 变量oldvect的数据类oldvect=getvect(0x0c);串口1的中断向量暂存oldvect设置中断向voidinterruptfar 函数asyncint()为中服务程setvect(0x0c,asyncint);串口1的中断向量指向程序的起始地setvect(0x0c,oldvect);串口1的中断向量设置为oldvect 中断向 可编程中断控制器中 寄存器0-允许中 中如允许串口1unsignedchar

ch=inportb(0x21)&0xef;outportb(0x21,ch);

/*0x21的D4为0/*0x21的D4为0中断结束等控制寄存器其中D5为EOI位,EOI=1为中断结束命中断服务程序结 初始化:中断控制器的初始化程序void{unsignedcharoldvect=getvect(0x0c);disable();inportb(0x3F8);inportb(0x3FA);

/*saveoldvector/*interruptdisableinportb(0x3FD);inportb(0x3FE);

8250接收寄ch=inportb(0x21)&outportb /*8259IRQ4interruptenablesetvect(0x0c,asyncint);

/*setnewvector/*interruptenable 工业计算机网络与通 EIA-232-D串行通信的实中断退出程void{outportb(0x3FA,0x00);outportb(0x3FC,

/*8250/*8250outportb(0x21,inportb(0x21)|setvect(0x0c,oldvect);}

/*8259IMR 4.2.2EIA-232-D串行通信的实中断接收服务程序流读入一个字符,读入一个字符,存入接收缓冲修改修改缓冲区的数据存入指针发发8259EOI命返 4.2.2EIA-232-D串行通信的实中断服务程 BUFFLEN100unsignedcharBuffer[BUFFLEN];unsignedint voidinterruptfarasyncint{unsignedchar

/*Readabytefrom/*saveif(buffin>=BUFFLEN) /*renewpointer /*8259EOI(中断结束命令} 主程序流初初始化:串行通信参数、中断控N串口接收到新数Y取出一个字符保存显修修改缓冲区的数据取出指针 退出退出中出 头文#include<stdio.h>#include<dos.h>

/*printf,puts,getche/*inportb,outportb,getvect,setvect,disable,enable#include#include

/*exit/*kbhit,clrsr#defineCOM1BASE#defineLCR#defineLSR#defineMCR#defineMSR#defineIER#defineIRR

全局变量 BUFFLEN100unsignedcharBuffer[BUFFLEN];unsignedintunsigned

voidvoidsend_character(charch);voidenableports(void);voidvoidinterruptfarasyncint(void);voidinterrupt(*oldvect)(void); 主程 unsignedchartem; for(;;){if(buffout!=buffin){}if(kbhit()!=0){ } 4.2.2EIA-232-D串行通信的实参考等.微机原理与 术 :电子工业杨素行等.微型计算机系统原理及应用. ,熊光明.VisualC++/TurboC串口通信编 EIA-发展历–EIA-232存在的问出现了互不兼容的连接器–EIA-两对差分平衡信–EIA-两根差分连线实现多节点、远距离的高速互物理层接口规 4.3EIA-技术参–平衡差VB的电压是VA的电压值取反,信号电压为(VA––逻辑<–逻辑>EIA-485的内部电 4.4EIA-485的端口连半双工连–广泛采用,多个节点 条信号通–485总线收发器:如TTL信号与485信号的电平转限流和过热提高负载能EIA-485半双工连EIA-485的端口连全双工连–较少采用,信号的发送和接收各有自己的通–两点连485驱动器 –多点连对网络控制权进行管EIA-485的端口连EIA-232到EIA-485端口的转–TTL到485的转 –232到TTL的转MAX233–方向控制信号»高电平:232端口接收数»低电平:232端口发送工业计算机网络与通 EIA-485的端口连EIA-232到EIA-485端口的转EIA-485的网络连网络的机械电气接–应用EIA-485的现场总线有 et–节点功能:发收数据;报文识别;检测通信错误网–总 、树 、环–扩展网段的长度、扩展连接负载的数量:中继EIA-485的网添加地–确保节点间形成电流通–接地电阻:限与接– 电电层一点接电–信 :光耦–电 :变压器耦–大 :浮动电工业计算机网络485网络的主从式通信管4.6.1协–只有1个检查报文地址并发出对主节点的从节点与从节点之间不能直接通–如:通用串行协议、Modbus–485网络的主节点对485总线的占用进行管 485网络的主从式通信管通用串行协–特EIA-485接口、主 技报文结–报文类周期性的报–传递I/O数非周期报–服务和诊断功能、不需应广播报–从节点不需应 4.6485网络的主从式通信管通用串行协–报文结起始标志+报文长度+地址域+数据域+校起始标志(1字节):固定为报文长度(1字节):即报文的最大长度为255字节–不包括起始标志和报文长度字节地址域(1字节–低5位(0~4位):从站地址–高3位(5~7位):报文类»标准报文、广播报文、镜像报文、特殊报文 4.6485网络4.6.2串行协–报文结数据域(1~253字节–参数能码–过程数据»主节点发出控»从节点传校验(1字节–校验»每个字节按位异或运 4.6485网络的主从式通信管4.6.3Modbus通信协–1979,Modicon公司开–特EIA-485接口、主 技报文结构简单、通信速率可达应答、–报文格RTU式、ASCII格主节点的查询帧、从节点的应答 4.6.3Modbus通信报文帧格ASCII模RTU模式(以4T空闲时间开始和结束 4.6.3Modbus通信ASCII和RTU传输模式的特性 4.6.3Modbus通信两种模式的比ASCII模式数据量是RTU模式的两RTU用ASCI模式的字符之间可产生长达1sLRC(纵向冗余错误校验256RTU格式被广泛采 4.6.3Modbus通信LRC生成范例 02号从机的前8个线传送的数据内容为(ASCII码)3AH30H32H30H31H30H30H30H30H30H30H38H46H35H0DH–LRC值计0BH以256为模,取余,仍为0BH的补码为F5H,即为 4.6.3ModbusRTU格式报–前导标志码、帧结束码:4T空闲时–从节点地址域(8位):0~247(0-广播地址–功能域(8位):常用–数据域(n个8位):报文最大长度为256个字数据说明(数据起始单元、数据数量等)+数–校验域(16位从地址域开生成多项式 功能ReadCoil取得一组逻辑线圈的ReadInput取得一组开关输入的ReadHoldingReadInputWriteSingle强置一个逻辑线圈的WriteSingleWriteMultiple强置一串连续逻辑线WriteMultipleModBus常用功能工业计 4.6.3Modbus通信主-从查询- 4.6.3Modbus通信从设备的应答报–正常应答:–异常应改变功能码(接收功能码+0x80),并附异常–校验错误:不应主设备的超时设–传输出 不存在的 RTU格式功能码应用举例--03ReadHolding RTU格式功能码应用举例--03ReadHolding RTU格式功能码应用举例--06WriteSingle RTU格式功能码应用举例--06WriteSingle RTU格式功能码应用举例--02ReadDiscrete RTU格式功能码应用举例--02ReadDiscrete RTU格式功能码应用举例--05WriteSingle 0x0000 0xFF00- RTU格式功能码应用举例--05WriteSingle RTU格式功能码应用举例--15WriteMultiple RTU格式功能码应用举例--15WriteMultiple 4.6.3ModbusPlus性–对介质 控制方式:主从式、令牌超时重发:两重新接收下一信息:1.5T空闲时–中继器、网桥连传输距离达1500m,可支持64个节–速率可达–报文最大字 4.6.3ModbusPlus通信协帧格–RTU格开头码+地址域+功能域+数据域+校验域+结 (2) (n) –ASCII格冒号+地址域+功能域+数据域+校验域+回车换行(1)(2) (n) 实例 温 系实例 显示屏系 系统结

温 系温 模温度传感温 系硬件组232/485转换温度传感器温 模块PC 温 系232/485原理连接无需外接电 温 系温度传感器基本特测温范围:-55℃硬件连接:一线式总 温 系温度传感器温度值的数据格式:每个温度用2个字节表 温 系温 模块概测温特支持DALLAS1-wire总线数字化温度传感操作说端子接线、地址设置、通讯网络、通讯协测试程 温 系温 模块端子接 温 系温 模块地址设8个跳线设置,断开为0,合上为如右图,地32+8+2+1通讯网一台上位机可带128个模通信参 温 系温 模块通信协议:Modbus协 温 系温 模块通信协例如 17号模块全部8个温度温温 模块-通信协 网工业计温 系测试程序界初始温 系初始准备好一帧报准备好一帧报发送发送一帧报是否收到一 文 NYN接收报文检查正数据数据处 温 系上位机的子程符;中断方式接收一个字符;CRC 准备好一帧报文:欲传送的有效数据保存在一数组InDat[]出口:按通信协议组织数据,将InDat[]中的数据加入报头、报尾、等,形成一帧新的报文暂存入另一数组SoData[]中。发送一帧报文:欲发送的一帧报文保存在一数组SoData[]出口:将SoData[] 温 系上位机子程序构接收报文检查功能:从机地址检查、CRC校验SiForm[]出口SiForm[]中的报文若正确,函数返回值为0;数据处理功能:按功能码不同,对SiForm[]中的报文执行不同:校验正确的接收报文保存在一数组SiForm[] 出口:提取温度数据,计算温度值,保存、显示、传输温度值或执行其它操作。 温 系上位机子程序构是否收到一 文 :串行口接收数据以中断方式保存在一接收缓存区SiBuf[] ;否则返回值为0典型程序分定义Si_in为串行接收缓冲区SiBuf[]定义Si_out为串行接收缓冲区SiBuf[] int{int unsignedcharif((Si_in- 21为报文长度{/*printf("\n--->>> Si_in=%dfor(i=0; if(Si_out>= }}else{ return(flag); 工业计算机网络与

温 系初始初始N是否收到一 文YN接收报文检查正数据数据处组织组织回应报发送回应报 温 系下位机主循环程 printf("\n\nwaitASKINGframe..."); if{if(!check_frame())/*帧检查,正确则返回0 if(略…) }}if { } 温 系下位机子程序—报文处 unsignedchar case }}

/*获取传感器温度数据 显示屏系显示1系显示1单单片485机• 机• 单片显示单片显示n 口电PC侧:EIA-232与EIA-485接口转单片机侧:TTL与EIA-485接口转通信协议:自定 显示屏系上位机与下位机的任务划上位机(PC机集中管理:询检信息处理与传下位机(单片机显示信自诊 显示屏系通信协通信方主从式通信通信参异步、波特率为9600bps8位数据位、1位起始位、1位停止起始标志起始标志长度(从报头至校验字的所有字节接收方地址(1字节发送方地址(1字节数据校验字R通 显示屏系通信协报文类通用问讯报文(主机–无上送数据(从机–有上送数据(例:告警)(从机显示信息传送报文(主机–回应显示信息报文(从机 通信协

显示屏系通用问讯报文(主机012接收方地址(从3发送方地址(40x01(功能码5CRC高字6CRC低字 显示屏系通信协通用问讯应答报文(从机)—无上送012接收方地址(主机地址3发送方地址(从机地址45CRC高字6CRC低字 显示屏系通信协通用问讯应答报文(从机)—有上送012接收方地3发送方地012接收方地3发送方地450x01(编号6CRC高字7CRC低字显示屏系01012接收方地3发送方地45…89CRC高字网CRC低字 络与通显示数据传送(主机显示屏系通信协显示数据传送应答报文(从机)—接收012接收方地3发送方地45CRC高字6CRC低字 显示屏系通信协显示数据传送应答报文(从机)—接收012接收方地012接收方地3发送方地45错误编6CRC高字7CRC低字 显示屏系软件构头文件、宏定义、全局变 、函主程子程序…子程序中断服务 附录 温 系上位机程序:void

function SoData[6]=(unsignedchar)((crc&0xff00)>>8);SoDat

温馨提示

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

评论

0/150

提交评论