(计算机应用技术专业论文)reedsolomon纠错码研究及在modbus通信协议中的应用.pdf_第1页
(计算机应用技术专业论文)reedsolomon纠错码研究及在modbus通信协议中的应用.pdf_第2页
(计算机应用技术专业论文)reedsolomon纠错码研究及在modbus通信协议中的应用.pdf_第3页
(计算机应用技术专业论文)reedsolomon纠错码研究及在modbus通信协议中的应用.pdf_第4页
(计算机应用技术专业论文)reedsolomon纠错码研究及在modbus通信协议中的应用.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

(计算机应用技术专业论文)reedsolomon纠错码研究及在modbus通信协议中的应用.pdf.pdf 免费下载

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

文档简介

独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 虢攀壶日期洲。年y 胁日 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:乏迹导师签名: b 期:c 7 - 纠0 年月艿日 , 一 ( , 摘要 摘要 r e e d s o l o m o n 纠错码算法作为编解码领域中出色的算法被广泛应用于各个方 面。尤其在数据恢复方面的应用较为突出。算法本身又构建于有限域的数学运算 之上,从而凸现了有限域运算在计算机领域中的重要位置。 m o d b u s 通信协议是一种工业领域里控制器间的通信协议。并因为其优良的特 性逐渐成为工业以太网通信中的标准。协议自身对帧格式的定义简洁而明了,方 便了通信双方的交互。同时也为组建m o d b u s 网络提供了软件上的统一性。 若以m o d b u s 通行协议为基础构建服务端,单纯的对客户端请求进行响应而 不对接收到的数据进行保留并备份,无法保证服务端的数据可靠性和完整性。 本论文正是针对上述问题,以r e e d s o l o m o n 纠错码算法为主要的实现和研究 对象,在深入分析m o d b u s 通信协议机理的基础上,将算法应用到m o d b u s 协议当 中,并对算法在有限域上面的基本运算进行了创新性和探索性研究。主要内容为: 1 研究了m o d b u s 通行协议的通信原理,并对协议帧进行了详细的描述和总 结。同时以某些典型的协议帧为例,进行了实例化说明。 2 依据对m o d b u s 通信协议的研究,构建m o d b u s 服务端。其中详细描述了 服务端的设计、构建和实现。 3 详细研究了r e e d s o l o m o n 纠错码算法的实现原理,并以r a i d 系统为例 称述了该算法在系统中的应用方式。着重研究了基于同一有限域上的两个算法在 基本数学运算。从抽象的数学理论角度,证明了它们在有限域上的运算一致性。 4 参照r e e d - s o l o m o n 纠错码算法的理论内容,用自己的模块定义方式实现 了该算法。同时对编程过程中遇到的问题做了分析和总结。 5 将r e e d s o l o m o n 纠错码算法实现模块和m o d b u s 通信协议模块相结合,实 现了算法在该通信协议中的应用。 关键词:m o d b u s 通信协议,r e e d - s o l o m o n 纠错码算法,r a i d 系统,有限域 t q 一 一 一些璺型塑 a b s t r a c t r e e d - s o l o m o n c o a m gf o rf a l l l t = t o l e r a n c ei sa ne x c e l l e n t a l g o r i t h m o n e n c o d i n ga n dd e c o d i n gf i e l d s ,w h i c hi sw i d e l yu s e di na l l a s p e c t s i np a r t i c u l a r , t h e a p p l i c a t i o n o fd a t a r e c o v e r y i sm o r e p r o m i n e n t a l g o r i t h m i t s e l f d e p e n d s o n m a t h e m a t i c a lo p e r a t i o n so nf i n i t ef i e l d , w h i c hh i g h l i g h t s i m p o r t a n tp o s i l i o no ft h e o p e r a t i o n so nf i n i t ef i d di nt h ec o m p u t e ri n d u s t r y m o d b u sc o m m u n i c a t i o n p r o t o c o li sa nc o m m u n i c a t i o n p r o t o c o lb e “v e e n c o n t r o l l e r si nt h ei n d u s t r i a lf i e l d a n db e c a u s eo fi t se x c e l l e n tp r o p e r t i e si th a sb e e n b e c o m i n gas t a n d a r di n d u s t r i a le t h e m e tc o m m u n i c a t i o n sp r o t o c o l ,w l o s e 丘锄ef o n n a t i sd e f i n e d c o n c i s e l ya n dd e a r l y , t of a c i l i t a t et h ec o m m u m c a t i o no fb o t h s i d e s m e a n w h i l e , t h ep r o t o c o lp r o v i d e st h eu n i t yo ft h es o f t w a r ef o rt h e 旬姗a t i o no f m o d b u s n e t w o r k i fm o d b u ss e r v e r m e r e l yr e c e i v e sd a t e sa n dr e s p o n d st oc l i e n t ,sr e q u e s t s ,a n d d o e s n ts t o r ed a t e sa n db a c k u pt h e m ,t h es e r v e rc a nn o tg u a r a n t e et h er e l i a b i l i t ya n d i n t e g r i t yo fi t sp e r f o r m a n c e i no r d e rt o r e s p o n s et ot h e s ei s s u e s ,t h ea l g o r i t h mi s a p p l i e dt om em o d b u s p r o t o c o l ,w i t hr e e d s o l o m o nc o d i n gf o rf a u l t t o l e r a n c e b e i n gt h em a i no b j e c to f s t u d ya n da n a l y s i s i n gd e e p l yt h em e c h a n i s mo fm o d b u sc o m m u n i c a t i o np r o t o c 0 1 m e a n w h i l e ,t h ep a p e rc a r r i e so u ti n n o v a t i v ea n de x p l o r a t o r yr e s e a r d hf o rm eb a s i c o p e r a t i o n so nf i n i t ef i e l di nt h ea l g o r i t h m t h em a i nr e s u l t sa r ea sf o l l o w s : 1 m o d b u sc o m m u n i c a t i o nt h e o r ya n dp r o t o c o lf r a m ef o r m a ta r ed e s c r i b e d a 1 1 d s u m m a r i e di nd e t a i l a tt h es a m et i m es o m et y p i c a lp r o t o c o lf r a m e sa r es p e c i a l i z e df o r e x a m p l e s 2 i na c c o r d a n c ew i t ht h es t u d yo f t h em o d b u sc o m m u n i c a t i o np r o t o c o lm o d b u s s o lv e rl sc o n s t r u c t e d ,i n c l u d i n gi t sd e s i g n ,c o n s t r u c t i o na n d i m p l e m e n t a t i o n 3 r e e d s o l o m o nc o d i n ga l g o r i t h mi m p l e m e n t a t i o np r i n c i p l ei ss t i l d i e di nd e t a i n i t sa p p l i e dp r o c e s si sc o n c e r n e di nt h er a i ds y s t e ma sa ne x a m p l eo ft h ea l g o r i t h m i m p l e m e n t a t i o n t h i st h e s i sf o c u s e so nt w ob a s i cm a t h e m a t i c a la l g o r i t h mb a s e do nt l l e i i a b s t r a c t s a m ef i n i t ef i e l d f r o mt h ep e r s p e c t i v eo fa b s t r a c tm a t h e m a t i c a lt h e o r y , t h ec o n s i s t e n c y o ft h e i ro p e r a t i o n si sp r o v e d 4 r e f e r i n gt or e e d s o l o m o nc o d i n gt h e o r y , i ti sr e a l i z e dw i t hm yo w nd e f i n e d m o d u l e s a tt h es a m et i m es o m ee n c o u n t e r e dp r o b l e m sa l ea n a l y z e da n ds u m m a r i z e d i nt h ep r o g r a m m i n g p r o c e s s 5 t h er e e d - s o l o m o nc o d i n gf o rf a u l t - t o l e r a n c ea l g o r i t h mm o d u l ea n dt h e m o d b u sc o m m u n i c a t i o np r o t o c o lm o d u l e sa l ec o m b i n e d ,a sd e n o t e st h ea l g o r i t h m a p p l i c a t i o ni nt h ec o m m u n i c a t i o np r o t o c 0 1 k e y w o r d s :m o d b u sc o m m u n i c a t i o np r o t o c o l ,t h er e e d - s o l o m o nc o d i n gf o rf a u l t - t o l e r a n c e a l g o r i t h m ,r a i ds y s t e m ,o nt h ef i n i t ef i e l d i l l 目录 目录 第一章绪论_ 1 1 1 研究背景1 1 2 国内外发展现状。2 1 3 研究内容及论文框架。3 1 4 研究意义4 第二章m o d b u s 协议5 2 1 协议规范5 2 2 适用范围5 2 3 协议帧格式定义。5 2 3 1m o d b u s 串口协议帧5 2 3 2串行链路协议报6 2 3 3m o d b u s t c p 口协议帧1 2 2 3 4t c p i p ( 以太网) 上的协议报1 3 2 3 5t c p i p 上的通信方式1 4 2 4 小结15 第三章m o d b u s 服务端的构建1 6 3 1 服务端系统概述和整体设计1 6 3 1 1 模块设计16 3 1 2 数据结构1 7 3 1 3函数设计1 9 3 2 串行链路上的数据结构2 3 3 3 串行链路上的函数设计2 4 3 4t c p i p 上的数据结构2 4 3 5t c p i p 上的函数设计2 6 3 6 小结2 6 第四章r s 算法2 7 4 1r s 算法概述2 7 4 2r s 算法原理2 7 i v 目录 4 3 校验和的形成2 8 4 4 错误恢复3 2 4 5 高斯消元法3 4 4 5 1 高斯消元法的实例3 4 4 5 2 高斯消元法的一般解法3 5 4 5 3 高斯消元算法3 7 4 5 4 高斯算法的核心代码3 7 4 6r s 算法的实现3 8 4 6 1 算法实现的模块设计。3 8 4 6 2 算法实现的数据定义3 9 4 6 3 算法实现的函数流程4 0 4 6 4 算法实现的结果4 2 4 7 小结4 2 第五章有限域上的算法研究4 3 5 1 有限域4 3 5 2 有限域上的基本运算4 3 5 2 1 有限域加法4 4 5 2 2 有限域乘法4 5 5 3 基于有限域上a e s 算法的引入一4 6 5 4 有限域g f ( 2 w ) 上r s 算法和a e s 算法的运算一致性研究4 7 5 4 1 两种算法实现的区别4 7 5 4 2 两种算法运算一致性研究4 9 5 4 3 加法一致性研究4 9 5 4 4 乘法一致性研究5 0 5 4 5 除法一致性研究5 3 5 5 小结5 4 第六章r s 算法在m o d b u s 服务端的应用5 5 6 1 系统整体设计和描述5 5 6 2 系统存储管理5 6 6 3 选取的客户端测试软件5 8 6 4 服务端的测试5 9 6 4 1t c p i p 模式下的测试6 0 v 参考文献6 9 作者攻读硕士期间取得的成果7 1 附录7 2 第一章绪论 1 1 研究背景 第一章绪论 m o d b u s 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相 互之间、控制器经由网络( 例如以太网或者串行链路) 和其它设备之间可以通信。 目前,它已经发展成为一通用工业标准【l 。2 1 。有了它,不同厂商生产的控制设备可 以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结 构,而不管它们是经过何种网络进行通信的。它描述了某个控制器请求访问其它设 备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了 消息域格局和内容的公共格式【1 3 1 。 试想在某- - m o d b u s 网络上通信时,此协议决定了每个控制器需要知道它们的 设备地址,再识别按地址发来的消息,然后决定要产生何种行动。如果需要回应, 控制器将生成反馈信息并用m o d b u s 协议发出。而在其它网络上,它包含了m o d b u s 协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的 网络解决节地址、路由路径及错误检测的方法。 尽管m o d b u s 协议中包含有错误检测的方法,但当数据发生丢失时,数据却无 法恢复,因此本文就其这一不足,将r e e d - s o l o m o n 数据恢复算法【4 】置于m o d b u s 通信 系统中,从而结合形成一种稳定而保障性好的数据通信系统。 r e e d s o l o m o n 算法作为编解码领域中出色的编解码算法,因其高效、纠错能 力强的特点被广泛应用【5 】。从而使得它在数据恢复方面颇具魅力。假设在一个有一 个或者多个错误恢复存储设备( 也可称之为冗余盘) 存在的系统中,我们可将这 些设备的存储介质看成线性的数组,将非冗余存储设备( 也可称之为数据盘) 划 分为线性的数组,每个数组元素可定义为若干个字节的整体,然后利用该算法提 供的编码方法把各个数据元素异或,将结果作为冗余盘中的数组元素。于是,当 某个时候该系统中其中有若干个数据盘出了故障,或是数据丢失了,我们就可以 利用构造可逆矩阵的方式将丢失的数据恢复过来【4 ,6 】。 该算法的运算机理是基于有限域( 也可称之为g a l o i sf i e l d 域) 上的数学运 算。计算过程中将两数的加法视为两数的异或,而将乘法则视为有限域上多项式 求模的形式【4 ,7 1 。与此算法基于相同运算原理的a e s ( a d v a n c e de n c r y p t i o ns t a n d a r d ) 电子科技大学硕士学位论文 算法【刀中对数学运算的定义也是如此,只是两者在实现方式上有所差异,前者为查 表方式,后者为直接计算方式,本文将在后续章节中做一严格的数学抽象证明。 同时也作为该论文一个亮点来呈现。 1 2 国内外发展现状 m o d b u s 协议最初由施耐德于1 9 7 8 年制定,是应用于电子控制器上的一种通用 语言,目的是让控制器之间,或者控制器经由网络( 如以太网) 和其他设备进行 通信。而在串行链路( r s 一2 3 2 r s - 4 8 5 ) 上的实现可以说是控制器之间通信的雏形。 标准的m o d b u s 口是使用一个r s 一2 3 2 c 兼容串行接口,它定义了连接口的针脚、电缆、 信号位、传输波特率、奇偶校验。控制器能直接或经由m o d e m 组网。通信采用主从 式,主设备发出查询信号,从设备回应。在广播方式下从设备不需要回应【8 。1 1 1 。 为了使串行链路网络和以太网兼容而忽略协议之间的差别,m o d b u s 协议发展 成为t c p i p 层上的映射。1 9 9 8 年施耐德公司推出了新一代基于t c p i p 以太网的 m o d b u s t c p ,目的是满足用户和市场的进一步要求。m o d b u s t c p 是第一家采用t c p i p 以太网用于工业自动化领域的标准协议,是至今唯一获得i a n a 赋予t c p 端口的自动 化通讯协议。该协议通过封装基于t c p i p 层上的消息帧实现在不同网络之间消息 通讯的便捷性。又因其成本廉价性,应用广泛性,已经成为自动化设备最广泛支 持的协议【l o j 。 因此现今的m o d b u s 协议是集串口和以太网双重通信模式,其即可应用于总线 互连,也可应用于网络互连。目前的m o d b u s t c p 以太网的速度为i o m i o o m 位秒, 大大提高了数据传输能力。除此之外,施耐德的以太网解决方案t c p i p 以太网还 为用户提供了更多的服务,如:i o 扫描、全局数据、故障设备替换、网络管理、 电子邮件报警、时钟同步等功能,为用户带来更多的附加值。这也是m o d b u s 通信 方式具有如此强生命力的原因所在了。同时也使得m o d b u s t c p 工业以太网标准从 目前四大工业以太网i s 】:m o d b u s t c p 工业以太网、e t h e r n e t i p 工业以太网、 f o u n d a t i o nf i e l d b u sh s e 工业以太网和p r o f l n e t 工业以太网中脱颖而出,成为目 前工业以太网较为流行、简单实用,高效控制方案解决标准,可能会成为将来该 领域发展的主流。 为了更好的普及和推动m o d b u s 在基于以太网上的分布式应用,目前施耐德公 司已将m o d b u s 协议的所有权移交给i d a ( i n t e r f a c ef o rd i s t r i b u t e da u t o m a t i o n 分布式自动化接口) 组织,并成立了i o d b u s - - i d a 组织,为m o d b u s 今后的发展奠定 2 第一章绪论 了基础。作为m o d b u s 的发明者和市场的积极推广者,施耐德将不遗余力的推动 m o d b u s 在能源、电力、建筑、基础设施和工厂中的应用,并把m o d b u s 内置于全系 列产品中。 而为保证基于m o d b u s 协议通信系统的完整性而植入的r s 编码算法,则提供给 了该通信系统数据恢复的功能。此原因完全在于r s 属于线性分组码,是最大距离 可分码,具有编码效率最好的特性。其最初由i s r e e d 和g s o l o m o n d 于1 9 6 0 年提 出。作为一种交错能力很强的多进s j j b c h 码,它既可以纠正随机或突发错误,而且 可以用来构造别的码类。故而,r s 码在磁盘整列,卫星数字电视等多种领域得到 了广泛的应用【1 2 1 3 1 。 本论文将r s 编码应用于基于m o d b u s 协议的通信系统中,在彰显了m o d b u s t c p 工业以太网的发展势头的同时,也将目前编码领域中较先进的r s 编码算法得以应 用,为更好的推进和完善工业以太网出了绵薄之力。 1 3 研究内容及论文框架 本论文是关于r e e d - s o l o m o n 算法在基于m o d b u s 协议服务端上的实现。所以每 个章节安排大都从m o d b u s 协议和r s 算法两个方面着手。由于m o d b u s 协议本身又可 分为基于串口的通信和基于t c p i p 的通信两种方式,所以在介绍m o d b u s 协议内容 上还必须进一步细分而论。该论文有实际的项目支持,所以在后续章节中有必要 在系统实现方面做详细的介绍。除了谈及r s 在该基于m o d b u s 协议服务端的实现之 外,文章就r s 算法的实际运算原理引申到与基于同一有限域运算的a e s 算法的比 较,从而将实际的项目提升到理论的高度。本文将会从数学理论的角度给出基于 有限域运算的两种算法在运算本质上的证明。因此该论文框架大致可概括为以下 几个模块: 模块一:m o d b u s 协议模块。 该模块将成为第二、三两章的主要内容,前者主要讲述m o d b u s 协议规范和使 用原理,后者则主要详细描述基于该协议的服务端的实际构建,包括系统分析和 详细设计等。由于m o d b u s 协议本身就囊括了串口和以太网两种实现形式,所以第 二章也将从串行模式下和以太网模式下两个方面介绍其帧的格式定义和通信原 理。自然在第三章中的实现上也必然遵从串口响应和以太网响应两个模块的设计 和构建。 电子科技大学硕士学位论文 模块二:r s 算法模块。 第四章,第五章将涵盖该模块的内容,除包括r s 算法原理和程序实现之外, 更重要的是从数学理论的角度证明基于同一有限域运算的两个算法r s 和a e s 在运 算一致性上的证明,这也将成为本论文理论部分内容的核心和新颖之处。 模块三:r s 算法在m o d b u s 服务端上的应用模块。 该模块将成为第六章节的主要内容,从工程的角度讲一种算法和一种协议结 合在一起。本章内容重点放在数据错误的恢复方式上面,力求将r s 算法的强纠错 能力在m o d b u s 协议上体现出来。另外,我们也会在此章节将工业以太网标准做一 展望,同时强调由r s 算法映射出的在有限域中的数学运算在将来可能占据的重要 地位。 1 4 研究意义 鉴于m o d b u s t c p 工业以太网已经甚至将来成为未来工业以太网标准发展的主 流,本文就此标准实现一个基于该协议的服务端,一来可作为该标准具体实现的 实例提供给读者,二来将编码领域中先进的纠错算法r s 置入其上,进行实现,使 读者不仅仅局限于理解该算法实现原理,重要的是从理论角度讨论了两个基于同 一有限域运算的算法在本质上的联系,并通过证明结果让读者反思有限域运算在 计算机领域中举足轻重的地位和应用前景。 简而言之,本论文的研究意义可概括为:两个实例,一个证明。“两个实例 是指m o d b u s 协议的实现和r s 算法的实现。“一个证明”则指有限域上r s 算法和 a e s 算法运算一致性证明。可谓既有实践意义,又有理论意义。 4 该协议帧主要是在r s 4 8 5 和r s 2 3 2 等物理接口上实现。如果从i s o 模型的角度 去分析该协议帧,那它应该归于七层模型的数据链路层。表2 1 给出了它在i s o 模 型中的映射形式。从表中可以看至u m o d b u s 串口协议处于七层模型的第二层,因此 处于串行总线通信方式下通信的双方,收发数据包不需要被数据链路层以上的各 层进行解析或封装,而只需要通过设置串行端口的相关同步参数就可取得通信。 5 电子科技大学硕士学位论文 表2 - 1m o d b 峪串行协议在i s o 中的映射【1 4 1 层数i s o 模型m o d b u s 协议层位置 串行链路在i s o 中的映射 7 应用层m o d b u s t c p 协议 空 6 表示层空 空 5 会话层空 空 4 传输层 空 空 3 网络层空 空 2 数据链路层m o d b u s 串行链路协议m o d b u s 串行链路层( 主站从站) 1 物理层 e i a t i a - 2 3 2 ( 或4 8 5 ) 物理介质层 串口模式协议帧根据通信时的不同要求及不同特点,又将帧具体分为为a s c i i 模式和r t u 模式。在a s c i i 模式下,其p d u 的长度为2 5 4 个字节= 2 5 6 1 字节( 服 务器地址) 1 字节( l r c 检测域) 。在r t u 模式下,其p d u 的长度为2 5 3 个字 节= 2 5 6 1 字节( 服务器地址) 2 个字节( c r c 检测域) 0 - 3 , 1 4 1 。 2 3 2 串行链路协议报 m o d b u s 串行链路a d u 圆圆园圆 m o d b u sp d u 图2 - 1m o d b u s 串行协议报格式 图2 1 中对m o d b u s 串行链路协议报文进行了形象化说明,其中a d u 是指整个 的协议封装包,而其中的功能码和数据则构成核心的协议数据单元p d u 。地址域用 于串口寻址和客户端的识别,帧检测域则保证了传输数据的完整性和正确性。根 据对帧检测域的不同定义,又可将串行协议报分为a s c i i 码格式和r t u 格式。用 以适应不同环境中对传输速率的要求。 1 a s c i i 格式的a d u 表2 - 2m o d b u s 串行协议中a s c i i 码帧格式【1 4 】 起始地址功能码数据l r c结束 1 字符2 个字符2 个字符0 到2 * 2 5 3 个字符2 个字符2 个字符( l f 、c r ) 6 第二章m o d b u s 协议 说明【3 , 1 4 1 : 1 ) 报文必须以“: 开始 2 ) 报文必须以“l f c r 结束( a s c i i 码值为l o 和1 3 ) 3 ) 每8 b i t s 都用两个十六进制a s c ii 码值表示( 4 b i t s 表示一个a s c 码字符) 4 ) 使用l r c 进行差错校验 5 ) 字符间的间隔不能超过1 秒,否则为出错 6 ) 每个字符被装配为:1 个起始位,7 个数据位,2 个停止位( 若有校验则为 1 个校验位,1 个停止位) 7 ) 优点:发送字符间隔时间短 2 r t u 格式的a d u 表2 - 3m o d b u s 串行协议中a s c i i 码帧格式伫,1 4 】 起始地址功能码数据 c r c 结束 至少3 5 个字 至少3 5 个 1 个字节1 个字节0 到2 5 2 个字节2 个字节 符 字符 说明 2 , 1 4 】: 1 ) 用总线空闲间隔时间来区分帧的开始和结束 2 ) 每个字符间的时间间隔不能超过1 5 个字符,否则为出错,如下图所示: 帧1 正常帧2 不正常 ;。丽面。面面。一 。 战- ii _ uu 1 5 4 - 字符i,1 5 个字符 图2 - 2 字符间的要求 3 ) 每帧间的时间间隔不能超过少于3 5 个字符,否则为出错 乙。面面面面一面面- 巍蔫b 藕 黑 图2 - 3 报文帧间的要求 4 ) 每8 b i t s 对应两个十六进制的字符( 4 b i t s 表示一个十六进制字符) 7 电子科技大学硕士学位论文 5 ) 每个字节( 8 b i t s ) 被装配为:1 个起始位,8 个数据位,2 个停止位( 若有校 验则为1 个校验位,1 个停止位) 6 ) 优点:同样的波特率,可比a s c i i 方式传输更多的字符( 因为每个字节的数据 位为8 ) 3 每个字节的位格式说明 a s c i i 字符帧实际传输的数据位为7 位,但传输时由应用程序装配为1 0 位来 传输,启动位,校验位,停止位由程序填补;r t u 字符帧则为8 位数据,传输时被 装配为1 l 位来传输,其填补方式与上同。需要注意的是,a s c i i 码方式是以字符 为单位进行装配,而r t u 码方式则是以字节单位装配 1 4 , 1 4 】。 4 字符的连续传输【2 - 3 】 当消息在标准的m o d b u s 系列网络中传输时,每个字符或者字节以如下方式发 送( 从左至右为最低有效位至最高有效位) 。 1 ) 使用a s c i i 字符帧时,位的序列: 表2 4a s c h 字符帧有奇偶校验位序列 有奇偶校验的格式 表2 5a s c h 字符帧有奇偶校验位序列 无奇偶校验的格式 a s c i i 字符帧是按4 个b i t 为一个字符装配字符流,所以在上述装配中,7 位 数据位中的后3 个b i t 是浪费的,然而也正是因为这个原因,使得该种方式下字 符问传输时间间隔变得比较短。但其缺点也很明显,那就是同一时间段下,传输 的字符数比较少。 2 ) 使用r t u 字符帧时,位的序列: 该格式的字符帧与a s c i i 格式的字符帧相比,启动位、奇偶位及停止位的封 装是相同的,因为不管哪种格式的帧,都需要用这些b i t 位去辨别它们的开始和 结束。从而据此判断下一个帧的到来与否。 8 第二章m o d b u s 协议 表2 6r t u 字符帧有奇偶校验位序列 有奇偶校验的格式 表2 - 7r t u 字符帧无奇偶校验位序列 无奇偶校验的格式 r t u 字符帧是按8 个b i t ,也就是一个字节为单位装配字符流,所以在上述装 配中,8 个数据位都是被充分利用的,因此在该种帧格式下,传输的字符数比a s c i i 帧格式下的多。但其缺点也很明显就是字符间传输时间间隔变得比较长【1 。3 1 。 从对两者的比较中,我们也可以将这种优劣比作是“用空间来换时间 。此种 解释倒也符合计算机领域中时空互补这一基本的规律。 5 m o d b u s 数据模型 所谓m o d b u s 的数据模型是指用一系列规定的数据去表示特定功能含意的定义 模式。m o d b u s 数据模型大致可分为4 类。每类都是一组相似操作对象的功能码的 集合。表2 - 8 给出了基本的集合表。 表2 - 8m o d b u s 串行协议中功能码基本表1 4 】 基本表对象类型访问类型注释 离散量输入单个位只读i o 系统可提供这种类型数据 线圈单个位读写通过应用程序可改变这种类型数据 输入寄存器1 6 位字只读i o 系统可提供这种类型数据 保持寄存器1 6 位字读写通过应用程序可改变这种类型数据 根据基本表的形式,我们可以得到一系列b i o d b u s 公共功能码,这些功能码构 成了m o d b u s 串口通信方式下的主体。m o d b u s 标准中对每个功能码都赋予明确的意 义。我们只需将功能码填充到协议帧格式的功能码字段中,那么该字段就具有了 相应的操作内容。而数据域中的数据便是该操作的作用对象。对于遵从相同m o d b u s 协议的双方,正是通过解析包中的功能码后才采取实际的行动。下面我们用具体 的实例来说明部分功能码在协议中的应用。 1 ) 功能码0 1 读线卧1 4 1 9 电子科技大学硕士学位论文 表2 - 9 客户端发送功能码0 1 功能码l 字节 o x 0 1 起始地址2 字节 o x 0 0 0 0 至o x f f f f 线圈数量2 字节 1 至2 0 0 0 ( o x 7 d o ) 表2 - 1 0 服务端响应功能码0 1 功能码l 字节o x 0 1 字节计数l 字节 n 线圈状态n 字节n - - n 或n + i 其中n = 寄存器的数量8 ,如果余数不等于0 ,那么n = n + i 。 表2 - 11 服务端响应错误或异常码 差错码l 字节功能码+ o k 8 0 异常码l 字节0 1 或0 2 或0 3 或0 4 2 ) 功能码0 3 读保持寄存器【1 4 1 表2 - 1 2 客户端发送功能码0 3 功能码1 字节 o k 0 3 起始地址2 字节o x 0 0 0 0 至o x f f f f 寄存器数目2 字节 1 至1 2 5 ( o x 7 d ) 表2 - 1 3 服务端响应功能码0 3 功能码1 字节 o k 0 3 字节计数l 字节 n * 2 寄存器值n * 2 字节 具体的值 其中n 为寄存器的数目。 表2 - 1 4 服务端响应错误或异常码 差错码 1 字节 0 1 8 3 异常码1 字节0 l 或0 2 或0 3 或0 4 3 ) 功能码1 卜写多个寄存器【1 4 】 l o 第二章m o d b u s 协议 表2 1 5 客户端发送功能码1 6 功能码1 字节 o x l o 起始地址2 字节o x 0 0 0 0 至o x f f f f 寄存器数目2 字节o x 0 0 0 1 至0 x 0 0 7 b 字节计数1 字节 n * 2 寄存器值n * 2 字节具体的值 其中n 为寄存器的数目。 表2 - 1 6 服务端响应功能码1 6 功能码1 字节 o x l o 起始地址2 字节 o x 0 0 0 0 至0 ) ( f f f f 寄存器数目2 字节 1 至1 2 3 ( o x 7 b ) 表2 - 1 7 服务端响应错误或异常码表 差错码1 字节 o x 9 0 异常码l 字节0 1 或0 2 或0 3 或0 4 上述的三个例子简单的演示了构建于m o d b u s 协议上的客户端和服务端的通信 过程。从各个表的内容不难看出,不同的功能码对两者的通信内容有不同的要求。 尤其数据域的改变比较值得关注。有的时候其中的值表示实际的数据,有的时候 却表示的则是相关地址,而且它们所占用的字节数也有明显的区别。从而导致了 不同功能码下,协议帧的封装大小。功能码的完整定义请参照文后附录。 6 串行链路上的通信方式【1 4 】 串行链路上的m o d b u s 通信协议的特征可归纳为以下几点: 1 ) m o d b u s 串行链路协议是一个主从协议 2 ) 网络上的每个从站必须有唯一的地址( 从l 到2 4 7 ) 3 ) 从站地址用于寻址从站设备,由主站发起 4 ) 地址o 用于广播模式,不需要响应 5 ) r s 一4 8 5 和r s - 2 3 2 定义了标准的物理端口,可提高互操作性 6 ) 串行链路下查询一回应方式 图2 4 中描述了m o d b u s 协议在串口通信方式下客户端与服务端的交互过程。 在该通信模式下,我们将服务端称为主设备,而将客户端称为从设备。 电子科技大学硕士学位论文 图2 4 串行链路中客户端和服务端的通信【2 】 2 3 3m o d b u s t c p l p 协议帧 该协议帧主要是应用于以太网及其他基于t c p i p 协议的网络环境中。同样 的,如果从i s o 模型的角度去分析该协议帧,那它应该归于七层模型的应用层。下 表给出了它在i s o 模型中的映射形式。 表2 1 8 表m o d b u s t c p 协议在i s o 中的映射1 q 层数i s o 模型m o d b u s 协议层位置 t c p i p 在i s o 中的映射 7应用层 m o d b u s t c p 协议m o d b u s 应用层( 客户f i t 务) 6表示层 表示层基于t c p i p 层的m o d b u s 5 会话层会话层 应用层协议 4 传输层 t c p 层 t c p i p 层 3网络层 i p 层 2 数据链路层m o d b u s 串行链路协议数据链路层 l 物理层物理层物理介质层 因为m o d b u s 以太网协议位于第七层,所以在基于该协议的通信方式下,发送 数据包需要从第六层开始逐层封装。封装过程和般的以太网数据封装过程一样, 只不过被封装的数据是m o d b u s 协议格式的数据而已。接收数据包时,则进行相反 1 2 第二章m o d b u s 协议 的解包过程即可。 m o d b u s 协议标准、开放、用户可以免费、放心地使用该协议,不用交纳许可 证费,也不会侵犯知识产权。m o d b u s 是面向消息的协议,可以支持多种电气接口, 还可以在多种介质上传送。它无需专用的芯片与硬件,完全采用市售的标准部件。 这就保证了采用m o d b u s 的产品造价最为低廉。 2 3 4t c p ip ( 以太网) 上的协议报 m o d b u st c p 疆a d u 困 困 卫 p d u 图2 5m o

温馨提示

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

评论

0/150

提交评论