最近接手了一个项目,需要调试编写与CAN总线相关的程序,在这篇博客内做个记录。

关于CAN总线介绍就不说了,两根线CANH和CANL,配合参考电平进行高低比较判断信号值。CAN总线通常通过PCA82C250控制器接口来进行CAN总线差分信号的物理层接收发送,每一个判断之后的信号值会被送往CAN总线控制器SJA1000进行管理。这些单个的数据位bit将被整理成一个个字节的形式,存储在SJA1000内的接收缓存中,然后在用户的控制下从缓存中一个个读出,发送过程相反。

连接大致如图所示:(参考一个以FPGA为核心主控的板卡原理图)

这样到达用户端的数据已经是相对比较完整的了,只差把这些八位的字节组织成帧和包,进行解析完成通信。

那么SJA1000具体完成了哪些工作呢?

SJA1000的数据手册在下面:

https://download.csdn.net/download/Newbeil/12565085

如图所示为SJA1000内部的结构框图,可以发现SJA1000这块芯片内部主要由以下几个模块构成:

接口管理逻辑IML:作为SJA1000与微控制器的主要接口管理,解析来自微控制器的命令,实现对内部寄存器的索引、提供状态、中断等信号给微控制器。

接收缓存RXB:作为ACF和微控制器之间的接口,数据由ACF写入,由微控制器读出,13字节长,相当于内部64字节深度的RXFIFO的一个长度为13字节的窗口。

发送缓存TXB:作为微控制器和BSP之间的接口,数据由微控制器写入,由BSP读出,13字节长

接收过滤器ACF:顾名思义,决定了收到的数据是否能够被接收,涉及到的内部寄存器包括ACR和AMR。

位流处理器BSP:负责协调TXB、RXFIFO、CAN总线上的数据流,兼顾错误检测,仲裁,错误处理等功能

位时序逻辑BTL:负责处理CAN总线上数据信号的时序相关功能,可对单个位的采样点、采样数量进行可编程地控制(通过对内部地寄存器设置,BTR0和BTR1)

错误管理逻辑EML:配合BSP获得错误信息,然后告知IML

未完待续

CAN总线控制器SJA1000的使用相关推荐

  1. CAN总线控制器SJA1000

    CAN总线控制器SJA1000 1.CAN总线 1.1仲裁过程 1.2控制段 1.3数据段 1.4CRC段 1.5ACK段 1.6远程帧 2.滤波器设置 2.1单滤波器设置 2.2双滤波器设置 3.初 ...

  2. sja1000 c语言,CAN总线控制器SJA1000源程序(c语言).doc

    CAN总线控制器SJA1000源程序(c语言) CAN总线控制器sja1000源程序 SJA1000 是一种独立控制器用于移动目标和一般工业环境中的区域网络控制CAN 它是PHILIPS 半导体PCA ...

  3. sja1000编程c语言,CAN总线控制器-SJA1000源程序(c语言)资料.doc

    CAN总线控制器sja1000源程序 SJA1000 是一种独立控制器用于移动目标和一般工业环境中的区域网络控制CAN 它是PHILIPS 半导体PCA82C200 CAN 控制器BasicCAN 的 ...

  4. SJA1000 CAN总线verilog写的SJA1000 CAN总线控制器。 程序使用三段式状态机,对于语句均有箱子的中文注释

    SJA1000 CAN总线verilog写的SJA1000 CAN总线控制器. 程序使用三段式状态机,对于语句均有箱子的中文注释,同时还有相关的文档说明. 可直接拿来使用,同时适合新手学习规范写作代码 ...

  5. SJA1000 CAN总线verilog写的SJA1000 CAN总线控制器

    SJA1000 CAN总线verilog写的SJA1000 CAN总线控制器. 程序使用三段式状态机,对于语句均有箱子的中文注释,同时还有相关的文档说明. 可直接拿来使用,同时适合新手学习规范写作代码 ...

  6. 基于FPGA的CAN总线控制器的设计(下)

    今天给大侠带来基于FPGA的CAN总线控制器的设计,由于篇幅较长,分三篇.今天带来第三篇,下篇,程序的仿真与测试以及总结.话不多说,上货. 导读 CAN 总线(Controller Area Netw ...

  7. 基于FPGA的CAN总线控制器的设计(上)

    今天给大侠带来基于FPGA的CAN总线控制器的设计,由于篇幅较长,分三篇.今天带来第一篇,上篇,CAN 总线协议解析以及 CAN 通信控制器程序基本框架.话不多说,上货. 导读 CAN 总线(Cont ...

  8. 计算机系统中的总线,计算机系统中的总线控制器及其方法

    主权项: 1.一种总线控制器,设置于一计算机系统中,该计算机系统上执行一\r\r\r\r\n操作系统,并还包含有一中央处理器以及电连接于该总线控制器上的一第一\r\r\r\r\n群组元件与一第二群组元 ...

  9. Exynos 4412处理器IIC总线控制器(包括协议)

    一.综述 Exynos4412精简指令集微处理器支持4个IIC总线控制器.为了能使连接在总线上的主和从设备之间传输数据,专用的数据线SDA和时钟信号线SCL被使用,他们都是双向的. 如果工作在多主机的 ...

最新文章

  1. MySQL数据库触发器(trigger)
  2. js 自动关闭html页面,JS关闭窗口或JS关闭页面的几种代码分享
  3. apache工作模式
  4. Cannot resolve field [product], input field list:[user, EXPR$0]
  5. qt中sendevent_Qt中postEvent和sendEvent函数
  6. Linux创建、删除文件和文件夹命令
  7. phoneGap 中修改生成APP的名字
  8. HTML示例08---CSS3概述
  9. 百度js选择器fox
  10. 给所有准备考网络工程师的考生的一点点建议
  11. 统计学习——联合概率分布
  12. 智能智慧型停车场管理系统解决方案
  13. 开源定时任务管理系统gocron解析,轻松做好定时任务调度处理
  14. OneNote for Windows10 闪退 的解决办法
  15. PowerDesigner 15下载(破解)
  16. tomcat服务器缓存配置文件,Tomcat7服务器配置Cache-Control和Expires
  17. (十二)采购与入库数据表
  18. socket error 10053 的可能原因
  19. 【从0开始学GIS】ArcGIS中的绘图基础操作(三)
  20. bcedit双系统更改启动项名称_Win7下双系统修改BCD启动项名称

热门文章

  1. 我的物联网项目(三十) 线上账户互通和积分体系
  2. amoled led 排列_AMOLED屏幕为啥不用RGB排列?
  3. 【STC单片机学习】第十一课:蜂鸣器
  4. python qrcode库生成二维码的代码
  5. 蓝牙麦克风 android,带蓝牙麦克风的Android语音识别器
  6. 张艾迪(创始人):年少创业与干净的我
  7. 【RDMA】LRH和GRH InfiniBand标头(LRH and GRH InfiniBand Headers)
  8. 一辈子的尽头,原来就是毕业。
  9. 【源码】改进的智能局部搜索Nelder-Mead优化波能转换器
  10. 政务大数据云平台架构方案(ppt)