質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • マイコン

    65questions

    マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

ハードウェア?デバイスドライバ?

受付中

回答 5

投稿

  • 評価
  • クリップ 0
  • VIEW 292

siaron

score 2

またまたさらに変な質問が飛び出しますが
ハードウェアって言うのは一般的にはあまりいじっちゃダメみたいに見かけた気がします
マイコンとかラズベリーパイというのは
ハードウェアに当たるのでしょうか?
いずれはそういうのを扱いたいのですが機械部分を作りたいというわけではないですが
ハードウェアの命令はどう作れるんでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2018/06/03 15:11

    複数のユーザーから「問題・課題が含まれていない質問」という意見がありました
    teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
    「編集」ボタンから編集を行い、質問の意図や解決したい課題を明確に記述していただくと回答が得られやすくなります。

回答 5

+2

まずは使いたいデバイスの仕様を理解して、どんな信号を送ったらどんな風に動くと理解して、ドライバーやソフトを作ります。
多くのデバイスドライバーでは、ソフト側ではデバイスが変わったり複数のものを相手にするときにいちいち個別に作成しなくて良いように共通の部分を決めて作成される事が殆どです。

例えばマウスのドライバーではマウスの動き、ボタンのクリックなどをどんな風に受け止めたいと決めて規格化。それに合わせてマウスとかトラックボールのハードとのやり取りをドライバー内部で定義。ソフト側はメーカーや機能をあまり意識せずドライバーをインストールしておけば動作する。(最近ではデフォルトで動くものが多くなりましたが)

他にもUSBカメラとかほぼ繋ぐとすぐ動作する。(拡張的な部分があればその分は特別なドライバーが必要ですが。例えば輝度調整とか焦点の調整とか)

そんな働きの部分がドライバーと考えれば。結局ハードをどう動かすか?のソフト部分がドライバーです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/03 13:55

    その仕様とはなんでしょうか、部品があってその部品の事でしょうか?
    自分が言っているラズパイやマイコンでしょうか?
    わからないことの質問なのでざっくりとした言葉ですいません
    信号をよく理解してませんがどんな知識が必要でしょうか?

    キャンセル

  • 2018/06/03 14:54

    質問の表題がハードウエアなのか?デバイスドライバーなのか?という前提で回答します。
    仕様とはハードの制御方法や通信方法について。(これを理解できていなければ制御できません)
    例としてラズベリーパイなどで良く使われるセンサーで説明します。
    漠然とセンサーと言われても分かりにくいでしょうから、参考に販売されている例として
    https://www.amazon.co.jp/OSOYOO-%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-Arduino-raspberry-%E5%AD%A6%E7%94%9F%E5%AE%9F%E9%A8%93%E3%81%AB%E6%9C%80%E9%81%A9/dp/B00YR0COXA
    この中の温度センサーでは、シリアル通信で温度が取得できます。
    さてその方法は。
    http://www.ne.jp/asahi/shared/o-family/ElecRoom/AVRMCOM/DS18B20/DS18B20manual.html
    にて詳しく書かれています。
    これが使い方(仕様)です。
    それを使いやすく、また他のソフトにも使い回しできるように作成するのがデバイスドライバー。ICが変わってもドライバーを対応させればソフトの変更なしで対応する設計もできます。

    キャンセル

  • 2018/06/04 01:48

    ありがとうございます
    なのかというか理解してないので曖昧になってしまっていますが
    知識を増やしたいのでどちらでも、どちらもと言う感じでしょうか
    分類できればそれに越したことはないですけども
    ありがとうございます!
    一つでも流れしれればきっかけにはなるのでありがたいです
    ICですね、これから理解を深めたいと思います

    キャンセル

+1

こんな感じです。
ハードウエアは、機械。
ソフトウエアは、プログラム。
プログラムで、機械を 自動運転する・相互接続する・測定する.. 

ソフトウエアは、机上で変更が簡単に行えます。
ハードウエアは、簡単ではないことも多いです。

加えて、解説本を書く人も含めて、多くのソフトウエアの人は、ハードの知識が少ないし、経験はほとんど無い場合が多いでしょう。そのために、ハードウエアを変更することに抵抗感がある場合が多いのでしょう。

例えば、

ラズパイのメモリを増やすことは、半田ゴテとパーツで机上で できるかもしれない。
プロセッサをインテル製の大きなものに置きなおすのは、かなり大変。
ラズパイのプロセッサの中身を変えるためには、数か月単位の作業が必要。
.. 
これでまあまま満足・気に入ったら評価してね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/03 10:10

    > 多くのソフトウエアの人は、
    ソフトウェアから、入った人には、ハードの敷居は高いですね。その一方、ハードの人からは、良く書けると言われますが、、、。
    ラズパイのメモリ交換は分かりませんが、、、、ちょっと調べてみたら、SoC。CPU,Memory etc.が一体化なので、一般人どころか、ハードの人でもまず無理。(現実的なコストでは)

    キャンセル

  • 2018/06/03 10:29

    zynq berry というものがあって、ある程度書きなおせます。
    https://www.trenz.jp/aboutzynqberry.html
    コスト的には、zynq berryの値段は、15,000円なので普通に買えます。
    容量的にArmのコアを書き直すことはできないのですが、周辺は書き直せます。チップについているHDMIを無視して自分のHDMIを作ればそこも直せます。イチからHDMIを作るのは大変なので、部分修正に留めたい人には、そういったこともできなくはないです。
    Armではなくてプロセッサはなにでもよいのであれば、自分で書くことも、開発キットに入っているものを使うこともできます。デバイスは違いますが、同好会で似たデバイスにプロセッサを入れている人もいます。
    http://respon.org/

    >ソフトウェアから、入った人には、ハードの敷居は高いですね。その一方、ハードの人からは、良く書けると言われますが、、、。
    大半は、勉強のコストですよね。ソフトも普通OSを書かないし、ドライバも作らない。Pythonで上物だけ書く時代の中で、ソフト・ハード両方の底の方から理解するのは、大変です。1万ページくらいは本読まないといけない気がします。

    キャンセル

  • 2018/06/03 11:01

    ラズパイのSoCは書換え可能なのですね。
    にわか調査では、分かりませんでした。 ありがとうございます。

    キャンセル

  • 2018/06/03 13:48

    プロセッサを書き換えるとはどういうことでしょうか?
    あれももっと深いところからかけるんでしょうか?
    自分の中でのプログラミングの最小単位がアセンブラなのでアセンブラで書くんですか?みたいにしか言葉が見つかりません
    実現可能なのは教えていただきましたが、それを示すことばがわかりません
    どう調べたらいいでしょうか?

    キャンセル

  • 2018/06/03 14:14

    今のCPUは、機械語を実行するためのプログラムが入っています。(機械語実行用インタープリタ?) そして、そのプログラムは、外部から変更可能な領域に格納されているという事です。FPGAとか、マイクロコードとかで検索かけると詳しい説明が見つかるかもしれません。(FPGA とマイクロコードは別物ですが、それを組み合わせたものと考えても良いかと)

    キャンセル

  • 2018/06/03 18:49

    RaspberryPiとは無関係なFPGAボードの話ですね。
    > プロセッサを書き換える
    一般的なプロセッサが書き換えられるわけではありません。
    プロセッサとは異なるプログラマブルロジックデバイスというたぐいのデバイス(「FPGA」とほぼ同義)を使うと、ロジック回路を組み替えられる(※注)ということです。
    プロセッサもロジック回路の塊ですから、FPGAを使えばプロセッサを(市販の普通のプロセッサには遠く及ばないごく小規模のものなら)自作することができます。
    使う言語はアセンブラやCなどのプログラミング言語とは違ってHDL(Hardware Description Language)というたぐいの言語で(あれ、これ別の質問でも言いましたね)、ロジック回路の組み合わせを記述します。
    なおマイクロコードは「ICチップの動作を書き換える」点で働きは似ているものの、プロセッサがプログラムを実行するのと同一の仕組みで動きますのでFPGAとは分けて考えたほうがよいと思います。

    ※ 厳密なことを言うと、中でロジック回路が組み替わっているわけではなくルックアップテーブルの書き換えだったりもするが、外から見ればロジック回路が組み替わっている「ように見える」のでそう考えて差し支えない。

    キャンセル

  • 2018/06/03 20:50

    Zynqは、ラズパイと似ていますが、全く違うハードウエアです。
    Linuxで普通にプログラムするのであれば同じように使えます。
    カーネルやon boardのハードを駆動するデバイスドライバは少なくてもそのままでは動作しません。

    Zynqの場合、PS=processorのまわりにハードワイアされた、幾分かのIPがあって、bootできたりARMだけでそれなりの機能を実現できます。DDRもPS部に接続できる。PL=programmable logic部にもI/Oがついていて、その部分にもDDRをつけることができる。Zynq 7000の場合、bootは、かならずPS部から行う必要があって、PL部分だけでbootすることはできない。PS部にはboot loaderもついていて、FATフォーマットのSDcardのBOOT.BINを探して読み込むことができる。ということになっています。

    キャンセル

  • 2018/06/04 01:59

    皆様ありがとうございます
    難しすぎてついていけませんが
    勉強用にはいいのかなと思ってます

    キャンセル

+1

ハードウェアって言うのは一般的にはあまりいじっちゃダメみたいに見かけた気がします

別にダメじゃないです
いじるのがダメ、じゃなく、いじるのが難しい、ってだけのはなしです

ハードウエアいじろうと思ったら、エディタでコード修正するだけではできません。
ほら、この時点で無理ということがわかるでしょう

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

ハードウェアの命令体系は、ハードウェアを設計する人が決めます。
ハードウェアを操る命令は、ハードウェアのマニュアルを読んで理解したプログラマが書くことができます。あるいはOSがデバイスドライバを用意してくれてたら、APIを呼び出すことで間接的にハードウェアに命令を出すことができます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/03 20:58

    ハードのアーキテクチャを決める人が決めます。設計する人が、AMDの場合は、intelが設計したアーキテクチャに基づいて設計します。
    ARMの場合は、ARMのアーキテクチャに合わせて、appleの人とか、Samsung、Asus、Sonyその他の人が設計します。
    Power9、SPARC64の場合は、アーキの設計とハードの設計は大体同じところで設計しています。(のはず)

    キャンセル

  • 2018/06/04 02:19

    マニュアルとは一般的には公開されてるものなのですか?
    一般人はそんな見る機会ないので
    マニュアルを理解できるように努力します
    割と設計はそんなに多くないんですね

    キャンセル

  • 2018/06/04 13:17

    ものによりますが、仕様は公開されているものが多いです。ネット検索してみてください。一部に、メーカー提供のドライバでしか動かさせない方針でハードウェアのプログラミングのやりかた仕様を公表していないものもあります。
    たとえば、PCのシリアルポートだとこれ。この手のものの中では非常に短い部類で15ページしかありません。http://www.latticesemi.com/~/media/LatticeSemi/Documents/ReferenceDesigns/SZ/UART16450Transceiver-Documentation.PDF

    キャンセル

0

コメント書きながら、書ききれなくなったので、、、。

コンピュータの世界では、ハードウェアとソフトウェアの境界は曖昧と思っています。ソフトウェアでできる事は、(それなりの)ハードウェアを作成すれば、実現できます。特に、FPGAはソフト(ここもソフト)書換えができるので自由度が高いですね。それでもハードウェアに分類されると思った。ではFPGAと専用ハードウェアは何が違うか。専用ハードウェアの方が一般的に高性能で安い。ただし、作成に時間が掛かるし、初期コストが高い。(その辺のバランスで決めていると聞きます)
あと、ハードウェアと言った場合、機械部分も含みます。車で行ったら、エンジンとかタイヤとか。 こちらはまた、違った世界ですが、今は、CAD設計が大半のようなので、昔ほどの敷居は無いと思っています。

ハードウェアの命令はどう作れるんでしょうか?

ソフトウェアです。ただし、ターゲットが一般のPCで無いだけで。普通のPCみたいにキーボードやディスプレイが繋がっていないので、デバッグは特殊ですが、、、(昨今は、PC上のエミュレータがあるらしい)

マイコンとかラズベリーパイというのは
ハードウェアに当たるのでしょうか?

ハードウェアだと思います。と言うより、ハードウェア扱いですね。
話は違いますが、コンビニとか、スーパーのレジは何でしょうか? ただのレジって人が大半だと思いますが、今時のレジは多機能です。カード情報確認、自動割引きとか、中にコンピュータが入っていると思います。(当然、ソフトも)
その機能を実現しているのは、ソフトウェアでしょうが、総体としてはハードウェアで、部品としてのソフトウェア。(組込みの大半はそう)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/03 13:42

    ありがとうございます
    例えば条件やらオンオフやらでオンオフとかで転倒するとか色も指定できるとか開けるのもオフなら鍵あけるとかあるとは思いますが、ハードウェアの機能をどう使えるかというのがよくわかりません、同じような質問繰り返してしまいますがモニターの色を表示もただのオンオフてことですか?
    どんなサイトを見ればいいでしょうか、根本的に間違えてたらすいません

    キャンセル

  • 2018/06/03 14:28

    それらに正確に回答するには、今の液晶はどういう原理で動いているかまで書かないと正確ではないかもしれません。それは大量の時間と資料が必要です。
    現実には、液晶ディスプレイは、(例えば) HDMIで接続されている。そしてHDMIで接続されているディスプレイは、このグラフィックボードがサポートしており、対応するデバイスドライバがサポートしている。そのデバイスドライバを使うには、この関数(ライブラリ)を使えば、良いという理解で使っていると思います。これらをすべて知っていれば、完璧でしょうが、まず、いないと思います。一般的な使い方を覚えて、困った時に調べるが普通じゃないかと思います。あるいは、その一部が仕事になった時。

    キャンセル

  • 2018/06/04 02:06

    そうですね
    理解をしたら先に進めばいいですね、地道にやってみます

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    RAIDについて

    近々,初めて自分でファイルサーバを建てようと考えており,RAID1を組んで見ようと思っています. そのことを友人に話したら,ソフトウェアRAIDは危険なので,ハードウェアRAID

  • 受付中

    左Shiftキーが、無変換キーが・・・

    Windows10で左Shift+Caps Lockでアルファベットの大文字,小文字を切り替えできなくなりました。  なぜかアルファベット⇔ひらがなの切り替えになります。  無変

  • 解決済

    BCDで保持しているリアルタイムクロックの値を10進数の変数のように扱ったらまずいですか?

    以下のコードのように、リアルタイムクロックに「年」、「月」、「日」などを保持する変数があります。 typedef union { struct {

  • 解決済

    ハードウェア制御に関して

    基本情報技術者の勉強をしてます。 教科書に、ハードウェアの制御に関して、CPUとOSの双方ともが行うと記載がありました。 双方ともの制御の種類が違うのか。 同じであるなら、重

  • 解決済

    (iOS)タップされた場所

    iOSアプリにて、タップされた場所の座標ではなく、タップされた面積を取得することはできないのでしょうか? 面積というか触れている場所の座標集合すべてというか...。 指が触

  • 解決済

    Virtualbox上のMacOSでポインタの挙動がおかしい。

    現在、Virtualbox上に、仮想環境を構築しております。 環境は以下の通りです。 Virtualbox:5.0.40 ホストOS:Windows10 (64bit) ゲスト

  • 解決済

    ヘッドセットの取得について

    いつもお世話になっております。 ヘッドセットの状態を取得するブロードキャストレシーバを使用して、 イヤホンジャックの抜き差しを検出をするアプリを開発しているのですが、 金属のプ

  • 解決済

    Chart.js 2でY軸レンジ切り替え時に表示異常

    JavascirpのChart.js 2を用いてチャートを表示するアプリを作成しています. ChromeとVivaldiで動作テストを行っています. yAxesのticks

同じタグがついた質問を見る

  • マイコン

    65questions

    マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。