「WLA-G54 WBR-G54 WLI-TX1-G54 などのシリアル通信」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
WLA-G54 WBR-G54 WLI-TX1-G54 などにシリアル通信ポートがない理由と、取り付け方法の仮説を、まとめてみました。
WLA-G54 WBR-G54 WLI-TX1-G54 など、初期の11g無線ルータは、
保守用のシリアルポートが、ありません。無線規格の主流が54Mbpsになる前の11Mbpsである11b時代のルータにはシリアルポートがありましたし、またWHR系型番など、2世代以降の11gルータにも、保守用シリアルポートがあります。特定の世代の機種だけが、ないのです。
基板のどこを眺めてもシリアルポートらしき箇所が見当たりません。
こんな仕様では、開発時にどうやってデバッグしてるんだ、と、釈然としませんでした。
前から気になっていたので、これらの製品に搭載されているSoC「BCM4702」の仕様を調べました。
この時代の製品に搭載されているSoC「BCM4702」には、
UART(シリアルポート)が標準で搭載されていないことが判明しました。
プロモーション用データシートを見ると、UART機能は外付けオプションで記載がありました。
BCM型番の仕様一覧
Broadcom - WikiDevi
https://wikidevi.com/wiki/Broadcom
BCM4702 News Release | Broadcom
http://www.broadcom.com/press/release.php?id=332500
BCM4702 プロモーション用 概要PDF
http://wikidevi.com/files/Broadcom/BCM94702AP_BCM94710AP.pdf
このPDFの「BCM94702AP System Diagram」をみると、UARTが、みごとに「外付け」の扱いで記載されています。
保守時にしか使わない通信機能を、出荷する前提の製品で実装してもコストが上がるだけですから、
製品に搭載されていないわけです。
本体を分解しても、シリアル通信の基板パターンが見つからない理由は、これでわかりました。
隠されているのでは無く、最初から無かったのです。
----
**UARTを使うには、16550を取り付ければ可能
BCM4702でUARTを使用するには、シリアル通信チップである16550を、
SoCのバスにぶら下げる改造が必要です。
このチップは、大昔のAT互換機のマザーボードや、ISAバスのシリアルポート増設カードに、
当時は当たり前のように使われており、珍しい物ではありません。
が、いまは需要が激減したため、入手は中古で、しかも相当古い製品をあたる必要があります。
Intel 386近辺以降のマザーボードはSuperIOchipという名称で、シリアル・パラレル・FDDインターフェースが
統合されたワンチップICが使われています。おそらく今回の用途での部品取りでは使えないと思われます。
今回のような少ない需要を見込んだ、レガシーな16550を搭載した製品が、海外通販サイト等で存在することは確認しました。
これらを購入すれば、16550の入手は可能です。
そして、その16550を取り付ける改造を、実際にやってのけた凄い人が居らっしゃいます。
----
**ASUS WL-500Gにて、16550を乗せた改造事例
BCM4702を搭載しているASUS製のブロードバンド無線ルータ WL-500Gにて、16550を実際に乗せてみて、ブートローダ「PMON」のメッセージや
通常時のシリアルデータの入出力に成功しています。
Make an expansion board with a serial port(s) for WL-500b/g
http://wl500g.info/showthread.php?587-Make-an-expansion-board-with-a-serial-port%28s%29-for-WL-500b-g
UART Asus WL-500G Rev 2.40 - Viaccess for Free Forums
http://dvbdataex.sat-fishers.com/forum/showthread.php?t=31423
この2つのページにて、写真付きで16550を取り付けた改造事例が掲載されています。
WL-500Gには、本体の基板に20pinのコネクタが搭載されています。
--------
> D0 D1 |
| D2 D3 |
| D4 D5 |
| D6 D7 |
| A0 A1 |
| A2 A3 |
|+5V /CS |
|/RD /WR |
|INT GND |
| NC NC |
--------
このコネクタに、16550を取り付ければ、シリアル通信を実現できるという流れです。
ルータの開発時には、おそらくここへシリアル通信用の保守治具を差し込んで
デバッグしていたのでしょう。
----
**国内buffaloモデルにも保守ポートを発見、ピン配列はASUSと異なり独自の可能性
話を国内のbuffaloモデルに戻して・・・
上記のasus WL-500Gの改造事例を知った後、あらためてWLA-G54 WLI-TX1-G54 等の基板を眺めてみました。
なんと20pinのコネクタがしっかりと搭載されていることに気づきました。
バッファローの中の人たちは、ここへ保守治具を繋いでデバッグしたわけですね。
このコネクタについて情報を調べてみると、ピンアサインについては、
asusの改造事例のモデルとは異なるようです。
WLA-G54のピンアサインを解析された方が、下記ページにいらっしゃいます。
http://www.right.com.cn/forum/thread-6084-1-1.html
http://wiki.openwrt.org/OpenWrtDocs/Hardware/Buffalo/WLA-G54C
(現在はリンク切れ。上記ページに記載のあったURL情報)
GND CE QD7 QD6 QD5 QD4 QD3 QD2 QD1 QD0
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
||GND NC NC WE OE NC A3 A2 A1 A0
この用語の「OE」はasusの資料で言う「/RD」かもしれません。以下はあくまで推測ですが、
RD・・・Read Data
OE・・・Output Enable
WR・・・WRite data
WE・・・Write Enable
CS・・・Chip Select
CE・・・Chip Enable
という、開発者あるいはメーカー定義の方言と思われる。
QDとDも同様で、双方向で流せるデータバスという意味での方言
A0-A3はアドレスバスで、これは共通
まとめると
-16550を最低限動かすための基板の制作は、ASUS WL-500gの記事を参考にする
-基板へ接続するデータバス/アドレスバス/コントロール信号は、buffalo独自の配列を使用する
以上の段取りで、もしかしたらbuffaloのルータでも、シリアルポートを
使うことが可能になるのでは無いか?
という仮説でした。
仮にこの接続が成功したら、WLA-G54等にて、CFEは生きてるけどrootFSやnvramが破損して
起動できなくなった文鎮状態を、シリアル通信経由でメンテすることが出来るようになります。
WLA-G54 WBR-G54 WLI-TX1-G54 などのシリアル通信
***buffalo WLA-G54 WBR-G54 WLI-TX1-G54 など特定の世代のルータにおいて、シリアル通信ポートがない理由と、シリアル通信の機能を追加実現する仮説を、まとめてみました。
WLA-G54 WBR-G54 WLI-TX1-G54 など、初期の11g無線ルータは、
保守用のシリアルポートが、ありません。無線規格の主流が54Mbpsになる前の11b時代のルータにはシリアル通信が可能でした。またWBR2系(BCM4712)や、WHR系(BCM4704/BCM53xx系)型番など、2世代以降の11gルータも、シリアル通信が可能です。特定の世代の機種だけが、ないのです。
シリアルポートが隠されている、取り出し口がわかりにくいだけかと思い、基板を眺めるものの、見当たりません。
こんな仕様では、開発時にどうやってデバッグしてたのかと、釈然としません。
そこで、これらの製品に共通して搭載されているSoC「BCM4702」の仕様を調べました。
SoC「BCM4702」には、UART(シリアルポート)が搭載されていないことが判明しました。
プロモーション用データシートを見ると、UART機能は外付けオプションとの記載があるためです。
BCM型番の仕様一覧
Broadcom - WikiDevi
https://wikidevi.com/wiki/Broadcom
BCM4702 News Release | Broadcom
http://www.broadcom.com/press/release.php?id=332500
BCM4702 プロモーション用 概要PDF
http://wikidevi.com/files/Broadcom/BCM94702AP_BCM94710AP.pdf
このPDFの「BCM94702AP System Diagram」をみると、UARTが「外付け」の扱いです。
出荷する前提の製品で、保守時にしか使わない通信機能を実装してもコストが上がるだけでメリットなし、
それならばと製品には搭載されない、という状況でした。
本体を分解してシリアル通信の基板パターンが見つからない理由は、これでした。
隠されているのでは無く、もともとのSoCから信号が存在しなかったと。
----
**UARTを使うには、16550を取り付ければ可能
BCM4702でUARTを使用するには、シリアル通信チップである16550を、
SoCのバスにぶら下げる改造が必要です。
このチップは、大昔のAT互換機のマザーボードや、ISAバスのシリアルポート増設カードに、
当時は当たり前のように使われており、珍しい物ではありません。
が、いまは需要が激減したため、入手は中古で、しかも1990年代の相当古い製品をあたる必要があります。
Intel 386近辺のマザーボード以降は、Super IO chipという名称で、シリアル・パラレル・FDDインターフェースが
統合されたワンチップICに変化しました。おそらく今回の用途での部品取りでは使えないと思われます。
今回のような少ない需要を見込んだ、レガシーな16550を搭載した製品が、海外通販サイト等で存在することは確認しました。
これらを購入すれば、16550の入手は可能です。
そして、その16550を取り付ける改造を、実際にやってのけた凄い人が居らっしゃいます。
----
**ASUS WL-500Gにて、16550を乗せた改造事例
BCM4702を搭載しているASUS製のブロードバンド無線ルータ WL-500Gにて、16550を実際に乗せてみて、ブートローダ「PMON」のメッセージや
通常時のシリアルデータの入出力に成功しています。
Make an expansion board with a serial port(s) for WL-500b/g
http://wl500g.info/showthread.php?587-Make-an-expansion-board-with-a-serial-port%28s%29-for-WL-500b-g
UART Asus WL-500G Rev 2.40 - Viaccess for Free Forums
http://dvbdataex.sat-fishers.com/forum/showthread.php?t=31423
この2つのページにて、写真付きで16550を取り付けた改造事例が掲載されています。
WL-500Gには、本体の基板に20pinのコネクタが搭載されています。
--------
> D0 D1 |
| D2 D3 |
| D4 D5 |
| D6 D7 |
| A0 A1 |
| A2 A3 |
|+5V /CS |
|/RD /WR |
|INT GND |
| NC NC |
--------
このコネクタに、16550を取り付ければ、シリアル通信を実現できるという流れです。
ルータの開発時には、おそらくここへシリアル通信用の保守治具を差し込んで
デバッグしていたのでしょう。
----
**国内buffaloモデルにも保守ポートを発見、ピン配列はASUSと異なり独自の可能性
話を国内のbuffaloモデルに戻して・・・
上記のasus WL-500Gの改造事例を知った後、あらためてWLA-G54 WLI-TX1-G54 等の基板を眺めた結果、
20pinのコネクタがしっかり搭載されていました。
バッファローの中の人たちは、ここへ保守治具を繋いでデバッグしたわけですね。
このコネクタについて情報を調べてみると、信号の配列(ピンアサイン)は、
asusの改造事例のモデルと異なるようです。
WLA-G54の配置を解析された方が、下記ページにいらっしゃいます。
http://www.right.com.cn/forum/thread-6084-1-1.html
http://wiki.openwrt.org/OpenWrtDocs/Hardware/Buffalo/WLA-G54C
(現在はリンク切れ。上記ページに記載のあったURL情報)
GND CE QD7 QD6 QD5 QD4 QD3 QD2 QD1 QD0
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
||GND NC NC WE OE NC A3 A2 A1 A0
この用語の「OE」はasusの資料で言う「/RD」かもしれません。以下はあくまで推測ですが、
RD・・・Read Data
OE・・・Output Enable
WR・・・WRite data
WE・・・Write Enable
CS・・・Chip Select
CE・・・Chip Enable
という、開発者あるいはメーカー定義の方言と思われる。
QDとDも同様で、双方向で流せるデータバスという意味での方言
A0-A3はアドレスバスで、これは共通
まとめると
-16550を最低限動かすための基板の制作は、ASUS WL-500gの記事を参考にする
-基板へ接続するデータバス/アドレスバス/コントロール信号は、buffalo独自の配列を使用する
以上の段取りで、もしかしたらbuffaloのルータでも、シリアルポートを
使うことが可能になるのでは無いか?
という仮説でした。
仮にこの接続が成功したら、WLA-G54等にて、ブートローダである CFE や PMON は生きてるけどrootFSやnvramが破損して
起動できなくなった文鎮状態を、シリアル通信経由でメンテすることが出来るようになります。