1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2 "http://www.w3.org/TR/html4/loose.dtd">
5 <title>[[!meta title="Linux Target for Simulink® Embedded Coder®"]]</title>
6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
7 <link><style type="text/css">
8 #main_content {max-width: 70em}
13 <div id="main_content" style="max-width: 60em;">
17 [[!img ert_linux_snapshot1.png size="300x" align=right alt="Screenshot or ert_linux"]]
20 for <a href="http://www.mathworks.com/">MathWorks</a>' <a href="http://en.wikipedia.org/wiki/Simulink">Simulink</a>®
21 Embedded Coder® allows to compile a model of designed control system
22 to the C-code and combine it with target specific support functions.
23 The resulting executable/controller can be run in real-time on the
24 target Linux system. The running dynamic system can be augmented via
25 tunable block parameters in the Simulink model and data can be
26 acquired and visualized with Simulink scopes.
30 Linux ERT target uses heavily real-time capabilities
31 of <abbr title="PREEMPT RT">real-time</abbr> variant of the Linux
32 kernel. The resulting control system supports sampling frequencies
41 <h2 id="news">Recent News</h2>
45 We will present the a paper <a href="https://www.osadl.org/?id=2018">Usable Simulink Embedded Coder Target for Linux</a>
46 and RPi motor control demonstartion at <a href="https://www.osadl.org/RTLWS-2014.rtlws-2014.0.html">16th Real Time Linux Workshop</a>
47 taking place on 12 and 13 October 2014 in Dusseldorf Germany.
48 The <a href="http://rtime.felk.cvut.cz/publications/public/ert_linux.pdf">Paper</a>
49 and <a href="http://rtime.felk.cvut.cz/publications/public/ert_linux-rtlws2014.pdf">slides</a>
50 are available from our <a href="http://rtime.felk.cvut.cz/publications/">publications archive</a>.
53 We will present the ert_linux project
54 at <a href="http://www.amper.cz/en/online-catalog/list-of-exhibitors.html/e9595_0-fakulta-elektrotechnicka-cvut-v-praze">Amper
55 exhibition</a> from 18th to 21st March 2014 in Brno, Czech Republic.</li>
57 Linux ERT at Embedded World exhibition – 25 until 27 February 2014 - Visit
58 <a href="http://www.ask-embedded-world.de/index.php5?id=342793&Action=showCompany">DCE CTU</a>
59 developers and researchers at the OSADL booth (hall 5 booth 276).
63 <h2 id="linuxnative">Native Linux Real-Time and I/O Cards and Devices Support</h2>
65 <p>Current version of the Linux ERT target is optimized to use the
66 proper Linux kernel timing mechanism with bounded maximal latencies.
67 Matlab/Simulink running on GNU/Linux desktop system as development
68 system is supported. More information about current version can be
70 in <a href="http://rtime.felk.cvut.cz/~sojka/blog/on-generating-linux-applications-from-simulink/">Michal
71 Sojka's blog post</a>. UIO driver and blockset has been implemented to
73 <a href="http://www.humusoft.com/produkty/datacq/">Humusoft data acquisition cards</a> (MF624 for now).</p>
75 <p><abbr title="User Space I/O">UIO</abbr> driver for the MF624 card
76 is already included in the Linux mainline kernel. More documentation
77 for this driver can be found
78 on <a href="http://rtime.felk.cvut.cz/hw/index.php/Humusoft_MF6xx">DCE
82 The basic blocks for <a href="can_bus/index.html">CAN messges sending and receiption</a>
83 under Linux are implemented.
86 <h2 id="platformselect">RT-Capable Platform and Kernel</h2>
88 Standard distribution Linux kernel does not guarantee bounded latencies for many operations.
89 The use of <a href="http://rt.wiki.kernel.org/">real-time variant</a> of <a href="http://en.wikipedia.org/wiki/Linux">Linux</a>
90 kernel is required to make system durable. This kernel variants minimizes regions
91 where switch to the highest priority (i.e. Linux ERT generated) task is blocked by
92 kernel when servicing system calls for other tasks.
95 Selection of the right version of the kernel is not enough for non-disruptive
96 operation. Computer system hardware selection is critical as well. The system
97 has to provide enough computational power for compiled in blocks data evaluation
98 evaluation and Linux kernel services processing. Other critical disturbance sources
99 are hardware caused latencies and lags in a program processing by CPU. The source
100 can be bus systems load by other subsystems (i.e. graphic processor memory access,
101 peripheral DMA - SSD, SD-card, Flash controller etc.). The other critical source of
102 latencies in x86 based systems is <a href="http://en.wikipedia.org/wiki/System_Management_Mode">SMI</a>
103 processing. The SMI enable and processing is under BIOS and motherboard vendor control
104 and this problem cannot be resolved by operating system. This means that proper
105 hardware selection is critical.
108 A long period evaluation data of different combinations of Linux kernel version
109 runing on many CPU architectures and boards from many vendors is <a href="http://www.osadl.org/">OSADL</a>
110 <a href="http://www.osadl.org/Quality-assurance-at-the-OSADL-QA-Farm.osadl-services-qa.0.html">Quality Assurance Farm</a>.
111 According to these track records carefully selected x86 or embedded GNU/Linux system can run
112 real-time tasks with sampling frequencies up to 20 kHz with no losing sample per months.
115 <h2 id="download">Source Code and Download</h2>
118 <dt>Lintarget at Source Forge</dt>
119 <dd><a href="https://sourceforge.net/projects/lintarget/files/">project download area</a>
120 contains released versions of the Linux target and CANopen based distributed system
122 <dt>Linux ERT source code repository</dt>
123 <dd><a href="http://rtime.felk.cvut.cz/gitweb/ert_linux.git">http://rtime.felk.cvut.cz/gitweb/ert_linux.git</a>
124 <br>version updated for real-time and native GNU/Linux host/target system setup
126 <dt>Humusoft MF624 card support blockset</dt>
127 <dd><a href="http://rtime.felk.cvut.cz/gitweb/mf624-simulink.git">http://rtime.felk.cvut.cz/gitweb/mf624-simulink.git</a>
128 <br>initial version of blockset supporting analog and digital input/output, IRC, PWM and PWM measurement for MF624 cards.
133 <h2 id="prjbackground">Project Background</h2>
136 The Linux ERT has been initially developed at <a href="#dce">DCE of
137 CTU</a> in order to create a dynamic environment model for hardware
138 (airplane) in the loop testing of a fly-by-wire system
139 at <a href="http://www.aero.cz/en">AERO Vodochody a.s.</a>. Simulink
140 has been run on Windows host computer initially and code generated for
141 GNU/Linux embedded target system was compiled
142 under <a href="http://en.wikipedia.org/wiki/Mingw">MinGW/MSYS</a>
143 environment and then uploaded to PowerPC
144 based <a href="http://rtime.felk.cvut.cz/hw/index.php/Boa5200">BOA5200</a>
145 computer. The target computer was equipped with two CAN
146 interfaces. <a href="http://en.wikipedia.org/wiki/Canopen">CANopen</a>
147 blockset based on <a href="http://canfestival.org/">CANfestival</a>
148 project was used to control distributed servosystem used to simulate
149 fly-by-wire system load. Simulink CANopen blockset integrates a
150 <a href="http://en.wikipedia.org/wiki/Socketcan">SocketCAN</a> driver configuration and CAN messages
151 processing support to the generated code and enables the user to develop distributed embedded
152 control applications with CANopen communication.</p>
154 [[!img LinTarget.JPG size=300x alt="Original code generation workflow"]]
155 [[!img CANopenExample.JPG size=300x alt="Model including node controlled over CANopen"]]
157 <p>Lukáš Hamáček, “<b>RTW target for Linux with CANopen support</b>”, Master Thesis, Prague 2009. (<a href="dp_2009_hamacek_lukas.pdf">Pdf</a>)</p>
159 <h2 id="applications">Systems Controlled Linux Target for Embedded Coder</h2>
161 Some more information about concrete examples of controlled systems/setups:
164 <dt><b>Moving Slide</b> parallel kinematic/robot control</dt>
165 <dd>The Linux ERT target is used at Adaptive Systems Department (Academy of Sciences
166 of Czech Republic, UTIA institute) to realize control system for parallel kinematics
167 control research projects. See <a href="moving-slide/index.html">respective page for more
168 information about project</a>.
170 <dt><b>Raspberry Pi</b> minimal components DC motor servo control</dt>
171 <dd><a href="http://en.wikipedia.org/wiki/Raspberry_Pi">Raspberry Pi</a> is low cost
172 hardware which does not implement any usual motor control peripherals in hardware.
173 Yet fully preemptive variant of Linux kernel latencies are so low that fast signals
174 processing in software allows to implement precise DC motor feedback control
175 for incremental encoder inputs changing up to 15 kHz.
176 See <a href="rpi-motor-control/index.html"> respective page for more information
179 <dt>Usable Simulink Embedded Coder Target for Linux</dt>
180 <dd>Michal Sojka, Pavel Pisa<br>
181 <a href="https://www.osadl.org/RTLWS-2014.rtlws-2014.0.html">16th Real-Time Linux Workshop</a>a>,
182 Düsseldorf, Germany, October 2014.
183 The <a href="http://rtime.felk.cvut.cz/publications/public/ert_linux.pdf">paper (PDF)</a>
184 and <a href="http://rtime.felk.cvut.cz/publications/public/ert_linux-rtlws2014.pdf">slides (PDF)</a>
185 are available from our
186 <a href="http://rtime.felk.cvut.cz/publications/">publications archive</a>.
190 <h2 id="contributors">Project Contributors</h2>
193 <dt>Michal Sojka</dt>
194 <dd><a href="mailto:sojkam1@fel.cvut.cz">sojkam1@fel.cvut.cz</a> ,
195 homepage <a href="http://rtime.felk.cvut.cz/~sojka/">http://rtime.felk.cvut.cz/~sojka/</a>
196 <br>teacher, researcher and developer at DCE CTU.
199 <dd><a href="mailto:pisa@cmp.felk.cvut.cz">pisa@cmp.felk.cvut.cz</a> ,
200 homepage <a href="http://cmp.felk.cvut.cz/~pisa/">http://cmp.felk.cvut.cz/~pisa/</a>
201 <br>teacher, researcher and developer at DCE CTU.
203 <dt>Rostislav Lisový</dt>
204 <dd><a href="mailto:lisovros@fel.cvut.cz">lisovros@fel.cvut.cz</a>
205 <br>former CTU master study programe student, Linux related projects developer at DCE now.
207 <dt>Libor Waszniowski</dt>
208 <dd><a href="mailto:xwasznio@fel.cvut.cz">xwasznio@fel.cvut.cz</a>
209 <br>former DCE CTU researcher responsible for the project with AERO Vodochody.
211 <dt>Lukáš Hamáček</dt>
213 former CTU master student.
218 <p id="dce"><b>DCE</b> – <a href="http://dce.fel.cvut.cz/" target="_blank">Department of Control Engineering</a> –
219 <a href="http://www.cvut.cz/en" target="_blank">Czech Technical University in Prague</a>, <a href="http://www.fel.cvut.cz/en" target="_blank">Faculty of Electrical Engineering</a></p>
221 <h2>Acknowledgment</h2>
223 <p>This work was supported by Ministry of Industry and Trade of the Czech Republic under Project
224 FT—TA3/044 during period of 2006 to 2009 years.</p>