【美大生が登場】色のユニバーサルデザインとは? >>

タイトル通りですが、ボーレートジェネレータとは何ですか?
ボーレートは1秒間の変復調の回数を表しているのは分かったのですが、ボーレートジェネレータがどのような仕組みで動いているのか疑問に持ちました。
とても大雑把な質問なので、お付き合いいただける方は是非教えていただきたいです。お分かりかと思いますが、初心者です
何卒よろしくお願いいたします…

A 回答 (1件)

ボーレート、懐かしい単語です。


ボーレートは2400, 4800, 9600などいろいろあるわけでレートごとに必要な周波数が異なります。
9600であれば16倍の153.6kHz、4800なら76.8kHz、50なら800Hz必要です。この周波数を作ってくれるのがBRGです。
元の周波数が1.8432MHzであれば、12分の1にすれば153.6kHz、24分の1にすれば76.8kHz、2304分の1にすれば800Hzが作れます。
レジスターにこの値を書き込んでプログラム可能になっています。

こちらはハードウェアの例。
http://www.6502.org/users/dieter/uart/uart_3.htm
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QRS232C 調歩同期のビットレート誤差について

RS232C 調歩同期のビットレート誤差は何%程度まで許容できるのでしょうか?
また、目安とその理由について教えて下さい。

SH4のプログラムを組んでいます。
例えば、パソコンとRS232C(調歩同期)通信を行う際のビットレートの設定で、SH4側のビットレート誤差は何%以内にするべきでしょうか?
クロック同期の場合は、「なるべく1%以内になるように」とマニュアルに記載があるのですが。。。

Aベストアンサー

まずは
データ長8ビット
パリティなし
ストップビット1

だとすると、シリアルデータは全部で10ビットです。

スタートビットから同期し、各ビットの中央でデータをサンプリングするなら、10番目のビットが50%以上ずれるとアウトです。つまり5%誤差ですね。

しかし世の中そううまくいきません。コントロールICによって違いますが、ビットレートの8倍や16倍で各データをサンプリングします。1ビットを8回や16回チェックしてるんですね。

ビットがHかLかを判断するのもいろいろですが、中央部数回分(8回サンプルなら3~4回程度)を多数決原理で判断するのが多いようです。とすると、せいぜい2.5%となります。

これに、クロック源の誤差も加味すると2%くらいが限度です。



CPUクロックからビットレートを生成する場合、ビットレートにあわせた変な周波数のクロック源でなければ0%なんて無理ですよね。実際は1%以内なら気にしませんし、大丈夫ですよ。

Q同期通信と非同期通信の違いについて

シリアル通信では、ビットを正しいタイミングで送り、受信者も正しいタイミングで受け取るために、送信者と受信者の間で信号の同期が必要です。

信号の同期方法は、データとは別にタイミング信号用のクロックを使用する同期式と、スタートビットやストップビットでタイミングを取る非同期式があります。

と、本に書いてあったのですが、何のことやらさっぱりわかりません。

どなたか、わかりやすく教えていただけませんでしょうか??

Aベストアンサー

PCとモデムをシリアルケーブルでつなぐときは、RS-232Cという25pin、つまり複数芯入ったケーブルを使うことを念頭において、

同期方式:
データを送受信するpin以外の別のpinを使って、117番の時報のような情報を片方から相手方に送って、送受信のタイミング(たとえば、時報の0秒からがデータの始まり)をあわせている。

非同期方式:
データを送受信するpin上だけで、送受信のはじまりを知らせる、つまり、ピ・ピ・ピ・ポーンといったらその次からがデータの始まりだ、と決めてデータの送受信をする方法。

いかがでしょうか。

QRS-232C ボーレートの許容誤差

マイコンのシリアルポート(調歩同期)で、
クロック周波数の都合上、どうしても、38400とか57600といったボーレートを正確に作り出せず、なんとか近づけても39062.5とか、56818.2といった数値になってしまいます。
どのくらいの誤差までが許容範囲なのでしょうか?

Aベストアンサー

石によってサンプリングポイント(データビットの)が異なるようですが 5%と言う意見と10%と言う意見があります いずれにせよ5%未満の誤差であれば 問題ないわけです それ以上ではフレーミングエラーを覚悟しなければなりません
なお この誤差は絶対としての誤差でなく 相手のシリアルポートのクロックに対してである事は言うまでもありません

Qプログラム設計書の書き方

僕は新人SEです。
今、上司の方からあるシステムの基本設計書・システム設計書・プログラム設計書を作り、プログラミングまでしてから単体テスト・結合テストもやるように言われています。(全て1人で)

おそらく経験のある方ならすぐにできてしまうようなシステムで、上司の方も勉強のために全てやらせているようです。

今、基本設計書・システム設計書まではなんとかできて、プログラム設計書の作成に取り掛かりたいのですが、初めての経験で実際のプログラム設計書には何をどのように書いているものなのかも全く見当もつかずにいるので全く何も書けません。

上司さんは今週忙しいようで
「来週見てあげるから自分で調べたりしてやってみて」
と言っています。
ですが、全く何もできずにいるのもイヤなので何かそれらしいものでも書いてみたいのですが…プログラム設計書とは何をどう書いてあるものなのでしょうか?

日本語が書いてあるのかプログラムが書いてあるものなのか…
そういったところからわからないので少しでも何か教えていただきたいです。
宜しくお願いします。

Aベストアンサー

こんにちは。
No.1様のご回答通りなのですが会社によって異なります。
というのを踏まえた上で・・・うちではという回答になりますが

・日付 2009/10/10
・版 初版(その後バージョンアップで改定するため、改定ナンバー必須)
・タイトル 企業情報印刷(ここでは決定済み名称)
・発注仕様書ナンバー(正式にお客さまと契約で決めた発注番号を記載)
・作成者 boo_boo_suu
・使用言語 Visual C++
・使用データベース ORACLE
・使用帳票アプリケーション Crystal Reports
・フロー図(Visioで埋め込み図)
・概要説明 
メインメニューから呼び出され企業情報の印刷条件を入力し、クリスタルレポートの帳票情報から企業情報ファイル(KIGYOU_INFO)ファイルを呼び出し印字します。
・全企業情報が一覧で印字可能である。
・特定一企業(企業コード指定)での印字も可能である。
・一企業が指定された場合は企業情報を画面表示する。

-----------------------------------
で・・・・プログラム仕様書はこのくらい。
命令書ですからコードそのものは打ちません。
これみて作ってもらわないといけないので日本語メインです。

あとはDBの仕様書をみてもらったりしてプログラムのローカルルール、画面サイズ、文字サイズ プロシージャ定義やら定数や変数、フォーム、構造体定義書などプログラム書くときの決まりごとに添ってPGさんに打ってもらっています。
一応、図とかつけてみました。(^-^;;
全体の雰囲気はこんな感じだとご理解いただければ幸いです。
ではでは~。

こんにちは。
No.1様のご回答通りなのですが会社によって異なります。
というのを踏まえた上で・・・うちではという回答になりますが

・日付 2009/10/10
・版 初版(その後バージョンアップで改定するため、改定ナンバー必須)
・タイトル 企業情報印刷(ここでは決定済み名称)
・発注仕様書ナンバー(正式にお客さまと契約で決めた発注番号を記載)
・作成者 boo_boo_suu
・使用言語 Visual C++
・使用データベース ORACLE
・使用帳票アプリケーション Crystal Reports
・フロー図(Visioで...続きを読む

Qデータキャッシュ、命令キャッシュ、キャッシュフラッシュ

データキャッシュ
命令キャッシュ
キャッシュフラッシュ

 この三つの差がよくわかりません。キャッシュはCPUの処理速度を上げるためのものであることは理解しています。私が知っていたのはデータキャッシュのみで、同じデータのやり取りを行う時に使用するものですよね?
 では、命令キャッシュとは、同じ命令を行うときに使用する?いつ、どこで、その命令をキャッシュに入れておくのでしょうか?
 キャッシュフラッシュはなんとなくわかります。キャッシュに格納してある情報を要求先へ送ることですか?

 会社でこの質問に答えれなくて、宿題にされてしまいました・・・・。答えでも、答えでなくてもいいです。情報をいただけたらと思い質問させていただきました。
よろしくお願い致します。

Aベストアンサー

プロセッサとメインメモリの処理速度は全然違うので, データが必要なたびにメインメモリにアクセスするのでは実行速度が大幅に低下してしまいます. そのため「メインメモリほど容量はないけどメインメモリより高速なメモリ」を間に入れて実行速度の低下を防ごうというのがキャッシュの主目的です. ここでは「データ」と書きましたが, プログラムの命令そのものもプロセッサから見ればデータの一種ですので, 当然命令に対しても同様に考えることができます. つまり, プロセッサから見ると, メモリアクセスは全てキャッシュに対して行われます.

また, 今のプロセッサは当然のようにパイプライン化されていますので, 命令の読み込み・実行・データのアクセスが全て同時に行われます. そのため, 命令を格納するメモリとデータを格納するメモリが同じバスに接続されていると, やはり実行速度は低下してしまうため, この 2つは異なるバスに接続するハーバードアーキテクチャが使われています. ということで, 「命令に対するキャッシュ」と「データに対するキャッシュ」を分けておくとうのは合理的である, ということになります.

そして, 処理が進んでいくと「キャッシュが全ていっぱいになってしまい, 新たなデータをキャッシュに読み込めなくなる」ことになります. このとき, キャッシュ上のデータを捨てる必要があるのですが, これを「キャッシュのフラッシュ」と呼びます. 命令キャッシュであったり, データキャッシュでもデータを読み込んでいるだけならいいのですが, データを書き込んでいる場合にはキャッシュ上のデータをメインメモリに書き戻す必要がある場合があります. これはデータをメモリに書き込むときに「メインメモリにも同時に書き込む (= write-through)」なら必要ないのですが, 「メインメモリにはあとで書き込む (= write-back)」場合には必須となります. したがって write-back の方がフラッシュの処理が面倒になりますが性能は一般に write-through より高くなります.

なお, #1 でも書かれているようにキャッシュは「アクセスの局所性」に基づいていますので, 分岐命令に対してうまく処理しなければならないという問題点があります (分岐先の命令をキャッシュに入れておかないと実行できないので). 普通は分岐予測というものを使うのですが, SPARC V9 では「絶対分岐しない分岐命令」というおもしろいものを用意してあります. これは命令単独では全く意味を持たないのですが, その副作用として「分岐先アドレスの命令をキャッシュに先読みする*かもしれない*」という機能があったりします.

プロセッサとメインメモリの処理速度は全然違うので, データが必要なたびにメインメモリにアクセスするのでは実行速度が大幅に低下してしまいます. そのため「メインメモリほど容量はないけどメインメモリより高速なメモリ」を間に入れて実行速度の低下を防ごうというのがキャッシュの主目的です. ここでは「データ」と書きましたが, プログラムの命令そのものもプロセッサから見ればデータの一種ですので, 当然命令に対しても同様に考えることができます. つまり, プロセッサから見ると, メモリアクセスは全てキ...続きを読む


人気Q&Aランキング

価格.com 格安SIM 料金比較