매우 정확한 시간 측정


13

가능한 한 매우 짧은 시간을 정확하게 측정하려고합니다. 이 장치는 처음에는 하나의 펄스를 가지며 각각의 와이어에 150 마이크로 초 내에 6 개 더 있습니다. 첫 번째 신호와 6 개의 다른 신호 각각의 시간은 가능한 정확하게 측정해야합니다. 정확도는 100 나노초 이상이어야하지만 더 좋습니다.

어떤 마이크로 컨트롤러가 가장 적합합니까? 나는 이것을 발견 했다 . 그들은 4 나노 초의 타이머를 가진 것 같습니다. 그것은 나를 위해 충분히 정확할 것입니다.

다른 마이크로 컨트롤러 가이 작업을 수행하는 것이 더 좋을까요? AVR로이 작업을 수행 할 수 있습니까?


2
나는 당신이 정확성이 아니라 정확성에 대해 이야기하고 있다고 생각합니다. 나노초 정밀도를 가지고 있지만 기본 클럭이 10 % 꺼져 있으면 어떻게됩니까? 그런 다음 측정이 정확하지 않습니다.
Kaz

6 개의 맥박이 얼마나 떨어져 있습니까? 공통 입력 또는 6 개의 개별 입력에 도착합니까?
starblue

그들은 모두 자신의 입력이 있습니다. 펄스는 때때로 동시에 올 수 있지만 일반적으로 다른 시간에옵니다.
Kestis

답변:


8

마이크로 컨트롤러의 속도가 항상 제한 요인은 아닙니다. MSP430은 최대 25MHz까지만 실행되는 것이 아니라 여러 MSP430 장치에 최대 4ns 시간 (256MHz)을 가능하게하는 타이머 D 주변 장치가 있기 때문에 적절한 솔루션이 될 수 있습니다. 이것은 거의 모든 마이크로 컨트롤러보다 빠릅니다. 최신 버전 (F4)의 STM32조차도 180MHz 만 수행 할 수 있습니다.

타이머 D는 MSP430F51x1 및 MSP430F5131과 같은 MSP43051x2 장치에서 사용할 수 있습니다.

그러나 이것은 시간을 포착 할 수있는 것만 해결합니다. 큰 문제는 처리 자체가 느리기 때문에 무엇을해야합니까? 두 펄스 사이의 시간을 샘플링 할 수는 있지만 그 사이에 어떤 처리도 할 수 없습니다.


TI의 웹 사이트가 파블로프의 증오 발작을 유발하기 때문에 MSP430의 RTFM이 완전히 나쁘지 않았습니다.
John U

@ JohnU : 그런 반응이 없었습니다. 진실은 OP가 자신이하고있는 것에 대한 많은 정보를 명시하지 않았기 때문에 적절한 제안을하기가 어렵다는 것입니다.
구스타보 리 토프 스키

처리에는 문제가 없습니다. 시간이 포착되고 알고리즘이 복잡하지 않으면 계산을 수행하는 데 몇 초가 걸립니다. 하나의 MSP430이 6 개의 펄스를 모두 처리 할 수 ​​있습니까? 아니면 더 많은 펄스가 있어야합니까?
Kestis

@Kestis : Timer D에는 6 개의 캡처 비교 레지스터가 포함되어 있으며 일부 MSP430에는 하나 이상의 Timer D 모듈이 있으므로 요구 사항에 맞아야합니다.
Gustavo Litovsky

4

100ns의 해상도로 타이밍하려면 10MHz에서 실행되는 타이머가 필요합니다. 많은 마이크로 컨트롤러가 타이머를 빠르게 실행할 수 있어야합니다.

6 개의 신호가 도착할 때 문제가 발생합니다. 이 신호들이 모두 같은 와이어에 있거나 각각 다른 와이어에 있습니까?

모두 동일한 와이어에 있으면 단일 10MHz 타이머가있는 모든 MCU에서이 작업을 정확하게 수행 할 수 있습니다. 순진 하게이 작업을 수행하는 코드는 다음과 같습니다.

wait for trigger signal
reset timer

wait for first signal
save timer value
reset timer

....

wait for sixth signal
save timer value
reset timer

문제는 타이머를 재설정하는 데 유한 한 시간이 걸린다는 것입니다. 이로 인해 두 가지 문제가 발생합니다.

  1. 구현 시간에 따라 측정 시간이 몇 100ns 정도 잘못 될 수 있습니다. 그러나 일관되게 잘못되어야합니다. 매번 정확히 같은 양으로 IE가 잘못되었습니다. 즉, 각 측정에 소량을 추가하여 쉽게 보상 할 수 있습니다.

  2. 측정 할 수있는 최소 시간이 있습니다. 이전 펄스 이후 100ns에 도달하면 놓칠 수 있습니다. 소프트웨어에서 할 수있는 일이 있는지 모르겠습니다. 하드웨어에서 여러 펄스를 처리 할 수있는 마이크로 컨트롤러를 찾아야합니다.


하드웨어에서 여러 펄스를 처리 할 수있는 마이크로 컨트롤러는 무엇입니까? 싸이프레스의 PSoC ! 이것은 구성 가능한 디지털 블록도 포함하는 마이크로 컨트롤러로, 각각 60MHz에서 6 개의 개별 타이머를 쉽게 실행할 수있어 20ns 이상의 해상도를 제공합니다.

6 타이머 PSoC Cypress

여기 당신이 그것으로 할 수있는 것들을 보여주기 위해 빨리 넘어진 예가 있습니다. 나는 6 개의 개별 타이머를 가지고 있는데, 모두 버스 클럭에서 실행되며 최대 67MHz까지 올라갈 수있다. 실행중인 모든 타이머를 시작하는 트리거 핀과 6 개의 다른 핀이 있으며 각 핀은 타이머에서 캡처 이벤트를 발생시킵니다. 상태 레지스터를 사용하면 코드에서 펄스를 캡처하는 타이머를 모니터링 할 수 있습니다. 코드는 타이머에서 값을 읽을 수 있습니다.


PSoC는 매우 흥미로운 것 같습니다. 그러나 AVR 또는 MSP430이 훨씬 일반적이기 때문에 선호합니다.
Kestis

0

수정 된 답변 : 빠른 디지털 스토리지 오실로스코프 또는 주파수 카운터 장치.

이전 답변 :

간단히 말해서, "가장 빠른 마이크로 컨트롤러"는 클럭 / 샘플링이 빠를수록 정확할 수 있다는 근거입니다. MSP430은 빠른 장치가 아닙니다.

STM32는 32 비트이며 더 빠르게 작동 할뿐만 아니라 저렴한 개발 보드 및 도구를 사용할 수 있지만 일부 강력한 기능 (Raspberry Pi @ 800MHz-1GHz (Overclocked))에 비해 상당히 느립니다. 그러나 일반적으로 빨리 갈수록 프로세서가 복잡해 지므로 학습 곡선에 상충 관계가 생길 수 있습니다.

추가 : Benji가 맞습니다. 매우 정확한 측정 을 원한다면 마이크로에 대한 정확한 오실레이터가 필요할 수도 있습니다 ( 질문에 오류 범위를 지정하지 않았습니다).


기본적으로 루프에서 신호를 샘플링하는 마이크로 컨트롤러 이외의 다른 유형의 타이머가 있습니다.
Nick Alexeev

그리고 마이크로 컨트롤러에 매우 정확한 외부 발진기 / 크리스탈이 부착되어 있으면 도움이됩니다.
BenjiWiebe

당신 둘 다 맞아, 내가 편집했다.
John U
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.