双核汽车电子芯片 MPC5746R简介

分享到:

随着汽车智能化的不断发展,汽车电子行业有着越来越大的市场。作为NXP在汽车电子上主推的控制器件,MPC系列高性能和高安全性MCU正在逐步提高自身的地位,发挥着更为显著的作用。本文以MPC5746R的实际应用为例,讲解双核心之间如何互相协调,共同发挥更大的性能。

 

timg

MPC5746R采用双CPU核心机制,两个独立可编程的基于e200z425的内核0和内核1,每个内核主频最高可达200M。另外还有一个基于e200z424的安全内核用于和内核0同步运行,以确保程序运行时的可靠性。

 

MPC5746R的两个核心共享片内外设及内存单元。同时中断控制器可以为两个核心提供各自独立的控制单元,使中断请求可以根据用户设置而交给不同的核心处理。

 

用户可以为两个内核编写各自独立的程序,看上去就像一个系统运行了两个线程。事实也确实如此,两个内核并行以200M的速度执行用户为其各自编写的程序,处理着各种复杂的任务。但是有时候也会出现一些问题导致不愉快的事情发生。

 

可以举几个例子:

 

1)     某一时刻,内核1要往某个寄存器写数据来执行功能1,但不巧此时内核0也需要往这个寄存器写数据来执行功能0。同时写入冲突可能导致功能0和功能1都不能正常执行,这时应该何如避免。

 

2)     由于外设资源只有1份,假设用户设定让内核1初始化系统和资源,内核0需要在初始化完成后执行相关功能操作,那么内核0如何在第一时间内知道初始化已经完成。

 

3)     内核1和内核0合作处理复杂的算法,当内核0处理完了一部分算法之后想把处理结果交给内核1,这时候彼此独立的双核之间如何通信。通信时间如何节省。

 

其实芯片在设计的时候,早已考虑好了这些问题,并做出了相应的功能来保证双核之间的协调运作。基于以上的示例,我们需要了解一个重要的知识点叫做信号量,信号量是一种在进程之间作用资源保护和同步的机制。

 

MPC5746R提供了16路的硬件信号量供用户使用,用户可以写入处理器对应的号码以锁定某一路信号量并且只有锁定该信号的处理器能解锁该信号。这样就为处理器之间的资源访问保护及同步提供了硬件基础。

 

我们以具体的方法来解决上诉三个例子所面临的问题:

 

1)     内核在写入某个寄存器之前,先检测信号量是否锁定,如果锁定,等待信号解锁再进行操作,如果没有锁定,则先锁定一个信号量,等到操作完成后,再释放信号量,这样就不会出现共享资源的访问冲突。

 

2)     内核0需要等待内核1初始化完成之后才能进行功能操作,即与内核1之间进行同步。可以在内核1程序开始的时候,上锁信号量,等各项初始化完成之后,解锁信号量。而内核0则在程序开始的时候就等待该信号量的解锁,一旦解锁,就说明初始化完成,即完成同步操作,也就解决了上诉第二个问题。

 

3)     两个内核在通信的时候,最重要的一个问题是接收方如何随时准备好接收数据而不过多消耗CPU资源。在MPC5746R中,可以通过软中断解决。内核1 需要发送数据给内核0的时候,先配置好软件中断的优先级,然后将中断请求设置成内核0。在数据写入之后,触发中断,中断请求发送至内核0。而内核0只要写好相应的中断服务函数,就能在不过多消耗CPU资源的情况下,通过中断接收数据,完成内核间的通信。

 

需要注意的是,对于独立的双核之间通信数据的存取,MPC5746R并没有为此单独开辟一个空间。但是在实际应用中,一种可行的方法是灵活的使用各通信模块中,未使用的缓冲单元。例如CAN模块中,最多有96个数据缓冲结构,CAN通信的过程中并不一定都会使用,我们可以根据实际需要使用几个数据缓冲单元作为内核间数据传输的通道。需要发送数据的内核将数据写入指定的数据缓冲结构体,然后触发软件中断。接收一方在中断服务函数中将数据从数据缓冲结构体中读取出来。可以在缓冲结构体中设置一些标志位来判断读写是否成功。

 

 

以上就是双核之间资源保护,同步和通信的一些具体示例方法,当然方法并不是唯一的,希望读者在使用过程中能够举一反三,灵活运用,最终达到“双核交火,协同作战”的目的。

继续阅读
如何评价恩智浦推出的S32通用汽车平台?

本周二,荷兰半导体供应商恩智浦推出了“全球首个完全可扩展计算架构S32”,主要面向OEM和Tier 1供应商,实现节点、软件和通用功能在汽车不同域、应用和SoC之间的重复利用。不过到2018年下半年之前,我们暂时还看不到任何基于该平台打造的芯片产品。

恩智浦宣布支持谷歌“云物联网核心”的公开测试,促进智能设备发展

作为Android Things的早期合作伙伴,恩智浦半导体NXP Semiconductors N.V.今日宣布支持谷歌“云物联网核心”的公开测试。云物联网核心是谷歌云平台(GCP)上一种用于安全地批量连接和管理物联网设备的完全托管服务。云物联网核心现面向所有用户提供公测版,其中包含新的特性和价格计划。

i.MX+TEE OS,今天恩智浦和阿里都找到了一个“好朋友”

今天,恩智浦半导体与阿里巴巴共同签署谅解备忘录(MOU)建立战略合作伙伴关系,恩智浦的i.MX应用处理器将作为阿里云TEE OS操作系统的硬件载体,提供安全控制的全面功能,未来双方将同步更新、升级和发展i.MX+TEE OS的解决方案,为物联网安全提供全面可靠的支撑。恩智浦半导体大中华区MICR微控制器产品市场总监金宇杰先生,代表恩智浦出席了MOU的签字仪式。

谈到半导体行业未来,恩智浦CEO特别提到这四个关键词

日前,恩智浦半导体首席执行官Rick Clemmer先生应邀在苏州“核心技术产业与全球化高峰论坛”上发表了题为《半导体与行业发展:万物、智能、互联、安全》的主旨演讲,畅谈在万物互联时代半导体行业发展的挑战与机遇。

谷歌“云物联网核心”开始公测,恩智浦这个技术也随之亮了!

恩智浦半导体日前宣布支持谷歌“云物联网核心”的公开测试。作为Android Things的早期合作伙伴,恩智浦由此将安全、处理和数字网络方面的专业知识带给开发者社区,推动谷歌“云物联网核心”的物联网边缘智能化。