본문 바로가기

카테고리 없음

고속디지타이저 응용 (실시간 시스템 구축시 고려해야 할 점)

실시간 시스템 구성시 디지타이저 필수구비  항목은?? 뭘까요?? 

일반적으로 산업용으로 사용되고 있는 PC 기반 디지타이저들은 커스텀 신호처리 시스템 용도로 사용된다 

일반적으로 사용하는 Digital Signal Oscilloscope 보다도 분해능이 뛰어나며 연산능력또한 뛰어나다.
연산장치인 CPU를 보자면  Digital Signal Oscilloscope의 CPU의 차이는 펜2~3 급이 대다수로,
비약적으로 발전하는 PC시스템의 CPU와는 글쎄???? 비교가 될까? 
또한 고속 디지타이저는 샘플링 속도별로 데이터를 정교하게  샘플링을 할수가 있다.
하지만 단점도 있으니, 시스템 구성 가격이 높다. 예를들자면, 맞춤정장과 기성정장의 차이정도로 생각하면 될 것이다. 

고속 데이터 저장 및 데이터 분석, 처리, 가공 용도로는 오실로스코프보다 고속디지타이저와 산업용 PC 의 조합이
더 적합하다. 

아래의 그림은 현재 쓰고 있는 디지타이저 및 PC시스템이다.  사진은 생략하겠다. 블로그 업뎃이 너무 오래되어서 사진이 박살난듯 하다. 



현재 화면상에서 14비트 해상도로 2 채널 400MHz로 샘플링 하는것을 볼수 있다.

레코딩시에는 레이드 어레이만 충분하게 연결해주면 실시간으로 1.4기가바이트의 분석된 데이터를 저장이 가능하다. 

시중에는 수많은 고가의 고속디지타이저가 있지만  실시간 어플리케이션을 구축시 고해상도와 "데이터 스트리밍"속도, "샘플링속도" 란 가장 중요한 요소를 모두 충족시키는 디지타이저는 몇 안된다. 

예전과 달리 요즘은 PC의 DMA(Direct Memory Access)를 지원하는 디지타이저는 널렸다. 걍 아무거나 사용해라. 
DMA를 이용하면 CPU 간섭 없이 실시간 처리 데이터를 PC로 보내던 아니면 PC의 램으로 보낼수 있다.  

사실 요즘은 램상에서 모든 연산을 완료 할 수 있다. 더 세련된 방법은 디지타이저 온 칩 FPGA 내에서 Averaging, FFT 와 같은 연산을 완료 후 최종 데이터만 PC로 보내는 것이다. 사실 생각해보다 초당 4억개씩 쌓이는 어마무시한 양의 샘플 데이터를 어떻게 분석 할래? 악몽이 따로 없다.       

쉽게 말하자면 고속디지타이저가 열심히 고속 샘플링 할때,
샘플링된 데이터는 PCI버스를 통해서 보조기억장치(HDD) 및 주기억장치 (PC Ram) 혹은 자신이 가지고 있는 온보드 메모리에 저장 되어야 한다. 하지만 연속적인 데이터 스트리밍과 저장을 위해선 온보드 디지타이저의 Ram용량은 한계가 있으므로 64 비트 운영체제를 사용하고 있는 PC의 대용량 메모리에 저장을 하거나 바로 레이드 시스템으로 저장 시켜야 한다. 
이때 대용량의 데이터를 실시간으로 처리하기 위해선 PCI버스의 전송대역폭의 확보와 저장 방식이다. 
초당 1.4기가바이트를 저장하기 위해서는 적어도 8 Lane의 PCI Express 버스가 필요하며,
DMA(Direct Memory Access)를 통해 CPU의 간섭을 받지 않고 PCI카드의 데이터를 즉시 PC상의 Ram에 샘플링 된데이터를 저장하는 후처리 방식이 유용합니다.
또한 고속 샘플링 출력된 데이터의 연산을 위해서는 cpu의 성능도 무시할수가 없다. 
일반적으로 산업용 CPU들을 싱글 혹은 듀얼 혹은 그이상으로 묶어들 쓴다. 

머 위에글이 잘못된 예기는 아니지만 너무 구식이라 밑줄 쫘악 그엇다.

결론 : 궁금한거 있음 나한테 물어봐. 시간 허비하지 말고. 

관련링크 :  http://www.signatec.com/products/daq/high-speed-fpga-pcie-digitizer-board-px14400.html
             :  http://blog.daum.net/digitizer