240 likes | 356 Views
<<AutoComp>>. <<AutoComp>>. Sink. Sink. T = 40 ms. Valve Regulator. Power Supervison. Source. Diesel Valve. Desired Output level. Diesel Valve. Air Valve. Air Valve. Predictable Assembly with SaveCCT. Mikael Åkerholm MRTC, Mälardalen University, http://www.mrtc.mdh.se
E N D
<<AutoComp>> <<AutoComp>> Sink Sink T = 40 ms Valve Regulator Power Supervison Source Diesel Valve Desired Output level Diesel Valve Air Valve Air Valve Predictable Assembly with SaveCCT Mikael Åkerholm MRTC, Mälardalen University, http://www.mrtc.mdh.se CC Systems AB, http://www.cc-systems.com mikael.akerholm@mdh.se
Outline • Background and motivation • Central Concepts of Component Technologies • SaveCCT - A Component Technology for Vehicular Systems • Target Domain • Technology Overview • Component Model • Tools • Example application – Adaptive Crusie Controller (ACC) Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
Background: Save/Save++ (and progress) • Save (2003-2006) • Enabling systematic development of component-based software for safety critical embedded systems. • Component technologies -> SaveCCT • MDH, UU, KTH, LiTH, (ABB, Bombardier, CC Systems, CR&T, Saab, Scania, Volvo Car and Volvo TD) • Save++ (2006-2007) integrates as a part of the progress project (2006-2010) at MDH • Improved theories, methods, technologies, and tools, based on Save and Save++, -> (SaveCCT++ ) Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
Motivation More Functionality Improve existing Functionality Lower price More Electronics With Software • Software Crisis (1968): • Error-Prone • Late • Expensive Need Better Software Engineering Approaches! Component-Based Software Engineering • Promising, successful in the PC domain • Component Technologies, target PC Applications • Vehicular Software Different from PC Software Component Technology For Vehicular Applications! Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
Central Concepts Supporting Tool Components Platform Component Framework Repository Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
SaveCCT – For Vehicular Systems • Characteristcs: • Many suppliers • Distributed applications • Safety • Reliability • Resource efficiency • (Hard) Real-Time requirements Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
SaveCCT Design Goals • Efficient Development: • Enable utilization of CBSE advantages, provide the necessary possibilities for the target domain • Predictable Behavior: • Need to be able to apply analysis of important run-time attributes during design-time, e.g., Timing, Safety, Reliability, Memory needs, Processor demands • Run-Time Efficiency: • Ideally enable CBSE without run-time cost, compared to C programming with RTOS Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
Process Overview System Verification System Requirements System Composition System Decomposition Component Verification Component Requirements Interface between Component developers And system developers Select and Adapt Repository Verify Component Need for component Develop or Buy Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
SaveCCT Technology Overview Repository Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
The SaveCCM component model • Restictive in comparision to PC/Internet component models • COM, .Net, EJB • Enable analysis during design-time, and determinstic reproducable behaviour during run-time (test-time) • Textual xml, and graphical UML influenced syntax Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
SaveCCM Syntax:Basic Component • Ports • Trigger, data, combined • Behaviour • Read Execute Write fixed_t error = Setpoint – Value; fixed_t u = fixed_mul(K, e); if (IntegrationEnabled) u += fixed_div(NewState, T_i); Control = LIMIT(u, 0, MAX_CONTROL); State = error; Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
SaveCCM Syntax:Basic Component • Ports • Trigger, data, combined • Behaviour • Read Execute Write fixed_t error = Setpoint – Value; fixed_t u = fixed_mul(K, e); if (IntegrationEnabled) u += fixed_div(NewState, T_i); Control = LIMIT(u, 0, MAX_CONTROL); State = error; Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
SaveCCM Syntax:Switch • Ports • Setports determine active configuration • Connection patterns • For static or dynamic reconfiguration Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
SaveCCM Syntax:Assembly • Ports • Internal components and connections • Encapsulation of a “sub-system” Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
SaveCCM Syntax:Composite Component • Ports • Internal components and connections • Restricted behaviour, read-execute-write Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
SaveCCM Formal Foundation • Timed Automata with Tasks • SaveCCM Core • Building blocks for SaveCCM semantics: • Basic Component • Composite Component • Conditional Connection • Port: point of interaction • Where connection meet component • Transfer data or triggering • Single data item, overwrite semantics Finite automata with • Dense time clocks, manipulated on edges • Tasks, released when a location is reached Dense time is possible by using a symbolic representation x 5 y := 0 T1 u! x 10 On request, John may give a lecture ;o) Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
SaveCCT Glue Code Generator • Motivation Component Framework Run-time Binding DB Transactions, Web <1 GB OS Graphics, User Accounts run-time configuration >1 MB OS Syncronisation, IPC, Timing static configuration Thypical target platform For component technologies 2 GHz 256 MB RAM 20 MHz 256 kB RAM Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
SaveCCT Glue Code Generator SaveCCM Component Model Fully Automated Compile-Time Step Task Allocation Intermediate Task Models Analysis - Target Compiler RTOS Execution Models RTOS RTOS CrossFire, RTXC PC/Win32, CCSimTech Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
SaveCCT Tools (under continous improvement) • Save IDE (under continous improvement) • Component composition • Several existing prototypes for graphical composition from masters thesis projects, currently under major revision • Automated connectivity to analysis tools through translations of SaveCCM XML to • timed automata with tasks ->Times (Timing and much more) • Finite State Processes -> LTSA (Control loop liveness) • Test • Automated test tools, e,g., test-complete and LabView, from CCSimTech • Repository • Under construction, will provide means for easy selection and specialisation of components through distingushing component versions, from component variants • … Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
Example Application – SaveCCT in an industrial Environment • Case Study at CC Systems • Integrated our technology in a real industrial environment, i.e., selected development tools and hardware from the company’s repertoire • CrossFire ECU, CCSimTech simulation technique, target compiler • Implemented a “fictive” vehicular control application with the technology, and used as basis for evaluation Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
50 Hz Speed Limit <<Assembly>> <<SaveComp>> Road Signs Enabled ACC Application ACC Max Speed Road Sign Speed ACC Controller <<Assembly>> Throttle Object Recognition <<SaveComp>> Distance Current Speed 10 Hz Logger HMI Outputs Mode Switch Max Speed <<Switch>> <<SaveComp>> ACC Enabled Brake Assist Brake Pedal Used ACC Brake Assist <<SaveComp>> Brake Signal Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
View, hiding low level information of data flow direction and triggering. Relative Max Current Distance Speed Speed Speed << Assembly >> << Assembly >> ACC Controllers ACC Controllers Control << Assembly << Assembly >> << Assembly >> << Assembly >> Speed Distance Distance Speed Controller Controller Controller Controller Max Current Speed Relative Speed Distance Speed << Assembly >> << Assembly >> Speed Distance Controller Controller Control << SaveComp >> << SaveComp >> 3 Calc Output Calc Output 2 1 << SaveComp >> << SaveComp >> Update State Update State 5 4 Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
Automated Analysis of The ACC • Static WCET analysis through integration of the aiT Worst-Case Execution Time Analyser • WCET ~ 3% over-estimation • Context dependent WCET analysis preferable, but not yet achieved • Timing and more through the underlying Timed Automata model • The Times tool checks e.g., Schedulability and Response times for end-2-end transactions • Liveness • Finite State Processes (FSP), derived from SaveCCT • Labeled Transition System Analyser (LTSA), is used to verify liveness Mikael Åkerholm, SaveCCT lecture CBSE Course 2007
Questions Mikael Åkerholm, SaveCCT lecture CBSE Course 2007