电子发烧友网 > 接口/总线/驱动 > 正文

基于微处理器的CAN智能节点的软硬件设计方案

2020年04月04日 11:14 次阅读

控制器局域网CAN(Controller Aera Network)是德国Bosch公司在80年代初为解决现代汽车中大量的控制与测试仪器之间的数据交换而提出的一种串行数据通信协议。他是多主总线,通信介质可以是双绞线,通信速率可达1M/s,最远通信距离可达10km。CAN具有极高的可靠性,高实时性特点特别适合工业过程监控设备的互连,已被公认是最有前途的现场总线之一。CAN总线的高速采集系统具备DCS(分布式控制系统)的主要特征,可代替DCS。

Cygnal公司的51系列单片机C8051F040是集成在一块芯片上的混合信号系统级单片机,在一个芯片内集成了构成一个单片机数据采集或控制的智能节点所需要的几乎所有模拟和数字外设以及其他功能部件,代表了目前8位单片机控制系统的发展方向。芯片上有1个12位多通道ADC,2个12位DAC,2个电压比较器,1个电压基准,1个32kB的FLASH存储器,与MCS-51指令集完全兼容的高速CIP-51内核,峰值速度可达25MIPS,并且还有硬件实现的UART串行接口和完全支持CAN2.0A和CAN2.0B的CAN控制器。本文将介绍带有在片CAN的Cygnal公司的混合信号片上系统(SoC)级单片机C8051F040作为微处理器的CAN智能节点设计的硬件和软件方案。

1、典型C8051F404的CAN总线网络结构

典型C8051F404的CAN总线网络结构如图1所示。一个典型的CAN节点由带有CAN控制器的微处理器和CAN收发器构成。CAN收发器建立CAN控制器和物理总线之间的连接,控制逻辑电平信号从CAN控制器到达物理总线的物理层,反之也一样。CAN控制器执行CAN协议,用于信息缓冲和滤波。F040的CAN控制器支持完全的CAN2.0A和CAN2.0B。

基于微处理器的CAN智能节点的软硬件设计方案

上位机通过CAN适配卡与各个CAN节点通讯。在应用中,上位机可以发送命令到节点,收集数据,修改过程参数,各节点可以将采集到的数据送到上位机进行复杂的数学计算或是保存打印,实现更加优越的信息处理功能。

2 、C8051F040的CAN控制器结构

F040的所有CAN协议功能都由独立的CAN控制器而不是由51处理器来完成。因此,CAN通信占用CPU带宽很小,51处理器只需要通过特殊功能寄存器(SFR)配置CAN控制器,数据过滤器就可以了。

2.1 CAN控制器各部分功能

CAN Core:CAN协议控制器和发送/接收转换寄存器;

Message RAM存储Message Objects和标志码,CAN控制器共有32个Message Object可供配置来用于发送或接收数据;

Registers:用于控制和配置C_CAN模块的所有寄存器;

Message Handler:控制数据在CAN Core的接收/发送转换寄存器和Message Object之间的传输,以及中断的产生。

2.2 CAN寄存器分类

CAN寄存器可分为以下4类:

(1)CAN控制器协议寄存器:用于CAN控制、中断、错误控制、总线状态控制和测试模块;

(2)信息目标(Message Object)接口寄存器:配置32个信息目标(Msg Obj),从目标接收和发送数据。8051处理器通过他来读写CAN Message RAM;

(3)信息处理寄存器:只读寄存器。为51CPU提供信息目标的状态,如信息有效标志,发送请求状态,新数据标志和中断标志;

(4)C8051处理器特殊功能寄存器(SFR):C8051处理器控制的5个寄存器,直接读写CAN协议寄存器,通过CAN数据寄存器(CAN0DATH和CAN0DATL)和CAN地址寄存器(CAN0ADR)间接读写其他CAN控制器。

3、 CAN节点的硬件设计

设计采用的接口芯片使用TI公司的3.3VCAN收发器SN65HVD230,他与PCA82C250的引脚兼容。SN65HVD230有3种工作模式:高速,倾斜和低功耗模式,由Rs脚的连接方式来确定。由于F040自带了CAN控制器,外围电路极为简洁。

4 、CAN通讯软件设计

为避免51 CPU读写Message RAM与CAN 信息收发之间产生冲突,CPU不直接读写Message Object,而是通过专门的寄存器(IFx Interface Registers)来配置信息目标。

一个完整的信息目标的结构如表1所示。

CAN通讯协议的最大特点之一就是废除了传统的站地址编码,而使用信息块标志码。ID28-0,Xtd和Dir用来定义信息标志码,以及定义即将发送数据帧的类型(远程帧或标准帧),并且与Mask28-0,MXtd和Mdir一起用来作为将要接收数据帧的过滤器。一个已接收到的信息被放在有效的(MsgVal=1)、具有匹配标志码的Message Object里。只有当Xtd=1时,远程帧才被放入Message Object,Xtd=0时,标准帧被放入Message Object。当多于一个的有效Message object与收到的信息匹配,则该条信息被放入号码最小的Message object里。Data0-Data7是8个数据字节。CAN通讯初始化和法数据帧的软件流程如图4所示。

CAN通讯软件设计主要包括3个模块:CAN通讯初始化、接收数据和发送数据模块。信息目标的初始化程序代码(C语言)如下:

当微处理器接收数据采用中断方式,接收Message Object初始化时将RxIE位置1。当程序进入到CAN中断服务子程序时,先判断CAN状态寄存器的RxOK位是否已置位,若已置位,则说明CAN控制器已经成功接收到一个数据帧(因为CAN通讯有多个中断源,而中断向量只有一个),这时再调用相应的函数,取出数据帧中有用的字节进行处理或执行相应的操作。源程序代码如下:

5 、结语

C8051F040是完全集成的混合信号系统级单片机,具有与8051指令集完全兼容的CIP-51内核,代表了8位单片机的发展方向。他不但集成了构成监控系统的常用外设,而且还集成了高可靠性、高性能的CAN总线控制模块。本文使用该芯片设计的CAN节点模块集成度高、性能稳定,实时性好、软件设计简洁,在工业生产和仪器开发领域具有广泛的应用前景。本文给出的硬件和软件设计方案均已通过实际测试,并成功运用于大洋协会“十五”攻关项目:小型底栖生物标本自动分离系统的通讯模式中。

责任编辑:gt

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

第二期:J1939通信数据链路层(上)

主题简介及亮点:J1939通信是商用车,军工,船舰 ,农机,发电机,特种设备等上面的常用通信标准,这两年在新能源车上应用
发烧友学院发表于 2019-03-07 00:00 1998次阅读
第二期:J1939通信数据链路层(上)

全球存储器产品最重要生产区域宣布封城 对半导体产...

近期,受新冠肺炎影响,全球两大存储器产品生产重镇新加坡和日本分别于4月3日和4月6日宣布封城。
发表于 2020-04-08 16:25 50次阅读
全球存储器产品最重要生产区域宣布封城 对半导体产...

GLOBALFOUNDRIES为先进非易失性存储...

无论是笔记本电脑的固态硬盘、物联网/汽车硬件、基于边缘的人工智能还是嵌入式非易失性内存(eNVM),....
发表于 2020-04-08 10:52 30次阅读
GLOBALFOUNDRIES为先进非易失性存储...

怎么将MCP25625与Raspberry Pi接口?

我一直在为我的RPi Zero开发一个扩展板,它包含一个基于降压转换器TPS62130(5V/3A)、USB集线器和CAN控...
发表于 2020-04-08 06:58 8次阅读
怎么将MCP25625与Raspberry Pi接口?

SK海力士正式宣布年底前量产并提供业界频率达到8...

韩国存储器大厂SK海力士在2020年的CES上曾经展出过64GB的DDR5-4800存储器,其频宽和....
发表于 2020-04-07 14:34 32次阅读
SK海力士正式宣布年底前量产并提供业界频率达到8...

存储器现货市场开始出现价格下滑趋势 将对存储器芯...

随着新冠病毒在全球蔓延,各国防疫措施不断升级,全球经济表现也出现急剧疲软的态势。
发表于 2020-04-07 14:20 185次阅读
存储器现货市场开始出现价格下滑趋势 将对存储器芯...

如何读取ErOM或程序存储器W/MPLAB X IDE和PICTIT3?

如何读取ErOM或程序存储器W/MPLAB X IDE和PICTIT3?我必须恢复到MPLAB IDE并连接到PIC...
发表于 2020-04-07 14:17 7次阅读
如何读取ErOM或程序存储器W/MPLAB X IDE和PICTIT3?

LabView嵌入式开发模块有什么要点?

无论使用什么设计语言,不良的编程技术都会给一个应用的性能带来负面影响,对一个嵌入式应用尤其如此。尽管对于绝大部...
发表于 2020-04-07 08:31 48次阅读
LabView嵌入式开发模块有什么要点?

矿用摄像机嵌入式CAN总线远程控制有什么用?

摄像机在煤矿监控系统中使用广泛,尤其对一些重要场所更需要在集控室远程操控摄像机实现移动、调焦等功能。对摄像机的...
发表于 2020-04-07 08:01 64次阅读
矿用摄像机嵌入式CAN总线远程控制有什么用?

嵌入式Flash管理有什么特点?

嵌入式系统中通常都需要存放一些非易失性数据, 并且数据量的大小和数据类型根据不同的系统需求差异很大。因此选取合适...
发表于 2020-04-07 06:10 47次阅读
嵌入式Flash管理有什么特点?

操作系统内存的详细资料讲解分析

主存(RAM) 是一件非常重要的资源,必须要认真对待内存。虽然目前大多数内存的增长速度要比 IBM ....
发表于 2020-04-06 09:48 225次阅读
操作系统内存的详细资料讲解分析

存储器的构造,存储器的选片及总线的概念

存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低....
发表于 2020-04-06 09:42 65次阅读
存储器的构造,存储器的选片及总线的概念

基于碳纳米管FET的RISC-V微处理器

在芯片设计中,电路上实现代码的方法有很多。研究人员们通过模拟发现,所有的不同逻辑门组合,不同的组合对....
发表于 2020-04-05 10:58 56次阅读
基于碳纳米管FET的RISC-V微处理器

基于CAN总线接口和模块控制器实现组合机床电控通...

有多种信息传输手段可以实现不同的电控单元之间的通信,如常用的RS-232、RS-485和CAN。RS....
发表于 2020-04-05 09:00 49次阅读
基于CAN总线接口和模块控制器实现组合机床电控通...

采用CAN现场总线实现煤矿系统的综合保互器的设计

CAN(Controller Area network,控制器局域网) 总线属现场总线的一种,由于它....
发表于 2020-04-05 08:54 72次阅读
采用CAN现场总线实现煤矿系统的综合保互器的设计

STM32F429的USB工程CAN通讯不正常经...

拿到这样的需求,我们当然是先得保证通讯正常。于是我找了一个USB例程与一个CAN例程,分别调试验证。
发表于 2020-04-04 17:32 88次阅读
STM32F429的USB工程CAN通讯不正常经...

PIC9054 PCI总线主控I/O加速器的性能...

PCI9054有M、C、J三种工作模式,可通过模式选择控制引脚MODE[1:0]进行控制。当MODE....
发表于 2020-04-04 17:25 33次阅读
PIC9054 PCI总线主控I/O加速器的性能...

基于微处理器实现一对异步串口连接的接口设计

美国TI(Texas Instruments)公司的系列DSP芯片采用哈佛结构、流水线操作、专用硬件....
发表于 2020-04-04 17:07 0次阅读
基于微处理器实现一对异步串口连接的接口设计

如何利用CAN现场总线实现时间信息提取电路和无线...

为获得安全的数据发送,CAN总线采取错误检测和处理的措施,在报文传输过程中设有位错误、填充错误、CR....
发表于 2020-04-04 10:44 15次阅读
如何利用CAN现场总线实现时间信息提取电路和无线...

计算机外围设备的分类,都有哪些设备

计算机外围设备的结构,功能,工作原理,有很大的差别,通常机械的,电子的,电磁的,激光的等各种设备。若....
发表于 2020-04-03 16:24 238次阅读
计算机外围设备的分类,都有哪些设备

CAN总线协议教程|CAN报文分析

CAN协议教程 介绍:CAN总线 CAN总线是广播类型的总线。这意味着所有节点都可以侦听到所有传输的....
发表于 2020-04-03 15:32 94次阅读
CAN总线协议教程|CAN报文分析

PIC16F1827线性数据存储器寻址

您好,我不确定我理解线性数据存储器。数据表中的第113页第3.5.2节说有0x2000到0x29AF可用(2479字节),但是它说“...
发表于 2020-04-03 10:36 23次阅读
PIC16F1827线性数据存储器寻址

CAN转LWIP会丢失数据

各位大神,我用407的开发板做了一个CAN转以太网的程序。程序不带操作系统,CAN是用中断做的,LWIP就是用例程...
发表于 2020-04-03 04:35 65次阅读
CAN转LWIP会丢失数据

物联网安全的防御条款是怎样的

基于指令的存储器访问控制:一种将堆栈的数据部分与返回地址部分分开的技术。
发表于 2020-04-02 17:09 79次阅读
物联网安全的防御条款是怎样的

美光即将量产第四代3D NAND存储器 层数达到...

美光在二季度财报电话会议上透露,该公司即将开始基于全新 RG 架构的第四代 3D NAND 存储器的....
发表于 2020-04-02 11:26 144次阅读
美光即将量产第四代3D NAND存储器 层数达到...

固态硬盘和机械硬盘,二者如何搭配效果最好

随着大家对于电脑的心梗要求越来越高,许多人在配置电脑的时候都会开始首选固态硬盘,因为在读取速度上,固....
发表于 2020-04-02 11:22 461次阅读
固态硬盘和机械硬盘,二者如何搭配效果最好

需要帮助可以进行通讯

大家好,在使用dspic3ep32gp502控制器进行CAN总线通信时,我需要帮助。我的代码卡在我检查传输是否完成的最后一条线...
发表于 2020-04-02 08:49 200次阅读
需要帮助可以进行通讯

加密狗存储功能显著,高端制造业领域大显身手

工业自动化设备中很多需要对操作系统及软件进行加密,就以半导体行业来说,无尘净化间中很多设备都是进口的....
发表于 2020-04-01 19:38 80次阅读
加密狗存储功能显著,高端制造业领域大显身手

基于28nm工艺低电压SRAM单元电路设计

在分析传统SRAM存储单元工作原理的基础上,采用VTC蝴蝶曲线,字线电压驱动,位线电压驱动和N曲线方法衡量了其静态...
发表于 2020-04-01 14:32 231次阅读
基于28nm工艺低电压SRAM单元电路设计

怎么在PIC16F877A中预定义ROM存储器?

嗨,我正在更新我的程序汇编语言(使用MPLAB 8.92 IDE)到C语言使用XC8编译器。现在我在ROM内存中预定义...
发表于 2020-04-01 10:21 28次阅读
怎么在PIC16F877A中预定义ROM存储器?

实现水下波动仿生推进器的多电机独立控制设计方案

水下波动仿生推进器采用分级控制的思路,总体网络结构如图1所示。在岸上,以一台IBM-PC机作为操控平....
发表于 2020-04-01 10:10 98次阅读
实现水下波动仿生推进器的多电机独立控制设计方案

CAN-bus的基本原理、主要特性及在门禁系统中...

CAN-bus(ControllerAreaNetwork)即控制器局域网,是国际上应用最广泛的现场....
发表于 2020-04-01 09:49 134次阅读
CAN-bus的基本原理、主要特性及在门禁系统中...

基于CANopen协议在车载设备中的应用研究

在现代战争中,随着武器装备系统的机动化、自动化和信息化程度的不断提高,军用车辆上的车载设备也不断增多....
发表于 2020-04-01 09:14 119次阅读
基于CANopen协议在车载设备中的应用研究

ST6388引脚图_ST6388功能和特性

ST6388是意法半导体公司(STMicroelectronics)出品的一款低成本电视专用微处理器....
发表于 2020-03-31 16:14 112次阅读
ST6388引脚图_ST6388功能和特性

对于固态硬盘一些常见故障的解决办法

亲们使用HDD\HHD时,是不是常常会遇到硬盘故障问题,这时硬盘一般会发出异样的声音,提示亲们,硬盘....
发表于 2020-03-30 22:24 589次阅读
对于固态硬盘一些常见故障的解决办法

手机运行内存真的越大越好吗?别再花没必要的冤枉钱...

随着科技的发展,智能手机基本上已经达到人手一部,手机内存也随着人们的需求,设计的越来越大,现在很多人....
发表于 2020-03-30 11:34 247次阅读
手机运行内存真的越大越好吗?别再花没必要的冤枉钱...

美光科技宣布旗下第二代高带宽存储器即将开始出货 ...

在最新财报中,美光科技(Micron Technologies)宣布旗下第二代高带宽存储器(HBM2....
发表于 2020-03-30 10:25 151次阅读
美光科技宣布旗下第二代高带宽存储器即将开始出货 ...

韩国半导体产业受疫情影响,三星等厂商存储器价格上...

集微网消息,据韩联社报道,由于新冠肺炎疫情的影响,韩国的电子产业在第一季度受到了极大的影响,但是半导....
发表于 2020-03-29 20:21 738次阅读
韩国半导体产业受疫情影响,三星等厂商存储器价格上...

三星将EUV技术应用于新型DRAM产品中,并实现...

韩国三星电子于25日宣布,已经成功出货100 万个极紫外光刻技术(EUV)生产的业界首款10nm级D....
发表于 2020-03-29 14:39 545次阅读
三星将EUV技术应用于新型DRAM产品中,并实现...

存储器的选片及总线的概念

存储器的选片及总线的概念 存储器的送入每个单元的八根线是用从什么地方来的呢? 它就是从计算机上接过来....
发表于 2020-03-27 16:28 75次阅读
存储器的选片及总线的概念

通富微电苏通二期工程建设进入安装调试阶段

据掌上南通消息,3月26日,首台Datacon 8800 FC倒装机进入南通通富微电苏通厂二期工程主....
发表于 2020-03-27 15:32 432次阅读
通富微电苏通二期工程建设进入安装调试阶段

基于CAN智能模块和网络服务器实现DNC集成制造...

过去的十几年中,人们在对自动化机械加工车间的研究中,将大量的精力投向FMS(Flexible Man....
发表于 2020-03-27 09:54 80次阅读
基于CAN智能模块和网络服务器实现DNC集成制造...

多级存储器与模拟内存内计算完美融合,人工智能边缘...

在数字神经网络中,权重和输入数据存储在DRAM/SRAM中。权重和输入数据需要移至某个MAC引擎旁以....
发表于 2020-03-26 16:15 415次阅读
多级存储器与模拟内存内计算完美融合,人工智能边缘...

新型光电传感存储器让人工视觉系统更加智能

中科院金属研究所沈阳材料科学国家研究中心科研人员与国内多家单位合作,提出了一种基于铝纳米晶浮栅的碳纳....
发表于 2020-03-26 10:36 168次阅读
新型光电传感存储器让人工视觉系统更加智能

SRAM芯片is62wv51216简介

ISSI IS62WV51216ALL/IS62WV51216BLL是高速8M位静态RAM,组织为5....
发表于 2020-03-25 15:44 116次阅读
SRAM芯片is62wv51216简介

电子标签在煤矿井下人员监控定位中的应用

目前,煤矿井下普遍存在入井人员管理困难,管理人员难以及时掌握井下人员的动态分布及作业情况,一旦事故发....
发表于 2020-03-25 09:28 199次阅读
电子标签在煤矿井下人员监控定位中的应用

未来式的存储器会是怎样的

ReRAM对神经形态计算的适用性与忆阻器根据施加电压的历史改变其状态的能力有关。
发表于 2020-03-25 08:59 197次阅读
未来式的存储器会是怎样的

我们身边哪些东西里面有存储器

存储器是现代信息技术中用于保存信息的记忆设备。
发表于 2020-03-25 08:56 109次阅读
我们身边哪些东西里面有存储器

存储器的工作原理是怎么样的

存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低
发表于 2020-03-25 08:50 141次阅读
存储器的工作原理是怎么样的

内存产业以怎么样的趋势发展

在过去的几年中,存储器市场一跃成为半导体行业中市值最大的板块,它不仅主导了半导体行业头把交椅的更替,....
发表于 2020-03-25 08:47 118次阅读
内存产业以怎么样的趋势发展

采用TMS320F2812总线接口通过MCP25...

CAN(Controller Area Network)即控制器局域网络总线,是德国Bosch公司在....
发表于 2020-03-24 10:53 97次阅读
采用TMS320F2812总线接口通过MCP25...

采用can总线技术解决电动汽车充电机模块间的通信...

电动汽车(ev)是由电机驱动前进的,而电机的动力则是来自可循环充电的电池,并且电动汽车对电池的工作特....
发表于 2020-03-24 10:15 230次阅读
采用can总线技术解决电动汽车充电机模块间的通信...

基于CAN控制器P8xC591和传感器实现车窗智...

目前.以微控制器为代表的汽车电子在整车电子系统中应用广泛,汽车控制正由机电控制系统转向以分布式网络为....
发表于 2020-03-24 10:04 286次阅读
基于CAN控制器P8xC591和传感器实现车窗智...