. 

2.パルスジェネレータ ( Pulse Generator )


 RTS-232C 上に送出される非同期式データを細かく制御することで、(任意の)パルスを生成できます。
 

(a) 多周波数型 ( Multi Frequency )

 非同期式データは、キャラクタごとにスタートビットとストップビットに挟まれ、LSB(D0)から順に送出されます。デューティー50%のパルス列を送信したい場合、キャラクタを8ビット、パリティビットなし、ストップビット1とすれば、1-01010101-0 を繰り返し送信すればよいことになります。「負論理」、「LSBから送出」、を考慮すれば、キャラクタコードは 0x55、つまり 'U' を連続送信すれば、ボーレートの 1/2 の周波数のパルス列が得られます。
 キャラクタコードを 0xF0 とすれば、1/10 の周波数になります(1-11110000-0)。パリティビットを使い、ストップビットを2ビットにすれば、1/6 の周波数も可能です(1-11000111-0-00)。可聴域で生成可能な周波数は表のとおりです。
 

Frequency (Hz)

Baud rate (bps)

Parity bit

Stop bit

Data (hex)

       18.3

      110

even

2

1C

      30

      300

none

1

F0

      50

      300

even

2

1C

      60

      600

none

1

F0

    100

      600

even

2

1C

    120

    1200

none

1

F0

    150

      300

none

1

55

    200

    1200

even

2

1C

    240

    2400

none

1

F0

    300

      600

none

1

55

    400

    2400

even

2

1C

    480

    4800

none

1

F0

    600

    1200

none

1

55

    800

    4800

even

2

1C

    960

    9600

none

1

F0

  1200

    2400

none

1

55

  1440

  14400

none

1

F0

  1600

    9600

even

2

1C

  1920

  19200

none

1

F0

  2400

    4800

none

1

55

  3200

  19200

even

2

1C

  3840

  38400

none

1

F0

  4800

    9600

none

1

55

  5600

  56000

none

1

F0

  5760

  57600

none

1

F0

  6400

  38400

even

2

1C

  7200

  14400

none

1

55

  9600

  19200

none

1

55

11520

115200

none

1

F0

19200

  38400

none

1

55


 周波数の切り替えに多少もたつきます。USART によっては出力できない周波数があります。
 

(b) カウント指定型 ( Pulse Count )

 指定した数だけパルスを発生させたい、という用途に使います。
 キャラクタコード 0xF0 をパルスの数だけ送出すればよいのですが、ソフトウェア処理の負荷を軽くするために、0x55 を使う方式とします。指定カウント数を5で割った端数が1,2,3,4でそれぞれ末尾コードを 0xFF, 0xFD, 0xF5, 0xD5 とします。
 各パルスの幅は(1/ボーレート)Sec で、これもデューティーは 50% です。