微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 基于CAN总线的家庭控制器的设计与实现

基于CAN总线的家庭控制器的设计与实现

时间:10-04 来源:解放军信息工程大学 点击:



  CAN接口适配卡和CAN总线中继器

  CAN接口适配卡完成CAN-PC总线的通信。适配卡由单片机89C51、CAN控制器SJA100、CAN收发器89C250及其控制电路组成。

  由于CAN收发器的限制,在一个CAN总线网络中,最多只能有110个CAN节点,最多只能有110个CAN节点。利用中继器可对CAN总线进行扩展,不但可使CAN节点总数达到2032个,而且可使CAN通信距离成倍增加,同时也可以把两个不同速率的CAN网连接在一起,组成更复杂的CAN网络。

  中继器采用特定的控制逻辑控制一对CAN收发器82C250.CAN收发器背-背相接,连接两个物理上独立的CAN网,双向传输数据。从物理层上看,中继器实现CAN总线信号的透时中继。

  软件设计

  上位机软件


  采用Visual Basic 6.0开发软件。分两大功能模块:高层系统管理模块和低层通信模块。程序流程图如图4所示。


  家庭控制器(节点)软件

  实现与上位机及其它节点的信息交换。

  在软件设计中, 遵循模块化设计思想,采用结构化程序设计方案,使之具有良好的模块性、可修改性和可移值性。

  CAN总线系统的初始化设计是软件设计的关键,这一部分设计不好,系统将不可能正常工作。因此初始化设计是一个难点,又是一个重点。

  在初始化之前,应设置输出控制寄存器(OCR)的复位请求位为高,再设置其它寄存器。控制寄存器(CR)设定中断;命令寄存器(CMR)控制缓存器的接收状态;中断寄存器(IR)、状态寄存器(SR)查询SJA1000的工作状态;接收码寄存器(ACR)设定工作地址;接收屏蔽寄存器(AMR)设定工作形式,总线定时寄存器(BTR0、BTR1)设定工作频率、采样频率;输出控制寄存器(OCR)一般为正常输出方式,最后应使复位请求位从高变低,使CAN 控制器进入正常工作状态。因此,对CAN控制器进行初始化,实际上就是对ACR,AMR,BTR0,BTR1和OCR这些寄存器进行访问。

  成功地初始化SJA1000后,系统就可以应用它来传输报文。

  结语

  CAN总线以其高性能、高可靠性及其独特的设计越来越受到人们的重视,并被公认为最有前途的总线之一。我们在家庭控制器系统中应用了这种总线技术,设计了硬件电路和软件,并得到实际应用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top