スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

FPGAを使用したNCコントローラー。

http://hackaday.com/より。

FPGA CNC

ソース https://github.com/mhouse1/mechsoftronic




FPGAによるNCコントローラーの作成のソースコードの公開です。

NCコントロール。リアルタイムな制御がとても重要だと思うので、この、FPGAによるNCコントローラーの構築はある意味理にかなっているのでは?と思います。

実のところ、MCUやPC、基本的には命令を順番に一つづつ処理をしていきます。ですので、パルス信号を出す命令自体も、ソフトウエア的になパルスジェネレーターやPWMの信号生成を使用すると、微妙にズレているのでは?とも思います。
もちろん最近のMCUやPCのCPUなどなど、昔から比べたら超高速で、このズレは無視できる微々たるもの、、なのかもしれません。
ハードウエア的に作られたステップパルスジェネレーターとかでも、データの受け渡し方等々でズレる要因はあるのでは?とも。。

単純な同じような作動であればMCUを使うより、ロジックで生成されたハードウエアを複数用意することにより、完全に並列に作動するステップパルスジェネレーターや、PWM生成器、また、エンコーダーインターフェースなどなどをきょうびのとても容量の大きいFPGAなどのPGAの中に生成することが可能です。

このソースではどうも、AlteraのCycloneⅣが載ったDE-0nanoを使用し、Qsysを利用し、インターコネクトしているようです。FPGA内に生成できるソフトウエアプロセッサも使用してるご様子。

PC上のNCコントローラーのネックであるI/O、多分このようにFPGAを使用するNCコントローラーであるならば、色々なインターフェース(通信の時間の制約はあるでしょうが)を作成し、使用できるのではないかと思います。




話は変わりますが、最近触っているBeagleboneBlack/GreenでのLinuxCNC/Machinekit、メインのCPUであるARMのCortexA8の他に、PRU(プログラマブルリアルタイムユニット)とゆうものを2つ、MCUに内蔵しています。その一つをLinuxCNCのコンポーネントの一つであるStepGen(ステップパルスジェネレーター)として実装されていています。
この辺りがRaspberryPi上でのLinuxCNC/Machinekitとの違いで、RaspberryPiにてLinuxCNCを使用する場合、PICNCなどの外部パルスジェネレーターを使用することとなると思います。



また、Machinekitでは、Xilinx社のARMマイコンを内蔵したZynqとゆうFPGAでの作動を試しているようで、上記のようなハードウエアが実装しやすくなればなぁ、、、と淡く期待しております。



PSoC5LPなどを触っているのはマイコン内にPLDを内蔵してて、マイコンの作動に依らない各種ハードウエアコンポーネントを生成できるから。。







スポンサーサイト

テーマ : 自作・改造
ジャンル : コンピュータ

コメントの投稿

非公開コメント

ライセンス
アクセスカウンター
プロフィール

あきらひとし。

Author:あきらひとし。
木工用CNCルーターフレームと、ステッピングモータードライバを作ってみました。
たぶん記事は一般的な人には殆ど必要のない事ばかりなの、かも。

モーターは回るだけでも楽しい。制御(速度、トルク、位置)できるともっと楽しい!

メールフォーム

名前:
メール:
件名:
本文:

リンク
最新記事
カテゴリ
スポンサードリンク
スポンサードリンク 
スポンサードリンク
オンラインカウンター
現在の閲覧者数:
検索フォーム
RSSリンクの表示
最新トラックバック
最新コメント
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。