好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

铁路远程控制系统.doc

25页
  • 卖家[上传人]:f***
  • 文档编号:159014385
  • 上传时间:2021-01-04
  • 文档格式:DOC
  • 文档大小:312.50KB
  • / 25 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 名称:现代铁路远程控制系统作业报告专业:自动化(交通信息工程及控制) 一、RS232通信(1).概述RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值RS-232只限于PC串口和设备间点对点的通信RS-232串口通信最远距离是50英尺 RS-232也称标准串口,最常用的一种串行通讯接口它是在1970年美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”传统的RS-232-C接口标准有22根线,采用标准25芯D型插头座(DB25),后来使用简化为9芯D型插座(DB9),现在应用中25芯插头座已很少采用 RS-232采取不平衡传输方式,即所谓单端通讯由于其发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。

      RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ所以RS-232适合本地设备之间的通信RS232C串口通信接线方法(三线制): 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口): 串口连机线 DB9-DB9 2-3,3-2,5-5 DB25-DB25 2-3,3-2,7-7 DB9-DB25 2-2,3-3,5-7 DB9-DB25串口转接线 2-3,3-2,5-7 上面是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接串口调试中要注意的几点: 不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接 串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,否则串口易损坏。

      对于大型的工控和测量设备,建议使用光电耦合器来隔离设备,具体的耐压值根据实际需求来确定2)、RS-232通信程序的编制PC系列微机的串行异步通信接口板上用的UART通用异步收发器是一片INS8250芯片,以它为核心,附加一些辅助电路(如I/O地址译码电路、电平变换电路等),组成了RS-232接口所以对RS-232的编程实际上是对8250的编程1) 、8250的10个寄存器地址从编程的意义出发,它可以简化为10个I/O编址的寄存器,表2所列为串口1的10个寄存器的I/O地址表2 串口1的10个寄存器的I/O地址I/O地址输入/输出相应寄存器3F8H输出发送保持寄存器3F8H输入接收数据寄存器3F8H输出波特率分频器低位3F9H输出波特率分频器高位3F9H输出中断允许寄存器3FAH输入中断标志寄存器3FBH输出线控制寄存器3FCH输出MODEM控制寄存器3FDH输入线状态寄存器3FEH输入MODEM状态寄存器注:串口1 OX3F8,串口2 OX2F8,串口3 OX3E8,串口4 OX2E8从功能上划分,10个寄存器可分为两组:A. 一组用于工作方式:波特率分频器低位,波特率分频器高位,线控制寄存器,MODEM控制寄存器,中断允许寄存器,共5个。

      B. 一组用于通信传输:接收数据寄存器,发送保持寄存器,线状态寄存器,MODEM状态寄存器,中断标识寄存器,共5个1) 8250初始化A. 波特率设置:波特率设置是用out(outportb)指令向地址3F8H、3F9H的两个波特率分频器置入何时的值实现的波特率计算分频系数为:分频系数=1843200/(16*波特率)表3所示为常用波特率与分频系数的对应关系表3 常用波特率与分频系数的对应关系波特率分频系数高位分频系数低位30001H80H60000HC0H120000H60H240000H30H480000H18H960000H0CHB. 线控制寄存器初始化:以串口1为例串口1线控制器地址为3FBH字符代码传送格式参数各位定义为:D7D6D5D4D3D2D1D0其中,D1D0表示数据位数:D1D0数据位005016107118D2表示停止位:D2停止位说明0111.5D1D0=0012D1D0<>00D4D3表示校验方式:D4D3校验方式*0无校验01奇校验10偶校验D5表示是否为不变校验位:D5是否为不变校验位说明0否11校验位永为1D4D3=011校验位永为0D4D3=111永无校验位D3=0若D6=0,则禁止间断,正常发送;若D6=1,强迫在发送数据线上输出逻辑0.若D7=1,设置波特率;若D7=0,其他。

      C. MODEM控制寄存器初始化:串口1的MODEM控制寄存器的地址为3FCH,各位定义为:000D4D3D2D1D0其中,D0=1,使DTR输出有效;D1=1,使RTS输出有效;D2=1,使OUT1输出有效;D3=1,使OUT2输出有效(用于中断控制);D4=1,使SOUT与SIN内部接通,自测试循环回送状态D. 中断允许寄存器初始化:串口1的中断允许寄存器的地址为3F9H,各位定义为:0000D3D2D1D0其中,D0=1,允许接收的数据准备好发中断;D1=1,允许发送保持寄存器空发中断;D2=1,允许接收字符出错或收到间断状态发中断;D3=1,允许MODEM状态改变发中断3)、收发通信编程8250初始化后,就可用inportb()或outportb()指令接收或发送数据;但是,在通信过程中还必须解决接口丢失信息的问题A、 线状态寄存器线状态寄存器串口1的地址为3FDH,可用输入指令把它读入CPU,线状态寄存器各位定义为:0D6D5D4D3D2D1D0其中,D0=1,接收数据准备好;D1=1,数据被冲出错;D2=1,校验出错;D3=1,数据格式出错;D4=1,检出间断;D5=1,发送保持寄存器空;D6=1,发送移位寄存器空。

      接收数据在用inportb指令输入代码前,必须先测试线状态信息的D0是否为1,不为1意味着没有新的数据进入接收数据寄存器;从另一角度说,一旦D0=1,应该很快用inportb指令将接收数据寄存器的新代码读入CPU,否则,就有可能被新进入的数据冲掉(如果出现冲掉现象,D1将置1)在对接收数据寄存器执行inportb指令时,将使线状态寄存器的D0置0,表示数据已取走,新的数据还未发来发送数据测试D5是否为1;不为1意味着发送保持寄存器中的前一个字符还未发完如果此时输出代码就会丢失信息只有在测试D5为1时,才能向发送保持寄存器发新的代码,向发送保持寄存器发送新的代码后,使D5置0.A. MODEM状态寄存器MODEM状态寄存器串口1的地址为3FEH,各位定义为:D7D6D5D4D3D2D1D0其中,D0=1,CTS上的信号改变过;D1=1,DSR上的信号改变过;D2=1,RI上的信号改变过;D3=1,DCD上的信号改变过;D4=1,CTS状态:の=1,DSR状态;D6=1,RI状态;D7=1,DCD状态CTS:对方通知本方可以向对方发送信息DSR:对方通知本方,对方已可以工作RI:对方来的铃响信号指令。

      DCD:对方通知本方已检测到线路有载波D0~D3:反映信号的变化当对这个状态寄存器执行IN指令都将使低4位清0只有相应的状态信号线上的有效信号重新到来,才能使低4为相应置1.MODEM控制寄存器的位0和位1分别控制发出DTR和RTS信号DTR信号表示本方接口是否正常工作,RTS是向对方表示是否将向对方发送代码D4~D7:反映接口对方当前状态的信息综上所述,借助硬件实现流量控制的过程就是:一方面,无论读入字符还是发送字符前,都要先测试线路状态和对方(MODEM)的状态,根据测试结果再决定下面操作另一方面,向对方提供自己的状态,使对方也能根据本方状态的测试决定如何操作3).RS-232的应用实例设串口1数据为8位,1位停止位,无校验位,波特率1200,把键盘输入的字符送到另一台机器上,并显示出来,当输入字符“Q”时退出系统使用虚拟串口vspd#include”dos.h”void main(){ char ch; int m; clrscr(); outportb(0x3fb,0x80);outportb(0x3f8,0x60);outportb(0x3f9,0x00);outportb(0x3fb,0x03);outportb(0x3fc,0x03);outportb(0x3f9,0x00);sleep(1);m=inportb(0x3f8);m=0;do{ if(kbhit()) { ch=getch(); outportb(0x3f8,ch); if((inportb(0x3fd)&0x01)==0x01) } if((inportb(0x3fd)&0x01)==0x01) { m=inportb(0x3f8); Printf(“%c”,m); } }while(m!=’Q’);txtout:; }Receive From COM1:dechang zhou 20103027Send to COM2:dechang zhou 20103027二、CRC原理综述(1)、概要CRC校验的基本思想是利用线性编码原理,在发送端根据要传送的是k位二进制码序列,以一定规则产生一个校验用的r位监督码(CRC码),附在原始信息后边,构成一个新的二进制码序列数共k+r位,然后发送出去。

      在接收端,根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错设编码前的原始信息多项式为P(x),P(x)的最高幂次加1等于k;生成多项式为G(x),G(x)的最高幂次等于r; CRC多项式为R(x);编码后的带CRC的信息多项式为T(x)发送方编码方法:将P(x)乘以Xr(即对应的二进制码序列左移r位),再除以G(x),所得余式即为R(x)。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.