我的位置:首页 >> 限位开关

串行通讯协议的研究及应用黑河

发布时间:2022-07-14 17:44:17 来源:嘉鼎机械网

串行通讯协议的研究及应用

1、 引言

串行接口一般包括RS232/422/485,其技术简单成熟,性能可靠,价格低廉,所要求的软硬件环境或条件都很低,广泛应用于计算机及相关领域,遍及调制解调器、串行打印机、各种监控模块、PLC、摄像头云台、数控机床、单片机及相关智能设备,甚至路由器也不例外(通过串口设置参数)。在计算机监控系统中,主控机一般采用工控机,通过串口与监控模块相连,监控模块再连接相应的传感器和执行器,如此形成一个简单的季度保养可以说是1个不小不大的保养计划双层结构的计算机监控系统。这种结构主要用于单独的中小型企业或部门,如果属于综合型企业或部门,如电力系统监控,高速公路监控和收费系统,则可以此为基础结构进行扩充,用集线器将众多双层监控系统连接起来,再用交换机将若干集线器连接起来,统一接上路由器,从而跟Internet互联(当然,软件结构也得作调整),如此即可形成一个庞大的计算机监控络。由此可见,尽管现代计算机的新接口层出不穷,各种络也日新月异,其规模也越来越大,但是,其基础结构却有不少是串行通讯系统,串行通讯也成了其中的核心技术。

2、串行通讯难点及协议

串行通讯是半双工形式,通过串口发送数据相对简单,在时间上可以随意控制,如果使用微软提供的通讯控件X,只要直接给Output属性赋值即可;使用Turbo C 2.0语言或汇编语言,也只要在一个循环之内向串口的数据端口写数据即可。但是,接收数据则比较麻烦,因为中断接收时,数据常常不均匀流畅,其中存在空白间隔,给数据处理带来困难。大部分监控模块都有串口初始化函数、数据发送和接收函数,如果直接使用数据接收函数来接收数据,则由于以上问题,常常接收到残缺的数据,使工作无法完成,尽管逻辑上没有任何错误。在具体实现上,应该在接收到第一批数据时2、是拉力速度的问题,开始等待T时间片,将第一批数据与随后的第二批数据相加,如此继续循环,直到新的T时间片结束而无数据到达,再跳出循环。至于T时间片大小的选取,应该根据具体的模块或设备来调整,直到性能可靠为止,此时的时间片即为所需要的T。数据接收算法见图1所示。

图1 数据收算法

为方便行文,将与计算机(主控机)串口相连的模块或系统统称为智能设备(有时包括工控机本身)。串行通讯的协议一般可分为两类,即读和写。读协议为读取智能设备的数据,写协议为设置智能设备参数或发送控制命令,读协议要求有响应,写协议可以没有响应。读写协议描述见图2所示(关于响应协议略)。常见的校验码有异或、累加和、CRC等。

图2 通讯协议示例

3、 通用软件设计

目标为设计一个通用串行通讯软件,使运行该软件的计算机(在图示中用带阴影的文本框表示)作为主控机可以自动地测试智能设备,也可作为智能设备用来自动地测试主控机上的监控软件,至于临时发送数据以代替主控机或智能设备,则是其基本功能。为了提高通用性,软件主界面尽量简洁,用两个单行文本框显示当前接收或发送的数据,其一为16进制形式(如“41”),其二为字符形式(如“A”),用一个多行文本框显示历史数据,包括接收和发送的数据、串口信号线的变化以及发生的时间(精确到毫秒),其它按钮用来打开和关闭串口、发送数据、设置串口参数及系统参数等。用Access 2000数据库记录数据,其中包括智能设备表、协议标志表、历史通讯数据记录表等,与协议表相关的表必须包含主控机协议及智能设备协议两个字段。采用VB6.0环境来完成此软件,所用的主要控件包括数据控件、X、Timer等。为了灵活工作,模拟各种智能设备,需要设计一“协议生成器”,对于图2所示的“读协议”,协议生成器的功能为:首先选择智能设备(由此确定协议标志),设置地址范围(即动态数据),则软件在此范围内自动生成地址,然后计算校验码,有的智能设备还需要追加协议结束标志,如调制解调器的AT命令就需要以回车符结束方才有效。协议生成器构造如图3所示。

图3 协议生成器

主控机与智能设备方式。充当主控机时,可以定时向智能设备发送读协议。充当智能设备时,用来响应主控机,其响应协议有两种生成方式,静态和动态。静态方式时,接收到主控机的协议,查找协议表,如果能匹配主控机协议,则将该条记录的智能设备协议发出(先让该软件以主控机方式工作,与实际的智能设备相连,从而记录下智能设备的响应协议,可参考下文的“截取通讯协议”部分);在动态方式下,找到匹配的主控机协议时,响应协议利用协议生成器动态生成。

自动与手动是针对主控机而言。自动方式需要设置定时器,定时向智能设备发送读协议;对于手动方式,则是通过发送按钮来发送数据,从而等待智能设备的响应并显示之。

软件的总流程为:设置串口参数,选择智能设备,设置协议生成方式及动态数据范围,设置主控机或智能设备工作方式,如果是主控机,还需要设置定时器,以及是否记录智能设备响应的协议;如果是智能设备,应选择静态响应或动态响应方式。主程序流程图见图4所示。

图4 主程序流程图

4、 软件的应用

4.1 发送短消息

短消息协议如图5所示。将软件设置成主控机手动状态,选择设备,如果想发送“OK!”,只要在单行字符文本框中直接输入“OK!”,并点击“发送”按钮,则软件自动填充其它数据,并计算BCS校验码,然后将数据发出。此协议是短消息协议之一,所采用的模块来自西门子公司。

图5 短消息协议

4.2 通过Modem进行远程测试

将软件设置成主控机手动状态,选择Modem设备,在单行字符文本框中输入号码(如),点击发送按钮,则软件自动发送AT命令“ATDT;”+回车符,完成与远程设备的连接,然后即可根据需要采用主控机或智能设备方式,自动或手动方式进行测试(AT命令中的“;”表示拨通对方后保持连接状态)。对Modem进行合适的设置,可以使其自动摘机。

4.3 模拟主控机用来测试智能设备的数据性能

在计算机监控系统中,需要选择或自行设计一些特殊的智能设备,但是,其数据性能如何?这可需求根据外观和地基图来调剂以通过模拟主控机来测试,将其设置成主控机自动工作方式,协议也采用动态生成方式,对智能设备响应的协议进行分析(包括协议标志及校验码),如果有错误,则记录发生时间、主控机协议与智能设备的响应协议。测试原理见图6所示,其中协议库中为动态生成的主控机协议,错误记录即为主控机协议与对应的智能设备响应的错误协议,虚线箭头表示协议来源(下同),实际通过主控机进行记录。总的测试报告内容见表1所示,单位为发送或接收的次数。详细的测试分析可以借助错误记录进行。

图6 测试智能设备

表1 智能设备数据性能报告

正确率=99.95%,所用时间22:35:19

4.4 模拟智能设备测试主控机软件性能

将软件设置成智能设备动态响应状态,充当智能设备角色,自动应答主控机的查询命令。如图7所示,当收到主控机协议并在协议库中找到匹配的协议时,动态生成智能设备的协议进行响应。这种功能可用来配合开发或调试主控机程序,特别地,当智能设备比较昂贵数量较少,或体积庞大不便运输时,采用此方式可以并行异地开发和调试针对智能设备的监控程序,既节省成本,也可极大地提高工作效率。作为一种特例,可用一台PC机进行模拟开发和调试,智能设备挂在COM2口,开发或调试的软件挂于COM1口,COM1和COM2对接。单机仿真开发模型见图8所示。

图7 测试主控机

图8 单机仿真开发模型

4.5 截取通讯协议

现假设某公司生产一智能设备,与该设备配套的测试软件运行于测试机上。现欲截取测试机与智能设备之间的通讯协议,作者的软件运行于侦听机上(如图9所示)。在这里,侦听机充当二传手的作用,首先通过COM1口截取测试机发来的协议,存入协议库,随后通过COM2口将原协议发往智能设备。侦听机通过COM2口收到智能设备的响应后,将协议存入协议库(与相应的测试机协议位于同一条记录),随后通过COM1口将原协议发往测试机。如此即可将测试机与智能设备之间的通讯协议全部截取并保存。

图9 截取通信协议

4.6 通讯协议的破译与应用

通讯协议一般包括功能码、地址码、有效数据、校验码和结束标志(可选),常用的校验码有异或、累加和、CRC等。通讯协议截取后,依次分析校验码、功能码、地址码和数据。可以模拟主控机观察智能设备的动作响应和信号灯变化,也可以模拟智能设备观察主控机软件界面的变化。如果协议没有加密,则只要直接分析协议即可;如果协议已经加密,可以利用密码学中的方法去分析解密,然后再分析协议本身。有的通讯协议在数据加密的同时,还配合信号线的变化。由于软件主界面的多行文本框显示并记录着串口的收发数据及信号线变化的历史状态,包括发生时间,这给协议分析提供了重要的原始资料。

协议破译成功后,即可自行开发软件对智能设备进行监控。在文献1中,作者遇到从德国进口的大型柴油发电机组(以下简称油机),可利用提供的串口对其进行监控。但是,却没有该油机的合适新型能源版本的通讯协议,只有厂家配套免费提供的简单的油机测试软件(运行于主控机上)。一般情况下,都是通过人工对油机启动或停机。在项目改造中,需要对油机进行监控,如果编写项目任务书,请厂家设计监控软件,无疑周期较长,价格较贵。作者通过此协议截取和破译方法,成功地破译其通讯协议,并设计出监控软件。

5、 结论

该研究成果是作者多年从事计算机监控系统的经验总结和理论升华,解决了串行通讯中遇到的核心技术问题,对各种智能设备的工作方式和通讯协议作了深入的分析和研究,并在实际工作及工程中得到了应用和验证。实践表明,该研究成果可广泛应用于智能设备的测试及计算机监控系统(onspring@) 。

参考文献∶

[1] 马玉春,赵跃华·高山无人站监控系统设计与开发·电脑开发与应用[J],2000,13(9):

[2] MSDN Library Archive··2002

作者简介∶马玉春(1969~),男,计算机应用专业博士,主要研究方向为计算机监控和络技术。(end)

Python Flask小程序实战
Spark
接口测试培训课程
相关阅读
国家发改委21天内先后批复16条铁路5个动物雕开原锻压机家电芯片电动葫芦Trp

国家发改委21天内先后批复16条铁路5个机场国家发改委21天内先后批复16条铁路5个机场中国工程机械信息在10月16日到11月5日这21天的时间里,国家发改委先后批复了16条铁路和5个机场共21个基建项目,

04月18日 13:48
国内塑料HDPE出厂价格11112淄博无刷马达专业原煤弹性袜胶印机Trp

国内塑料HDPE出厂价格品名牌号生产企业价格涨跌日期备注HDPEHD5502A微晶石A采取微机停止数据处置剖析上海赛科116000HDPEHD5070EA盘锦乙烯119000合同价:11750HDPE2200J大庆石化11100 下面山东思达高科机械装备

04月18日 08:52
临沂市场PP行情动态1116POS机螺套氯丁橡胶礼品包装调音台Trp

临沂市场PP行情动态受原油和石化出厂价下调的影响,临沂市场PP价格下氧化物:2氧化硅、硅藻土、氧化铝、2氧化钛、氧化铁、氧化锌、氧化镁、3氧化2锑、高铁酸钡、高铁酸锶、氧化铍、氧化铝纤

04月18日 06:50
我国首个铁路编组综合自动化系统正式投入运镗刀木质线材刻章机中餐厌氧胶Trp

我国首个铁路编组综合自动化系统正式投入运营2010年8月2反应设备8日 我国首个铁路编组站综合非标螺母自动化系统正式投入运营。8月28日,工作人员通过西安新丰镇编组站综合自动化系统指挥列车

04月18日 06:41
全球最大塔机智能工厂开园拟打造百亿级智能豆皮机铸钢闸阀可调脚汽车球头不锈钢管Trp

全球最大塔机智能工厂开园 拟打造百亿级智能制造产业高地特殊鞋底据报道,中联重科全新打造的塔式起重机智能工厂11日在常德开园,这是全球最大的塔机智能工厂,拥有12条自动化生产线、100多

04月18日 03:04
金九银十氨纶市场期待强烈餐椅汽车轴承防护眼镜喇叭电子尺Trp

“金九银十” 氨纶市场期待强烈氨纶业 金九银十 仍为市场强烈期待。贸易商、分析师及企业多方观点达成一致认为,氨纶的旺季迹象已逐步显现,但仍取决下游复苏。目前氨纶主流规格40D的价格基

04月18日 01:33
友情链接: 300kN弹簧疲劳试验机 速生白蜡半成品 液压试验机 文化衫订制 摘镜小护卫 石家庄皮肤病医院 家庭常备药 数显电子式万能试验机WDS-100M厂 离婚起诉律师 北京市离婚律师收费 锦星服装定制 招聘 灰指甲穿袜子会传染其他指甲吗 手洗鞋袜会被传染灰指甲吗 灰指甲里面痛是什么原因造成的 寻医问药 许昌口腔医院 北京离婚官司 安康牛皮癣专科医院哪家好 诉讼离婚 凉山牛皮癣医院哪家好 上海离婚请律师费 嘉峪关治疗肿瘤专科医院 三亚癫痫病 财产分割 Glass Furniture 可舒网 南京定做工作服 Extensometer Specification 寻医问药 上海看青光眼哪家医院好 浙江骨科哪家医院好 北京治疗肾病哪个医院好 上海眼科专科医院排行榜 浙江治疗精神科心理科医院哪家好 妙兰网 Manufacturers In China