新闻中心

EEPW首页>嵌入式系统>设计应用> 基于RS-485总线多CPU控制系统简化网络模型及其通讯协议

基于RS-485总线多CPU控制系统简化网络模型及其通讯协议

作者: 时间:2012-12-11 来源:网络 收藏

3 系统通信协议

3.1 数据链路层协议

关于数据帧的定义前面已经叙述,在这不予解释。在多CPU的控制系统中子控制器的地址可以通过在硬件中设置一个拨码开关,通过设置拨码开关的值来设置子控制器的物理地址。其网络地址也就是拨码开关的“0”和“1”组合。在设置过程中其地址分配为:00H为主控制器,01H~FFH为子控制器。主控制器依次查询子控制器的地址,当与某个子控制器对话的时候,其他子控制器均不作应答。

3.2 运输层通信协议

TCP/IP运输层有两个主要的协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP协议是面向连接的协议即发送方每发出一帧,接受方总要等待确认帧,否则认为出错,因而该方式是一种可靠的通信方式。而UDP协议是无连接的协议,其发送方总是认为接收方接收正确,从而无需等待。这种协议虽然发送过程简单,但其可靠性不高。对于多CPU的控制系统来说,其传输的命令和参数都是非常重要的,所以选择类似于TCP协议方式,建立连接和数据帧传送过程如图3和4所示。

由图3所示可知,当主控制器查询到某个子控制器时,如果子控制器有指令数据帧要发送给主控制器则子控制器发送A_S_HAVE,主控制器收到后发出应答控制字A_M_READY;如果子控制器被主控制器查询到没有指令数据帧要发送给主控制器,则发送A_S_OVER,告诉主控制器无数据帧发送,主控制器退出此次连接继续查询下一个子控制器。

由图4所示可知,通信连接建立以后主控制器和子控制器之间可以进行指令数据帧传输。当传输完一个数据帧后,接收方需要应答相应的连接控制字(如:“已接收一帧”即A_S_RECEIVED/A_M_RECEIVED),只有这样才能继续发送下一帧指令数据帧,否则认为发送不成功。

3.3 应用层通信协议

应用层是四层简化网络模型中最顶层,其主要关心具体要发送什么数据和接收到数据后执行后续的操作等,而数据传输由应用层以下的层完成。应用层主要包含以下几点:

(1)数据格式:在多CPU控制系统中采用两种格式的数据。一是本地使用的数据,为了编程方便和直观,采用ASCⅡ码来表示。二是网络通信数据,为了使通信程序高效、简洁,采用压缩BCD码。通过这两种格式数据大大提高了网络传输效率。

(2)消息:在应用层中采用WIN32操作平台的“消息”概念来描述控制器之间的数据传输,其内容与指令数据帧相同。由于本地对数据处理可能很快,而数据传输要等待网络连接建立,这样数据本地处理和网络传输就不能够同步进行,所以就必须采用缓冲机制来协调。仿照WIN32操作平台中对消息的处理办法,用循环队列数据结构来缓冲消息(如图5所示)。消息全部采用统一长度,一般采用4个字节,队列中每个元素为一个数组(长度为4个字节),每个队列中共有5个元素,采用先进先出(FIFO)原则,并且循环使用。生成或收到的消息时先放入消息数组中,并作为一个元素放入REAL指针所指尾部入缓冲队列(REAL加1),进行通信时从HEAD指针所指首部取出最先进入队列数据帧(HEAD加1)。同时系统对当前的消息中第一个字节(控制指令)内容进行判断,从而进入相应的消息处理程序。

4 通信软件的抗干扰措施

4.1 在协议中增加差错控制措施

当主控制器发送呼叫帧后,如果在规定的时间内没有收到子控制器的应答帧或没有得到正确应答帧,则认为通信失败。只有等到下次再与该子控制器建立连接时,重新完成上次未交换的数据帧。同时采用累加校验字段来判断数据是否正确,通过以上措施可以有效的防止通信错误发生。

4.2 在软件设计中适当增加延时

当主控制器或子控制器有一种状态转到另一种状态时,插入一定延时(一般为几十毫秒),其可以大大提高总线稳定性,从而可提高数据传输可靠性。

5 结束语

由RS-485网络的多CPU控制系统的特点,并参照ISO七层网络模型和TCP/IP协议设计思想,提出了适用于该系统的四层简化网络模型、各层的通信协议和数据帧的格式。在实际应用中,根据四层简化网络模型及其通信协议编制的通信软件在实际应用中效果良好、通信速度和可靠性得到大大的提高。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭