ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:380.80KB ,
资源ID:11301321      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11301321.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于CAN总线的分布式电机控制.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于CAN总线的分布式电机控制.docx

1、基于CAN总线的分布式电机控制摘 要 本文探讨的是利用CAN总线的接口技术实现对从属电机转速的实时调控的系统,此次实验以C51单片机为控制核心进行数据的收发、处理,并设计相应的上位机程序实现PC机与MCU的通信,将各个从属单片机的发送的电机速度通过CAN反馈到PC机软件界面以供实时查看,并且通过上位机发送电机的速度至下位机,所要接受调控的电机所处的MCU便接受此数据并调节点击相应的速度。该实验结果表明该系统工作稳定,人机界面合理易用,实时图像监控及各个电机状态控制良好,并可以为系统升级作了接口。关 键 词:C51单片机; SJA1000; 串口通信; CAN总线目 录0引言 20.1 系统工作

2、流程 30.2 系统各个组成部分及其功能介绍 30.3 系统各个组成部分的核心部件或技术 41 系统设计 41.1 硬件电路设计 41.2节点主要元件电路原理 51.3系统总体核心电路设计原理 61.4 软件设计 72.系统测试 103结语 104 参考文献 115 致谢 110引言 CAN总线是控制器局域网总线的简称,它属于现场总线范畴,是一种能有效支持分布式控制或实时控制的串行通信网络,它可将挂接在现场总线上作为网络节点的智能设备连接成网络系统,并进一步构成自动化系统,从而实现基本的控制、补偿、计算、参数修改、报警、显示、监控、优化及控管一体化的综合自动化功能。CAN总线智能节点在分布式控

3、制系统中起着承上启下的作用。它位于传感器和执行机构所在的现场,一方面和上位机进行通信,以完成数据交换;另一方面又可根据系统的需要对现场的执行机构或者传感器进行控制和数据采集。它常常将一些简单的过程控制程序放在底层模块中,从而减少了通信量,提高了系统控制的实时性。0 系统陈述0.1 系统工作流程 图0.1 系统工作流程图 首先工作人员利用计算机发送数据ID+速度,该数据被主MCU接收,该主MCU将数据发送到CAN网络上,各个从MCU均接收此数据,然后各个MCU对数据进行判断是否符合自己的ID,如果符合则接收此数据并将此速度发送至电机调整电机速度,同时将电机运转后的速度在发送到CAN网络上,主MC

4、U就会从CAN上接收到此数据并传到计算机上供工作人员校审;如果不符合则将此数据丢弃并维持自己的状态。0.2 系统各个组成部分及其功能介绍 如上系统工作流程图0.1所示,系统共分为三大部分,位于最上层的是计算机,这是人机交互的部分,远程操作人员在此操作室内负责各个电机的转速的调控工作,工作人员可以查看各个电机的转速及转向,以确定各个电机的运转状态是否正常及是否达到要求,若要改变其中电机的速度时工作人员只需要输入电机的ID号+速度(例如1234),则就是对1号电机的速度调整为234 r/s,接着计算机就会显示该1号电机反馈的速度,工作人员就可以根据返回的速度判断该电机的运转情况是否符合要求。 第二

5、部分则是主MCU,这部分的功能是作为PC机与电机之间的联络部分,它的功能是接收计算机发送的数据即ID+速度,将此数据处理成合理的格式后传递给各个从MCU,同时各个从MCU 也可以讲各自电机的速度发送给此主MCU,主MCU便对此数据处理后发送给计算机。 第三部分则是从MCU,这部分的MCU将主MCU发送来的速度发送至各自的电机,使电机以此速度运转,并将运转后的速度发聩给主MCU。位于第二部分与第三部分之间的那部分则是本系统的核心基础:CAN网络,该网络就是负责将主MCU发送的数据以广播的形式传递到各个从MCU,同时各个MCU也将自己的数据发送到这个网络上,该CAN控制器SJA1000按照网络协议

6、将发送来的数据按其优先级将最高优先级的从MCU发送来的数据发送给主MCU,然后是第二,第三级的数据发送过去。0.3 系统各个组成部分的核心部件或技术首先第一部分主要是计算机,此计算机作为人机交互部分使用的是VISUAL VBASIC 开发的上位机程序。第二、三部分主要是硬件和软件部分,第二、三部分的核心器件就是C51单片机系统的核心控制部分,软件部分则是基于C语言的下位机程序,实现系统地功能。作为第二第三部分的联络环节则是本系统的核心基础CAN网络,本文选择SJA1000控制器 1 系统设计1.1 硬件电路设计 CAN总线接口硬件电路的设计硬件电路的设计主要是CAN 通信控制器与微处理器之间和

7、CAN总线收发器与物理总线之间的接口电路的设计。CAN通信控制器是CAN总线接口电路的核心,主要完成CAN的通信协议,而CAN总线收发器的主要功能是增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI),实现热防护等。 CAN节点核心器件及其选择目前广泛流行的CAN总线器件有两大类:一类是独立的CAN控制器,如82C200、SJA1000及Intel82526/82527等,另一类是带有在片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。本课题选取PHILIPS公司的SJA1000 CAN控制器以及82C250总线收发器,主要是考虑到SJA1000

8、支持CAN 2.0A/B规约。而82C250可以支持110个CAN节点,并且国内市场上PHILIPS的产品型号比较多,购买比较方便。 CAN总线接口电路SJA1000 在电路中是一个总线接口芯片,通过它实现上位机与现场微处理器之间的数据通信。该电路的主要功能是通过CAN总线接收来自上位机的数据进行分析组态然后下传给下位机的控制电路实现控制功能,当CAN总线接口接收到下位机的上传数据,SJA1000就产生一个中断,引发微处理器产生中断,通过中断处理程序接收每一帧信息并通过CAN总线上传给上位机进行分析。AT89C51是CAN总线接口电路的核心,其承担CAN控制器的初始化、CAN的收发控制等任务。

9、CAN总线接口框图见图1.图1 CAN总线接口框图1.2节点主要元件电路原理 图2 接口主要元件电路原理图接口主要元件电路原理图见图2,在进行电路设计时应注意以下几点,否则达不到预期的效果。(1)总线两端必须接两个终端匹配电阻RT,忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低。(2)PCA82C250为CAN控制器和物理总线之间的接口,它可以提供向总线的差动发送能力和CAN控制器的差动接收能力,TXD和RXD引脚分别发送经过驱动后的发送和接收信号。其引脚8(RS)可以选择2种不同的工作方式:把该引脚直接与地相连,系统将处于高速工作方式,在这种方式下,为避免射频干扰,建议使用屏蔽电缆作总线

10、;而在波特率较低,总线较短时,一般采用斜率控制方式,上升及下降的斜率取决于RS的阻值,实践表明15-200k为RS较理想的取值范围,在这种方式下,可以使用双绞线作总线。(3)SJA1000的TX1脚悬空,RX1引脚的电位必须维持在约0.5VCC上,否则,将不能形成CAN协议要求的电平逻辑。因本系统传输距离近,环境干扰小,可以不用电流隔离,这样可以直接把82C250的VREF端与SJA1000的RX1相连,从而简化了电路。(4)设计时将SJA1000的CLOCKOUT的时钟信号接至AT89C51的时钟电路输入端,作为AT89C51的外部时钟输入,解决了时钟同步问题;SJA1000中断输出信号/I

11、NT接至AT89C51的/INT0端,通过中断方式与AT89C51通信。1.3系统总体核心电路设计原理 can总线 CANL CANH (a)从机系统的原理图系统采用单片机 AT89C51 作为监测系统的控制核心,连接 SJA1000 CAN 控制器和 P82C250 CAN 总线接口驱动芯片构成单个 CAN 节点。单个节点的系统结构框图如图 1.1.1a 所示,单个 CAN 总线节点和数据处理显示。SJA1000是一种独立的 CAN 控制器,P82C250是 CAN 控制器与物理介质之间的接口。整体的系统框图如图 0.1图所示。系统内有多个节点(从机),系统的每个发送节点将数据采集到单片机内

12、,再通过 CAN 控制器 SJA1000 按照一定的协议和检错机制构成帧,通过CAN总线发送出去。系统的接收节点通过中断接收数据,当有数据需要接收时,CAN控制器 SJA1000 硬件产生中断,同时CAN控制器会对接收的帧信息进行错误检测,判断是否有误码信息,如果接收的数据有溢出或错误,CAN 控制器会置位 CAN 总线控制器的状态寄存器的相应位,单片机会对该CAN节点软复位。如果接收到的数据没有错误,通过单片机提取出数据位,将数据发送到PC机上显示。系统每个节点都有相对独立的电机驱动模块、控制模块,故可以单机使用,同时由于CAN 总线网络上节点不分主从,系统的所有节点都可以作为发送节点(从机

13、)或接收节点(主机)。1) CAN 总线节点硬件电路 单个 CAN 节点电路如图 (b)所示 (b)单个节点的电路原理图U1 芯片为单片机AT89C51,U2芯片为CAN通信控制器SJA1000,U3为8个排线电阻, U4 芯片为SHT11,U5芯片为CAN总线收发器PCA82C250。单片机 AT89C51负责数据处理和SJA1000的初始化,并通过控制SJA1000实现数据的接收和发送等通信任务。AT89C51采用 11.0952MHz的外部晶振,SAJ1000采用16MHz的外部晶振。SJA1000的AD0AD7连接到 AT89S5X 的P0口,片选CS连接到基址为0xFE00的外部存储

14、片选信号,当访问地址 0xFE000xFE31 时,AT89C51单片机可对SJA1000执行相应的读写操作。SJA1000的RD、WR、ALE 分别和AT89C51的对应引脚相连,INT接AT89C51的INT1使AT89C51可通过中断方式访问SJA1000。SJA1000 的复位信号RST为低电平有效,其接AT89C51的P2.3口。其中:R8=2k;R7=4.7k;R12为斜率控制电阻,系统选用47k,R3=120,起匹配阻抗的作用;R10、R11均为5的电阻,起一定的限流作用,保护 CAN 收发器受过流的冲击2) 电机速度采集电路设计。系统采用霍尔传感器传感器测的每分钟的转数,然后分

15、别送至 A / D 转换器进行模数转换、校准和纠错,最后通过二线串行接口将相对的数据送至单片机。3) 显示模块。系统采用 LCM1602字符型液晶模块,主要显示 CAN 发送节点发送过来的数据,单片机的P1口接8位数据,用 P2.7、P2.6、P2.5分别接LCM1602 的 RS、 R / W、E。1.4 软件设计 下位机的设计软件主要包括转速数据采集、 CAN 节点发送、CAN 节点数据接收、接收结果处理和显示部分等,采用 C 语言编写,主程序流程如图 4 所示。 。 图 4 CAN 总线单个节点主程序流程系统一旦启动,各主从节点便首先进入主程序。在主程序中,首先进行定时器初始化、LCD初

16、始化、CAN总线的初始化、中断的初始化,定时器的初始化为一分钟定时,每一分钟执行一次中断,计算从霍尔传感器采集来的电平转换次数,计算电机的数度,LCD初始化为显示电机的ID+速度,CAN总线初始化为进入收发状态。当系统进入就绪时,每个从MCU都会显示各自的ID+Speed。 CAN总线的初始化流程如图 5 所示。 图 5 CAN 总线初始化流程正常运行方式下的操作涉及 SJA1000 中的命令寄存器、状态寄存器、中断寄存器、接收缓冲区、发送缓冲区等。命令寄存器用于控制 SJA1000 执行某些操作,如进入睡眠状态、释放接收缓冲器、中止发送和请求发送等。状态寄存器用于了解SJA1000 的状态,

17、以便决定程序的分支和转移。中断寄存器用于识别中断源,当该寄存器的一位或多位被置 1 时,INT(低电平有效)引脚就被激活,激活后所有的位被复位,导致INT引脚上电平升高。发送缓冲区用于存储来自单片机需要发送的报文,分为描述区和数据区,发送缓冲区的读、写只能在 SJA1000 处于操作模式下由单片机完成。在复位模式下读出的数值总是FFH,接收缓冲器的标识符、远程发送请求位和数据长度码的含义及位置与发送缓冲区类似,地址范围为 20 29 H。RXFIFO共有 64 B 的报文空间,可以存储的报文取决于各条报文的长度。发送和接收数据的程序流程分别如图 6 和图 7 所示。 图 6 CAN 总线发送数

18、据程序流程 图 7 CAN 总线接收数据程序流程 上位机的串口通信本次上位机程序是用VISUAL BASIC 语言,其主要功能是完成上位机与下位机的通讯,操作人员根据需求发送ID+速度至主MCU,MCU将所接收到的速度发送至相应的从机,同时PC机也能显示主MCU 反馈来的电机的速度,以达到对各个从机的实时调控。基于VB串口通信主要是借助MSCOMM控件,以下是该控件的初始化 MSComm1.CommPort = Val(Right(Combo1.Text, 1) 设置通信端口号为COM1 MSComm1.Settings = 9600,n,8,1 设置串口参数 MSComm1.InputMod

19、e = 0 接收文本型数据 MSComm1.InputLen = 1 MSComm1.RThreshold = 1 接收缓冲区每收到一个字符都会使 MSComm 控件触发OnComm 事件 MSComm1.PortOpen = True2.系统测试 图中显示了下位机反馈的所要电机的速度,当在蓝色文本框内输入ID+SPEED时,例如2234即表示对2号电机的速度要求是234 r/s,然后从机就将2号电机的速度反馈以供检测。红色文本框中显示的是从机发送过来的电机转速,曲线图则是对速度的实时显示,以观测电机转速的波动。当电机复位时,则整个系统进入初始状态,这是在系统出错的情况下使用。3结语 该初始化

20、程序使SJA1000工作在BASICCAN模式下,CAN总线位速率为200kHz。根据总线传输的距离不同速度可以调整。为提高其抗干扰性能,还可以在SJA1000与CAN总线收发器之间加光隔。 CAN总线以其优良的性能使其应用方兴未艾,以SJA1000为控制器构成各种CAN总线系统方便、简单、成本低廉,这也是开发与应用其它CAN总线产品的基矗ImgLoad(document.getElementById(BodyLabel); 通过运行证明,CAN总线具有以下优点:组网自由,扩展性强;自动错误界定,简化了通信的操作;可根据数据内容确定优先权,解决通信的实时性问题。此外,CAN网络已在众多工业控制

21、系统中应用,尤其在传输速率较高而且对实时性及可靠性要求高的场合,CAN总线将有广阔的应用前景。4 参考文献1 邬宽明.CAN总线原理和应用系统设计M.北京:北京航空航天大学出版 社,1996.2 周凤余,鲁守银,李贻斌,等.CAN总线系统智能节点设计与实现J.微计算机信息,1999.3 高强,董力川,朱宁.嵌入式CAN总线控制系统设计J.自动化技术与应用,2002. 4 陆前锋.基于SJA1000的CAN总线智能控制系统设计J.自动化技术与应 用,2003.5 饶运涛现场总线 CAN 原理与应用技术M北京:北京航空航天大学出版社,2004.6 李晋华,邱春玲,田地基于 CAN 总线数据采集系统的设计与实现 J吉林大学学报,20047 李朝青单片机原理及接口技术M3 版北京:北京航空航天大学出版社,2005.8 戴 佳,戴卫恒,刘博文 51 单片机 C 语言应用程序设计实例精 讲 M北 京:电 子 工 业 出 版 社,2005.5 致谢 感谢这次的指导老师韩老师,对此文的辅导。 .

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1