测试方案

  1. CAN0和CAN1相连,互相收发数据。连接方式如下图:

  1. 使用扩展模式CAN1发送数据CAN0接收数据。
  2. 使用标准模式CAN1发送数据CAN0接收数据。
  3. 使用EJTAG中bin文件夹内的can.c代码,使用callbin的方式测试CAN的收发。Can.c中CAN默认工作在扩展模式。当测试CAN的标准模式时需要对代码进行如下修改。

软件流程

  1. 设置控制器进入复位模式
    1. 检测到有复位请求后将中止当前接收/发送的信息而进入复位模式,一旦向复位位传送了 1-0 的下降沿 CAN 控制器将返回工作模式
  2. 设置总线定时。
    1. 总线定时0寄存器对应BTR0
    2. 总线定时1寄存器对应BTR1
  3. 设置标准模式还是扩展模式
    1. 向偏移地址为1的寄存器写0x81则为扩展模式
    2. 向偏移地址为1的寄存器写0x1则为标准模式
  4. 设置过滤,当消息的ID与上验收屏蔽值等于验收代码与上验收屏蔽值时,控制器接收消息。
    1. 扩展模式,设置寄存器偏移地址为16~23的寄存器,下图红色方框中。

  1. 标准模式,设置寄存器偏移地址为4、5的寄存器

  1. 向控制寄存器的RRbit写0,进入正常工作模式。
  2. 使能中断
    1. 扩展模式:向偏移地址为4的寄存器写入0xff。
    2. 标准模式:向控制寄存器写入0x1e打开中断。
  3. 发送数据
    1. 扩展模式:将发送的数据写入如下图所示寄存器。

  1. 标准模式:将发送的数据写入如下图所示寄存器。

  1. 需要保证发送的帧不被接受端所过滤掉。
  1. 发送数据:数据写入后,将命令寄存器的TR置1。
    1. 两种模式操作相同。
  2. 接收数据:查询中断寄存器的RI接收中断是否为1。为1则说明接收到数据。
    1. 两种模式操作相同。
  3. 读取接收的数据
    1. 扩展模式

  1. 标准模式

注意

CAN在每次发送/接收数据后需要复位。

CAN的两种帧格式

龙芯CAN测试(sja1000)的更多相关文章

  1. 测试龙芯 LoongArch .NET之 使用 FastTunnel 做内网穿透远程计算机

    龙芯3A5000 已经上市,与龙芯3A5000配套的三大编译器GCC.LLVM.GoLang和三大虚拟机Java.JavaScript..NET均已完成开发,从老伙计哪里搞来一台3A5000 机器,安 ...

  2. 在龙芯小本上安装Debain8.10

    (图片是LEMOTE8089D笔记本,来自互联网) YX原来送了一个LEMOTE笔记本给我.CPU是首款真正的国产,龙芯2F,兼容mips的指令集. 笔记本原来的操作系统是Debian6,后来升级到了 ...

  3. 使用U盘为龙芯笔记本安装操作系统

    摘要:在没有光驱的情况下,可以使用dd命令或者ultraISO软件制作Linux安装U盘,方法适合龙芯和X86.AMD64的设备. 前段时间,由于开发需要,拿到了一部龙芯3A3000的笔记本.出厂的安 ...

  4. [转帖]全国产 台式机/笔记本/服务器都有 方正龙芯3A3000整机三连发

    台式机/笔记本/服务器都有 方正龙芯3A3000整机三连发 2019年03月29日 17:17 4171 次阅读 稿源:快科技 7 条评论 https://www.cnbeta.com/article ...

  5. [转帖]龙芯下一代处理器微结构GS464E细节曝光

    龙芯下一代处理器微结构GS464E细节曝光 [日期:2015-05-26] 来源:Linux公社  作者:Linux [字体:大 中 小] http://www.linuxidc.com/Linux/ ...

  6. [Cnbeta]龙芯处理器性能怎么样

    龙芯处理器性能怎么样?下一代CPU同频性能可达英特尔90% 在高性能处理器领域,英特尔是天花顶一般的存在(先不算地位特殊的IBM公司),国内发展CPU处理器的公司很多,绝大多数实力跟英特尔相比都差很远 ...

  7. Buildroot 龙芯1C支持指南

    本文转载自:https://github.com/pengphei/smartloong-sphinx/blob/master/source/cn/loongson1c_buildroot_guide ...

  8. 龙芯GO!龙芯平台上构建Go语言环境指南

    龙芯软件生态系列——龙芯GO!龙芯平台上构建Go语言环境指南2016-07-05 龙芯中科1初识Go语言Go语言是Google公司于2009年正式推出的一款开源的编程语言,是由Robert Gries ...

  9. .NET Core 对龙芯的支持情况和对 .NET Core 开发嵌入式的思考

    目录 .NET Core 对龙芯的支持情况和对 .NET Core 开发嵌入式的思考 一,遗憾的尝试 二,.NET Core在嵌入式下的几点不足 三,.NET Core 龙芯移植的进展和资料 .NET ...

随机推荐

  1. 花间美人:古风 CG插画技法

    <花间美人:古风 CG插画技法> 基本信息 作者: 猫君大白    出版社:机械工业出版社 ISBN:9787111429432 上架时间:2013-7-3 出版日期:2013 年7月 开 ...

  2. java ArrayList源码分析(转载)

    1.ArrayList是一个相对来说比较简单的数据结构,最重要的一点就是它的自动扩容,可以认为就是我们常说的“动态数组”. 来看一段简单的代码: 12345 ArrayList<String&g ...

  3. Kubernetes下的Redis主从配置架构

    文章看了一大堆,但都是直接从各种地方直接拉master,slave镜像,没有交代这些镜像如何构建出来的 好把,我这篇就讲讲这些master,slave镜像如何做成. 先得找到一个标准的redis镜像, ...

  4. C++11常用特性的使用经验总结(转载)

    C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方面的知识,也得益于很多其他网友的总结.本博客文章是在学习的基础上,加 ...

  5. sudo 添加

    sudo 添加 /etc/sudoers 找到root  ALL=(ALL)  ALL那一行, 复制之后,修改用户名:

  6. sdut 3-7 类的友元函数的应用

    3-7 类的友元函数的应用 Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 通过本题目的练习能够掌握类的友元函数的定义和使用方法 要求设计一个点类Poin ...

  7. [Angular] AfterContentChecked && AfterViewChecked

    AfterContentChecked & AfterViewChecked are called after 'OnChanges' lifecycle. And each time 'ng ...

  8. PHP变量引用赋值与变量赋值变量的区别

    变量默认总是传值赋值.那也就是说,当将一个表达式的值赋予一个变量时,整个原始表达式的值被赋值到目标变量.这意味着,例如,当一个变量的值赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量 ...

  9. 使用iOS-QR-Code-Encoder 生成二维码

    一:所需类库 iOS-QR-Code-Encoder 官网主页:https://github.com/moqod/iOS-QR-Code-Encoder 导入:QuartzCore.framework ...

  10. App开发架构指南(谷歌官方文档译文)

    这篇文章面向的是已经掌握app开发基本知识,想知道如何开发健壮app的读者. 注:本指南假设读者对 Android Framework 已经很熟悉.如果你还是app开发的新手,请查看 Getting ...