오실로스코프의 기능에 대한 높은 수준의 개요를 살펴 보겠습니다.
먼저 아날로그 프론트 엔드가 있습니다. 여기에는 프로브에 대한 임피던스 매칭 네트워크가 있지만 프로브에는 커패시턴스 매칭 부분이 있어야합니다. 아날로그-디지털 변환기. 나는 아날로그에 대해 잘하지 않기 때문에 이것에 대해 너무 많이 말하지 않을 것이지만 결론은 다음과 같습니다.이 섹션에서 Pi로 할 수있는 일은 없습니다.
다음은 아날로그-디지털 변환기 부분입니다. 각 채널마다 하나 이상의 ADC가 필요합니다. 더 높은 샘플링 속도를 위해 더 많이 사용할 수 있습니다. 전통적인 범위에서 ADC는 ASIC 또는 FPGA 디바이스에 연결됩니다. 기존의 컴퓨터는 ADC가 제공하는 데이터를 처리하기에 충분한 실시간이 아니기 때문에 (실시간을 빠르게 혼동하지 않기 때문에) 사용됩니다. 그런 다음 해당 데이터는 일종의 RAM에 저장됩니다. 일부 장치는 정적 RAM을 사용하고 다른 장치는 동적 RAM을 사용합니다. 일반적으로 SRAM 접근 방식은 더 유명하고 유명 제조업체에서 볼 수있는 반면, DRAM 사용은 저렴한 중국 디자인 단위에서 볼 수있는 새로운 접근 방식 인 것 같습니다.
RAM의 양과 속도는 저장할 수있는 샘플 수를 결정합니다. 거의 항상 ADC는 8 비트 ADC이므로 1 메가 샘플의 경우 8b 곱하기 100000 = 8Mb 또는 1MB의 RAM이 필요합니다. 한 MSa / s의 경우, 그 속도로 작동 할 수있는 RAM이 필요합니다. 오늘날에는 비교적 쉽게 구할 수 있습니다. FPGA는 일반적으로 RAM을 직접 구동하며 여기에 데이터를 저장합니다. 여전히 빈 공간이있는 동안 샘플 메모리를 채우고 가득 차면 덮어 씁니다. 채널당 여러 개의 ADC가있는 경우 FPGA는 먼저 샘플링을 시작한 다음 다음 클럭에서 두 번째 등을 시작하도록 ADC를 설정합니다. 샘플링이 완료되면 첫 번째 ADC의 샘플이 먼저 메모리에 기록 된 다음 두 번째 ADC의 샘플이 기록됩니다. 그러면 ADC가 실제보다 더 빨리 샘플링하는 것처럼 보입니다.
이 섹션의 다음 요점은 샘플의 시간이 동일해야한다는 것입니다. 이것은 오실로스코프에서 PC를 사용할 때의 주요 문제이며 FPGA와 ASIC가 우세한 이유입니다. 일부 샘플이 늦거나 이른 경우 화면에 표시된 이미지가 올바르지 않습니다.
이 부분에서 우리는 Pi의 첫 번째 가능한 사용을 봅니다. 샘플링 속도가 충분히 낮 으면 Pi에서 직접 ADC를 구동하여 결과를 Pi의 RAM에 저장할 수 있습니다. 우리가 얼마나 빨리 갈 수 있는지는 ADC가 Pi에 연결되는 방식과 Pi가 I / O를 수행하는 방식에 달려 있습니다. 필자가 읽은 바에 따르면 Pi의 I ^ 2C 포트의 최고 속도는 150MHz이며 (GNU / Linux에서 달성하기 쉬운 것이 또 다른 문제입니다) 최고 표준화 된 속도는 5MHz이며 SPI의 경우 최고 속도는 Pi는 250MHz입니다. SPI의 최고 표준 속도가 무엇인지 잘 모르겠지만 최대 100MHz 범위에있을 것으로 예상합니다.
따라서 이론적으로 우리는 낮은 MSa / s 범위에서 ADC를 실행하기에 Pi의 속도가 충분합니다. 여기에서는 RAM 속도가 문제가되지 않는다고 생각하지만 백업 할 데이터가 없습니다. 이 경우 일반적인 범위에 비해 큰 이점이 있습니다. 사용 가능한 캡처 메모리가 매우 많습니다. 예를 들어 샘플 메모리 용 프로그램에 32MiB의 RAM을 할당하고 두 개의 채널이있는 경우 각 채널당 16MiB 또는 채널당 134Mb 또는 134 메가 샘플을 초과하게됩니다. 그것은 오늘날에도 많은 오실로스코프에없는 것입니다.
단점은 여기서 정확한 샘플링을 얻으려면 운영 체제를 크게 수정해야한다는 것입니다. 실시간 Linux에 대한 경험이 없으므로 이것이 얼마나 쉬운 지 모르겠습니다.
어쨌든 다음 단계로 넘어 갑시다. RAM을 채우는 샘플링 시스템이 있습니다. 다음 부분은 트리거입니다. 트리거는 화면 새로 고침 빈도와 밀접한 관련이 있습니다. 기본적으로하는 일은 재미있는 샘플을 찾아 메모리에 저장하는 것입니다. 스코프가 트리거되면 메모리가 가득 찰 때까지 트리거 후 샘플링을 계속 한 다음 처리하여 화면에 표시합니다. 데이터가 처리되는 동안 샘플링 시스템은 종종 정지되고 데이터가 표시되기를 기다립니다. 저사양 스코프의 재생 빈도가 낮고 고급 스코프의 재생률이 특별하고 데이터가 표시 될 때까지 기다리는 시간이 훨씬 줄어 듭니다.
이 섹션에는 종종 샘플에서 신호 처리를 수행하는 또 다른 ASIC 또는 FPGA, 스코프가이를 지원하고 실제로 디스플레이 자체를 구동하는 경우 프로토콜 디코딩이 있습니다.
이것은 내가 볼 수있는 것에서 Pi가 실제로 빛날 수있는 부분입니다. 멋진 1920x1080 디스플레이를 구동 할 수 있으며 (스코프는 종종 800x600 미만의 토지에 있음) 프로토콜 디코딩을 매우 훌륭하게 수행 할 수 있습니다. 내가 볼 수있는 유일한 문제는 속도와 처리가 보류 시간에 어떤 영향을 미치는지입니다. 재생률이 낮 으면 좋은 로직 분석기를 얻을 수 있습니다.
마지막으로 USB 오실로스코프에 대한 단어와 USB가 이러한 유형의 프로젝트에 일반적으로 나쁜 이유 : 기존 USB 오실로스코프는 입력 및 샘플링을 수행하고 호스트 응용 프로그램이 존재하는 처리를 위해 샘플링 데이터를 PC로 보냅니다. 기본적으로 Pi와 매우 비슷한 것이 수행됩니다. 일반적으로 PC 응용 프로그램은 잘못 설계되었으며 버그로 가득합니다. 다음 나쁜 부분은 USB 자체입니다. "고속"모드에서 480Mb / s를 수행 할 수있는 고속 버스로 광고됩니다. 진실은 그런 고속을 지원할 수있는 USB 컨트롤러를 찾는 것은 극히 드물고 (평균은 내가 본 것에서 약 250Mb / s 인 것 같습니다), 프로토콜로는 실제에 적합하지 않다는 것입니다 시간 응용 프로그램. 먼저 허브의 모든 장치에서 공유됩니다 (Pi에는 이더넷 + USB 허브가 연결된 하나의 USB 포트만 있음). (SPI와 비교할 때) 오버 헤드가 비교적 높고 대기 시간이 높습니다 (각 샘플 당 1 MSa / s에서 1 µs 동안 지속되므로 샘플을 실시간으로 보낼 수 없으므로 보드에 메모리가 있어야 함을 기억하십시오) USB를 통해). 마지막으로 USB를 사용하면 데이터 수집 부분을 또 다른 USB 오실로스코프로 사용할 수 있으며 Pi를 사용하면 얻을 수있는 이점을 잃게됩니다. 기존의 데스크톱 컴퓨터는 훨씬 일반적이고 빠르며 쉽게 얻을 수 있으며 USB 기능이 훨씬 뛰어납니다.
편집 Gert van Loo
의 비교적 최근 게시물 을 읽었으며 Pi의 I ^ 2C에 대한 현실적인 속도는 400kHz이고 SPI의 경우 20MHz입니다.