基于c8051f040的can总线通讯系统设计

基于c8051f040的can总线通讯系统设计

ID:15784449

大小:84.00 KB

页数:3页

时间:2018-08-05

基于c8051f040的can总线通讯系统设计_第1页
基于c8051f040的can总线通讯系统设计_第2页
基于c8051f040的can总线通讯系统设计_第3页
资源描述:

《基于c8051f040的can总线通讯系统设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于C8051F040的CAN总线通讯系统设计1引言,can总线,即控制器局域网总线,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性及独特的设计和适宜的价格,而广泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等领域,并已被公认为几种最有前途的现场总线之一。目前can系统使用较多的是独立can控制器,利用单片机的并口控制can控制器,除了8条数据线外,还需要几条控制线。采取这样的设计不但占用了单片机的引脚,而且增加了电路板的面积。同时,由于采用了并行通讯,降低了系统的可靠性,因此,采取系统内部集成can控

2、制器的单片机势在必行。本文已cygnal公司的内部集成can控制器的c8051f040单片机为基础,介绍了can总线的通讯接口的具体设计及其应用。由于采用了集成can控制器的单片机,大大简化了电路,同时也提高了系统的可靠性。2c8051f040集成的can控制器c8051040内部集成can控制器,他兼容can技术规范2.0a和2.0b主要由can内核、消息ram(独立于cip-51的ram)、消息处理单元和控制寄存器组成,图1所示是c8051f040的内部的can总线结构图。图1中,can内核由can协议控制器和负责消息收发的串行/并行转换

3、rx/tx移位寄存器组成,消息ram用于存储消息目标和每个目标的仲裁掩码。这种can处理器有32个随意配置为发送和接收的消息目标,并且每一个消息目标都有他自己的识别掩码,所有的数据传输和接收滤波都是由can控制器完成的,而不是由cip-51来完成。can内部寄存器中存储了所有can的控制和配置信息,其中包括控制寄存器、状态寄存器、设置波特率的位定时寄存器,测试寄存器、错误计数器和消息接口寄存器。通常can内核不能直接访问消息ram,而必须通过接口寄存器if1或if2来访问。另外,cip51的sfr并不不能直接访问can内部寄存器的所有单元,其

4、配置can、消息目标、读取can状态以及获取接收数据、传递发送数据都由sfr中的6个特殊寄存器来完成,其中can0cn,can0tst和can0sta三个寄存器可直接获取或修改can控制器中对应的寄存器,而can0dath,can0atl,can0adr三个寄存器主要用来访问修改其他不能直接访问的can内部寄存器,其中can0adr用来指出要访问寄存器的地址,ca0dath,can0datl这时就相当于要访问的16位寄存器的高低字节的映射寄存器,而对他们的读写则相当于所指向寄存器的读写。图2给出了cip-51如何访问can中控制寄存器和每个消

5、息的路径图。消息处理单元用于根据寄存器中的消息来控制can内核中移位寄存器和消息ram之间的数据传递,同时,他还可用来管理中断的产生。3智能节点通讯部分的硬件设计c8051f040中内置can总线协议控制器,只要外接总线驱动芯片和适当的抗干扰电路就可方便地建立一个实用的can总线智能测控节点。本文采用philip公司的tja1050tcan总线驱动器,硬件原理图如图3所示。为了增强can总线节点的抗干扰能力,可以采取以下措施:(1)f040的tx0和rx0并不是直接与tja1050t的txd和rxd相连,而是通过高速光耦6n137后与tja1

6、050t相连,这就很好地实现了总线上各can节点间的电气隔离,不过应该特别说明的一点是光耦部分电路采用的两个电源va和vb必须完全隔离,否则采用光耦也就失去了意义。这些部分虽然增加了节点的复杂性,但是却提高了节点的稳定性和安全性。(2)tja1050t的canh和canl引脚各自通过1个5ω的电阻与can总线相连,电阻可起到一定的限流作用,保护tja1050t免受过流的冲击。(3)canh和canl与地之间并联2个30pf的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的作用。(4)另外可在2根can总线接入端与地之间分别反接1个保护

7、二极管。当can总线有较高的负电压时,通过二极管的短路可起到一定的过压保护作用。4智能节点的通讯软件设计节点的can通信主要包括系统初始化程序、发送程序、接收程序等,软件部分设计的好坏将直接决定系统能否正常工作,对于初次接触can总线系统的设计人员来说是一个难点,也是一个重点,在本论文中,系统软件采用结构化程序设计方案,使其具有较好的模块性和可移植性,对于不同的系统功能或不同的应用环境,可以方便地进行编程重组。4.1系统的初始化初始化程序主要完成对所有的消息对象进行初始化(一般将所有值置零),对can控制寄存器(can0cn)、位定时寄存器(

8、bitreg)进行设置,还要对发送消息对象和接收消息对象分别进行初始化。其中,位定时寄存器的设置较为复杂,这里使用外部晶振为11.0592mhz,can通信速率为1

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

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

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