- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RS232串口通信及TCP_IP通信讲解
现代铁路远程控制系统
(课程设计)
一、RS232的电气特性:
RS-232对电气特性、逻辑电平和各种信号线功能都作了规定。
在TxD和RxD上:
逻辑1(MARK)=-3V~-15V
逻辑0(SPACE)=+3~+15V
在RTS、CTS、DSR、DTR和DCD等控制线上:
信号有效(接通,ON状态,正电压)=+3V~+15V
信号无效(断开,OFF状态,负电压)=-3V~-15V
以上规定说明了RS-232标准对逻辑电平的定义。
对于数据(信息码):逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平高于+3V。
对于控制信号:接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在-3V~-15V或+3V~+15V之间。
RS-232 与TTL转换: RS-232是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在 RS-232 与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTL←→EIA双向电平转换。
RS232的最大通信距离为15m,最高传输速率为20kbps,只能进行一对一的通信。RS232使用9针或25针的D型连接器,PLC一般使用9针的连接器,距离较近时只需要3根线。
二、虚拟rs232通信程序,虚拟串口软件VSPD ,加入16位的crc校验。
1、串口通信
采用VC++编写程序实现PC COM1口与COM2口数据通信。实现在程序界面的一个文本框中输入字符,通过COM1口发送出去,通过COM2口接收这些字符,在另一个文本框中显示,反之亦然。
用MSComm控件事件方式实现pc双串口互通信。两接口相互发送与接收信息,COM1口发送信息,COM2口接收信息如下:
COM2口发送信息,COM1口接收信息如下:
2、CRC校验
采用字节型算法,字节型算法如下:
1)CRC寄存器组初始化为全0(0x0000)。(注意:CRC寄存器组初始化全为1时,最后CRC应取反。)
2)CRC寄存器组向左移8位,并保存到CRC寄存器组。
3)原CRC寄存器组高8位(右移8位)与数据字节进行异或运算,得出一个指向值表的索引。
4)索引所指的表值与CRC寄存器组做异或运算。
5)数据指针加1,如果数据没有全部处理完,则重复步骤2)。
6)得出CRC。
三、TCP/IP通信程序,分别实现TCP和UDP通信。
UDP通信
UDP是一种无连接的、不可靠的传输协议,也无法保证数据包的传输顺序,UDP协议常用于对传输可靠性不高,而对协议传输速率要求较高的场合。
Windows中的网络协议实现基于套接字socket,套接字是一个io句柄,其读写方法类似于文件io。
本次首先建立一个UDP客户程序,程序先建立一个UDP套接字,向指定地址发出一个数据包,然后等待服务器的回应,再实现一个UDP服务端程序,程序先建立一个绑定到本机指定端口的socket,然后等待网络数据,接收到网络数据后,给对方发出回应,具体过程如下:
服务器首先启动,通过调用socket( )建立一个套接口,然后bind( )将该套接口和本地地址(IP地址和端口)联系在一起,服务器调用recvfrom ( )等待接收数据。客户机通过调用socket( )建立一个套接口,然后bind( )将该套接口和本地地址(IP地址和端口)联系在一起,客户机调用sendto( )向服务器发送数据;服务器的recvfrom ( ) 接收到客户机的数据后,调用sendto( )向客户机发送应答数据;客户机的recvfrom ( ) 便接收到了服务器的应答数据;最后,待数据传送结束后,双方调用closesocket( )关闭套接口。
建立步骤如下:服务器端 socket--bind--listen--accept
您可能关注的文档
最近下载
- 2025CSCO非小细胞肺癌诊疗指南2025.docx
- 第二节+串并联电路中电流的规律(教学课件)物理鲁科版(五四学制)2024九年级上册.pptx VIP
- 电信研发工程师L1题库.xlsx VIP
- DBJD25-67-2019 甘肃省建筑与装饰工程预算定额地区基价 不含税 中册.docx VIP
- 水生态产品价值实现路径.pptx
- 学习解读《中华人民共和国反不正当竞争法》课件(2025年新修订版).pptx VIP
- 数据架构、应用架构、业务架构及技术架构4A架构设计方案.pptx VIP
- 组合式空调机组运行调试使用及维护.pdf VIP
- 工程类邀请招标文件参考模板.doc VIP
- 电力内外线课题六 配电线路设备.ppt VIP
文档评论(0)