伝送路インピーダンス50Ω 送信機出力 50W では、完全に整合していれば、50Vrms 1A になる。ただ、SWR が悪化すると (すなわち反射が増えると)、定在波が発生する。これにより最大2倍の電圧・電流が伝送路上に発生する。

信号源が整合している場合の、定在波電圧・電流を数式で確認しておく。 が定在波の最大電圧、 は定在波のピーク電圧、 が定在波の最大電流、 は反射係数。

多重反射

多重反射、つまり信号源も負荷も整合していない場合も考えてみる。

信号源側の反射係数を に、負荷側の反射係数を にする。

は起電力、単位は V。起電力を発生させた直後の初期状態で信号源端の伝送路にかかる電圧 は、伝送路インピーダンスと信号源インピーダンス(内部抵抗)に分圧されるので、

進行波が伝送路をすすみ、負荷端に辿りつくと反射係数 で反射されるので、合成すると

反射波が伝送路を戻ってきて、信号源に辿りつくと反射係数 で再度反射されるので、さらに合成すると

これが無限に繰替えされる。このように多重反射していくと以下のようになる。

上記は時系列だが、これを発生箇所ごと、つまり進行波と反射波ごとにまとめてみる。

1ずつインクリメントされる法則性が見えるので sum の形にする。

Maxima で以下を実行して sum を整理する。 が positive か negative か zero かを訊かれるので、negative と答える。これはつまり反射係数が0よりも大きく、収束することを Maxima に伝えている。

v_i * sum( (Γ_S * Γ_L)^n, n, 0, inf) +  v_i * sum(Γ_L * (Γ_S * Γ_L)^n, n, 0, inf), simpsum;

以下のように整理される。

を展開したいので、 と、 を使って だけ残るようにする。

これでほぼ十分だが、 と SWR は互いに単独で変換できるので、SWR から求める形にしてみると、

これが多重反射の定常状態の電圧 (ただし反射係数は0より大きいこと)。ちなみに起電力 は、送信機出力 からすると、分圧されるので になる。これを代入すると

となる。

ところでここで、信号源 SWR である を 1 にしてみると、

となって、多重反射がない場合の と一致する。

計算してみるとわかるけど、信号源が整合していない場合、結局発生する初期電圧 も低くなっていくため、伝送路に発生する電圧は2倍を超えないことがわかった。

備考: 反射電力はどこで消費されるか?

信号源が完全にマッチングされているなら、信号源の内部抵抗で消費される。実際は伝送路損失もあるので、伝送路損失をひいた電力が信号源内部抵抗で消費される。

もうすこし具体的には出力トランジスタの抵抗成分で消費されて熱に変わる。送信機の出力回路を考えてみると、電力増幅トランジスタがあり、トランジスタには素子ごとにある程度決まった出力インピーダンスがある。そしてそれを50Ωに整合するトランスがある。反射電力からすると、出力端子からトランスを逆方向にすすみ、電力増幅トランジスタまで辿りつくことになる。

ref

  1. トップ
  2. tech
  3. 伝送路中の定在波の最大電圧と最大電流

手元にある UVC デバイスの構成を dot で書きだして graphviz してみたのがこれ。イメージしやすいかな?

https://www.usb.org/document-library/video-class-v15-document-set

仕様読めば概念はわかりやすい書いてあるので細かく書く必要はないけど、ざっと読んだ感じを記録しておく。

Video のストリーム以外のところ、つまりカメラなどをコントロールするプロトコルを見ていく。

コントロールするインターフェイスには Video Interface Class / Video Control Subclass がついている。

UVC は「Unit」を組合せてデバイスを表現するようになっている。これは USB の仕様にある device / configuration / interface に、さらに加えて存在している。

「Unit」は動画機能の構成する基本ブロックで、1つ以上の入力と、ただ1つの出力を持つ。

「Terminal」は入力または出力いずれか1つしかない Unit の一種。

  • Input Terminal (IT)
  • Output Terminal (OT)
  • Camera Terminal (CT)
  • Processing Unit (PU)
  • Selector Unit (SU)
  • Encoding Unit
  • Extension Unit (XU)

Camera Terminal は Input Terminal の一種で、典型的な webcam は以下のような構成になる。

  • Camera Terminal → Processing Unit → Output Terminal (→ エンドポイント)

Camera Terminal には以下のような「コントロール」がついており、パラメータを操作することができる。

  • Scanning Mode (Progressive or Interlaced)
  • Auto-Exposure Mode
  • Auto-Exposure Priority
  • Exposure Time
  • Focus
  • Auto-Focus
  • Simple Focus
  • Iris
  • Pan
  • Roll
  • Tilt
  • Digital Windowing
  • Region of Interest
  • Zoom

Processing Unit は入力を処理して出力するための画像処理 Unit で、以下のようなコントロールがついている。基本的に PC 側でもできるような処理。

  • Brightness
  • Hue
  • Saturation
  • Sharpness
  • Gamma
  • Digital Multiplier (Zoom)
  • White Balance Temperature
  • White Balance Component
  • Backlight Compensation
  • Contrast
  • Gain
  • Power Line Frequency
  • Analog Video Standard
  • Analog Video Lock Status

プロトコル上、これらのコントロールは属するものが違うので、ちゃんと区別してコントロールする必要がある。

  1. トップ
  2. tech
  3. UVC (USB Video Class) のプロトコルと勘所

なんかしらないけど直接ターミナルから実行してやらないとウィンドウがでない

~/Downloads/en.stm32cubemx_v5.4.0/SetupSTM32CubeMX-5.4.0.app/Contents/MacOs/SetupSTM32CubeMX-5_4_0_macos 

このようにやると Java で書かれたウィンドウが出るようになる。なんでだろう?

  1. トップ
  2. tech
  3. macOS で SetupSTM32CubeMX-5.4.0

Chrome 80 (2020年2月予定) からは挙動が変更され、SameSite 属性がない (なにも対応していない場合) は SameSite=Lax の挙動がデフォルトになる。かなり厳しい制約が増えるので対応必須。

また、既存の挙動に戻すためには SameSite=None を指定する必要があるが、SameSite=None は Secure 属性が必須になる。

ということでいずれかが最低限必須

  • https 化 と Secure 属性
  • SameSite=Lax で問題ないサイトづくり

最低工数

  • 常時 https 化する
  • Secure 属性と SameSite=None 属性をつける

既に https 化されているなら最も手軽で追加の検証がいらない。

→ 今まで通りの挙動。CSRF 耐性は特になく、セキュリティは向上しないが不具合はでない

ちょっとは頑張れる

  • SameSite=Lax 属性をつける

→ ほぼ今まで通りだが、外部からのフォーム POST など、CSRF に繋がりそうなケースで挙動がかわり安全になる。XHR や iframe でも cross-site の場合はデフォルトでクッキーが送られなくなるので、対応のうえ全体で再度QAが必要

もっと頑張れる?

SameSite=Strict にすると、あらゆる外部サイトからのページ遷移のときにクッキーが送信されなくなる。最初に開くと必ず非ログイン状態になり、そのあと遷移するとログイン状態が復活したりする。ユーザー体験上、Strict をそのまま既存のセッションクッキーに適用するのは困難。

副作用が発生するクッキーだけを Strict クッキーに分けるような設計をすれば活用できるが、サイトのページ遷移から見なおす必要がある。

個人の見解では Strict を使うケースはないんじゃないかと思う。SameSite=Strict は銀の弾丸ではなく、アプリケーションの問題は CSRF だけではない。結局、総合的に他の施策も必要なので、SameSite=Strict している暇があったら他のことをしたほうが良さそう。

  1. トップ
  2. tech
  3. SameSite 属性結局どうすりゃいい?