How can I interface a set of 32-bit hardware registers with a Simulink Model generated using Simulink encoder?

I have a simulink model that simulates the flight dynamics of a guidance system. The inputs to the model and outputs from the model are relayed to/from a single board computer via a set of 32-bit hardware registers that are accessible on card over a PCI bus.
In general, what would be the best approach? The goal is to minimize the amount of hand-crafting and to minimize the number changes to non-model code everytime changes to the model are made? And what would be the most appropriate MATLAB/Simulink tools for this task?
Thanks in advance.

2 个评论

Do you have a set of drivers/libraries from the vendor to interface with the registers from, say, a C/C++ application?
It is custom hardware and I have written a driver. Really all the hardware consists of is a set of memory-mapped 32-bit registers accessible over a PCI bus.

请先登录,再进行评论。

 采纳的回答

You can use C-MEX S-functions to create custom driver blocks that call into your C driver code. Please use the Legacy Code Tool to automatically generate an S-function wrapper for your driver code. You can then use the resultant S-function like any other Simulink block.

2 个评论

What I think you are suggesting is to replace each inport and outport block of the model with a C-MEX S-function that performs either a memory-mapped I/O read from or write to the appropriate register. Is that correct?

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Deployment, Integration, and Supported Hardware 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by