摘要:现场总线已成为数据总线领域中最为活跃的热点,CAN总线被公认为最有前途的现场总线之一,CAN总线节点的设计、调试是CAN总线通讯系统设计的重点。在此介绍了C8051F040单片机内部集成的CAN控制器,并基于C8051F040单片机设计了一个CAN通信节点,并给出了CAN节点测试模式软件设计程序,可以用于CAN总线模块的测试,节省测试时间。
关键词:C8051F040;CAN总线;测试模式;CAN控制器

现场总线能同时满足过程控制和制造业自动化的需求,因而现场总线已成为数据总线领域中最为活跃的一个领域。现场总线的研究和应用已成为数据总线领域的热点。CAN总线(Controller Area Network)属于现场总线的范畴,它是一种支持分布式控制和实时控制的串行通信网络。CAN总线是德国博士公司在20世纪80年代为解决现代汽车中众多的控制和测试仪器之间的数据通信而开发的一种串行通信协议。由于其高性能、高可靠性、及独特的设计,CAN总线越来越受到人们的重视,其应用领域不再局限于汽车工业,而向过程工业、机械工业、纺织工业、农用机械、传感器以及航空航天等领域发展。被公认为最有前途的现场总线之一。

1 引言
    Cygnal公司开发的51系列单片机C8051F040是完全集成的混合信号系统型微控制器,其上集成可实现全功能CAN的CAN总线控制器,完全符合CAN规范2.0A和2.0B。本文利用C8051F040单片机上集成的CAN控制器,外接一个CAN收发器(PCA82C250)设计了一个CAN通信节点的硬件电路,然后详细介绍了CAN控制器测试模式的实现,可以应用于CAN通信节点的调试测试。

2 C8051F040单片机上集成的CAN控制器
    CAN控制器包括CAN核,消息存储器,消息处理器,控制寄存器和模块接口等几部分。CAN核用于协议控制和消息的串并转换;消息存储器用于存储消息对象和标志符;消息处理器用于控制CAN核和消息存储器之间的数据传输;控制寄存器用于控制和配置CAN控制器;模块接口用于MCU与CAN控制器之间交换数据。C8051F040单片机上集成的CAN控制器的消息存储器上可以存储32个消息对象,均可以被配置为发送或接收对象。CAN总线协议处理由CAN控制器独立完成,不用MCU干预,因此CAN通信占用的CPU带宽很小,C8051F040集成CAN控制器原理如图1所示。

3 CAN控制器工作模式
    C8051F040单片机上集成的CAN控制器主要有2种工作模式:正常工作模式和测试模式。可以通过将CAN控制器寄存器中的Test位置1,进入测试模式。在测试模式下,测试寄存器中的Tx1,Tx0,LBack,Silent以及Basic位均是可写的。将Test位置0后,测试寄存器的所有功能将被禁止。测试模式又可细分为沉默模式(又叫监测模式)、回送模式、基本模式以及回送和沉默模式结合等4种工作模式。通过将测试寄存器
中的Silent位置1,可将CAN核设置为沉默模式。在沉默模式下,CAN核能够接收有效数据帧和有效远程帧,但是只能在总线上发送隐性位而不能进行传输。图2为在沉默模式下CAN_TX和CAN_RX信号同CAN核的联系。通过将测试寄存器的LBack位置1,可以将CAN核设置为回送模式。在回送模式下,CAN核将它发送的消息当作接收到的消息对待,并存储在接收缓存中。

图3为在回送模式下CAN_TX和CAN_RX信号同CAN核的联系。通过将LBack和Silent同时置1,可以将回送模式和沉默模式结合。这种模式可以应用于热自检,可以在不影响CAN系统运行的情况下,对CAN节点进行自检。在这种模式下,CAN_RX引脚与CAN核断开,CAN_TX引脚被保持为隐性位。图4为在这种模式下CAN_TX和CAN_RX信号同CAN核的联系。若将测试寄存器中的Basic置1,CAN核便工作于基本模式下。在这种模式下消息存储器不工作,即不用消息队列缓存交换数据,而把IF1寄存器用作传输缓存,把IF2寄存器用作接收缓存。

4 CAN通信节点硬件设计
    C8051F040上集成的CAN控制器是一个协议控制器,不能提供物理层驱动,需要外接CAN收发器才能挂接在CAN网络上与其他节点通信。本文采用PCA82C250收发器作为物理层驱动器。若在CAN控制器和PCA82C250之间加入光藕隔离器件可以提高系统的稳定性和可靠性,但这会增加系统的复杂性。本文的目的主要是调试CAN控制器的测试模式,所以没有使用光藕隔离器件。CAN通信节点原理图如图5所示。

5 软件设计
    基于C8051F040的CAN通信节点的软件设计主要包括3个部分:CAN节点初始化、报文发送和报文接收。熟悉这3部分程序的设计,就能写出普通的CAN通信程序。
5.1 CAN初始化
    初始化CAN控制器的一般步骤如下:
    (1)将SFRPAGE寄存器设置为CAN0_PAGE。
    (2)将CAN0CN寄存器的INIT和CCE位设置为“1”。
    (3)设置时序参数。
    (4)启动CAN控制器。
    由于本文要研究的是测试模式,所以最后要进入测试模式。

基于C8051F040单片机的CAN总线测试模式研究相关推荐

  1. 单片机cant通讯 c语言,基于C8051F040单片机的CAN总线通信

    硬件部分 硬件部分电路结构如下: CAN收发模块原本采用的是ATA6660高速CAN收发芯片,电路连接如下: 设计电路为:当单片机发送数据时,D18闪烁,并将数据传送给ATA6660芯片:当ATA66 ...

  2. flash期末作业成品_基于“新工科”的工科物理作业模式研究

    2018年1月,教育部高等教育司对部属高校.各省级教育行政部门.理工专业类教学指导委员会以及相关行业协(学)会择优推荐的国家级新工科研究与实践项目,进行了公示,公示结果显示,认定了612个项目为国家级 ...

  3. 手机信令数据怎么获得_论文推荐 | 基于手机信令数据的大规模通勤模式研究(2020-12-01)...

    交通攻城狮,2020-12-01,第 76 期 1. 推荐论文基本信息 论文信息 今天推荐的论文源自期刊<Journal of Transport Geography>2020 年 12 ...

  4. 基于区块链的大数据交易模式研究与探索

    点击上方蓝字关注我们 基于区块链的大数据交易模式研究与探索 李源1, 高宁1, 孙晶1,2, 赵会群1 1 北方工业大学信息学院,北京 100144 2 北方工业大学大规模流数据集成与分析技术北京市重 ...

  5. 基于51单片机的水流量传感器测试系统

    目录 热水器上水报警器 问题咨询及项目源码下载请加群: 群名:IT项目交流群 群号:245022761 一.实验目的 1. 了解水流量传感器工作原理 2. 学会使用水流量传感器检测水流量 3. 会使用 ...

  6. 基于pytest来演示一个PO测试模式案例

    首先要说的是,这是一个很简易的案例,目的在于体会这样一种结构. 第一部分:基本操作 案例描述:启动浏览器--打开好123--点击logo--跳转到百度--输入搜索词汇--点击按钮开始搜索. 模式描述: ...

  7. Android手机产线测试模块,基于Android平台智能手机可靠性生产测试模式的实现

    摘要: 随着通信技术的飞速发展,智能手机逐渐走进了普通大众的生活,未来它将成为人们获取信息的主要设备,这是一个不可阻挡的趋势.依托中国3G业务的发展,移动手机市场近几年来发展火爆全面智能化.但在我国手 ...

  8. 单片机ch2o程序_基于51单片机的室内甲醛测试系统

    1.2 5G14433A/D转换器 5G14433A/D转换器是国产的广为流行的最典型的双积分3位半A/D转换器它具有抗干扰性能好,转换精度高(相当于11位二进制数),自动校零,自动极性输出,自动量程 ...

  9. 基于使用方的火控系统的测试平台研究

    设备组成 Etest_CPS系统主要由硬件部分与软件部分组成.硬件部分由PCI机箱.PCI控制器以及各种PCI接口板卡组成.软件部分由测试设计软件模块.测试执行服务软件模块.测试执行客户端软件模块.设 ...

最新文章

  1. 《C++代码设计与重用》——2.5 浅拷贝和深拷贝
  2. 'staticfiles' is not a registered tag library. Must be one of:
  3. 20175223 MySQL
  4. PHP学习笔记02:自然数列求和
  5. NumPy 基础知识·翻译完成
  6. 苹果折叠屏iPhone不会在明年推出 最快2025年出货
  7. iOS连续上传多张图片
  8. Matplotlib Toolkits:python高级绘图库seaborn
  9. Security+ 学习笔记57 安全意识和培训
  10. CAD快捷键命令大全
  11. 【自制diy-U盘】经验分享
  12. WDR7660虚拟服务器,tp-wdr7660设置wps方法_tp-wdr7660怎么设置wps-硬件之家
  13. iphone7p配置参数详情_iPhone12系列最全的详细参数,参数党可以看看
  14. uniapp小程序中长按识别公众号二维码,企业微信二维码,个人微信二维码
  15. mybatis第十话 - mybaits整个事务流程的源码分析
  16. gt,gte,lt,lte缩写代表的意思
  17. 使用Eclipse自带的工具检测和数据库连接时否成功
  18. git 强行替换覆盖master分支
  19. [svn]最常用、频用的10个命令
  20. 数据结构与算法课程设计大作业

热门文章

  1. HTML元素参考手册 HTML Elements Reference
  2. xpath 取标签下所有文字内容_对Xpath 获取子标签下所有文本的方法详解
  3. java 8 删选集合 和取集合中的字段重组成集合的使用
  4. Java中的注解以及应用 @Deprecated @SupressWarning @Override
  5. 面向接口编程的优点_为什么我们要面向接口编程
  6. 网络协议之http和tcp思维导图
  7. 【Redis】解析Redis和Java传递数据
  8. A-Z排序控件的实现
  9. LPC1768的SPI通讯
  10. machine learning for hacker记录(4) 智能邮箱(排序学习推荐系统)