基于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总线以其高性能、高可靠性及其独特的设计越来越受到人们的重视,并被公认为最有前途的总线之一。我们在家庭控制器系统中应用了这种总线技术,设计了硬件电路和软件,并得到实际应用。
CAN总线 家庭控制器 SJA1000 控制寄存器 相关文章:
- 浅谈数据线扼流圈改善电磁兼容问题使汽车更加安全(06-23)
- CAN总线技术在汽车车身控制中的应用(03-28)
- 汽车电子须知 汽车网线与CAN总线的标准(04-17)
- 基于CAN总线重型汽车内轮差预警系统的设计(05-16)
- 利用CAN总线的进行汽车轮速传感器设计(06-27)
- 浅谈汽车车载网络的应用(07-07)