一 CAN总线拓扑结构
CAN是一种分布式的控制总线,总线上的每一个节点一般来说都比较简单,使用MCU控制器处理CAN总线数据,完成特定的功能;通过CAN总线将各节点连接只需较少的线缆(两根线:CAN_H和CAN_L),可靠性也较高。
ISO11898定义了一个总线结构的拓扑:采用干线和支线的连接方式;干线的两个终端都端接一个120欧姆终端电阻;节点通过没有端接的支线连接到总线;对干线与支线的参数都进行了说明。

 
 
在实际应用中可以通过CAN中继器(增加信号强度)将分支网络连接到干线网络上,每条分支网络都符合ISO11898标准,这样可以扩大CAN总线通讯距离,增加CAN总线工作节点的数量。

 

二 CAN总线的节点构成

 
CAN总线节点的硬件构成方案有两种:
(1)、MCU控制器+独立CAN控制器+CAN收发器。独立CAN控制器如SJA10000、MCP2515,其中MCP2515通过SPI总线和MCU连接,SJA1000通过数据总线和MCU连接。
(2)、带有CAN控制器的MCU+CAN收发器。目前,市场上带有CAN控制器的MCU有许多种,如P87C591、LPC2294、C8051F340等。
两种方案的节点构成都需要通过CAN收发器同CAN总线相连,常用的CAN收发器有PCA82C250、PCA82C251、TJA1050、TJA1040等。
两种方案的节点构成各有利弊:
第一种方案编写的CAN程序是针对独立CAN控制器的,程序可移植性好,编写好的程序可以方便的移植到任意的MCU。但是,由于采用了独立的CAN控制器,占用了MCU的I/O资源,并且电路变得复杂。
第二种方案编写的CAN程序是针对特定选用的MCU,例如LPC2294。程序编写好后,不可以移植。但是,MCU控制器中集成了CAN控制器单元,硬件电路变得简单些。

最新文章

  1. ASP.NET MVC使用动态产生meta
  2. QQ群笔记
  3. Mysql查询优化器
  4. sqlite使用小结
  5. ☀【canvas】直线 / 三角形 / 矩形 / 曲线 / 控制点 / 变换
  6. JS-日期框、下拉框、全选复选框
  7. Eclipse中debug调试java代码一直报Source not found的解决办法
  8. [No0000C1]Excel 删除空白行和空白列VBA代码
  9. 访问远程的docker
  10. [BZOJ]4644: 经典傻逼题
  11. Linux(CentOS) 查看当前占用CPU或内存最多的K个进程
  12. ApacheTraffic Server 使用ssd 以及裸盘
  13. ABP框架提示框
  14. Linux下运行Shell脚本或者可执行文件Executable方法
  15. Delphi之Exception获得错误信息(简单好理解)
  16. 洛谷P3724 大佬 [AH2017/HNOI2017] dp+bfs
  17. Python3基础 list del 从内存中删除整个列表
  18. 微信正式开放内测“小程序”,不开发APP的日子真的来了?
  19. nfd指令的详细说明
  20. 查询红帽linux/Oracle Linux的发行版本的方法

热门文章

  1. Glob 语法及解析
  2. Codeforces Round #750 (Div. 2) E. Pchelyonok and Segments
  3. VS常用的快捷键
  4. gcc与g++区别;编译选项
  5. C#-使用HttpListener创建http服务
  6. [csi]浅聊ceph-csi组件
  7. springboot----一、SpringBoot简介
  8. 【NLP】
  9. Laravel 8 图片上传七牛云
  10. 微信请求tp5框架数据 及渲染数据至页面