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

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

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

マイコン

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

意見交換

13回答

1230閲覧

今どき3bitとか12bitの通信仕様を作る設計者ってどう思いますか?

jmdajmw

総合スコア351

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

マイコン

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

1グッド

1クリップ

投稿2024/11/28 07:49

テーマ、知りたいこと

車載部品の通信仕様について、まぁ、1メッセージ全体で64bitと少ないとは思いますが、別にそこを分けなくても良くね?
と思うところで3bit,1bit,12bitに分ける設計者ってどう思いますか?

背景、状況

プログラマーからするとそこを分けるのがやたらめんどくさいのですが、、、

ore👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答13

#1

juner

総合スコア560

投稿2024/11/28 07:54

規格設計段階だったら何か言うかもだが、そうでないなら packing を 1 にしてどうにでもする感あります。

https://learn.microsoft.com/ja-jp/dotnet/api/system.runtime.interopservices.structlayoutattribute.pack?view=net-9.0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

yambejp

総合スコア116810

投稿2024/11/28 07:55

編集2024/11/28 07:57

車載部品でしかも通信系の仕様ということなら使用可能なリソースが限られているでしょうから、きちんとデータの設計からしているよい技術者さんだなと思いますが?
ただあまりストイックな仕様にすると拡張性が損なわれて結果全体の設計にマイナスに作用する場合もあるので十分な検証が必要でしょうね

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

poto568

総合スコア311

投稿2024/11/28 08:16

自動車業界は「何かインシデントが発生したら人が死ぬと思え」という
世界なので、プログラマごときの「めんどくさい」など論外です。
(まあモノを見てないので妥当かどうかは判断できませんが、厳格すぎて
ドン引きすることはあっても、下流の人が文句言える程度のアホな仕様は
作ってこないと思いますよ。)

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

otn

総合スコア85927

投稿2024/11/28 10:19

ビット単位でフィールドを分けるのは昔でも今でも、必要があればごく普通です。
その必要性が分からないとすると、
・必要性がないのだが、単に昔の仕様をそのまま使っているだけ
・必要性はちゃんとあるが、あなたがそれを知らないだけ
のどっちであるのかは、質問の情報からは推測しようがないです。まあ、普通は後者でしょうね。

局所的には前者であっても、過去に決めた通信仕様を変えるというのは、通信をする可能性のある全てのパーツで一斉に仕様を変えないといけないので、複数メーカーが絡んだり、修理の時の交換部品がとか、言い出すと難しいでしょうね。
例えば、IPヘッダの仕様を互換性の無いものに変えるのは現実的に無理でしょう。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#5

jmdajmw

総合スコア351

投稿2024/11/28 10:30

#4
ん?
今まで8bitごとに分けていた仕様を新機種の設計でわざわざ変な分け方に変更してるのですが、、、

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#6

yambejp

総合スコア116810

投稿2024/11/28 10:48

#5

今まで8bitごとに分けていた仕様

そういう情報をあとだしされてもねぇ・・・
1bit,3bit,12bitの計16bitで表現できるデータを8bitでわけると8bit,8bit,16bitの32bit必要になりますよね?設計さえ間違えていないならデータ量を半分にできるのであればまともな判断では?
特に低速通信であれば理論上通信速度が2倍違うという単純計算でしょ?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#7

nururi

総合スコア160

投稿2024/11/29 00:22

編集2024/11/29 00:24

デスクトップアプリやスマホアプリのようなリッチな環境じゃなく車載部品のような組み込み環境だと、処理するハードウェアが貧弱だったり、少しでも通信量を節約したかったり、少しでもバッテリー消費を減らしたいとかいろいろ設計思想があるんじゃないかと思います。
つまり、作った人に聞いてください。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#8

juner

総合スコア560

投稿2024/11/29 00:35

今まで8bitごとに分けていた仕様を新機種の設計でわざわざ変な分け方に変更してるのですが、、、

その系列機種の慣例を破るパターンは 他社と合わせるとか、新しい規格に合わせるとか、色々とある可能性があるので前提条件をもっと言わないとなんとも……。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#9

otn

総合スコア85927

投稿2024/11/29 10:10

編集2024/11/29 11:16

今まで8bitごとに分けていた仕様を新機種の設計でわざわざ変な分け方に変更してるのですが、、、

質問の情報からは推測しようがないです。

と、書いたとおりです。

わざわざ変えたのなら、変えた理由があるはずです。その理由は、

質問の情報からは推測しようがないです。

というのは同じですが。

あなたのケースという特定の場合でのことを知りたいなら、設計者に聞けば良いだけなのに、
それをせず、こういう一般の質問サイトで質問して、なおかつ、詳細を書かないので、
「一般論を聞きたい」ということだと思ってましたが、違うのでしょうか?
一般論は皆さんの言っているとおりです。

一般論が聞きたいのじゃなくて、「どう思いますか?」が文字通りの質問ポイントなら、
「これだけの情報だとなんとも思いようがない」ですね。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#10

jmdajmw

総合スコア351

投稿2024/11/29 11:45

#9
12通りのエラーを表現したかったようです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#11

tmp

総合スコア304

投稿2024/11/30 03:25

#10
1bitと3bitは、なにを割り当ててますか?
12bitは、エラーフラグで同時に複数のエラーに対応しているとう認識でよろしいですか?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#12

jmdajmw

総合スコア351

投稿2024/11/30 03:41

はい
1bitはリザーブ
3bitはステータス

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#13

otn

総合スコア85927

投稿2024/11/30 15:07

一般論での回答を求めたのではないと言うことなのですか??

12通りのエラーを表現したかったようです。

は、

別にそこを分けなくても良くね?と思うところで3bit,1bit,12bitに分ける

と分けた理由の回答にはなってないですね。
そもそも、何故あなたが「そこを分けなくても良くね?」と思った理由も分からないし。

「わけなくてもいい」と思うためには、「何故分けたか」の理由をきちんと理解した上で、その理由の原因となったことに対して「わけなくて済む」解決策を考えだす必要があります。
あるいは「何故分けたか」が実は理由なく決められたと判明して、分けても分けなくてもどっちでも良いということを関係者で合意するか。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

この意見交換はまだ受付中です。

会員登録して回答してみよう

アカウントをお持ちの方は

関連した質問