CAN总线系列讲座第五讲——CAN总线硬件电路设计
CAN总线系列讲座第五讲——CAN总线硬件电路设计
一 实战学习背景
CAN总线节点的硬件构成方案有两种,其中的方案:
(1)、MCU控制器+独立CAN控制器+CAN收发器。独立CAN控制器如SJA10000、MCP2515,其中MCP2515通过SPI总线和MCU连接,SJA1000通过数据总线和MCU连接。
该方案编写的CAN程序是针对独立CAN控制器的,程序可移植性好,编写好的程序可以方便的移植到任意的MCU。但是,由于采用了独立的CAN控制器,占用了MCU的I/O资源,并且电路变得复杂。
为了增强针对性,选择”51系列单片机+ SJA1000”的CAN总线节点的硬件构成方案,做入门介绍.
二 51系列单片机CAN总线学习板硬件电路设计
51系列单片机CAN总线学习板采用STC89C52RC作为节点的微处理器。在 CAN 总线通信接口中采用PHILIPS 公司的“独立CAN总线通信控制器SJA1000” 和“高性能CAN总线收发器TJA1040”芯片。图1为51系列单片机CAN总线学习板硬件电路原理图。从图中可以看出,电路主要由七部分构成:微控制器STC89C52RC、独立 CAN 通信控制器 SJA1000、 CAN 总线收发器TJA1040、DC/DC电源隔离模块、高速光电耦合器 6N137、串口芯片MAX232电路、按键及LED灯显示电路。
STC89C52RC初始化SJA1000后,通过控制 SJA1000 实现数据的接收和发送等通信任务。SJA1000 的 AD0~AD7 连接到STC89C52RC的 P0 口,其CS引脚连接到STC89C52RC的 P2.7, P2.7为低电平“0”时,单片机可选中SJA1000,单片机通过地址可控制SJA1000执行相应的读写操作。SJA1000 的 RD、 WR、 ALE 分别与STC89C52RC的对应引脚相连。SJA1000 的INT引脚接STC89C52RC的 INT0,STC89C52RC可通过中断方式访问SJA1000。
为了增强CAN总线的抗干扰能力,SJA1000的TX0和RX0引脚通过高速光耦 6N137与TJA1040的引脚TXD和RXD 相连,这样能够实现总线上各CAN节点间的电气隔离。需要特别注意一点:光耦部分电路所采用的两个电源VCC和CAN_V 必须完全隔离,否则采用光耦也就失去了意义。电源的完全隔离可采用小功率电源隔离模块,51系列单片机CAN总线学习板选用B0505D-1W电源隔离模块。这些电路虽然增加了CAN节点的复杂程度,但是提高了CAN节点的稳定性和安全性。
TJA1040与CAN总线的接口部分采用了一定的安全和抗干扰措施:TJA1040的CANH 和CANL 引脚各自通过一个5欧姆的电阻与 CAN 总线相连,电阻可起到一定的限流作用,保护TJA1040 免受过流的冲击。CANH和CANL与地之间分别并联了一个30P的电容,可以起到滤除总线上的高频干扰的作用,也具有一定的防电磁辐射的能力。另外,在两根CAN总线接入端与地之间分别反接了一个保护二极管IN4148,当 CAN 总线有较高的负电压时,通过二极管的短路可起到一定的过压保护作用。
串口芯片MAX232电路用于“51系列单片机CAN总线学习板”下载程序,也可以实现CAN总线转232串口数据转换功能。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗