0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于通信控制器实现高效串行数据处理系统的设计

电子设计 来源:单片机与嵌入式系统应用 作者:宋兵跃,吴军辉, 2021-05-05 14:11 次阅读

作者:宋兵跃,吴军辉,黄斌

1 串行通信介绍

所谓串行通信,就是将数据分成一个个的二进制位(bit) ,然后通过一条线路或一个通信信道,按照规定的规程逐位依次进行传输,实现计算机与计算机或计算机与外部设备之间的通信(数据交换) 。串行通信因其占用硬件资源少、可大幅度降低通信线路的成本、简化通信设备、应用灵活、易维护等诸多优点,在工业控制、电力通信、智能仪表等领域得到了广泛应用[1 ] 。

目前,有EIA2RS232 、EIA2RS485电流环、CAN 等串行通信方式。EIA2RS232 是全双工的通信模式,可以保证短距离点对点的高速传输;EIA2RS485 可实现较长距离下的多点互联通信;CAN 属于现场总线的范畴,采用多主机制,改善了在集散控制系统下的主从通信模式[2 ] 。随着应用需求的复杂化,对串行通信的通信效率及性能的要求越来越高,所以如何制定一套切实可行、简单易用,又能大幅度提高串行通信效率的通信协议,如何在PC 端、嵌入式系统端构建一个高效的串行数据处理的应用程序,是亟待解决的一大问题。

面向各个领域不同的应用需求,串行通信的网络拓扑结构也多种多样,如总线型、环型、星型等。本文以加油站信息管理系统为例,介绍串行通信协议的制定以及高效通信数据处理的实现。

2 串行通信协议的设计

2. 1 系统总体构架

加油站信息管理系统的结构如图1 所示。本系统中,每台加油机为一个应用节点(即图中的控制点) ,通过半双工RS485 总线连接至通信控制器。在该RS485 网络中,通信控制器为主机(Master) ,各加油机为从机(Slave) ,构成一个主从通信的网络架构。在多种串行接口标准中,RS485接口以其结构简单、通信速率高、传输距离远、使用的传输线较少、在长距离通信时比较经济等诸多优点,在集散式控制装置中得到了广泛应用。RS485 采用差分电平传输,只需两根信号线,可以方便地增加控制节点数目 。

通信控制器通过全双工RS232总线与管理PC 机进行数据交互。RS232 总线为全双工通信总线,为了保证实时性和高效性,管理PC 机和通信控制器这个层面的数据交互采用互为主机的通信方式,以此构成一个集散控制系统。

各个加油站信息管理系统中,控制点的数目可能较大,所以对数据通信的实时性提出了较高的要求。采用RS485总线作为底层通信接口。与点对点的通信方式相比,任何节点均能侦听到总线上传输的任何数据,这对串行通信数据接收处理也提出了很高的要求。每一个网络节点既要可靠、稳定地完成其自身的控制工作,又要准确、高效地在RS485 总线上接收到发送至本节点的通信数据帧。

2. 2 通信协议格式的定义

2. 2. 1 协议帧格式

(1) 主机下发数据帧格式

起始标志数据(5AH + A5 H) + 长度(从命令字开始到校验和为止的字节数) + 命令字HIGH + 命令字LOW+ 机号+ 参数+ 1 字节校验和(从命令字开始到校验码前一字节的逻辑异或和)

(2) 从机上传数据帧格式

起始标志数据(9BH + B9 H) + 长度(从命令字开始到校验和为止的字节数) + 命令字HIGH + 命令字LOW +机号+ 参数+ 1 字节校验和(从命令字开始到校验码前一字节的逻辑异或和)

2. 2. 2 协议帧解释

起始标志数据:采用一字节或多字节作为帧起始标志(该部分的字节定义应尽量与帧数据的其他部分完全不同) 。接收方在接收错误后,接收数据时总是先寻找帧头。帧头的排他性将有利于提高各通信节点的接收效率。

长度:应尽量采用短帧,以避免各种干扰因素对通信效率的影响。可根据实际应用情况,在“长度”后增加“长度反码”或“长度补码”等校验数据,对长度进行更为严格的校验。

命令字:根据实际通信应用需求,可应用1~2 字节的通信命令字。

机号:所需接收方的地址识别号。可根据实际应用需求进行修改,如增加源地址、目的地址等。

参数:应用数据。考虑到数据的安全性,可针对不同的应用对该部分的数据进行加密处理。

校验和:数据校验,可根据应用需求选择不同的校验方式 。

3 高效串行通信方式的实现

3. 1 通信控制器发送数据的处理机制

通信控制器的发送数据流程如图2 所示。通信控制器首先判断最高优先级的命令字是否需要发送。如果需要,则进入该命令字的发送流程;如果没有,接着判断次高优先级的命令字是否需要发送。如果需要则进入发送流程,根据命令字的优先级由高到低的顺序依次判断要发送的命令字。

当没有通信数据命令字发送时,通信控制器会发送轮询命令字。此外,在发送完一帧数据后,通信控制器会开启接收超时定时器T2 ,如果通信控制器在超时时间内收到应答命令数据帧,则进入相应数据处理流程,同时关闭T2 。如果系统长时间未收到应答命令数据帧,则重新发送该命令字的数据,并记录发送该命令字的次数。

当发送的命令字的帧超过10 次仍未收到相应应答命令,则视为该命令字和PC 机的通信失败,把通信流程重新调整到轮询命令字状态下。

发送的代码程序放到单片机的串行中断服务程序中来处理 ,代码如下:

3. 2 通信控制器接收数据的处理机制

在通信控制器的接收端,应保持串行中断的优先级最高。这样才能保证系统时刻可以和PC 处于通信的状态。具体的处理机制如下:

①找到帧头(本协议是2 个字节) 。找到第1 个帧头,就把接收步骤的全部标志S 赋值1 ,把接收字节的内容放到接收数据缓冲区中。接着找第2 个帧头,找到帧头后把内容顺序放到接收数据缓冲区中。继续判断命令字是不是协议中规定的合法命令字。如果是,再根据命令字所对应的长度来判断该帧数据的合法性。因为在制定通信协议时就规定了特定命令字所对应的数据长度,这两点约束条件就可以保证接收数据是合法的,从而提高了系统的稳定性 。如果命令字和其对应的长度值合法,则把S值赋值为3 ,进入下一步的数据处理步骤。

②在一帧数据接收开始时,开启接收超时定时器。如果在超时时间内未收到一帧完整的数据,则视为本次通信流程失败,重新初始化串行通信,等待下次通信。

③如果一帧数据完全接收正确并成功,则关闭接收定时器,停止响应串行中断,以防止处理的过程中有新的接收数据影响有效数据的处理。处理完毕, 使能串行中断,打开接收定时器, 清除接收步骤S 为0 ,根据处理过程中标志位的改变情况继续和PC 进行相应的数据通信。通信控制器数据接收流程如图3所示。

4 总结

本文设计了一套完整的通信协议,通信控制器的发送端始终处于通信状态,能以很快的速度响应系统协议规定的命令字及其数据的发送。在通信控制器的接收端,采用逐字节处理的方式,通过设定全局变量来确定处理接收数据帧的步骤,细化了处理接收数据的过程,保证了数据高效、可靠的传输。本系统已经应用在上海宝钢集团加油站信息管理系统中。实验结果证明,按照此协议进行的通信数据准确,通信高效可靠,自适应能力强,具有在相关领域推广的价值。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16064

    浏览量

    176919
  • 嵌入式
    +关注

    关注

    5056

    文章

    18950

    浏览量

    301493
  • 控制系统
    +关注

    关注

    41

    文章

    6490

    浏览量

    110350
收藏 人收藏

    评论

    相关推荐

    基于DSP和FPGA的红外信息数据处理系统

    新一代红外成像导引系统须具备高精度、处理速度快、实时性强且反应时间短等特点,这便要求图像处理计算机能满足图像处理中大数据量、复杂运算、实时性
    发表于 07-30 14:43 626次阅读
    基于DSP和FPGA的红外信息<b class='flag-5'>数据处理系统</b>

    SC26C94器件在测控、测试及数据处理系统中的应用

    在许多复杂的测控、测试及数据处理系统中,一般需要与大量的被控对象、被测试设备及自动化仪表进行通信,而这些对象、设备及仪表等所提供的接口大多是标准的异步串行接口形式,因此,在以CPU为核心,与多路
    的头像 发表于 12-21 08:53 4779次阅读
    SC26C94器件在测控、测试及<b class='flag-5'>数据处理系统</b>中的应用

    实时数据处理系统有什么特点?

    ,传统的单一DSP的架构已经不能完全满足人们的需求。实时数据处理系统的出现势在必行,那大家知道其有什么特点吗?
    发表于 07-31 07:53

    VHDL 基于FPGA的高速数据处理系统设计思路

    数据存储和USB通信等外围功能模块构造而成。由于光纤微扰动传 感的传感采用的是光纤,所以首先需要将信号经过光电转换和A/D转换,将信号转换为适于FPGA处理的数字信号。然后,在FP
    发表于 08-31 18:54

    FPGA的高速数据处理系统结构和硬件设计

    数据存储和USB通信等外围功能模块构造而成。由于光纤微扰动传 感的传感采用的是光纤,所以首先需要将信号经过光电转换和A/D转换,将信号转换为适于FPGA处理的数字信号。然后,在FP
    发表于 09-04 09:56

    ADC器件ADS8344在互感高压侧数据处理系统中的怎么应用?

    参考电压、A/D转换、比较控制逻辑电路和逐次逼近寄存(SAR)等部分组成;ADC器件ADS8344在互感高压侧
    发表于 04-14 07:03

    一种基于TMS320F206的雷达数据处理系统

    雷达数据处理系统是现代雷达的重要组成部分,实际应用中,一般采用微型计算机实现雷达数据处理功能.随着DSP芯片的快速发展,应用了DSP芯片的雷达数据处理系统极大地提高雷达
    发表于 04-23 17:15 26次下载

    一种基于TMS320F206的雷达数据处理系统1

    雷达数据处理系统是现代雷达的重要组成部分,实际应用中,一般采用微型计算机实现雷达数据处理功能.随着DSP芯片的快速发展,应用了DSP芯片的雷达数据处理系统极大地提高雷达
    发表于 04-24 15:35 17次下载

    并行空间数据处理系统的设计

    随着多核计算机的出现,并行计算技术的发展进入了一个新的阶段,如何将并行技术引入空间数据处理系统成为了当前研究的热点问题。本文给出了一种基于分布式/共享内存结构的并
    发表于 03-01 15:26 12次下载

    摩擦试验机数据采集与处理系统设计

    基于摩擦试验机对计算机采集与处理数据功能的要求,采用串口通信方法,结合VB语言编程,设计了试验机的数据采集卡和数据处理系统。实验测试表明,该
    发表于 10-10 14:45 0次下载
    摩擦试验机<b class='flag-5'>数据</b>采集与<b class='flag-5'>处理系统</b>设计

    一种输变电设备多源数据处理系统的功能设计

    针对输变电设备状态评估数据来源多样、平台繁多以及数据质量参差不齐的问题,通过对输变电设备状态评估数据特点进行研究,提出了一种输变电设备多源数据处理系统的功能设计。设计了可提高设备状态评
    发表于 03-05 14:03 0次下载
    一种输变电设备多源<b class='flag-5'>数据处理系统</b>的功能设计

    基于时差法流量监测装置的数据处理系统设计的详细资料概述

    本文设计了一种基于时差法流量监测装置的数据处理系统系统选用ARM11系列芯片S3C6410为核心处理器,基于S3C6410设计了多种传感通信
    发表于 04-28 15:23 3次下载
    基于时差法流量监测装置的<b class='flag-5'>数据处理系统</b>设计的详细资料概述

    基于PDA的电能表轮换数据处理系统的原理及设计

    今天为大家介绍一项国家发明授权专利——一种基于PDA的电能表轮换数据处理系统。该专利由国网上海市电力公司申请,并于2017年11月21日获得授权公告。
    发表于 12-28 09:23 1505次阅读

    数据处理系统模式及其应用分析

    数据处理系统始终是分析大数据的基础,因为大数据本身具有信息量繁多冗杂、扩展速度极快、信息多样性且价值密度高等特点,所以要求大数据处理系统具有极强的专业性和
    的头像 发表于 02-14 14:45 7495次阅读
    大<b class='flag-5'>数据处理系统</b>模式及其应用分析

    如何使用FPGA实现光谱探测实时数据处理系统的设计

    实时获取战场中来袭激光、大气污染物、毒气等待测物光谱分布信息,根据傅里叶光谱变换理论,研究设计了实时数据处理系统。分析了光谱探测系统结构和工作原理,采用Xilinx公司Virtex2-Pro开发板在
    发表于 01-26 15:03 9次下载
    如何使用FPGA<b class='flag-5'>实现</b>光谱探测实时<b class='flag-5'>数据处理系统</b>的设计