基于单片机和CAN控制器和CAN收发器实现多机系统系统的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机和CAN控制器和CAN收发器实
现
多机系统系统的设计
关于单片机的多机通信,许多文章及相关书籍都有介绍,但就其多机通信的方式而言大多为“主从式”,这一通信方式限制了单片机功能的发挥及广泛的应用。利用巧秒的硬件手段实现了单片机多机之间的“对等式”通信,但其通信方式实质上仍是“主从式”。本文介绍了一种基于姆控制器的单片机多机系统,从本质上实现了任意两机之间直接相互通信,从而克服了“主从式”多机通信的缺点。
1、CAN技术简介
CAN(Contro11erAreaNet)即控制器局域网,是主要用于各种过程(设备)监测及控制的一种网络。CAN最初是则德国岖里公司为汽车的监测、控制系统而设计的。由于CAN具有卓越的特性的极高的可靠必,特别适合于工业过程中监控设备的互连,因此,越来越受到工业界的重视。具本来说,CAN具有如下特性:
(1)CAN可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节发送信息,而不分主从,通信方式灵活;
(2)CAN可以点对点、点对多点(成组)及全局广播方式传送接收数据;
(3)CAN网络上的节点信息可分成不同的优先级,可以满足不同的实时要求;
(4)CAN采用非破坏性总线仲载技术。当两个节点是向网络上发送数据时,优先级低的点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据,大大地节省了总线仲载冲突时间,在网络负载很重的情况下也不会出现网络瘫痪;
(5)CAN的直接通信距离最大可达IOkm(速率小于5kbps),最高通信速率可达IMkbps(此时距离最长为40m)。
2、基于CAN控制器的对等式单片机系统软硬件设计
2.1系统硬件设计
2.1.1系统组成原理及通信过程
所谓对等式通信,就是单片机多机系统中任一节均可主动地与其它节点直接交换数据,
而无须经过第三方。从此角度出发,我们设计的基于CAN 控制顺的单片机多机系统组成如图1所示。
系统中的每个节点由单片机、CAN 控制器、CAN 收发器组成。单片机主要用于系统的计算及信息处理等功能;CAN 控制器主要用于系统的通信;CAN 收发器主要用于增强系统的驱动能力。系统的发送过程是:单片机将外围设备或其他节点传送过来的信息处理后,按CAN 规范规定的格式将其写入CAN 控制器的发关缓冲区,并启动发送命令,把数据发送到CAN 总线上;接收过程是:CAN 控制器从CAN 总线上自动接收数据,并经过滤后存入CAN 接收缓冲区,且向单片机发出中断请求,此时单片机可从CAN 挡收缓冲区读要接收的数据。
2.1.2 系统节点的硬件设计举例
图2是所研制的低成本农业温度控制系统中与本文相关部分的硬件电路图。
设计是应注意以下几点:
(1)总线两端各有一个120。的电阻,对于匹配总线阻抗起着相当重要的作用。否则,数据
通值的抗干扰性及可靠性大大降低,甚至无法通信。
单H 机80CSIAH
CAN 技就苻SJΛIOoo
AD0/P0.0AD 1/POJAD2/P O.2ΛI)3∕PO.3AD4/P0.4AD 5/P0.5ΛI)6∕P 0.6AD7/P0.7
P2.7A1E/PROGfΠJ∕P3.7WK7P3.6TXTθ7P3.2
XTA1!
K*<Γ
23 ΛDO τ×0
Λ1)1
TXI Λ1)2 RX 。
AD3 AD4 ΛD5 MODE A1)6 VDD1 AD7 VSS1 1S VDD2 A1E VSS2 KD
VDD3 VSS3I
NT
11KOUT XJA
11
R sT
XTA12
24 25
26
27 28 I 2 4 3 5 6 16
7 1位电
珞
—
17
—
CAN<<S PCA82C250∕251 TXDCANH 图I 系晚依成库理图
N 2洋片忱多机系皖节A 电路
KXDCAN1
(2)为了CAN与单片机之间时序的同步,一般采用CAN控制器给单片机提供班信号,此时时钟信号对CHMOS型单片机应接XTA1I引脚,对HMOS型单片机接XTA12弓I脚。
(3)若CAN收发缓冲器采用集成元器件,则RX1脚应接地,且CDR位应置逻辑E否则,RX1引脚电位必需维持在内2.5V以上,且CDR寄存器中的CBP位应置逻辑0,以形成CAN要求的逻辑电平。
2.2系统软件设计
系统软件设计的关键是通信程序的设计。通信软件由三部分组成:初如化程序、发送程序、接收程序。由于系统中任意一节点在任意时刻均可主动与其它节点通信,所以,各世点的通信程序相同。
2.2.1初始化程序
初始化程序主要是通过对CAN控制器控制段中的寄例疆写入控制字从而确定CAN控制器工作方式等。有三种方式进入初始化和谐:一是上电复位;二是硬件复位;三是软件复位,即运行期间通过给CAN控制器发一个复位请求,置复位请求位为1。在复位期间,必需初始化的寄存器有:MR(Pe1iCAN 模式)模式寄存器、CDR时分寄存器、ACR接收代码寄存器、MAR屏蔽寄存器、BTR总线定时寄存器、OCR输出控制寄存器。需要注意的是,这些寄存器仅能在复位期间可写访问。因此,在对这些寄存器初始化前,必须确保系统进入了复位状态。初始化程序的流程图如图3所示。
周3初妁化流在国
2.2.2发送程序
信息从CAN控制器发送到CAN总线是由CAN挖掘器自动完成的。发送程序只需把发送的信息帧送到CAN的发送缓冲区,且启动发送命令即可。发送程序可采用查询方式或中断方式比较简单,这里仅讨论中断方式发送程序的设计。对于中断方式,发送程序分为两部分:一是主程序;二是中断服务程序。主程序主要用于控制信息发送及当发送缓冲区满时,把发送的信息暂存到临时在僮区;中断发送程序负责把临时存储区的暂存信息发送出去。两者的流程图如图分别见图4、图5。