产品选型

pic单片机 can PIC单片机的CAN总线扩展

小编 2024-11-26 产品选型 23 0

PIC单片机的CAN总线扩展

CAN总线是一种串行多主站局域网总线,被广泛应用于汽车控制系统、自动控制、楼宇自动化、医学设备等各个领域。其传输距离远,最远可达10km,传输速率高,最高可达1Mb/s,容错性能好,可靠性能高。但是由于CAN驱动器的驱动能力有限,CAN总线能够驱动的节点数有限,一般在100个左右,同时会随着传输距离的增加,最高传输速率会下降,如果距离过长会引起信号丢失、反射等故障。在实验室条件下测得在5Kb/s的通信速率下最远通信距离能达到10km;在18Kb/s的通信速率下最远通信距离只能达到2km;而在42b/s的通信速率下,最远通信距离只能达到1km。测试条件:线缆采用线径为0.75mm2的屏蔽双绞线,线缆为盘装,室内测试。在实验中,发现随着随着通信距离的增加,通信速率迅速下降,而CAN总线的驱动节点数量也次第下降。而在通信距离远,通信节点多的大空间场所,比如矿井、电力监控等系统需要CAN总线来传输数据和监控信息的场所,CAN总线不能满足要求。

如果要实现通信距离远、通信速率高、总线节点数量多CAN总线系统,实现CAN总线的扩展,就需要一个CAN网关进行桥接,把CAN总线划分为几个子网,增加CAN总线通信节点,延长CAN总线的传输距离,提高CAN总线的传输速率。在研究基于PIC单片机的CAN网关设计和扩展的CAN总线网络拓扑结构。

1 CAN网关总体设计及总线拓扑结构

1.1 CAN网关总体设计

CAN网关作为一种转发设备,连接在两个不同的CAN网络中,能够实时接收来自两个子网中的信息,根据需要筛选或者无条件地把接收到的信息转发到另外一个网络中。CAN总线层次结构分为物理层、数据链路层和应用层,工作于ISO/OSI参考模式下。CAN网关在物理层和数据链路层完成两个CAN网的连接。CAN网关结构图如图1所示。

CAN网关可以作为透明网关和源路由网关。透明网关完全按照接收到的帧格式转发,不改变帧结构,对于用户,网关相当于透明的。而源路由网关由用户提供路由信息,网关按照路由信息对消息进行过滤和有选择性的转发。

1.2 CAN总线网络拓扑结构

带有网关的CAN网络拓扑结构如图2所示。在这个网路中,PC机为主节点,而CAN节点作为从节点。在网络的顶层,由PC机和网关构成一个主网,在这个主网中PC机和CAN网关作为CAN节点,总线驱动器驱动能力可以带100个cAN节点左右。主网中的CAN网关再作为下一个子网中的主节点,而其他CAN网关或是CAN节点作为从节点,构成一个子网。这样通过CAN网关可以逐环把网络扩展下去,直到最底层的CAN节点。而在应用层上,用户可以把网关配置成透明网关或是源路由网光。透明网关不影响网络结构,CAN拓展网络形成一个多节点,远距离的网络。源路由网关对消息具有过滤性,根据用户的配置信息把CAN网络在应用层上划分为几个小网。

这样,解决了节点容量、通信距离、通信速率的问题。

2 网关的硬件设计

硬件电路开发采用集成电路,开发周期短,成本低。CPU采用Microchip公司的16位单片机dsPIC30F6011作为核心部件,其内部集成了两个CAN控制器,支持CAN2.0A/B协议,CPU的速度可以达到30 MIPS,程序存储器空间有132 KB,内部RAM有6144B,数据程序存储器有2048B,集成的功能强大,体积小,性价比比较高。物理层采用两个CAN驱动器PCA82C250。其中一组的PCA82C250的RXD,TXD引脚不是和CPUdsPIC30F6011直接连接,而在中间用光速光藕6N137隔离。

单片机dsPIC30F6011有两个通用的UART口,可以作为和PC机或其他上位机通信的接口来用。另外,dsPIC30F6011采用TQPF封装64引脚,利用通用I/O驱动LED灯作为指示灯,预留并行液晶显示器和 4×4行列式键盘的接口。

CAN控制器和驱动器部分采用了光电隔离器,因此电源设计部分要求有两个隔离的5V电源。考虑到可以会用到液晶显示器,因此一路电源设计采用输出容量1A的开关电源LM9076,而另外一路采用隔离DC/DC模块电源。这样CAN子网之间实现了电气隔离,如果一个网络出了问题并不影响另外一个网络的正常工作,提高了CAN网络的抗干扰性能。硬件电路设计外围电路少、设计简单、成本低。设计的CAN网关硬件设计系统框图如图3所示。

3 网关的软件设计

CAN网关作为消息的转发器,要准确、实时地接收两个CAN发送的信息,并且要实时发出去。对于不断发出信息的问题节点要及时屏蔽,避免错误信息蔓延到另一个CAN网络。如果CAN网关被设置成透明网关则直接把一个CAN网络的信息转发到另外一个网络中即可,如果CAN网关被设置成和某个区间ID相关,则要做一些信息过滤和屏蔽处理。当CAN网关检测到总线有错误时,要通过备用的UART口将错误信息上发到上位机或其他信息处理主机。

CAN网关的信息接收通过硬件中断来完成。当总线上有消息时,引起硬件中断,进入中断程序后根据中断标志位的区别把接收到的信息存放到相应的缓冲区中。缓冲区是一个FIFO的存储区。而主程序则一直检测两个CAN控制器对应的两个接收缓冲区,当检测到缓冲区不为空时则把缓冲区内的信息顺序发送到另一个网络中。从而形成一个具有一定的错误检测能力的双向通道,完成了两个CAN网络的信息转发。CAN网关的主程序框图如图4所示,中断程序框图如图5所示。

4 结语

本文详细介绍了CAN总线扩展技术的网络拓扑结构和系统构成,给出了CAN网关的硬件设计原理及软件设计框图。这样的CAN总线扩展网络,因为引入CAN网关而增加了消息的传递时间,但是这个增加的时间很小,是微秒级的,可以忽略不计。而带来的优势明显,因为把CAN网络在物理层上划分为几个网络,彼此之间不相互影响,因而增加了CAN网络的抗干扰性,同时,扩展灵活,只需要增加一个CAN网关来增加子网即可;通信速率可通过增加网关来提高,通信距离可以扩展到很远。通过CAN网关增加了CAN总线的容量、提高了CAN总线的通信速率、扩展了CAN总线的传输距离。

物联通讯硬件产品

关于PIC32单片机,您了解多少?

PIC32单片机 是美国Microchip公司推出的一系列基于MIPS架构的32位微控制器,具有高性能、低功耗、丰富的外设和易用的开发工具等特点1。PIC32单片机分为多个系列,包括PIC32MX、PIC32MZ、PIC32MM等,适用于各种嵌入式应用领域,如工业控制、物联网、音频处理、图形显示等。

PIC32单片机的主要特点有:

内核 :采用MIPS32 M4K内核,最高工作频率可达200MHz,每兆赫兹可执行1.65条指令存储器: 片上集成32KB至2MB的Flash存储器和8KB至512KB的SRAM存储器。时钟、复位和电源管理: 支持2.0-3.6V的电源供电和I/O接口的驱动电压,具有POR、PDR和可编程的电压探测器等功能。调试模式: 支持串行调试 (SWD)和JTAG接口,以及内置的调试模块 (BDM)。I/O端口 :最多可提供112个快速I/O端口,支持5V容差和开漏输出。通信接口 :最多可提供13个通信接口,包括UART、SPI、I2C、CAN、USB等。定时器 :最多可提供11个定时器,包括16位和32位定时器、PWM定时器、输入捕获/输出比较定时器等。模数转换 :最多可提供两个12位或16位ADC模块,支持多达48个模拟输入通道,以及一个12位DAC模块。音频和触摸外设 :最多可提供两个I2S音频处理接口,以及一个集成硬件外设,用于实现mTouch™ 电容式触摸按钮或先进传感器3。图形显示外设 :最多可提供一个8位或16位并行主端口 (PMP),用于连接图形显示控制器或外部存储器3。

相关问答

pic 18 单片机 特点?

1,与PIC16相比,PIC18晶振频率更高,换句话说是速度更快,外设资源也更丰富了,基本架构是一样的。2,与51系列相比,pic单片机综合性能优于51单片机。具...1,与PI...

单片机pic 与psoc的区别?

现在的单片机一般是mcu+有限的固定的模拟或数字外围;PSoC相当于MCU+可编程模拟外围电路+可编程数字外围电路。PSoC的最大特点就是集成度高,设计灵活。可...

pic 16系列 单片机 介绍?

都没什么区别,8位,有UART也就是232通信,可以做I2C从机,个别有can之类的。就是用来做监控的,可以有AD转换,外部中断和定时器,还可以做通信接口都没什么区别,8...

通俗的介绍一下 pic单片机 - 懂得

为什么要和电脑类比呢?看来你没有用过单片机吧,单片机的结构都是大同小异的。那就象征性地类比下。pic是哈佛结构的,程序存在程序存储器,也就是ROM...

单片机 是什么?

单片机不是执行特定逻辑功能的芯片,而是将计算机系统集成到芯片上的芯片。它等效于微型计算机。与计算机相比,单芯片计算机仅缺少I/O设备。简而言之:芯片变成...

pic单片机 的pic是什么意思?

1.PIC单片机(PeripheralInterfaceController)是一种用来开发和控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。与人类相比,大脑就是C...

PIC单片机 功耗?

PIC功耗很小的。休眠时1uA左右,工作时要看工作频率,负载,电压。以我用PIC16F690为例,选用32.768KHz晶振,3.6V电压,待机功耗为17uA左右。4M晶振的话有几百u...

pic单片机 如何开启连续的AD转换?

在单片机上面开启一个连续转换的模式就可以在单片机上面开启一个连续转换的模式就可以

pic单片机 怎么实现modbus协议?

与用什么单片机无关,关键的是你找个CRC校验C语言子程序拿来引用,然后再看看MODBUS常用的读写功能的数据格式,按格式一个数据一个数据的接收判断或者发送就行...

PIC 的标准编程语言分别是?

一、PIC汇编语言指令格式PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下:标号操作...一、PI...

猜你喜欢