오실로스코프 프로젝트에 Pi가 충분히 강력합니까?


18

저의 목표는 오실로스코프부터 시작하여 Pi 기반 계측기를 만드는 것입니다. 그래서 나는에 대한 답변을 읽습니다.

매우 낮은 샘플링 속도로 아날로그 입력을 읽을 수는 있지만 초 당 메가 샘플에 도달 할 수 있을지 궁금합니다. 지속적인 데이터 수집은 가능하다면 어려울 수 있으므로, 없이는 할 수 있습니다. Pi는 그에 대한 준비가되어 있지 않습니까? 처음 Pi에 연결된 디스플레이에서 파형을 관찰하고 나중에 모바일 장치에서 Pi를 무선으로 전송하는 동안 파형을 관찰하고 싶습니다.

시스템 온 칩에 대한 나의 경험은 이러한 시스템이 연속 I / O에서 쉽게 포화 될 수 있음을 말해줍니다. Pi도 마찬가지입니까?

답변:


22

오실로스코프의 기능에 대한 높은 수준의 개요를 살펴 보겠습니다.

먼저 아날로그 프론트 엔드가 있습니다. 여기에는 프로브에 대한 임피던스 매칭 네트워크가 있지만 프로브에는 커패시턴스 매칭 부분이 있어야합니다. 아날로그-디지털 변환기. 나는 아날로그에 대해 잘하지 않기 때문에 이것에 대해 너무 많이 말하지 않을 것이지만 결론은 다음과 같습니다.이 섹션에서 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입니다.


답의 정점은 무엇입니까? 이것은 위키와 비슷합니다.
Piotr Kula

@ppumkin 예, 이와 같은 질문에는 그러한 대답이 필요합니다. 글쎄요. Pi가 수집을 수행한다고 가정 할 때 필요한 장치의 예상 성능에 대한 충분한 정보가 제공되지 않았으며, 낮은 주파수의 경우 결론은 그렇습니다. Pi가 수집을하지 않으면 USB 성능이 좋지 않아 Pi를 사용하는 것은 의미가 없습니다.
AndrejaKo

8

우리는 Raspberry Pi가 이와 같은 프로젝트에 필요한 소프트웨어를 실행하기위한 훌륭한 플랫폼이라는 것을 알았습니다. 문제는 먼저 신호를 RPi로 가져오고 O / S 및 애플리케이션 소프트웨어를 실행하는 동일한 CPU에서 고속 지터없는 실시간 신호 캡처를 수행하는 것입니다. 당사의 솔루션은 BitScope (고속 혼합 신호 파형 캡처 용)를 필요한 모든 소프트웨어를 실행하는 Raspberry Pi와 쌍을 이루는 BitScope Raspberry Pi Oscilloscope 입니다.

여기에 이미지 설명을 입력하십시오


shameless plug =)
lenik

2
대단해. 그러나 그것은 답과 관련이 없습니다! 또는 Pi가 오실로스코프가 되기에는 약하다는 것을 증명할 수 있습니까?
Piotr Kula

Pi는 "너무 약한"것은 아니지만 (고속) 파형 획득에 필요한 I / O 기능이 없습니다. 원래 질문의 단어에서, 그것은 "그것에 장착되어 있습니다":-)
BitScope

2

주의 : 이것은 더 큰 생각을하는 텍스트보다 실제 답변입니다.

그 생각은 얼마 전에 내 마음을 넘어 갔고, 나는 여전히 일반적인 생각을 좋아합니다!

내가 아는 한, 하이 엔드 스코프는 15 년 (또는 그 이상) 이후에 컴퓨터 (PC)에 불과한 전문 고속 I / O를 보유하고 있습니다. 비슷한 I / O가 RPi에 설계 / 연결될 때 그 결과는 놀랍습니다.

이를 수행하는 좋은 방법은 RPi가 수집 된 데이터 (예 : USB 포트를 통해 수신)를 저장 및 표시하고 일부 특수 하드웨어가 고속 측정을 수행하도록하는 것입니다. 이 고속 측정 장치는 사용자 입력 또는 이와 유사한 것을 기반으로 RPi로 제어 할 수도 있습니다.

RPi의 첫 번째 버전에서는 USB 포트에 문제가 있었지만 현재 해결 된 경우 최근에 검색하지 않았습니다. 새로운 2.0 버전의 RPi에 이러한 문제가 없어야한다는 소문도 들었지만이 소문도 확인하지 않았습니다.

외부 (특수) 하드웨어가없는 결과는 I / O 포트의 수와 전체 OS가 실행되고 있기 때문에 제한적이라고 생각합니다 (실시간 옵션을 제한 함). 자신의 OS를 작성할 계획이 아니라면?

또한 이러한 목적으로 I2C 칩을 사용하는 것은 정말 좋은 일을하기에 충분한 속도를 갖지 못할 것입니다. SPI는 이미 더 많은 대역폭을 제공하지만 (헤드 상단에서 최대 100Mhz) USB를 사용하고 필요한 경우 압축하거나 데이터를 보내기 전에 좋은 인코딩 체계를 사용하여 더 많은 대역폭을 얻습니다.

RPi에 추가해야하는 하드웨어는 RPi 자체보다 훨씬 비쌉니다.

마지막으로 (이 주제에 대한 공상을 멈추기 전에) 인터넷 검색으로 인해 일부 그룹이 이미이 작업을 수행하더라도 놀라지 않을 것입니다.


1

대답은 '예'입니다.

충분히 강력합니다! 그러나 특정 주파수에 대해서만-한계 때문에 이미 지적했듯이.

그래서! -> 무엇을 측정하고 싶은지 스스로에게 물어봐야합니까?

  • 구체적으로 무엇을 측정하고 싶은지 묻지 않기 때문에 답을 구할 수 있습니다.
  • 대안과 제안을 소개하겠습니다. 어쩌면 일반적인 오실레이터 주제가 아닌 라즈베리에 더 특정한 새로운 질문을 할 수 있습니다!

오실레이터는 5USD의 간단한 저주파부터 범위가 있고 작은 집만큼이나 50Ghz +까지 처리 할 수 ​​있습니다! 75,000USD-100,000USD!

라즈베리는 433MHz 무선 신호, 저속 CPU 버스 통신, TTS / UART, I2C 디버깅과 같은 하위 기가 주파수를 측정하기에 충분할 것이라고 생각합니다. Raspberry는 실시간 OS를 실행하지 않기 때문에 더 높은 주파수는 실제로 정확하지 않습니다. 따라서 OS로 시작해야합니다 (또는 언급 된 외부 실시간 장치-그러나 요점은 무엇입니까?)

그러나 실제로 신호를 측정하려면 Raspberry 사양과 동등한 가격으로 가격이 매우 좋은 장치를 구입할 수 있습니다. 그러나 이미 기능이 풍부하고, 디자인이 성숙하고, 취미 환경에서 편리하게 사용할 수 있음을 입증했습니다.

여기서 바퀴를 다시 만들 필요가 없습니다. 예를 들어 100USD 미만의 단일 채널에 대한 DSO Nano.

여기에 이미지 설명을 입력하십시오

200USD 미만의 DSO 나노 쿼드 채널

여기에 이미지 설명을 입력하십시오

그리고, 라즈베리 나 그와 비슷한 장치로는 할 수없는 일입니다!

그리고 작은 재산 비용 ...

여기에 이미지 설명을 입력하십시오

  • 최대 110Ghz, 데이터를 저장하기위한 하드 드라이브, 매우 정밀한 시뮬레이션 및 트리거.
  • Buuetooth, WCDMA / EDGE / 3G / 4G, 무선 A / B / G / N 2.4Ghz / 5Ghz, SATA, AGP / PCI / PCI-Express, 원시 위성 신호, 하드 드라이브 헤드 채널, 이더넷 등을 측정합니다. .

2
Rohde & Schwarz처럼 내 RPi를 멋지게 만들 수 있습니다. 어쩌면 언덕을 약간 넘어
서면 좋을 것

롤! 그것은 아픈 눈에 대한 광경이 될 것입니다 :)
Piotr Kula

1

TiePie 엔지니어링 Handyscope HS5 오실로스코프 / 임의 파형 발생기 중 하나를 USB 포트에 연결할 수 있습니다. 하나 이상의 오실로스코프를 동시에 사용하기 위해 Raspberry Pi 용으로 컴파일 된 라이브러리를 다운로드 할 수 있습니다. 계측기는 자체 타이밍과 메모리를 사용하므로 성능 손실이 없습니다. 따라서 Pi는 오실로스코프 프로젝트에 충분히 강력합니다.

Handyscope HS5

오실로스코프의 주요 사양 : 2 채널, 14 비트, 500MS / s, 250MHz 대역폭, 20MS / s 14 비트 연속 갭 프리 스트리밍, 채널당 32MS 메모리, 1ppm 시간 기준 정확도.

임의 파형 발생기의 주요 사양 : 1 µHz ~ 30 MHz 파형, 240 MS / s, 14 비트, 64 MS 메모리, -12 ~ 12 V 출력 (24 Vpp), 1 ppm 시간축 정확도.


여보세요. 앞으로 귀하가 광고하는 제품과의 제휴 관계를 공개하십시오. 감사합니다.

날 빕니다! 가격을보세요! 그래도 좋은 제품처럼 보입니다. 내 예산 범위에 없습니다.
Piotr Kula

제휴 공개 필요성을 알지 못했습니다. TiePie 엔지니어링과 제휴했음을 나타내는 텍스트가 변경되었습니다.
Marthein

0

가장 좋은 기회는 sigrok 과 프런트 엔드 libsigrok 가 Pi에서 컴파일 될 수 있는지 확인한 다음 호환 가능한 오실로스코프 하드웨어를 구입하는 것입니다. 그렇게하면 초당 최대 24 메가 샘플의 신호를 잡을 수 있습니다. 충분한 지식이 있으면 모바일 장치로의 무선 전송을 포함하여 원하는 방식으로 소프트웨어를 사용자 정의 할 수 있습니다.


0

Sigrok에 대해 이야기하는 사람이 있습니다. 가장 가까운 방법은 드라이버 EZ-USB FX2LP와 함께 잘 문서화 된 CY7C68013A를 사용하는 것입니다. 데스크톱 PC에서는 Weezy와 함께 작동하지 않지만 Jessy에서는 잘 작동합니다. 여기에 약 24 Msp에 대한 알려진 제한 사항이 있습니다. 카메라 인터페이스를 사용하여 다른 방법을 생각하고 있습니다. 이 인터페이스는 초당 2.1 메가 픽셀과 초당 30 프레임을 관리 할 수있어 초당 60 메가 "샘플"이상의 속도로 데이터를 GPU로 전송할 수 있습니다. 20MHz SPI 또는 USB보다 유용한 사운드.


이들은 디지털 인터페이스이므로 고속 ADC의 출력으로 구동하지 않으면 오실로스코프가 생성되지 않습니다. 대부분의 실용적인 솔루션은 대량의 샘플을 더 빨리 샘플링하지만 지속적으로 수행하지는 않습니다. 이는 일반적인 문제에 더 적합합니다.
Chris Stratton

-1

오디오 주파수로 제한되지 않는다면 저렴한 MCP3202 12 비트 듀얼 채널 A / D 변환기를 사용하여 spidev를 사용하여 pi에서 획득하고 pydatascope를 사용하여 TCP 소켓을 통해 이더넷을 통해 전달 된 데이터를 표시합니다. Pydatascope는 스펙트럼 분석기로도 작동합니다!

이중 채널을 갖도록 pydatascope 오픈 소스 코드를 비교적 간단하게 변경했습니다. 대부분 쉽고 간단했기 때문에 실제로 필요하지 않았습니다.

궁금한 점이 있으면 후속 조치를 게시하거나 직접 우편으로 보내 주시면 기꺼이 도와 드리겠습니다.


저작권이없는 이미지를 허가없이 사용하고 있습니다. 웹 사이트에서 저작권이있는 이미지를 제거하십시오.
James Phillips

답변 @James Philips에 감사드립니다. 귀하의 답변에서 이미지를 제거했습니다. 검토 대기 중입니다. 나는 그것을 추가 한 사람이 아닙니다. 관심있는 사람들의 이미지가 포함 된 사이트 주소를 제공 할 수 있습니까?
niw3
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.