]> rtime.felk.cvut.cz Git - ert_linux_web.git/blobdiff - index.mdwn
Update another link to DCE server which has been renamed to control.fel.cvut.cz
[ert_linux_web.git] / index.mdwn
index 214dc76090361325ec22cc8d1b32e763b95d2094..22c704d6de4c943fb253da330688904cf3f10047 100644 (file)
@@ -13,7 +13,13 @@ visualized with Simulink scopes.
 Linux ERT target uses heavily real-time capabilities of
 [real-time variant of the Linux kernel](https://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch)
 that provides bounded maximal latencies. The resulting control system
-supports sampling frequencies up to 20 kHz.</p>
+supports sampling frequencies **up to 20 kHz**. Matlab/Simulink GUI
+running on the same GNU/Linux desktop system as the generated
+real-time application is supported.
+
+More information about initial version developed by Michal Sojka at [Department of Control Engineering](https://control.fel.cvut.cz/) [FEE](http://www.fel.cvut.cz/)
+[CTU](https://www.cvut.cz/) can be found in
+[Michal Sojka's blog post](http://rtime.felk.cvut.cz/~sojka/blog/on-generating-linux-applications-from-simulink/).
 
 [MathWorks]: http://www.mathworks.com/
 [Simulink]: http://en.wikipedia.org/wiki/Simulink
@@ -24,9 +30,14 @@ supports sampling frequencies up to 20 kHz.</p>
 Recent News
 --------------------
 
-- We will present the a paper
+- The real time control of DC and BDLC motors from plain C and Matlab/Simulink with
+  ert_linux target hands-on session is planned at 29th February 2020 at 15:00–16:55
+  at place of the project origin ([DCE](https://control.fel.cvut.cz/) labs) in the frame
+  of [InstallFest 2020](https://installfest.cz/if20/) conference.
+  See [details](https://pretalx.installfest.cz/installfest-2020/talk/HSNJCM/).
+- The a paper
   [Usable Simulink Embedded Coder Target for Linux](https://www.osadl.org/?id=2018)
-  and RPi motor control demonstartion at
+  and RPi motor control has been presented at
   [16th Real Time Linux Workshop](https://www.osadl.org/RTLWS-2014.rtlws-2014.0.html)
   taking place on 12 and 13 October 2014 in Dusseldorf Germany. The
   [Paper](http://rtime.felk.cvut.cz/publications/public/ert_linux.pdf)
@@ -34,7 +45,7 @@ Recent News
   [slides](http://rtime.felk.cvut.cz/publications/public/ert_linux-rtlws2014.pdf)
   are available from our
   [publications archive](http://rtime.felk.cvut.cz/publications/).
-- We will present the ert_linux project at
+- The ert_linux project has been presented at
   [Amper exhibition](http://www.amper.cz/en/online-catalog/list-of-exhibitors.html/e9595_0-fakulta-elektrotechnicka-cvut-v-praze)
   from 18th to 21st March 2014 in Brno, Czech Republic.
 - Linux ERT at Embedded World exhibition – 25 until 27 February 2014 - Visit
@@ -44,7 +55,7 @@ Recent News
 I/O and communication interface support
 --------------------
 
-- [Humusoft MF624 data acquisition card](http://www.humusoft.com/data/session.php?redirect=/produkty/datacq/mf624/&lang=en).
+- [Humusoft MF624 data acquisition card](https://www.humusoft.com/datacq/mf624/).
 
   <abbr title="User Space I/O">UIO</abbr> driver and Simulink blockset
   has been developed. The UIO driver is already
@@ -56,75 +67,67 @@ I/O and communication interface support
 
 - The Bhanderi's [ComediToolbox](http://www.mathworks.com/matlabcentral/fileexchange/15792-comedi-toolbox-v1-0-for-linux-based-rtw-targets) suitable for most Linux [Comedi](http://www.comedi.org/)
   driver supported analog and digital inputs/output cards has been
-  successfuly tested with <b>ert_linux target</b>. The little updated
+  successfully tested with <b>ert_linux target</b>. The little updated
   version with target configuration example is available in
   **lintarget** project
   [download area](https://sourceforge.net/projects/lintarget/files/).
 
-- The basic blocks for
-  [CAN messages sending and receiption](can_bus/index.html) under
-  Linux are implemented.
-
-
-<!-- Current version of the Linux ERT target is optimized to use the proper -->
-<!-- Linux kernel timing mechanism with bounded maximal latencies. -->
-<!-- Matlab/Simulink running on GNU/Linux desktop system as development -->
-<!-- system is supported. More information about current version can be -->
-<!-- found -->
-<!-- in <a href="http://rtime.felk.cvut.cz/~sojka/blog/on-generating-linux-applications-from-simulink/">Michal -->
-<!-- Sojka's blog post</a>. -->
+- The basic blocks for [CAN bus communication](can_bus/index.html)
+  under Linux are implemented.
 
 RT-Capable Platform and Kernel
 --------------------
 
-Standard distribution Linux kernel does not guarantee bounded latencies for many operations.
-The use of [real-time variant](http://rt.wiki.kernel.org/) of [Linux](http://en.wikipedia.org/wiki/Linux)
-kernel is required to make system durable. This kernel variants minimizes regions
-where switch to the highest priority (i.e. Linux ERT generated) task is blocked by
-kernel when servicing system calls for other tasks.
-
-Selection of the right version of the kernel is not enough for non-disruptive
-operation. Computer system hardware selection is critical as well. The system
-has to provide enough computational power for compiled in blocks data evaluation
-evaluation and Linux kernel services processing. Other critical disturbance sources
-are hardware caused latencies and lags in a program processing by CPU. The source
-can be bus systems load by other subsystems (i.e. graphic processor memory access,
-peripheral DMA - SSD, SD-card, Flash controller etc.). The other critical source of
-latencies in x86 based systems is [SMI](http://en.wikipedia.org/wiki/System_Management_Mode)
-processing. The SMI enable and processing is under BIOS and motherboard vendor control
-and this problem cannot be resolved by operating system. This means that proper
-hardware selection is critical.
-
-A long period evaluation data of different combinations of Linux kernel version
-runing on many CPU architectures and boards from many vendors is [OSADL](http://www.osadl.org/)
+Standard distribution Linux kernel does not guarantee bounded
+latencies for many operations. The use of
+[real-time variant](http://rt.wiki.kernel.org/) of
+[Linux](http://en.wikipedia.org/wiki/Linux) kernel is required to
+guarantee bounded latencies. This kernel variants minimizes regions
+where switch to the highest priority (e.g. Linux ERT generated) task
+is blocked by kernel when servicing system calls for other tasks.
+
+Selection of the right version of the kernel is not enough for
+non-disruptive operation. Computer system hardware selection is
+critical as well. The system has to provide enough computational power
+for compiled in blocks data evaluation evaluation and Linux kernel
+services processing. Other critical disturbance sources are hardware
+caused latencies and lags in a program processing by CPU. The source
+can be bus systems load by other subsystems (i.e. graphic processor
+memory access, peripheral DMA - SSD, SD-card, Flash controller etc.).
+The other critical source of latencies in x86 based systems is
+[SMI](http://en.wikipedia.org/wiki/System_Management_Mode) processing.
+The SMI enable and processing is under BIOS and motherboard vendor
+control and this problem cannot be resolved by the operating system.
+This means that proper hardware selection is critical.
+
+A long period evaluation data of different combinations of Linux
+kernel version running on many CPU architectures and boards from many
+vendors is [OSADL](http://www.osadl.org/)
 [Quality Assurance Farm](http://www.osadl.org/Quality-assurance-at-the-OSADL-QA-Farm.osadl-services-qa.0.html).
-According to these track records carefully selected x86 or embedded GNU/Linux system can run
-real-time tasks with sampling frequencies up to 20&nbsp;kHz with no losing sample per months.
+According to these track records carefully selected x86 or embedded
+GNU/Linux system can run real-time tasks with sampling frequencies up
+to 20&nbsp;kHz with no losing sample per months.
 
 Source Code and Download
 --------------------
 
-<dl>
-  <dt>Lintarget at Source Forge</dt>
-    <dd>[project download area](https://sourceforge.net/projects/lintarget/files/)
-       contains released versions of the Linux target and CANopen based distributed system
-    </dd>
-  <dt>Linux ERT source code repository</dt>
-    <dd>[http://rtime.felk.cvut.cz/gitweb/ert_linux.git](http://rtime.felk.cvut.cz/gitweb/ert_linux.git)
-       <br>version updated for real-time and native GNU/Linux host/target system setup
-    </dd>
-  <dt>Humusoft MF624 card support blockset</dt>
-    <dd>[http://rtime.felk.cvut.cz/gitweb/mf624-simulink.git](http://rtime.felk.cvut.cz/gitweb/mf624-simulink.git)
-       <br>initial version of blockset supporting analog and digital input/output, IRC, PWM and PWM measurement for MF624 cards.
-    </dd>
-</dl>
+- [Download area at Sourceforge](https://sourceforge.net/projects/lintarget/files/)
+  contains released versions of the Linux target and CANopen based
+  distributed system
+- Linux ERT source code repository [GitHub DCE](https://github.com/aa4cc/ert_linux)
+  (the lastest version for now, with examples for native, ARM and AArch64/ARM64 builds),
+  [GitHub IIG](https://github.com/CTU-IIG/ert_linux),
+  [Original RTIME Repo](http://rtime.felk.cvut.cz/gitweb/ert_linux.git).
+- [Humusoft MF624 card support blockset](http://rtime.felk.cvut.cz/gitweb/mf624-simulink.git)
+  <br>Initial version of blockset supporting analog and digital
+  input/output, IRC, PWM and PWM measurement for MF624 cards.
 
 
 Project Background
 --------------------
 
 The Linux ERT has been initially developed at
-[DCE of CTU](https://dce.fel.cvut.cz/en) in order to create a dynamic
+[DCE of CTU](https://control.fel.cvut.cz/en) in order to create a dynamic
 environment model for hardware (airplane) in the loop testing of a
 fly-by-wire system at [AERO Vodochody a.s.](http://www.aero.cz/en).
 Simulink has been run on Windows host computer initially and code
@@ -145,7 +148,7 @@ applications with CANopen communication.</p>
 [[!img LinTarget.JPG size=300x alt="Original code generation workflow"]]
 [[!img CANopenExample.JPG size=300x alt="Model including node controlled over CANopen"]]
 
-Lukáš Hamáček, “<b>RTW target for Linux with CANopen support</b>”, Master Thesis, Prague 2009. ([Pdf](dp_2009_hamacek_lukas.pdf))
+Lukáš Hamáček, “*RTW target for Linux with CANopen support*”, Master Thesis, Prague 2009. ([Pdf](dp_2009_hamacek_lukas.pdf))
 
 Systems Controlled Linux Target for Embedded Coder
 --------------------
@@ -168,7 +171,46 @@ Some more information about concrete examples of controlled systems/setups:
       See <a href="rpi-motor-control/index.html"> respective page for more information
       about project</a>.
     </dd>
-  <dt>Usable Simulink Embedded Coder Target for Linux</dt>
+  <dt><b>Permanent magnet synchronous motor control (PMSM) with SPI connected peripherals and power stage</b></dt>
+    <dd>The experiment is primarily focused on school labs. The experiment utilizes
+      two extension boards. One is fully galvanically isolated 3/phases power stage
+      with HAL effect based current sensing and differential IRC signals receiver.
+      The other board provides peripherals (IRC processing and counting,
+      PWM generation, current ADC results collection) required
+      for vector PMSM motor control. This board is connected to
+      <a href="http://en.wikipedia.org/wiki/Raspberry_Pi">Raspberry Pi</a> simple board
+      computer by SPI port. The control algorithm generated by the ERT target
+      runs under fully preemptive Linux kernel at sampling rate 5&nbsp;kHz.
+      See <a href="rpi-pmsm-control/index.html"> respective page for more
+      information about project</a>.
+    </dd>
+  <dt><b>The Xilinx Zynq DC motor and PMSM Motor Control</b></dt>
+    <dd>The <a href="https://en.wikipedia.org/wiki/Field-programmable_gate_array">FPGA</a>
+    based solutions provide flexibility unmatch by other hardware. This set of applications
+    cobines <a href="https://en.wikipedia.org/wiki/Xilinx">Xilinx</a>
+    <a href="https://en.wikipedia.org/wiki/Xilinx#Zynq">Zynq</a> SoCs, Linux RT kernel,
+    custom PMSM driver hardware and ert_linux Matlab/Simulink coder.
+    The linux 4.19 kernel with RT preempt patches and with MathWork's FPGA IP drivers (mwipcore)
+    applied can be found in branch
+    <a href="https://github.com/ppisa/linux-kernel/tree/linux-4.19.y-mwcore">linux-4.19.y-mwcore</a>
+    of the Pavel Pisa'a <a href="https://github.com/ppisa/linux-kernel">Linux kernel</a>
+    repository on GitHub. The mwipcore drivers are not required for this ert_linux solution,
+    but RT patch is fundamental. The <a href="https://cw.fel.cvut.cz/wiki/courses/b35apo/documentation/mz_apo/start">MZ_APO</a>
+    education kits (use <a href="http://zedboard.org/product/microzed">MicroZed</a> SBC)
+    developed at <a href="http://www.pikron.com/">PiKRON</a> company to support teaching
+    of <a href="https://cw.fel.cvut.cz/wiki/courses/b35apo/start">Computer Architectures</a>
+    course at <a href="https://control.fel.cvut.cz/">Department of Control Engineering</a>
+    are connected with the PMSM driver power stage developed initially for Altera DE2 kits
+    with option to be SPI connected to Raspberry Pi are used with MZ_APO.
+    The presentation <a href="https://installfest.cz/if17/slides/so_t2_pisa_realtime.pdf">GNU/Linux
+    and FPGA in Real-time Control Applications</a> presents the hardware.
+    The Simulink model <a href="https://raw.githubusercontent.com/ppisa/rpi-rt-control/master/simulink/zynq_pmsm_motor_control.slx">zynq_pmsm_motor_control.slx</a>
+    of PMSM controller is included along the Raspberry Pi example in repository
+    <a href="https://github.com/ppisa/rpi-rt-control">https://github.com/ppisa/rpi-rt-control</a>.
+    The FPGA design can be found in branch <a href="https://gitlab.fel.cvut.cz/canbus/zynq/zynq-can-sja1000-top/tree/microzed-mc-1">microzed-mc-1</a> of the repository
+    <a href="https://gitlab.fel.cvut.cz/canbus/zynq/zynq-can-sja1000-top">https://gitlab.fel.cvut.cz/canbus/zynq/zynq-can-sja1000-top</a>. The MZ_APO education kit mechanical and electronics designs are available from <a href="https://gitlab.com/pikron/projects/mz_apo/microzed_apo">https://gitlab.com/pikron/projects/mz_apo/microzed_apo</a>.
+    </dd>
+  <dt><b>Usable Simulink Embedded Coder Target for Linux</b></dt>
     <dd>Michal Sojka, Pavel Pisa<br>
     <a href="https://www.osadl.org/RTLWS-2014.rtlws-2014.0.html">16th Real-Time Linux Workshop</a>,
     Düsseldorf, Germany, October 2014.
@@ -195,7 +237,7 @@ Project Contributors
     </dd>
   <dt>Rostislav Lisový</dt>
     <dd><a href="mailto:lisovros@fel.cvut.cz">lisovros@fel.cvut.cz</a>
-       <br>former CTU master study programe student, Linux related projects developer at DCE now.
+       <br>former CTU master study programme student, Linux related projects developer at DCE now.
     </dd>
   <dt>Libor Waszniowski</dt>
     <dd><a href="mailto:xwasznio@fel.cvut.cz">xwasznio@fel.cvut.cz</a>