What is Virtual Function Bus (VFB)?
Translate in your language
This will be very small article as VFB is easy and there is nothing much to be explained in it. But as I am categorizing small parts of AUTOSAR (which is like ocean! 😀 ) I thought VFB to cover in separate post for ease of my readers. This concept would be very helpful while learning about RTE layer.
AUTOSAR is based on layered architecture in which SWCs laying in application layer communicate with each other. The communication can be possible not only in same ECU but also SWCs of other ECUs in a system (vehicle). The communication mechanism to achieve this functionality is basically called as Virtual Function Bus or VFB in short, it is implemented in RTE layer of AUTOSAR. Its called “virtual” because there is no physical connection between SWCs, instead the SWCs of a ECU communicate with SWCs of other ECUs in a system(vehicle) using low level communication bus like CAN or FlexRay. AUTOSAR handles all the low level matters to let the ECUs talk with each other as if there is a virtual link between them. Because of this SWC is independent of actual underlying hardware and hence relocate ability of SWCs is possible i.e. the same SWCs can be used on any ECU with any hardware platform.
Figure 1 depicts the VFB concept in simplified way. As can be seen from above figure, the SWCs in same ECU can communicate with each other and also with SWCs in other ECUs of a system. Technically, communication between the SWCs of same ECU is called Intra-ECU Communication whereas the communication between SWCs of different ECUs is called Inter-ECU Communication. Intra-ECU communication is realized virtually by defined function calls in RTE on the other hand the Inter-ECU communication is realized by using the underlying communication bus like CAN or FlexRay through COM Stack along with RTE. If the ECUs use different communication bus, then a Gateway is required for translating data from one bus type to another bus type.
As AUTOSAR provides a standardized way of ECU software development, the System Configuration Description has all the information of the SWCs of all ECUs in a system. Each ECU has customized RTE layer which implements the VFB for its respective SWCs. VFB helps in separating the SWCs and the underlying infrastructure thus making SWCs completely hardware independent.
VFB provides mechanisms for following services which are used by SWCs :
- Communication to other SWCs in the system.
- Communication with Sensors or actuators in the system.
- Providing access to standard services such as reading/ writing to memory.
- Responding to mode changes.
- Communication with external calibration and measurement instruments.
Thanks for reading 🙂
if you find any incorrectness in the information of this post or you want to give general feedback then please report me.
Nice article. Can you explain more about what do you mean by modes and mode changes?
Hi Deepak,
Mode changes here means, ECU can go under different mode changes like: power down, etc. Or master ECU can ask other ECUs to change their modes. So this mode change requests is also supported by VFB.
Can you explain wakeup and initialization sequence of ECU w.r.t AUTOSAR?
I didn’t went into that, but you can look into ECUM
Can you please give me an example for VFB
Hi,
VFB is a “concept” where ECUs are connected with each other virtually. There cannot be a example as such.