第三章通信协议与软件编程

第三章通信协议与软件编程

ID:45591907

大小:174.37 KB

页数:35页

时间:2019-11-15

第三章通信协议与软件编程_第1页
第三章通信协议与软件编程_第2页
第三章通信协议与软件编程_第3页
第三章通信协议与软件编程_第4页
第三章通信协议与软件编程_第5页
资源描述:

《第三章通信协议与软件编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第三章通信协议与软件编程3」相关的背景知识(1)改进的循环队列概念本系统一些的缓冲区采用改进的循环队列结构.莫机构如图Bp—Outnp-TryBr-In图4・3改进的循环队列简化图图中提供了三个指针Bp.In,Bp.Out,Bp.Try.其中Bp.In是队头指针.当队列接收一数据时,如果队列缓冲区尚有空间,则数据入队,同时Bp.In加1.Bp.Out是队尾指针•当数据要出队时,如果队列缓冲区非空,则Bp.Out加1.队列缓冲区空或满的判定方法可以用下血的伪C语言描述:if(Bp.In++==Bp.Out){队列缓冲区已额W/如果队头加1

2、等于队尾指针,则表示该队列已满if(Bp.Out==Bp.In){队列缓冲区已空}W如果队尾指针赶上队头则表示该队列已空Bp.Try是为通信吋重发而准备的•当要发送数据时,Bp.Try向前移动(Bp.Try++),但Bp.Out不动(数据不出队)•当Bp.Try=Bp.In时,表示队列缓冲区已没有数据要发送•如果曲于某些原因,要求数据重发,仅仅把Bp.Try重新指回Bp.Out(Bp.Try=Bp.Out)再次发送.只有当发送成功吋,才允许数据岀队(Bp.Out=Bp.Try).由于一次发送数据的多小曲Bp.Try决定(一次不一定非得把

3、队列缓冲区数据都发送完),这样给数据的发送提供了极大的方便.4.1.3.2改进的循环队列的数据结构及基本操作改进的循环缓冲区的数据结构(CycleBuff)如下:#defineucharunsignedchar#defineBpCycleBufftypedefstmct{intLen,In,Out,Try;/*定义缓冲区的大小勺ucharBuffer[Max_Len];/*该指针指向队列缓冲区*/}CycleBuff;〃注:初始时耍求Bp.Out=Bp.hi=Bp.Try结构中Len为缓冲区大小,Buffer为数据要存放的缓冲区地址.I

4、n,Out,Try上面己介绍.对该机构的几个基本函数如下.函数Buffln(uchar*dest,uchar*sour,ucharlen)功能从sour中把大小为len的数据复制到dest.完成入队操作(Bp.In向前移动).函数BuffOut(uchar*dest,uchar*source,ucharmaxlen)功能从sour屮把大小为maxlen的数据复制到dest.完成岀队操作(Bp.Out向前移动).函数BuffTry(uchar*dest,uchar*source,ucharmaxlen)功能从sour中把大小为maxlen

5、的数据复制到dest.完成发送操作(Bp.Try向前移动).(2)系统的分层结构如图系统分为硬件驭动层,协议层及其应用层。外部接口图4・1系统的软件分层采用分层结构,一方面冇利于模块化设计,加快开发进度,减小软件调试的难度。另一方面,由于下层模块只向上层提供一个软件接口,屏蔽了下层的具体实现细节。而上层软件只有通过该软件接口与下层软件通信才会与卞层软件发生联系。这样就保证了各层Z间的独立性。在各层中,分别又各门提供了硬件接收缓冲区,硬件发送缓冲区,协议接收缓冲区,协议发送缓冲区。(3)事件驱动与状态图编程事件F事件I(4)一个有用的超吋

6、函数ucharTimeOut(int*BaseValue,intOutvalue){intdiff;diff=TickCount・*BaseValue;if(!OutvalueIIdiff>=Outvalue){*BaseValue=TickCount;return1;}return0;}上面TickCount是全局变量,在定时器中断中累加•如杲超时则返回1,否则返回0设有一个计时器变量X.A:启动计时TimeOut(&X,0)B:判断是否超时5If(TimeOut(&X,500)){超时处理}Else{O超时处理}采用该函数优点:减小

7、定时中断处理时间,捉高程序效率。使用方便3.1MODBUS协议及实现3.1.1MODBUS协议简介Modbus协议是应用于电了控制器上的一种通用语言。通过此协议,控制器相互Z间、控制器经由网络(例如以太网)和其它设备Z间可以通信。它已经成为一通用工业标准。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应來口其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,

8、识别按地址发來的消息,决定耍产生何种行动。如杲需耍回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。