5.2.3. PVBusMaster component

The PVBusMaster component acts as a source for all transactions over the PVBus. If you want a component to act as a bus master, instantiate a PVBusMaster subcomponent and then use its control port to create one or more transaction generators to generate transactions on the bus.

Figure 5.3 shows a view of the component in System Canvas.

Figure 5.3. PVBusMaster in System Canvas

PVBusMaster in System Canvas

This component is written in C++.


Table 5.3 provides a brief description of the PVBusMaster ports.

Table 5.3. PVBusMaster ports

NamePort protocolTypeDescription




Sends out generated transactions.




Enables the owning component to instantiate pv::TransactionGenerator objects. See PVTransactionMaster protocol.

PVTransactionMaster protocol

The PVBusMaster component has one additional protocol.

This protocol is used to instantiate a pv::TransactionGenerator object from a PVBusMaster:

createTransactionGenerator( ) : pv::TransactionGenerator *

Instantiates a new transaction generator to control this bus master. A caller can allocate as many TransactionGenerators as it wants. It is up to the caller to delete TransactionGenerators when they are no longer required. For example:

behavior init() {
    tg = master.createTransactionGenerator();

behavior destroy() {    
	delete tg;


The PVBusMaster component has no parameters.


The PVBusMaster component has no registers.

Debug features

The PVBusMaster component has no debug features.

Verification and testing

The PVBusMaster component has been tested as part of the VE example system using VE test suites and by booting operating systems.


The PVBusMaster component is not expected to significantly affect the performance of a PV system. However, the way in which you implement the component can influence performance. See TransactionGenerator efficiency considerations.

Library dependencies

The PVBusMaster component has no dependencies on external libraries.

Copyright © 2008-2013 ARM. All rights reserved.ARM DUI 0423O