CAN总线应用分析.doc

CAN总线应用分析.doc

ID:49407750

大小:342.00 KB

页数:13页

时间:2020-03-01

CAN总线应用分析.doc_第1页
CAN总线应用分析.doc_第2页
CAN总线应用分析.doc_第3页
CAN总线应用分析.doc_第4页
CAN总线应用分析.doc_第5页
资源描述:

《CAN总线应用分析.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、CAN总线应用分析控制局域网CAN属于现场总线范围,是德国BOSCH公司从20世纪80年代初为解决现代汽车屮众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维,通信速度可达1Mbit/&1系统组成CAN总线用户接口简单,编程方便。CAN总线属于现场总线的范畴,CAN总线系统的图1系统总体结构一般组成模式如图1所示:网络拓扑结构采用总线式结构。这种网络结构结构简单、成本低,并且采用无源抽头连接,系统可靠性高。通过CAN总线连接各个网络节点,形成多主机控制器局域网(CAN)。信息的传输采用CAN通信

2、协议,通过GAN控制器来完成。各网络节点般为带有微控制器的智能节点完成现场的数据采集和基于CAN协议的数据传输,节点可以使用带有在片CAN控制器的微控制器,或选用一般的微控制器加JL独立的CAN控制器来完成节点功能。传输介质可采用双绞线、同轴电缆或光纤。如果需要进一步提高系统的抗干扰能力,还可以在控制器和传输介质之间加接光电隔离,电源采用DODC变换器等措施。这样可方便构成实吋分布式测控系统。2CAN总线的物理接口采用CAN收发器PCA82C250作为CAN控制器和物理总线之间的接口,提供向总线的差动发送能力和对CAN控制器的差动接收能力,如图2所示。120H图2C

3、AN总线物理接口图一般在驱动芯片和CAN控制器Z间加入光电耦合器,增加抗干扰能力。CAN总线的速度将由光电耦合器的速度决定。比如:用4N27光耦,因为它的响应速度比较慢,CAN网络的位速度只能达到几十Kbit/s。如果采用6N137高速光电耦合器,CAN网络速度可以达到和电阻网络驱动吋的速度一样。另外,物理层的设计要注意电缆的终端阻抗匹配,这直接影响了CAN总线能否正常工作和网络性能,一般在CAN总线两端并联120Q的电阻。3应用软件设计CAN控制器其内部硬件实现了CAN总线物理层和数据链路层的所有协议内容,有关CAN总线的通信功能均由CAN控制器自动管理执行。CA

4、N控制器对于CPU来说,是以确保双方独立工作的存储影像外囤设备出现的。CAN控制器的地址域由控制段和报文缓存器组成,在初始化向下加载期间,控制段可被编程以配置通信参数。CAN总线上的通信也通过此段由CPU控制,被发送的报文必须写入发送缓存器,成功接收后,CPU可以从接收缓存器读取报文,然后释放它,以备下次使用。对于在片的CAN控制器,它与CPU之间的接口一般借助于4个特殊寄存器:CAN地址寄存器、数据寄存器、控制寄存器、状态寄存器。对于单独的CAN控制器,MCU可以通过其地址/数据总线对其寄存器直接寻址,就像MCU对一般外部RAM寻址一样。通过对图3CAN发送数据帧

5、流程图这些寄存器编程操作,可很方便控制CAN控制器完成通讯功能。CAN发送数据帧流程图如图3所示。此外,CAN还可以发送远程帧,作为某数据接收器的节点,通过发送远程帧可以启动其资源节点传送它们各自的数据。与数据帧最大的区别是,远程帧没有数据域。CAN发送远程帧流程图如图4所示。CAN控制器的收发功能均可借助克屮断服务执行。CAN屮断服务程序流程图如图5所示。屮断入口YYNN接收数据重新发送数据Y发送数据判断屮断类型?开始初始化SJA1000开中断NY读入标识码启动•发送是否发送远程帧?结束图4CAN发送远程帧流程图出错屮断?接收屮断?是否为远秤帧?转存数据释放接收缓

6、冲器中断返回图5CAN中断服务程序流程图4CAN实例分析4.1CAN的自发自收CAN的自发自收是由单个节点完成的,在软件设计吋首先应对CAN控制器(如SJA1000)初始化正确,这是CAN通讯成功的前提,在CAN的口发口收程序屮,初始化CAN控制器时,应将模式寄存器(MODE)设为自检测模式,验收屏蔽寄存器的值设为无关(B

7、JOxff)o在发送数据时,半要发送的数据送入发送缓冲区Z后,启动发送,此时应将命令寄存器(CMR)的值设为()X1(),这点尤其需要注意。4.1.1CAN控制器的初始化CAN控制器SJA1000的初始化包括模式寄存器MODE、总线时序定吋器BT

8、R0和BTR1、时钟分频寄存器CDR、输出控制寄存器OCR、验收滤波器、屮断使能寄存器IER、接收缓冲器、错误计数器以及错误代码捕捉寄存器ECC的设置。其屮接收缓冲器、错误计数器以及错误代码捕捉寄存器ECC的值一般都设为0。模式寄存器模式寄存器(MODE)的内容用来改变CAN控制器的行为方式,位于CAN地址0,可由CPU设置或复位。保留位的值为逻辑0。模式寄存器各位的功能说明如表1所示。表1模式寄存器各位的功能说明(CAN地址0)位名称值功能描述MOD.7〜5——保留MOD.4睡眠模式I睡眠:没有CAN中断待决和总线活动时,CAN控制器进入睡眠模式0唤醍:从睡眠

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。