Page 285 - Mechatronics for Safety, Security and Dependability in a New Era
P. 285

Ch54-I044963.fm  Page 269  Thursday, July 27, 2006  8:16 AM
                            Thursday, July 27, 2006
                      Page 269
            Ch54-I044963.fm
                                          8:16 AM
                                                                                          269
                                                                                          269
                  lower-level  software  and  hardware  are  available  as  objects,  and  only  the  high-level  control  must  be
                  developed.  This corresponds  to high-level  software  development  tools, by which  you may  create new
                  applications  by  selecting  appropriate  software  objects  from  a  library  and  use  them  with  you  own
                  control code.
                  To  create  a new  device,  common  object-oriented  design  methods  can  be  used  to  break  up  the  basic
                  functionality  into  smaller  modules.  Usually,  the  modular  diagram  of  the  designed  system  consists  of
                  some  functional  modules  and  a  control  module.  In  that  diagram,  the  modules  correspond  directly  to
                  Atomi  objects,  which  gives us interesting options. One option  is that the control  module  is a computer.
                  Software  creation  for a computer  is easy because of the great processing power and easy debugging.  In
                  the  computer  one  can  also  use  high-level  software  languages,  which  makes  code  generation  easy.
                  Another  option  is  to  use  an  Atomi  object  to  control  the  other  objects.  If  the  system  is  designed
                  properly,  the  control  module  could  simply  contain  the  mainQ-function  that  controls  the  other  Atomi
                  objects. In many  software  development  methods, the control module  usually contains a state machine,
                  which  controls  the  other  modules.  Since  a  state  machine  is a very  trivial  code  structure,  it  is  easy  to
                  program  with  almost  any  programming  language.  To make it  easier,  there  can  also be  template  state
                  machine code structures, where the user fills  in the states and transitions, compiles the code and inserts
                  it into the  control module.  A graphical  state machine  editor  can be  used to  make  its programming  as
                  easy  as  possible.  The  control  module  could  even  contain  a  neural  network  Atomi  object.  With  this
                  approach,  some  advanced  learning  methods  could  be  used to teach  the  device  to perform  the  desired
                  operations.  The  device  could  also  work  without  a  separate  control  module.  Since  all  modules  can
                  produce  events,  these  events  can  be  set to  trigger  actions  on  other  modules  and  thus  make  the  whole
                  device work reactively. These options require still more research and will be considered later.

                  Cost

                  If  devices  designed  with  this  architecture  were  to  be  mass-produced,  the  costs  would  most  likely
                  exceed  the  cost  of  an embedded  system  made  with  a traditional  architecture  because  of  several  extra
                  components.  On  the  other  hand,  if  only  a  few  devices  were  needed  of  one  system,  this  architecture
                  could  be  more  cost-effective.  Depending  on  the  suitability  of  ready-made  modules,  the  speed  of
                  producing  a complete  device would be faster  with  the object-oriented  embedded  system  method.  The
                  biggest  time  advantage  would  most  likely  come  at  the  debugging  phase  of  the  hardware  and  the
                  software.  The  hardware  and  software  of  a  system  made  with  traditional  methods  or  with  object-
                  oriented  methods,  where  the  objects  do  not  remain  independent  in  the  resulting  hardware,  and  the
                  processes  do not run in independent  processors  in the resulting  software,  the mixing  of new  hardware
                  and  software  or existing library objects  can cause interference  to existing objects.  Since the  embedded
                  object  method  is completely  encapsulated  in  software  and  almost  completely  in hardware,  the  risk  of
                  malfunctions  in library objects  is likely to be reduced.

                  The possibility  of high-level  system development  may also bring cost benefits  in the form  of a reduced
                  need  for  expertise.  In  situations  where  needed  embedded  objects  are  already  available,  a  non-
                  hardware-oriented  person is able to create a simple embedded  system, provided that the needed  objects
                  are  available,  and  no  custom  objects  are  needed.  Luckily,  many  sensors  and  actuators  uses  common
                  interfaces,  such  as  analog  voltage  output,  serial  port,  i2c  bus,  SPI,  pulse  width  modulation,  or  8-bit
                  data  bus.  Thus,  with  only  a  few  Atomi  objects,  considerably  many  kinds  of  peripherals  can  be
                  controlled by merely choosing suitable connectors  for them.

                  Success  in  creating  a  high-level  language  embedded  system  creation  method  could  also  inspire  IC
                  manufacturers  to develop an Atomi-like packaging  method  for  integrated  circuits. This kind  of a trend
                  can  already  be  seen  in  the  electronics  industry,  as  more  integrated  and  easy-to-use  modules  come  to
                  the market  all  the time.  Only the  common  interface  is missing,  and that  is what  makes  Atomi  objects
                  feasible.
   280   281   282   283   284   285   286   287   288   289   290