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.

サインインしてコメントする。

 採用された回答

Kaustubha Govind
Kaustubha Govind 2013 年 8 月 19 日
編集済み: Kaustubha Govind 2013 年 8 月 19 日
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?
Yes, that is correct.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeDeployment, 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