CAN2.0A 是CAN协议的PART A部分,此部分定义了11bit的标识区 。

CAN2.0B 是CAN协议的扩展部分,也叫PART B,定义了29bit的标识区,其它部分与CAN2.0A一样。

CANOpen是基于CAN协议的应用层协议,可以理解为用户层,即规定了用户、软件、网络终端等之间用来进行信息交换的约定!而CAN定义了物理层和数据链路层,而CANOpen与DeviceNet一样,只定义了OSI模型的第七层。

CAN2.0A/B是CAN标准的两个部分,只要CAN芯片支持CAN2.0B,则都可以兼容通讯,而CANOpen是上层协议,建立在CAN的基础上的。

在编写CAN总线通讯程序时,主要编写函数由初始化函数,发送函数和接收函数组成。

其中发送函数一般写为主动发送函数,接收函数一般采用中断接收。下面就简单介绍一下三个函数的编写。

1 SJA1000寄存器初始化配置顺序

(1)进入复位模式,进行配置

(2)配置时钟分频寄存器,决定Peil模式还是Basic模式。

(3)配置总线定时寄存器,确定波特率。

(4)配置中断使能寄存器,决定使用那几个中断

(5)配置输出控制寄存器

(6)配置验收码和屏蔽码,决定接收哪一类节点的数据

(7)退出复位模式,进入正常工作模式。

2 发送数据顺序

(1)查询状态寄存器,判断是否正在接收,是否正在发送,是否数据缓冲区被锁。

(2)配置发送缓冲区。

(3)配置命令寄存器,启动发送。

3 接收数据顺序

(1)采用中断接收,关CPU中断。

(2)判断是不是接收中断。

(3)判断是远程帧还是数据帧

(4)读取数据

(5)开中断

can总线程序讲解_CAN总线软件编程相关推荐

  1. can总线程序讲解_CAN总线设计详解

    CAN总线是德国BOSCH公司在20世纪80年代初,为了解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通讯协议.它的短帧数据结构.非破坏性总线性仲裁技术以及灵活的通讯方式适应了汽 ...

  2. can总线程序讲解_详解stm32的CAN控制器(程序分享)

    首先简单介绍一下CAN总线,关于CAN总线是谁发明的,CAN总线的历史,CAN总线的发展,CAN总线的应用场合,这些,通通不说.这里只是以我个人理解,简单说说CAN通信.CAN总线的端点没有地址(除非 ...

  3. tms320vc5416c语言编程,TMS320VC5416与CAN总线的接口设计及软件编程

    [1]谈振藩,郭飞,李秋霞,等.数字式分罗经设计研究[J].应用科技,2008,35(10):24. TAN Zhen-fan,GUO Fei,LI Qiu-xia,et al.The design ...

  4. ab plc编程软件_三菱PLC编程程序PLC的软件编程

    三菱PLC编程程序-PLC的软件编程 BL2 RACKMOUNT 4U系列工控机 - 搭载Intel第六代core i系列CPU, I3-6100, I5-6500, I7-6700 CPU可选 - ...

  5. 2021.09 电子学会 - 软件编程(图形化)试题讲解

    软件编程(图形化)试题讲解 一级 考核目标 考查对软件编程界面的认识和基本操作:能够导入角色.背景和声音,通过对角色和背景进行简单操作,编写一个具有简单顺序结构的作品:同时考查简单的逻辑推理能力. 插 ...

  6. can通道采样频率_CAN总线基础(上)

    概述 汽车电子设备的不断增多,对汽车上的线束分布以及信息共享与交流提出了更高的要求.传统的电气系统往往采用单一连接的方式通信,这必将带来线束的冗余以及维修的成本的提高. 传统的单一通信的对接方式,已经 ...

  7. c语言超长编程程序,全国青少年软件编程等级考试C语言经典程序题10道五

    全国青少年软件编程等级考试C语言经典程序题10道五 [程序41] 题目:学习static定义静态变量的用法 1.程序分析: 2.程序源代码: #include "stdio.h" ...

  8. c++经典编程题_全国青少年软件编程等级考试C语言经典程序题10道十

    全国青少年软件编程等级考试C语言经典程序题10道十 [程序91] 题目:时间函数举例1 1.程序分析: 2.程序源代码: #include "stdio.h" #include & ...

  9. 基恩士KV8000程序 基恩士KV8000,威伦通触摸屏,搭载KV-XH16EC总线模块进行分布式总线控制

    基恩士KV8000程序 基恩士KV8000,威伦通触摸屏,搭载KV-XH16EC总线模块进行分布式总线控制,KV-C64X.KV-C64T等输入输出IO模块KV-AD40模拟量模块,KV-XL402串 ...

  10. 编程规则 - 1 概述 -- 帮助你成长为优秀的程序员 杰出的软件工程师、设计师、分析师和架构师

    作者:Jon Ji 2011/8/20 编码规范往往只是对具体编程的格式及细节要求进行规定,但对于提高软件人员编程能力而言,编程规则更具有价值,下面将我的一些观点和想法提出来供大家参考,也希望大家批评 ...

最新文章

  1. 【cs229-Lecture2】Linear Regression with One Variable (Week 1)(含测试数据和源码)
  2. 深入python3 (Dive Into Python 3) 在线阅读与下载
  3. web应用程序并发测试_测试并发应用
  4. python的功能名称_ML获取功能选择后的功能名称SelectPercentile,python
  5. NFrog[NHibernate代码工具]发布第一个版本
  6. OGG_GoldenGate日常维护(案例)
  7. 理解JavaScript函数(函数和对象的区别和联系)
  8. error create beanException
  9. 【PRML 学习笔记】第一章 - 介绍 (Introduction)
  10. dagger2简单使用与理解笔记
  11. linux内核手写板驱动,【Linux系统编程应用】 Linux Input子系统(一)
  12. 副业做淘宝可以么?淘宝可以当做副业来做吗?
  13. 班主任工作总结中职计算机网络,中职班主任工作总结(优秀篇).doc
  14. 互联网公司怪相:一边裁员,一边忙着做慈善
  15. 三星引入ChatGPT半个月泄密3次;MidJourney V5相机镜头完整参数列表;万字长文,拆解投身大模型3个本质问题 | ShowMeAI日报
  16. hadoop之hdfs及其工作原理
  17. Android蓝牙打印小票,仿美团外卖小票打印
  18. 202203读书-《 测试有道:微软测试技术心得》
  19. linux文件夹改不了权限吗,linux修改文件和文件夹权限及所有者
  20. linuxprobe-第一节课

热门文章

  1. suse linux主机安全加固,suse linux操作系统安全加固
  2. Vissim 基础教程和技巧
  3. 三菱PlC程序大型项目QCPU+QD77MS16 宝贝包含一套完整的电气开发系统资料(包含plc程序,触摸屏程序,伺服模块设置程序,程序开发地址规划表)
  4. aurelia_Aurelia历险记:创建自定义PDF查看器
  5. 计算机自动关机命令,电脑自动关机命令是什么?你都知道吗?
  6. MySql ALTER用法
  7. 金蝶K3数据库表名对应及表说明
  8. 使用matlab如何求卷积,利用MATLAB求解卷积的方法分类
  9. python3---情感分析(基于词典中文)
  10. 软件开发管理:管开发如治军