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

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

3天内不再提示

基于单片机和CAN控制器实现现场智能节点的设计

要长高 来源:中电网 2023-10-12 16:29 次阅读

1 引言

随着控制、计算机、通信网络等技术的发展.传统的控制系统己越来越不能满足现代工业的要求。以信息技术为基础的网络集成自动化系统己经成为当今自动化领域技术发展的热点之一,它的出现标志着丁业控制领域又一个新时代的开始,并将对该领域的发展产生重要影响。现场总线就是顺应这一形势发展起来的新技术。本文研究设计了总线监控系统中的现场智能节点,智能节点通过执行应用软件要实现两项任务:一是能够与总线上的其它节点进行数据交换,二是能够按照通过网络或键盘下达的控制命令驱动步进电机按照要求动作。

2 现场智能节点的整体框架

图1 智能节点主程序流程图

对于CAN总线下的智能节点,为了满足及时指示步进电机执行运动.实时接收和发送报文,及时处理用户下达的控制指令等要求,程序采用的是顺序执行主程序和实时中断程序相结合的方式。软件设计分块进行,主要划分为以下几部分:CAN总线通信程序,显示及键盘输入程序,控制算法程序等。主程序流程如图1所示。

3 CAN总线通信程序与LED显示驱动

CAN总线通信程序是指在AT89C52控制下,模块将采集到的数据发送到总线上供CAN WEB SERVER或其他智能节点使用,或是接收由CAN WEB SERVER传送的由监控PC下达的控制指令。该部分软件的程序流程如图2所示,在通电或者复位后,主控制器首先对SJA 1000控制器进行初始化,建立CAN总线通信。CAN总线通信程序由三部分组成:SJA1000初始化,接受和发送。

图2 CAN通信程序流程图

3.1 SJA1000初始化

初始化是在程序运行前对SJA1000的丁作方式进行设定, 使其能够按照用户需要的方式进行CAN总线通信工作。

SJA1000 CAN控制器在通电后或硬件复位后,必须通过初始化设置以建立CAN通信。而且,SJA1000可以在主控制器工作期问被再次初始化,这可以通过发送软件复位请求来实现。系统上电后,CAN控制器在引脚上获的一个复位脉冲,似的进入复位模式。在开始对SJA1000各个配置寄存器进行设定之前。主控制器通过读复位模式,请求标识来检测SJA1000是否进入复位模式。因为单片机AT89C52的上电复位时问和SJA1000 的复位时间有偏差,单片机要等待SJA1000完成上电复位后才能对SJA1000配置寄存器进行配置,存有配置信息的寄存器只能在复位模式下才可进行写入。

SJA1000初始化程序在复位模式下,需要配置下面的寄存器:时钟分频寄存器,接受代码和接受掩码寄存器,总线十续寄存器,输出控制寄存器。在这些配置信息配置到SJA1000寄存器后,通过消除复位请求模式使SJA1000进入操作模式。

3.2 CAN发送程序

对SJA1000进行初始化建立CAN总线通信后,模块就可以通过CAN总线发送和接受CAN数据包。消息的发送由CAN控制器SJA1000根据CAN的规则自动完成,主控制器必须把要发送的信息送到SJA1000的发送缓冲器中,并设置“发送请求标识位”于命令寄存器中,发送过程既可南SJA1000产生的中断请求来控制。也可通过检测SJA1000控制部分的状态标识符来控制。

在本论文的设计中,当系统初次上电或硬件复位后,节点模块会主动向CAN WEB SERVER发送节点的状态信息,在以后的CAN通信中.则采用只有接收到CAN WEB sERVER的控制命令后,节点模块才会将节点数据作为响应发送到CAN总线上。因此,单个节点模块向总线上发送数据的频率不高,在编程时将发送数据根据通信协议写入发送缓冲器中,通过置位控制命令寄存器的发送请求位,就可以将数据发送到CAN总线上。发送流程如图3所示。

当多个节点响应CAN WEB SERVER的命令时,有可能产生同时向CAN总线上同一地址发送不同数据,从而导致个别节点不断累积发送错误而最终进入总线关闭状态这种错误的产生。为了避免这种错误的产生,基于CAN总线的特点:任何节点均可向总线发送数据,也可接收到总线数据,在程序中设计了这样的发送策略:将CAN WEB SERVER的接收掩码寄存器设置为全“1”,即可以接受总线上的全部数据,节点模块的待发送数据包的标识符由本节点的地址信息构成,即节点通过总线向自己发送了一个数据包,但同时义能够被CAN WEB SERVER 接收到,因CAN总线上的节点地址都是唯一的,故能够有效的避免前面所提到的错误。

图3 CAN发送程序流程。

3.3 CAN接受程序

CAN控制器SJA1000根据规则自动接收消息,接受到的消息放到接收缓冲器,此时接收缓冲器状态标示RBS置为“1“,同时向A1r89c52产生一个接收中断,AT89C52响应中断后将消息保存到程序设置的消息缓冲中,同时释放接收缓冲器井对消息内容做出反应。中断控制接收数据的流程如图4所示。

3.4 LED数据显示和键盘输入程序

ZLG7289B内部含有译码器,可直接接收BCD码或16进制码,并同时具有2种译码方式,此外还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。

图4 中断控制接收数据流程

4 控制算法程序

通过运行控制算法程序,使得智能节点能够按照预定要求产生正确的动作。控制算法程序主要由二部分组成:键盘功能控制.步进电机运动控制,总线命令响应控制。

4.1 键盘功能控制

键盘功能控制程序依据AT89C52获得的不同键值,控制智能节点完成诸如步进电机运动圈数、角度设定,步进电机的启停等多种功能。各键对应的键盘功能见表1所示。

表1键盘功能

4.2步进电机运动控制

步进电机运动控制包括:速度控制,计数单位控制.计数控制,方向控制。在本论文设计中,步进电机速度控制程序将变量“TimePerPulse”作为速度控制参数,该变量与定时器1 (T1)和参数count Time相配合可实现步进电机已不同的速度动作。其中T1为100us定时器,当T1每计时100uS后产生一个中断,使得Count Time加“1”,当count Time=TimePerpulse时,AT89C52会通过端口发送一个脉冲控制步进电机走一个步进角,故步进电机转动一圈所需时间的计算公式为:

步进电机转动一圈所需时间=TimePerPulse*(细分数*200)*100(us)

式中(细分数*200)表示步进电机转动一圈所需要的全部脉冲数。

在本论文设计中.可以控制步进电机以角度或圈数这两种不同的计数单位控制步进电机的运动。当处于角度计数时,因步进电机的步进角细分为1时是1.8°/脉冲,即1度角对应的脉冲数不是整数,所以需要纪录以((1/360°)为单位的剩余脉冲计数,以避免累积误差。

4.3总线命令响应控制

当智能节点接收到总线数据后,需要对接收到的数据加以分析,以判断总线命令的类型.从而转入与该命令相对应的控制程序段中进行相关操作。接收数据各字节所代表的含义,在程序中通过一个结构加以说明。在程序中,首先根据参数判断命令类型,并依据命令类型来解释联合体中的数据应作为哪个命令的参数来进行处理。

5 本文结论

由于CAN总线的高速通信速率、高可靠性、连接方便、多主站、通讯协议简单和高性能价格比等突出优点,被公认为几种最有前途的总线之一。在本论文设计中.设计并实现了一个CAN总线测控系统中可控制现场设备的智能节点。

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

    关注

    0

    文章

    208

    浏览量

    24078
  • 监控系统
    +关注

    关注

    21

    文章

    3612

    浏览量

    169280
  • 总线
    +关注

    关注

    10

    文章

    2706

    浏览量

    87216
收藏 人收藏

    评论

    相关推荐

    基于Mega8单片机CAN总线智能节点设计

    基于Mega8单片机CAN总线智能节点设计
    发表于 08-20 13:24

    单片机有哪些应用2

    可以实现智能控制智能数据采集、远程自动控制现场自动管理,真正
    发表于 11-01 14:24

    如何去实现基于单片机的空调智能控制器的设计

    设计任务及具体内容本课题要求通过WIFI控制空调的温度,包括控制器和模拟空调两部分。首先控制器部分由按键、单片机和WIFI模块组成,通过按键将信息发送给
    发表于 11-19 06:15

    怎样去设计一种基于单片机的汽车车门节点控制器

    基于单片机的汽车车门节点控制器有何功能?怎样去设计一种基于单片机的汽车车门节点控制器呢?
    发表于 02-23 06:26

    CAN总线系统中可控制现场智能节点设计

    CAN(Control Area Network)总线技术是一种支持分布式实时控制的高安全性的串行总线。本文对CAN 控制网络中重要的现场
    发表于 08-14 09:07 11次下载

    基于CAN总线智能节点设计

    CAN总线是一种应用极为普及的现场总线。文中提出了一种CAN总线通信接口的设计方案。CAN总线智能节点
    发表于 01-25 15:04 51次下载

    CAN总线系统智能节点设计

    摘要:CAN总线上的节点是网络上的信息接收和发送站;智能节点能通过编程设置工作方式、ID、地址、波特率等参数。它主要由单片机和可编程的
    发表于 12-20 22:18 44次下载

    CAN智能节点的设计

    摘要:CAN总线是一种流行的实时性现场总线,文中提出了一种基于MSP430单片机,并以MCP2510为CAN控制器
    发表于 03-24 12:46 1236次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>智能</b><b class='flag-5'>节点</b>的设计

    基于CAN总线的智能节点设计

    应用51单片机控制核心结合其他的器件设计了一种能连接于CAN总线上的智能节点。通过单片机
    发表于 01-10 16:54 120次下载

    基于MCS-51单片机CAN总线控制器实现总线节点的设计

    控制等领域。在CAN总线的节点设计中,目前应用较多的是通过单片机控制实现。有的
    的头像 发表于 04-12 07:48 6305次阅读
    基于MCS-51<b class='flag-5'>单片机</b>和<b class='flag-5'>CAN</b>总线<b class='flag-5'>控制器</b><b class='flag-5'>实现</b>总线<b class='flag-5'>节点</b>的设计

    基于PIC16F874控制芯片实现嵌入式CAN智能节点的设计

    嵌入式CAN智能节点以PIC16F874单片机作为嵌入式微控制器,以MCP2510作为 CAN
    的头像 发表于 03-03 08:02 2315次阅读
    基于PIC16F874<b class='flag-5'>控制</b>芯片<b class='flag-5'>实现</b>嵌入式<b class='flag-5'>CAN</b><b class='flag-5'>智能</b><b class='flag-5'>节点</b>的设计

    单片机CAN控制器MCP2510实现CAN总线系统智能节点的设计

    MCP25l0是Microchip公司生产的一种独立的可编程CAN控制器芯片。本文将介绍新型的独立CAN通信控制器MCP2510,并给出其在CAN
    的头像 发表于 09-26 08:01 2856次阅读
    由<b class='flag-5'>单片机</b>和<b class='flag-5'>CAN</b><b class='flag-5'>控制器</b>MCP2510<b class='flag-5'>实现</b><b class='flag-5'>CAN</b>总线系统<b class='flag-5'>智能</b><b class='flag-5'>节点</b>的设计

    基于CAN总线控制器82527实现智能节点的软硬件电路设计

    一种由8051单片机和82527独立CAN总线控制器为核心构成的智能节点电路,在普通传感器基础上形成可接收8路模拟量输入和
    发表于 04-19 11:22 1699次阅读
    基于<b class='flag-5'>CAN</b>总线<b class='flag-5'>控制器</b>82527<b class='flag-5'>实现</b><b class='flag-5'>智能</b><b class='flag-5'>节点</b>的软硬件电路设计

    基于单片机CAN控制器实现现场智能节点的设计

    随着控制、计算机、通信、网络等技术的发展.传统的控制系统己越来越不能满足现代工业的要求。以信息技术为基础的网络集成自动化系统己经成为当今自动化领域技术发展的热点之一,它的出现标志着丁业控制领域又一个新时代的开始,并将对该领域的发
    的头像 发表于 05-16 10:44 1370次阅读
    基于<b class='flag-5'>单片机</b>和<b class='flag-5'>CAN</b><b class='flag-5'>控制器</b><b class='flag-5'>实现</b><b class='flag-5'>现场</b><b class='flag-5'>智能</b><b class='flag-5'>节点</b>的设计

    基于单片机CAN总线AO智能节点设计

    电子发烧友网站提供《基于单片机CAN总线AO智能节点设计.ppt》资料免费下载
    发表于 10-20 10:02 0次下载
    基于<b class='flag-5'>单片机</b><b class='flag-5'>CAN</b>总线AO<b class='flag-5'>智能</b><b class='flag-5'>节点</b>设计