mdaq-d3 : a c++ distributed driver development framework

Post on 19-Jun-2015

114 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Mdaq-D3 :a C++ Distributed Driver Development Framework

Chavas Joël, Château Frédéric, Druillole Frédéric,

Usher Nathan, Pollacco Emmanueland Anvar Shebli

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Drivers

Driver functionsDriver functions read / write protocolread / write protocol

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Control of a system of electronic cards

AGetBus

I2C SPIethernet

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

A system of electronic cards -software point of view

IceIceECCECC

NodeNode

Nodes (with OS)

VxWorksLinux

...

Nodes (with OS)

VxWorksLinux

...

Devices I2CSPI

AgetBus...

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Distributed Driver Development -where we want to arrive

remote driver functions

read / write protocol

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

● Remote driver functions using remote register access

● Dynamic development through configuration (no recompilation)

Distributed Driver Development -where we want to arrive

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

A system of electronic cards -software point of view

IceIceECCECC

NodeNode

Nodes (with OS):

VxWorksLinux

...

Nodes (with OS):

VxWorksLinux

...

Devices I2CSPI

AgetBus...

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Hardware Node

DeviceDevice

RegisterRegister

BitFieldBitField

Register Access PolicyRegister Access Policy

*1*

*

*

1

1

1

HardwareNode

loadConfig()

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Register Access Policy

AccessPolicy

deviceAddress registerOffset

write() read()

● At compile time :

● REGISTER_POLICY(I2CAccessPolicy, "I2CBus");

● REGISTER_POLICY(AGetAccessPolicy, "AGetBus");

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Electronic Control Core

SystemSystem

NodeNode

0...1

*

1

1

ECC

● write()● read()● loadConfig()

DeviceDevice

1

*

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Access points to the framework

EccEcc

● write()● read()● loadConfig()

● write()● read()● loadConfig()

UserEccUserEcc

● driverFunction1()● driverFunction2()

● driverFunction1()● driverFunction2()

HardwareNodeHardwareNode

UserNodeUserNode

● function1()● function2()

● function1()● function2()

● loadConfig()● loadConfig()

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

GET configuration

ONE POLICY PER DEVICE

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Distributed Driver Development -user guide

● Prototype● define the access policies● configuration: interface between firmware and software● remote driver functions on the ECC

● Final product● Some driver functions brought to the nodes for the sake of

performance

● In both cases● system structure defined at run-time (configuration)

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Distributed Driver Development

define access policies(compile time)

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Distributed Driver Development

write the configuration(loaded at run time)

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Distributed Driver Development

define the driverfunctions

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

A run

remote driver functions

access policies

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

A run

remote driver functions

configure

access policies

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

A run

remote driver functions

read / write protocol

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

From prototype to performance

move some driver functions into the cards

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Your application as an ECC client

ECC client :

scriptGUI

testbench...

ECC client :

scriptGUI

testbench...

EccEcc

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Libraries

Today’s distribution mode: ask Shebli Anvar or Today’s distribution mode: ask Shebli Anvar or myself for a tarball (myself for a tarball (Shebli.Anvar@cea.frShebli.Anvar@cea.fr; ; joel.chavas@cea.frjoel.chavas@cea.fr))Licencing: GPL-like Cecill (open source, special Licencing: GPL-like Cecill (open source, special contract for proprietary licencing)contract for proprietary licencing)

Today’s distribution mode: ask Shebli Anvar or Today’s distribution mode: ask Shebli Anvar or myself for a tarball (myself for a tarball (Shebli.Anvar@cea.frShebli.Anvar@cea.fr; ; joel.chavas@cea.frjoel.chavas@cea.fr))Licencing: GPL-like Cecill (open source, special Licencing: GPL-like Cecill (open source, special contract for proprietary licencing)contract for proprietary licencing)

● CompoundConfig

● Flexible advanced configuration tool● Mdaq-D3

● A Distributed Driver Development framework

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Conclusion

● Mdaq-D3:● A framework for the slow control of a system of

electronic cards● Distributed driver development

(through remote register access)● Dynamic development through configuration

(no recompilation)● An interface between firmware and software

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Thanks

● Engineers:● Shebli Anvar, Frédéric Druillole, Nathan Usher,

Patrick Sizun

● Grants:● ANR GET● Eurotalents program

Joël Chavas (CEA Irfu) – 24 october 2011 – IEEE NSS 2011

Mdaq-D3 for a dynamicDistributed Driver Development

remote driver functions

read / write protocol

configuration

top related