LABPC(4)

명칭
labpc - National Instruments 사의 LABPC 와 LABPC+ 의 드라이버

서식
device labpc0 at isa? port 260 tty irq 5

해설
이 드라이버는 National Instruments 사의 LABPC 와 LABPC+ 의 저비용 멀티 펑션 I/O 보드를 서포트합니다.

이 보드는 8 개의 12 비트 A-D 입력 채널, 2 개의 12 비트 D-A 출력 채널, 3 개의 8 비트 디지털 I/O 포트를 제공합니다. 또, 디지털 I/O 포트와는 별도로, National Instruments 사의 SCXI 버스의 설정을 서포트하고 있습니다만, 그 소프트웨어는 현재는, 드라이버의 일부로서가 아니고, 외부 프로그램으로서 제공되고 있습니다.

입출력 디바이스, 모드, 채널의 선택은 마이나 번호를 통해 행합니다. 8 비트의 마이나 번호의 형식은 UUSIDCCC 로, 이하와 같이 됩니다. UU: 보드 유니트 S: SCAN 비트 (스캔가능) I: INTERVAL (인터벌 서포트) D: 1: 디지털 I/O, 0: 아날로그 I/O CCC: 채널의 선택 : 아날로그: 입력: 채널은 AD0 로부터 AD 7 에 대응해 0 에서 7 까지 출력: 채널은 0 에서 2 까지 0: D-A 0 1: D-A 1 2: 채널 0 으로 1 을 교대로 디지털: 입력: 채널은 0 에서 2 까지 출력: 채널은 0 에서 2 까지

"sh MAKEDEV labpcaio" 나 "sh MAKEDEV labpcdio" 를 실행하면(자), /dev/MAKEDEV 스크립트는 기본적인 아날로그와 디지털의 디바이스를 작성합니다만, INTERVAL 나 SCAN 디바이스를 위한 디바이스 엔트리는 작성하지 않습니다. SCAN 디바이스는, 자동적으로 전채널을 0 으로 향해 주사 합니다. (예를 들면 /dev/ad7 에 대한 SCAN 는 AD7 로부터 AD0 까지의 채널을 읽어냅니다) INTERVAL 디바이스는, 외부 신호를 기다려, 그리고, 선택된 채널 번호로부터 0 까지의 전채널을 가능한 한의 속도로 읽어냅니다. 이것은 하드웨어가 실행해, (이 기능을 온으로 하는 것을 제외해) 드라이버는 아무것도 하지 않습니다. 센서가 움직이지 않을 때는 LabPC+User's Manual 나 원시 코드를 참조해 주세요.

이 드라이버는 복수의 일반적인 아날로그 I/O ioctl 소환을 서포트하고 있습니다. 이것들은 sys/dataacq.h 로 정의되고 있어 다른 데이터 취득 (acquisition) 보드의 디바이스 드라이버로 실장되고 있는 것과 같은 의미입니다.

AD_MICRO_PERIOD_SET 는 샘플링의 간격을 마이크로 세컨드로 나타낸 long 치에의 포인터를 인수에 있습니다.

AD_MICRO_PERIOD_GET 는 long 치에의 포인터를 인수에 있어, 현재의 샘플링 간격을 마이크로 세컨드로 나타낸 정수치를 돌려줍니다.

AD_NGAINS_GET 는 정수치에의 포인터를 인수에 있어, 보드가 서포트하는 차분 게인 설정치의 개수를 돌려줍니다. 이것은 LabPC 보드에서는 8 입니다.

AD_NCHANS_GET 는 정수치에의 포인터를 인수에 있어, 보드가 서포트하는 채널의 수를 돌려줍니다. 이것은 LabPC 보드에서는 8 입니다.

AD_SUPPORTED_GAINS 는 NGAINS (AD_NGAINS_GET 로 취득한 수)의 길이의 double 배열을 돌려줍니다. 이것들은 보드가 서포트하는 게인입니다.

AD_GAINS_SET 는 NCHAMS (AD_NCHANS_GET 로 취득한 수)의 길이의 정수 배열을 인수에 있어, 보드의 게인을 설정합니다. 이것들은, 서포트되고 있는 게인의 배열에 대한, 각 채널의 게인을 가리키는 인덱스입니다.

AD_GAINS_GET 는 NCHANS (AD_NCHANS_GET 가 돌려줍니다)의 길이의 정수 배열을 인수에 있어, 현재의 보드의 게인을 돌려줍니다.

버그
일반적으로는, 내가 필요로 한 능력만이 제공되고 있습니다. 특히, 이하가 눈에 띄는 제한이 있습니다.

아날로그 입력은, 클락에 의한 변환 모드에서만 서포트되고 있습니다.

샘플링 클락은 15 Hz 까지 밖에 내릴 수 없습니다. 좀 더 늦게 하기 위해서는, 드라이버를 수정해 TCINTEN 를 서포트하는 것으로써, 카운터의 연쇄에 의해 낮은 클럭레이트를 얻는 것이 필요합니다.

클락에 의한 D-A 출력은 서포트하고 있지 않습니다.

디지털 I/O 포트를 제공하고 있는 8255 는 모드 0 (3 개의 8 비트 포트)에서만 서포트되고 있습니다.

LABPC 보드와는 별도로 SCXI 버스를 서포트하고 있습니다. 이것은 드라이버안에는 없고, 디지털 입출력 디바이스에 액세스하기 위한 다른 유저 프로세스입니다. 이것에 대해서는 dufault@hda.com 에게 물어 주세요.

MAKEDEV 는 「기본적인」디바이스만을 작성합니다. INTERVAL 나 SCAN 디바이스는 수동으로 작성하지 않으면 안됩니다.

INTERVAL 디바이스는 클럭레이트를 가능한 한 높게 설정합니다. 외부 신호의 뒤, 할 수 있는 한 재빠르게 전채널을 샘플링 하기 (위해)때문입니다. 이것은 바보 나막신 제한입니다. 심플하게 클락의 설정을 사용해야 합니다.

경고
National Instrument 사 (다른 대체로의 실험실 레벨의 품질의 보드 vender도 그렇습니다만) 의 저비용의 정의는, 인터넷상이 많은 물건과는 극적으로 다릅니다.