MZ-1E40
(MZ-2800用S-RNインターフェースボード)
このボードがどうとか言う前に、「S-RNて何?」と聞きたくなるところですよね…。 S-RNについては後で改めて紹介しますが、簡単に言うと「POS用ネットワーク」の名前です。今ググってもまずわかりません。当時存在した、シャープオリジナルのネットワークのことなのです。 |
POSとは規格化されたバーコードをつけた商品の、入荷から販売までの一連の動きを管理し、チェッカー担当の店員の負荷を軽減し、季節・時間・利用客(ポイントカードで判別)と商品の動きを集計して販売戦略の一助とする…というようなシステムですね。スーパーやコンビニでお馴染みかと思います。
「今、この品物が、いくつ売れた」などという情報がレジにて発生すると、店の奥とか本部とかにあるサーバーと通信して単価を知らせてもらい、在庫のデータベースが修正されます。そういったやり取りのために各レジやコンピュータがネットワークで接続されていることが必要です。それをシャープは独自に開発していたというわけなのです。
と言うか、POSメーカーとしてはシャープはあまり有名ではないような気が…スーパーなんかで見かけるレジは富士通とかTECとか。いったいどこで使われているのか…とシャープマーケティングジャパンのPOSのページを見てみると、結構いろいろなところで使われてるみたいですね…!
シャープの社史によれば電子レジの販売は1971年からで、翌1972年には日本のマイコン史にてちょろっと顔を出す「ビルペット」を開発(シャープが論理設計しNECが量産した純国産マイコン第一号が搭載された)しています。ビルペットは日本コカ・コーラ社向けのセールスマン用小型事務処理端末であり、これをベースにPOS事業を開始することになります。ちなみに、日本NCRでも世界初の電子レジを1971年に発売したと言っていますから、電子レジに限ればシャープも古参の部類に入るということなのでしょうね。
ここで紹介するMZ-1E40は、そのPOSシステムのセンターに位置する or POSネットワークに直結してデータ処理するパソコンに搭載するためのインターフェースボードです。カタログを探してみると
が見つかりました。MZ-1V01用パラレルI/F(MZ-1E32など)のことを考えると、IP型番でPC-98用が存在しても不思議ではないところですが…。
本体外部に露出するコネクタはBNCのみ。BNCがあるということは、S-RNは同軸ケーブルで接続されるということですよね。 |
同軸ケーブルのネットワークというと連想するのは10BASE-2。いやほら、富士通でいうとDSLINK、NECでいうとB4680みたいに「Ethernetそのものなのにその名前で呼ばずいかにも自社オリジナルネットワークみたいな名称を付ける」とかあるじゃないですか。S-RNもそんなだったりしないかな…と淡い期待をつい抱いてしまいがちになるんですけど。
まぁ、世の中そんなに甘くはありませんわな。
基板上の主要なLSIを見ていきましょう。まずはバスコネクタ近辺のこいつ。uPD71071C、NECのVシリーズ周辺LSIであるDMAですね。 uPD71071は本体にもありますけど、ここに置かれているということは、バスマスタ転送用ということですかね…? |
ブラケット近辺にあるこいつら、下のは東芝のTMPZ84C00AP-6…って、Z80B CPUじゃないですか! いくらCMOS版だからって、こともあろうにシャープが他社のZ80使うなんて…! その上にあるのは8080ファミリ周辺LSIのDMA、NECがセカンドソース生産するuPD8257C-2。ここにあるということは、Z80の配下で動作するDMAということですか? |
こちらにあるものの中で、東芝のロゴが入るLSIはTMPZ84C30AP-6、つまりCMOS版のZ80B DMAですね。なるほど、シャープはZ80
DMAにBバージョンを提供できませんでしたから、6MHzで動かしたければ東芝版を使う他ないということですか…。 その横はモトローラのMC68B54P、ADLC(Advanced Data Link Controller)というLSIで、HDLC通信を担います。S-RNはHDLCフレームを使って通信しているからです。ついZ80 SIOじゃあかんかったの? と言いたくなりますが…SDLCでは足らない仕様があったんでしたっけ? さらにその横、QFPのLSIはMB62H149、シャープのロゴこそついていますが富士通のカスタムLSIです。これはZ80Bの周辺回路もろもろをまとめたS-RN専用チップで、ADLCの通信制御を補助したり、ホスト(MZ-1E40の場合はMZ-2800)とのデータ転送を調停したりする機能があります。 MB62H149はS-RN I/F搭載機には必須のLSIらしく、型番でググると海外にあるシャープ製レジのサービスマニュアルがヒットします。LSIの信号一覧や回路図まで掲載されています。 |
しかしなぁ…DMAが3つも搭載されてますよこれ…いったいどうなってるんでしょうね? Z80B DMAはS-RN通信用だろうし、71071はホスト側のものだろうから、残る8257が謎ということになるんですが…。
こちらはメモリ。ROM(M5L2764K)とRAM(TMM2015BP-10)があります。Z80B用でしょうね。組込みマイコンとしての使い方ですので、ROMが8KB、RAMが2KBしかありません。 ROMの方は、遮光シールに「MITSUBISHI」と刻印されています。三菱の工場か、さもなくば代理店で書き込んだ後納入されたものと思われます。 |
ということで、搭載部品を見る限りEthernetとは別物ですね。定番のDP8390とかありませんし、ボード上のコントローラは80186などではなくZ80、そして外付けのごつい電源装置とは無縁の設計。少なくとも直結してデータを流すことは無理ですね。
それにしても…日本の半導体メーカーがそれぞれ専業化した後ゆえ、ということもあるのでしょうけど…見事にシャープ製品が搭載されていませんね…。ちょっと寂しい気もします。
Tweet
この項の内容の多くは、シャープ技報 No.28(1984年)掲載の次の記事にもとづいています。
- 「シャープリテールネットワーク」
(御手洗顕 ; 松井良光 ; 堀口道行 ; 大橋正和 ; 浦康夫 ; 杉島靖郎)- p123~128
この時期のシャープ技報は国会図書館に収蔵されており、デジタルアーカイブ化もされています。詳細な内容を知りたい方は国会図書館にて閲覧するか、複写サービスを利用して取り寄せてください。
S-RNとは、「シャープリテールネットワーク」の略語です。POS用のレジやホストPCなどの間を接続するためのインターフェースです。
そういった製品は流通系の雑誌によく掲載されるのでしょうが、パソコン雑誌にも新製品ニュースが掲載されたことがあります。
月刊I/O誌1983年11月号掲載のこの記事、「シャープ独自のCOBOL系言語"STAC"」とか問い合わせ先が大阪本社ではなく東京・市ヶ谷だったりとか気になることはいくつかありますが、ネットワークの話ですし、ここで注目するのは「分散ファイルシステム」になります。
ここで技術報告書の「シャープJAN-POSシステム」の図を引用します。
レジが3つ描いてあり、それぞれをS-RNで結んでいます。図中の表現はループに見えますがそれは便宜上のもので、太い帯状のもの(いわゆるバス表現)が渡っていると理解して下さい。
左端のレジにてジュース(箱だけど?)のバーコードを読み取り、清算のために集計しようとしています。各レジの下にある「PLUファイル」というのは、商品とコードと価格(と当日の売り上げ数)の対応が書かれたデータベースを指します。ちなみにPLUとはPrice Look Upの略です。
それぞれのレジの下にあるPLUファイルに書いてある商品がチョコレート・ジュース・キャラメルとバラバラなのがミソです。実はこの3台のレジにはそれぞれ内容が違うPLUファイルが記録されています。なので、左端のレジで読み取ったコードが自分のPLUファイルに見当たらなかったがために、他のレジに問い合わせして情報を得るという動作がこの図で表現されているのです。
シャープJAN-POSシステムはセンターとかマスターというような、データベースを一括して管理する方法ではなくレジそれぞれにデータを分散して管理するのを特徴としています。一見非効率に見えますが、1台のマシンに何十台ものレジからの問い合わせが殺到し処理が追いつかなくなることを避けるのが目的とされています。当時のマシンスペック、そして記憶装置の容量を考えると妥当なのかもしれません。
余談ですがこの図にあるレジの型番、HAYAC-1750とHAYAC-1650となっていますが、このHAYAC型番というのはシャープのオフコン製品にも使われているものです(電子レジはER型番)。というかおそらく社内的にはオフコン製品扱いなんでしょうね。企画自体がオフコン方面から発生したのかもしれません。
余談ついでに、HAYACという名前は電卓事業を始めるにあたって後の副社長となる浅田篤氏らが勉強のために大阪大学に通って学生と共に作ったコンピュータに名付けた「HAYAC-1」まで遡ります。もちろん「早川電機のコンピュータ」だからHAYACですね。
話を元に戻して、とにかくセンターと端末が一対一で通信するスタイルではなく、全ての端末を多対多で接続するためにバス形式を採用したというのがS-RNのハードの特徴ということになるでしょう。
ではそのS-RNがインターフェース形式としてどういったものなのか、技術報告書にあるEthernetとの比較表を見ていただきましょう。
S-RN | Ethernet (10BASE-5) |
|
メーカー | SHARP | XEROX |
アクセス方式 | CSMA/CD | CSMA/CD |
トポロジ | バス | バス |
伝送媒体 | 同軸(5C2V) | 同軸(専用ケーブル) |
速度 | 480kbps | 10Mbps |
回線最大長 | 1km | 0.5km |
最大ノード | 64 (MAX 255) | 100 (MAX 1024) |
5C2Vの同軸ケーブルを使うS-RNと比べるなら10BASE-2の方でないとフェアじゃないでしょ、と思ってしまうところですが…先ほどのI/O誌の記事でもわかるようにS-RNは1983年、一方10BASE-2は1984年の登場なので比較対象に入ってないんですね。一年前ならドラフトが出てたりしてそうではありますが、こういう表がある以上、10BASE-5を参考にしつつも自分達の使いやすいものを作ったということなのでしょう。
先ほどの分散ファイルシステムを実現するための仕組みとして、バス接続されたケーブルをCSMA/CDにて伝送するのはEthernetと同じです。CSMA/CDは信号線上で複数の送信元からの信号が衝突することを許容する方式で、衝突が検知されたら一旦送信を止め多少の時間経過後にリトライすることで送信元自ら調停を行うものです。
一方で、速度を480kbpsに下げ、ノード数の最大も抑え、伝送媒体(ケーブル)もイエローケーブルじゃなく家庭用アンテナ線にも使われる5C2V同軸ケーブルとすることでコストダウンが狙えます。なお通信速度は後の仕様で1Mbpsにまでアップしている模様です(詳細は未調査)。10BASE-5の場合、端末に直接ケーブルがつながるわけではなくて、一旦トランシーバにてAUIなんかのケーブルに変換する必要がありました。S-RNではそれも不要になるわけです(しつこいですが10BASE-2でも不要になる)。
S-RNの送受信部のブロック図を次に示します。
通信のために独立したコントローラとしてZ80が使用されています。初期のEthernetボードに80186などが搭載されていたことを考えると、いかにも軽量なI/Fです。実際に使われているLSIもZ80 DMAやMC6854など汎用のものばかりで、一部カスタム化されている回路もありますが、あまり特別な部品を使わなくても成立するようになっています。そういう部分もコストダウン効果が狙えるような気がします。
ここまでの図にはありませんが、10BASE-2のようにケーブルの両端には終端抵抗が必要です。技術報告書では75Ωとされていますが、後の仕様では50Ωと書かれたものもあります。通信速度が向上したのと関係あるんでしょうか?
次にS-RNで使われるフレームフォーマットを見てみましょう。
F | Leading Flag (01111110) |
DA | Destination Address |
SA | Source Address |
TYPE | Packet Type |
CH NO | Chnannel No |
DLS | 回線ステータス |
ダミー | |
ダミー | |
BCL | データ長下位 |
BCH | データ長上位 |
DATA | データ (最大270バイト) |
CRC | CRC |
CRC | CRC |
F | Trailing Flag (01111110) |
データを除いてそれぞれの箱の大きさは1バイトです。先頭と末尾にあるフラグ、その値が0x7eであることから想像できるように、これはHDLCを利用したフレームになっています。
DestinationとSourceの両アドレスにより、送信先と送信元のアドレスが表されます。仕様上は256まで表現できますが、実使用上は64までとされているようです。また0xffはブロードキャストアドレスとして定義されています。
Packet Typeはそのパケットの種別を表すもので、
0 … データパケット
1 … ACKパケット
2 … RACKパケット
3 … NOT READYパケット
が定義されています。データパケット以外はデータ部分は不要です(データ長を0として、データ部分を省いたフレームとする)。
Channel Noはチャンネル1(0x01)とチャンネル2(0x02)が技術報告書では定義されていますが意味まではわかりません。回線ステータスはビット単位で意味が定義されていて、
ビット | 意味 |
7 | 再送パケットステータス |
6 | 未定義 |
5 | 未定義 |
4 | 未定義 |
3 | 未定義 |
2 | 未定義 |
1 | 受信バッファFullステータス |
0 | 受信不可ステータス |
となっています。
データ長は最大が255を超えるので2バイトで定義されています。リトルエンディアンで並んでいますね。CRCは技術報告書にて生成多項式など記述がありませんが、大抵はITU-T由来のものが使われていると推測します。
基本的なデータの転送手順は、
となっていて、ACKパケットを使用した半二重ハンドシェイク通信の体裁をとっています。ACKやRACKが帰ってこなければタイムアウト後再送信するなどのエラーリカバリも定義されているようです。またパケットタイプにあったNOT READYはACKパケットの代わりに送られるもので、データは受信したものの上位が満杯になっていて処理できないことを送信元に伝えるために用いられるとのことです。
技術報告書を見る限り、複数のパケットに分割した送受信やフラグメントを許容するような記述はありません。PLUの1レコードが270バイトを超えないということなのかもしれません。またリピーターに相当するノードの存在も確認できませんので、ネットワークがメッシュ状に結ばれるとかいうことも想定されていなさそうです。あくまでシンプルに順番どおりにデータを送り受けすることだけが考えられているようです。そのためのハンドシェイクとも言えるのでしょうが。
総合的には、Ethernetのような重厚で冗長で高価でオーバースペックなネットワークアーキテクチャに比べてPOS用途に必要十分なスペックを確保しつつコストダウンした、シンプルで使い良いものを目指した結果なのだろうなと思いました。そう言えば、X1-CAIもネットワーク機能を実装した時いろいろ考えた末にオリジナルな「シンプルLAN」というものを作ったりしているわけで、この当時は標準(または既製品)に従うより身の丈に合った独自のLANを考案する方が有利だったということなんでしょう。
さすがに21世紀を迎える頃にはレジのネットワークI/FもEthernetに代わり、海外も含めて多数展開されたS-RNの時代は過ぎ去りました。なんと言ってもネットワークI/Fを構成する部品が劇的に安く手軽になり、いくら冗長だろうがオーバースペックだろうがコストダウンでお釣りがくるので、別に何ら困ることもなくなってしまったわけです。まぁねぇ、10万円とかそれ以上の価格だったLANカードがまさか千円切ったりするとか、それどころかどんなパソコンでもLAN機能がついてるのが当たり前とかいう時代が来るとか、1980年代中盤には想像を絶しますよね…。
なお、S-RNで組んでいるPOSシステムにEthernet装備のレジを追加で設置するというニーズがないはずはないと思うので、EthernetとS-RNのコンバータなりブリッジなりがオプション商品として存在してても不思議はないと思うのですが…。
趣味者的には、せっかくのネットワークI/Fボードですし、なによりメーカー純正品なのですから、ここにTCP/IPが流せれば面白いところなのですが…S-RNをトランスポート層と捉えて、TCP/IP over S-RNというのも理屈の上ではあり得ます。ただデータ長が最大270バイトというのがネックなんですよね…。フレームフォーマットとしては64KBまで載せられますが、多分バッファとして用意されているメモリは270バイトしかないのでしょう。EthernetとS-RNのブリッジや、パソコン側のパケットドライバとかはパケットの分割・結合処理が必要です。ブリッジ用のS-RNの回路をどうするかとか、考えないといけないことは多いですね…。