0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于MB90F543微控制器的双CAN冗余设计

基于MB90F543微控制器的双CAN冗余设计

来源:
2025-12-30
类别:工业控制
eye 1
文章创建人 拍明芯城

基于MB90F543微控制器的双CAN冗余设计

一、引言

在工业控制、汽车电子、轨道交通等对系统可靠性要求极高的领域,通信系统的稳定性直接关系到整个系统的正常运行。CAN(Controller Area Network)总线作为一种广泛应用的现场总线,以其高可靠性、实时性和抗干扰能力强的特点,在这些领域得到了大量使用。然而,单一CAN总线在面对复杂电磁环境、传输介质损坏、总线驱动器故障等情况时,仍存在通信中断的风险。为进一步提升系统的可靠性,双CAN冗余设计成为一种有效的解决方案。MB90F543微控制器凭借其内置的两个独立CAN控制器,为双CAN冗余设计提供了理想的硬件平台。本文将详细阐述基于MB90F543微控制器的双CAN冗余设计方案,包括优选元器件型号、器件作用、选择原因、功能特性以及系统整体设计等内容。

image.png

二、MB90F543微控制器介绍

MB90F543是富士通(现英飞凌)公司推出的一款16位微控制器,属于F²MC - 16LX系列。该微控制器具有强大的功能和丰富的外设资源,尤其适合应用于对实时性和可靠性要求较高的场合。以下是MB90F543的主要特性:

1. 处理器核心

MB90F543采用16位的F²MC - 16LX内核,主频可达16MHz,能够快速处理复杂的控制任务。其指令集设计合理,具有较高的执行效率,可满足实时控制系统的需求。

2. 存储器资源

该微控制器拥有128KB的闪存(Flash)程序存储器,可用于存储用户程序和常量数据。同时,还配备了6KB的随机存取存储器(RAM),为程序的运行提供了足够的临时数据存储空间。此外,MB90F543还支持外部存储器接口(EBI/EMI),可扩展外部存储器,进一步增加系统的存储容量。

3. CAN控制器

MB90F543内置了两个独立的CAN控制器,这是其最为突出的特点之一。每个CAN控制器都集成了CAN协议的物理层和数据链路层功能,能够独立完成CAN总线的通信任务。具体来说,CAN控制器具有以下特性:

  • 符合CAN协议标准:支持CAN2.0A和CAN2.0B协议,可与各种符合CAN标准的设备进行通信。

  • 多种帧类型支持:支持数据帧和远程帧的发送和接收,能够满足不同应用场景下的通信需求。

  • 丰富的信息缓冲器:拥有16个收发信息缓冲器,支持11位或29位标识符,并支持多级信息缓冲器结构。这使得系统能够同时处理多个不同优先级和标识符的CAN消息,提高了通信的效率和灵活性。

  • 灵活的验收标识选择:支持满位比较、满位屏蔽和位屏蔽验收三种验收标识选择方式,用户可以根据实际需求灵活配置,以确保只有符合特定标识的消息才能被接收,提高了通信的安全性和可靠性。

  • 可编程波特率:波特率范围从10Kbps到1Mbps可编程设置,用户可以根据通信距离、传输速率和系统要求等因素进行合理选择,以满足不同应用场景的需求。

4. 其他外设

除了CAN控制器外,MB90F543还集成了多种其他外设,如串行通信接口(SCI)、通用异步收发传输器(UART/USART)等,方便系统与其他设备进行数据交换和通信。同时,该微控制器还具备上电复位(POR)和看门狗定时器(WDT)等功能,可提高系统的稳定性和可靠性。

三、双CAN冗余系统设计原理

双CAN冗余设计的核心思想是通过两套完全独立的CAN总线系统,实现物理介质、物理层、数据链路层及应用层的全面冗余。在基于MB90F543微控制器的双CAN冗余系统中,两套CAN总线分别称为CAN0和CAN1,每套总线都包含独立的总线电缆、总线驱动器和总线控制器。系统采用热备份方式运行,即一个CAN控制器作为系统上电后默认的主CAN(例如CAN0),另一个作为备用CAN(CAN1)。系统正常工作时,主CAN总线投入运行,负责数据的发送和接收;当主CAN总线发生故障时,备用CAN总线自动投入运行,接替主CAN总线的工作,保证整个系统的通信功能正常运行。此外,系统还可以根据实际需求,通过软件设定采取冗余方式或非冗余方式运行。在非冗余方式下,系统只采用主CAN总线运行,备用CAN总线处于备用状态。

四、优选元器件型号及作用

在基于MB90F543微控制器的双CAN冗余系统中,除了核心的微控制器外,还需要选择一些其他元器件来构建完整的系统。以下是优选的元器件型号及其作用:

1. CAN总线驱动器 - PCA82C250

  • 作用:CAN总线驱动器是CAN控制器与物理总线之间的接口,用于提升总线的差动发送和接收能力。在双CAN冗余系统中,每个CAN控制器都需要配备一个独立的CAN总线驱动器,以实现与各自总线的连接。

  • 选择原因:PCA82C250是一款广泛应用的CAN总线驱动器,具有以下优点:

    • 高速通信能力:支持高达1Mbps的通信速率,能够满足大多数CAN总线应用的需求。

    • 强大的驱动能力:能够提供足够的驱动电流,确保CAN总线上的信号传输质量,即使在长距离传输或负载较多的情况下也能稳定工作。

    • 完善的保护功能:具有过温保护、过压保护和静电放电(ESD)保护等功能,能够有效保护CAN控制器和总线设备免受损坏。

    • 兼容性好:与各种CAN控制器兼容,易于集成到不同的系统中。

2. 总线终端匹配电阻 - RT(100Ω或120Ω)

  • 作用:总线终端匹配电阻用于抑制信号发射干扰,提高CAN总线的信号质量。在CAN总线系统中,为了减少信号反射,需要在总线的两端各连接一个终端匹配电阻,使总线的特性阻抗与终端电阻匹配。

  • 选择原因:在CAN总线标准中,通常规定终端匹配电阻的阻值为120Ω。然而,在实际应用中,由于传输介质的特性阻抗可能会存在一定的差异,因此有时也会选择100Ω的终端匹配电阻。选择合适的终端匹配电阻可以有效减少信号反射,提高总线的通信可靠性和稳定性。

3. 通信介质 - 屏蔽双绞线

  • 作用:屏蔽双绞线作为CAN总线的通信介质,用于传输CAN信号。它能够有效地屏蔽外界电磁干扰,减少信号衰减,保证信号的稳定传输。

  • 选择原因:与普通双绞线相比,屏蔽双绞线在外层增加了一层金属屏蔽层,能够更好地屏蔽外界电磁干扰,提高信号的抗干扰能力。在工业控制、汽车电子等对电磁环境要求较高的场合,使用屏蔽双绞线作为CAN总线的通信介质可以显著提高系统的可靠性。

4. 电源模块

  • 作用:为MB90F543微控制器、CAN总线驱动器以及其他外围设备提供稳定的电源。

  • 选择原因:电源模块的稳定性直接影响到整个系统的正常运行。在选择电源模块时,需要考虑其输出电压精度、负载调整率、纹波噪声等指标。同时,为了确保系统在各种工作条件下都能稳定运行,电源模块应具备过压保护、过流保护和短路保护等功能。例如,可以选择一款输出电压为5V、输出电流能够满足系统需求的线性稳压器或开关电源模块。

5. 晶振

  • 作用:为MB90F543微控制器提供稳定的时钟信号,确保微控制器能够按照预定的频率正常工作。

  • 选择原因:晶振的频率稳定性和精度直接影响到微控制器的运行速度和性能。在选择晶振时,应根据微控制器的工作频率要求选择合适的晶振频率。对于MB90F543微控制器,通常选择16MHz的晶振,以满足其16MHz的主频要求。同时,为了确保晶振的频率稳定性,应选择温度稳定性好、频率精度高的晶振产品。

五、系统硬件设计

基于上述优选的元器件,以下是基于MB90F543微控制器的双CAN冗余系统的硬件设计:

1. 微控制器电路

MB90F543微控制器作为系统的核心,负责整个系统的控制和管理。其引脚连接如下:

  • 将CAN0和CAN1控制器的相关引脚分别连接到对应的CAN总线驱动器PCA82C250上。

  • 连接电源引脚,为微控制器提供稳定的5V电源。

  • 连接晶振引脚,将16MHz的晶振连接到微控制器的时钟输入引脚上,为微控制器提供时钟信号。

  • 根据实际需求,连接其他外设引脚,如SCI、UART等,以实现系统与其他设备的数据交换和通信。

2. CAN总线驱动电路

每个CAN总线驱动器PCA82C250的连接方式如下:

  • 将PCA82C250的TXD引脚连接到MB90F543微控制器对应CAN控制器的TX引脚上,用于发送CAN信号。

  • 将PCA82C250的RXD引脚连接到MB90F543微控制器对应CAN控制器的RX引脚上,用于接收CAN信号。

  • 将PCA82C250的CANH和CANL引脚分别连接到CAN总线的两根信号线上,并通过终端匹配电阻RT(100Ω或120Ω)连接到地,以实现总线的终端匹配。

  • 为PCA82C250提供稳定的5V电源,并在电源引脚附近添加适当的去耦电容,以减少电源噪声对芯片的影响。

3. 电源电路

电源电路的设计应确保为系统中的各个元器件提供稳定的电源。可以采用线性稳压器或开关电源模块将输入电源转换为稳定的5V电源,为MB90F543微控制器、CAN总线驱动器等元器件供电。在电源电路中,应添加适当的滤波电容和电感,以减少电源噪声和纹波,提高电源的质量。

4. 其他外围电路

根据实际需求,还可以设计一些其他外围电路,如状态指示灯电路、调试接口电路等。状态指示灯电路可以用于显示系统的运行状态,如主CAN总线工作状态、备用CAN总线工作状态等。调试接口电路可以方便对系统进行调试和编程,例如使用JTAG接口或SWD接口连接调试器,实现对微控制器的程序下载和调试。

六、系统软件设计

系统软件设计是双CAN冗余系统的关键部分,主要包括CAN初始化程序、CAN发送程序、CAN接收程序、故障检测与自动切换程序以及总线管理程序等。以下是系统软件设计的详细介绍:

1. CAN初始化程序

CAN初始化程序用于对MB90F543微控制器的两个CAN控制器进行初始化设置,包括设置CAN控制器的工作模式、波特率、验收标识过滤器等参数。具体步骤如下:

  • 设置CAN控制器的工作模式为正常工作模式,使能CAN控制器的发送和接收功能。

  • 根据系统需求设置CAN总线的波特率,确保主CAN和备用CAN的波特率一致。

  • 配置验收标识过滤器,根据实际应用场景选择合适的验收标识方式(满位比较、满位屏蔽或位屏蔽验收),并设置相应的验收标识寄存器,以确保只有符合特定标识的消息才能被接收。

  • 使能CAN控制器的中断,包括发送完成中断、接收完成中断和节点状态改变中断等,以便在相应事件发生时能够及时进行处理。

2. CAN发送程序

CAN发送程序用于将需要发送的数据按照CAN协议的格式封装成数据帧或远程帧,并通过CAN控制器发送到CAN总线上。在双CAN冗余系统中,为了提高系统的可靠性,采用查询发送方式。具体步骤如下:

  • 将需要发送的数据按照CAN协议的格式封装成数据帧或远程帧,设置好标识符、数据长度和数据内容等参数。

  • 查询CAN控制器的发送缓冲器状态,判断是否有空闲的发送缓冲器可供使用。

  • 如果有空闲的发送缓冲器,则将封装好的数据帧或远程帧写入发送缓冲器,并启动发送操作。

  • 等待发送完成,通过查询发送完成标志位或发送完成中断来判断发送是否成功。如果发送成功,则继续执行后续任务;如果发送失败,则记录发送错误信息,并根据系统设置采取相应的措施,如重发或切换到备用CAN总线。

3. CAN接收程序

CAN接收程序用于接收CAN总线上传输的数据帧或远程帧,并对接收到的数据进行解析和处理。在双CAN冗余系统中,采用中断接收方式,以提高系统的实时性。具体步骤如下:

  • 当CAN控制器接收到一个完整的数据帧或远程帧时,会产生接收完成中断。

  • 在接收完成中断服务程序中,读取CAN控制器的接收缓冲器,获取接收到的数据帧或远程帧的信息,包括标识符、数据长度和数据内容等。

  • 根据接收到的数据的标识符,判断数据的来源和类型,并将数据传递给相应的处理模块进行进一步处理。

  • 清除接收完成中断标志位,准备接收下一个数据帧或远程帧。

4. 故障检测与自动切换程序

故障检测与自动切换程序是双CAN冗余系统的核心部分,用于实时监测主CAN总线和备用CAN总线的工作状态,当检测到主CAN总线发生故障时,自动切换到备用CAN总线继续工作。具体步骤如下:

  • 实时监测CAN控制器的节点状态,CAN2.0协议规定节点处于错误激活态、忽略错误态、脱离总线态三种状态之一,MB90500系列还规定了警告态(发送/接收错误计数器的值超过96)。通过读取CAN控制器的节点状态寄存器,获取当前节点的状态信息。

  • 当检测到主CAN总线的节点状态发生改变时,判断是否为故障状态。例如,如果CANH与CANL短路、CANH或CANL断开、CANH与地短路、CANL与电源短路、总线驱动器损坏等故障发生时,会导致发送/接收错误计数器不断增加。当错误计数器增加到128时,节点处于忽略错误态;当错误计数器增加到256时,节点处于总线脱离态。当检测到节点处于忽略错误态或总线脱离态时,判定为主CAN总线发生故障。

  • 当判定主CAN总线发生故障时,停止主CAN总线的工作,启动备用CAN总线。具体操作包括禁用主CAN控制器的发送和接收功能,使能备用CAN控制器的发送和接收功能,并将系统的通信任务切换到备用CAN总线上继续执行。

  • 在切换到备用CAN总线后,记录故障信息,并根据系统设置采取相应的报警措施,如点亮故障指示灯、发送故障报警信息等,以便操作人员及时了解系统故障情况并进行处理。

5. 总线管理程序

总线管理程序用于对双CAN冗余系统中的各个节点进行管理,包括在线节点统计、离线节点识别和处理等。在系统中,所有节点分为主节点和从节点,主节点具有总线管理功能,从节点没有该功能。主节点只设一个,允许多个从节点。总线管理程序的具体步骤如下:

  • 主节点定时向总线上所有从节点发送一远程帧,请求从节点上报自己的节点编号。

  • 从节点收到主节点发送的远程帧后,将自己的节点编号放在一数据帧中发送给主节点。

  • 主节点根据收到的从节点发送的数据帧中的节点编号,判断是否有节点故障离线。如果所有节点都在线,则认为总线正常;如果有节点未回复或回复的节点编号与预设的不一致,则判定该节点故障离线。

  • 对于离线的节点,主节点采取相应的处理措施,如记录离线节点信息、发送离线报警信息等,并根据系统设置决定是否尝试重新连接离线节点。

七、系统调试与优化

在完成基于MB90F543微控制器的双CAN冗余系统的硬件设计和软件编程后,需要进行系统调试和优化,以确保系统能够稳定、可靠地运行。以下是系统调试与优化的主要步骤:

1. 硬件调试

  • 检查硬件连接:仔细检查系统中各个元器件的连接是否正确,包括微控制器与CAN总线驱动器的连接、CAN总线驱动器与CAN总线的连接、电源电路的连接等。确保所有连接牢固可靠,无短路、断路等故障。

  • 测试电源质量:使用示波器等仪器测试系统电源的电压稳定性和纹波噪声情况。确保电源电压在规定的范围内,纹波噪声较小,以满足各个元器件对电源质量的要求。

  • 检查晶振工作:使用示波器观察晶振的输出波形,检查晶振是否正常工作。确保晶振的输出频率准确,波形稳定,为微控制器提供稳定的时钟信号。

2. 软件调试

  • 单步调试:使用调试器(如JTAG调试器或SWD调试器)对系统软件进行单步调试,逐步执行程序代码,检查程序的执行流程是否正确,各个变量的值是否符合预期。通过单步调试,可以及时发现程序中存在的逻辑错误和语法错误。

  • 中断调试:重点调试CAN控制器的中断服务程序,确保中断能够正确触发和响应。在调试过程中,可以使用示波器观察中断引脚的电平变化,检查中断标志位是否能够正确设置和清除。同时,检查中断服务程序中的代码是否能够正确处理中断事件,避免出现中断嵌套或中断丢失等问题。

  • 通信调试:进行CAN总线的通信调试,检查主CAN总线和备用CAN总线是否能够正常发送和接收数据。可以使用CAN分析仪等工具对CAN总线上的数据进行实时监测和分析,检查数据的传输是否正确,是否存在丢帧、错帧等问题。同时,模拟主CAN总线故障情况,检查系统是否能够自动切换到备用CAN总线继续工作。

3. 系统优化

  • 软件优化:对系统软件进行优化,提高代码的执行效率和可靠性。例如,优化CAN发送和接收程序的算法,减少程序的执行时间;合理使用中断资源,避免中断冲突和中断响应时间过长等问题;对关键代码段进行注释和说明,提高代码的可读性和可维护性。

  • 硬件优化:根据系统调试过程中发现的问题,对硬件设计进行优化。例如,如果发现电源噪声较大,可以增加滤波电容和电感的容量,提高电源的滤波效果;如果发现CAN总线的信号质量不佳,可以检查总线终端匹配电阻的阻值是否合适,调整终端匹配电阻的阻值以改善信号质量。

八、结论

基于MB90F543微控制器的双CAN冗余设计通过采用两套完全独立的CAN总线系统,实现了物理介质、物理层、数据链路层及应用层的全面冗余,大大提高了系统的可靠性和稳定性。在硬件设计方面,选用了MB90F543微控制器、PCA82C250 CAN总线驱动器、屏蔽双绞线等优选元器件,构建了一个完整的双CAN冗余系统硬件平台。在软件设计方面,实现了CAN初始化、发送、接收、故障检测与自动切换以及总线管理等功能,通过合理的软件算法和程序流程,确保了系统在各种情况下都能够稳定、可靠地运行。通过系统调试和优化,进一步提高了系统的性能和可靠性。该双CAN冗余设计方案可广泛应用于工业控制、汽车电子、轨道交通等对系统可靠性要求极高的领域,为这些领域的通信系统提供了一种可靠的解决方案。在实际应用中,用户可以根据具体需求对该方案进行适当的修改和扩展,以满足不同应用场景的要求。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
pcb
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告