본 연구에서는 Xilinx의 Zynq SoC(system on chip)를 이용하여 초음파신호의 포락선을 검출하기 위한 신호처리 시스템을 설계하였다. 설계 툴로 Vivado IDE(integrated design environment)를 이용하여, 초음파 신호처리를 위한 전체 과정을 계층적 블록의 형태로 설계하였다. 제안된 시스템은 Zynq-7010의 내장 ADC, FIR(finite impulse response) 밴드패스 필터, 절대값 계산모듈, FIR 로우패스 필터 및 Kalman 필터 등으로 구성되며, 최종 단으로서 FIR 로우패스 필터를 사용하는 HW design 방식과 Kalman 필터를 사용하는 HW/SW co-design 방식에 대해 성능과 유효성을 비교하였다. 비교결과, 포락선 검출 성능에 있어서는 두 방식이 서로 유사한 특성을 갖지만, 시스템 개발에 소요되는 시간 측면에서는 HW/SW co-design 방식이 HW design 방식에 비해 훨씬 더 효율적임이 확인되었다.
본 연구에서는 Xilinx의 Zynq SoC(system on chip)를 이용하여 초음파신호의 포락선을 검출하기 위한 신호처리 시스템을 설계하였다. 설계 툴로 Vivado IDE(integrated design environment)를 이용하여, 초음파 신호처리를 위한 전체 과정을 계층적 블록의 형태로 설계하였다. 제안된 시스템은 Zynq-7010의 내장 ADC, FIR(finite impulse response) 밴드패스 필터, 절대값 계산모듈, FIR 로우패스 필터 및 Kalman 필터 등으로 구성되며, 최종 단으로서 FIR 로우패스 필터를 사용하는 HW design 방식과 Kalman 필터를 사용하는 HW/SW co-design 방식에 대해 성능과 유효성을 비교하였다. 비교결과, 포락선 검출 성능에 있어서는 두 방식이 서로 유사한 특성을 갖지만, 시스템 개발에 소요되는 시간 측면에서는 HW/SW co-design 방식이 HW design 방식에 비해 훨씬 더 효율적임이 확인되었다.
In this research a signal processing system is designed for detecting the ultrasonic signal envelope using Xilinx's Zynq SoC(system on chip). As a design tool, Vivado IDE(integrated design environment) is used to hierarchically design the whole signal processing system. The proposed system consists ...
In this research a signal processing system is designed for detecting the ultrasonic signal envelope using Xilinx's Zynq SoC(system on chip). As a design tool, Vivado IDE(integrated design environment) is used to hierarchically design the whole signal processing system. The proposed system consists of a Zynq-internal ADC, an FIR(finite impulse response) BPF(band pass filter), an absolute value calculator, an FIR LPF(lpw pass filter), and the Kalman filter. Under this configuration, two design schemes, HW design scheme with LPF as a final stage and HW/SW co-design scheme with a Kalman filter as a final stage, are compared in terms of the performance and efficiency. As a result, envelope detecting performances of the two schemes are proved to be almost same, but the HW/SW co-design is verified to be much more efficient than the HW design considering the much smaller time consumption during system design.
In this research a signal processing system is designed for detecting the ultrasonic signal envelope using Xilinx's Zynq SoC(system on chip). As a design tool, Vivado IDE(integrated design environment) is used to hierarchically design the whole signal processing system. The proposed system consists of a Zynq-internal ADC, an FIR(finite impulse response) BPF(band pass filter), an absolute value calculator, an FIR LPF(lpw pass filter), and the Kalman filter. Under this configuration, two design schemes, HW design scheme with LPF as a final stage and HW/SW co-design scheme with a Kalman filter as a final stage, are compared in terms of the performance and efficiency. As a result, envelope detecting performances of the two schemes are proved to be almost same, but the HW/SW co-design is verified to be much more efficient than the HW design considering the much smaller time consumption during system design.
각 필터의 샘플링 주파수는 1MHz로 설정하였다. Kalman 필터의 R은 900, 2500, 10000으로 하고 Q는 1로 설정하여, R값 변동에 따른 결과를 분석하였다. Kalman 필터 적용에 앞서 그림 9에 보인 수행코드에 대해 수행 주기를 계산하여 수행 사이클이 약 2MHz 임을 확인하였다.
설계 툴로 Vivado IDE를 이용하여 초음파 신호처리 전체 과정을 IP들을 기반으로 한 계층적 블록의 형태로 설계하였다. 또한, 시스템 각 요소에서의 신호처리 결과를 실시간 확인하기 위하여 Vivado ILA를 Zynq SoC 내에 포함시켜 별도의 모니터링 장치 없이 전체 신호처리와 분석이 Zynq SoC만으로 이루어지도록 하였다. 신호처리 시스템은 Zynq-7010의 내장 12비트 ADC, FIR 밴드패스 필터, 절대값 계산모듈, FIR 로우패스 필터 및 Kalman 필터 등으로 구성되며, 최종단으로서 FIR 로우패스 필터를 사용하는 HW design 방식과 Kalman 필터를 사용하는 HW/SW co-design 방식에 대한 성능과 유효성을 비교하였다.
로직분석기용 IP인 Vivado ILA를 사용하여 별도의 모니터링 장치가 필요 없이 시스템 각 요소의 신호처리 결과를 실시간 확인한다. 이를 위해서 그림 4에 보이는 것과 같이 시스템에서 분석이 필요한 지점에 간단히 디버그 마크(#)를 부착하면 되는데, ILA는 시스템 운전도중에 디버그 마크가 놓인 지점에서 발생되는 결과 값들을 FPGA의 블록-램에 저장하여 두고 USB를 통해 외부 PC로 전송하여, 시스템의 동작과정을 실시간으로 분석할 수 있도록 한다.
본 연구에서는 모바일 장치의 이동 궤적을 추종하기 위한 초음파신호 전처리 과정으로서 초음파신호의 포락선[9]을 검출하기 위한 신호처리 시스템을 Zynq를 이용하여 제작하였다. 모바일 장치에 부착된 초음파 발신모듈로부터 발생된 초음파 신호가 초음파 수신모듈에 인가되면, 모듈에 연결된 Zynq-7010의 내장 12비트 ADC에 의해 일차적으로 샘플링이 되고, FIR(finite impulse response) BPF(band pass filter)와 절대값 계산기를 통과한다.
본 연구에서는 Xilinx의 Zynq-7010 SoC를 이용하여 초음파신호의 포락선을 검출하기 위한 신호처리 시스템을 제작하였다. 설계 툴로 Vivado IDE를 이용하여 초음파 신호처리 전체 과정을 IP들을 기반으로 한 계층적 블록의 형태로 설계하였다. 또한, 시스템 각 요소에서의 신호처리 결과를 실시간 확인하기 위하여 Vivado ILA를 Zynq SoC 내에 포함시켜 별도의 모니터링 장치 없이 전체 신호처리와 분석이 Zynq SoC만으로 이루어지도록 하였다.
이 경우 시스템의 구조 변경이 간편하여 복잡한 시스템 설계에 매우 유용하다. 시스템 각 블록의 출력을 실시간 확인하기 위하여 로직분석기용 IP인 ILA (Integrated Logic Analyzer)를 Zynq 내에 포함시켜 별도의 모니터링 장치 없이 모든 신호처리와 분석과정이 Zynq만으로 이루어지도록 하였다.[13]
시스템 설계 툴로서 Xilinx의 Vivado IDE(Integrated Design Environment)[11]를 이용하여 IP(Intellectual property)[12]들을 기반으로 한 계층적 블록의 형태로 전체 시스템을 설계한다. 이 경우 시스템의 구조 변경이 간편하여 복잡한 시스템 설계에 매우 유용하다.
또한, 시스템 각 요소에서의 신호처리 결과를 실시간 확인하기 위하여 Vivado ILA를 Zynq SoC 내에 포함시켜 별도의 모니터링 장치 없이 전체 신호처리와 분석이 Zynq SoC만으로 이루어지도록 하였다. 신호처리 시스템은 Zynq-7010의 내장 12비트 ADC, FIR 밴드패스 필터, 절대값 계산모듈, FIR 로우패스 필터 및 Kalman 필터 등으로 구성되며, 최종단으로서 FIR 로우패스 필터를 사용하는 HW design 방식과 Kalman 필터를 사용하는 HW/SW co-design 방식에 대한 성능과 유효성을 비교하였다. 비교결과, 초음파신호 포락선 검출 성능측면에서는 두 방식이 서로 유사한 특성을 갖지만, 시스템 개발기간 측면에서는 HW design에 비해 HW/SW co-design이 훨씬 더 효율적임을 확인 할 수 있었다.
로직분석기용 IP인 Vivado ILA를 사용하여 별도의 모니터링 장치가 필요 없이 시스템 각 요소의 신호처리 결과를 실시간 확인한다. 이를 위해서 그림 4에 보이는 것과 같이 시스템에서 분석이 필요한 지점에 간단히 디버그 마크(#)를 부착하면 되는데, ILA는 시스템 운전도중에 디버그 마크가 놓인 지점에서 발생되는 결과 값들을 FPGA의 블록-램에 저장하여 두고 USB를 통해 외부 PC로 전송하여, 시스템의 동작과정을 실시간으로 분석할 수 있도록 한다.
XAdc_SysMon 블록의 내부 구조를 보이면 그림 5와 같다. 코어 IP인 XADC Wizard[14]와 여러 부수적인 IP들이 서로 연결되어 Zynq가 내장한 12비트 ADC와 인터페이스를 수행한다. 여기서 SelectXadcZybo_0는 사용자가 제작한 IP로, 입력채널 7, 14, 15에 대한 AD 변환결과를 레지스터에 저장하고 이들 중에서 초음파 신호가 입력되는 채널14에 대한 변환결과를 FIR BPF 쪽으로 출력한다.
이 경우는 ADC로부터 FIR BPF에 이르는 모든 블록들이 Zynq의 FPGA 패브릭영역에 설계되기 때문에 HW design이라 할 수 있다. 한편, 1차원 Kalman 필터를 사용하여 FIR LPF를 대체할 수 있도록 하였다. 이 경우는 ADC로부터 ABS 모듈까지는 FPGA에 설계되고 Kalman 필터는 c-코드로 ARM 내에 프로그래밍되기 때문에 HW/SW co-design이 된다.
이론/모형
그림 7은 FIR Compiler IP를 이용하여 101 스텝 밴드패스 필터의 파라미터들을 설정하는 모습을 보인다. 이들 중에서 필터의 계수 벡터 값은 Matlab의 디지털 필터 설계 툴인 fdatool[16]을 이용하여 미리 구하고, FIR Compiler IP 파라미터 설정에 활용하였다. FIR_LPF 블록도 FIR_BPF 블록과 동일한 과정을 통해 설계하였다.
성능/효과
여기서 첫 번째 방식은 ADC부터 FIR LPF까지의 모든 구성요소가 모두 Zynq의 FPGA 측에 설계되는 HW design에 해당하고, 두 번째 방식은 FIR LPF를 대체하여 Kalman 필터에 의해 포락선을 검출하는 것으로, Zynq의 ARM측에 Kalman 필터를 위한 c-코드가 탑재되어 HW/SW co-design에 해당된다. 본 연구에서는 이 두 가지 설계방식에 대해 성능과 유효성을 비교하여 포락선 검출 성능에 있어서는 두 방식이 서로 유사한 특성을 갖지만, 시스템 개발에 소요되는 시간 측면에서는 HW/SW co-design이 훨씬 더 효율적임을 보인다.
신호처리 시스템은 Zynq-7010의 내장 12비트 ADC, FIR 밴드패스 필터, 절대값 계산모듈, FIR 로우패스 필터 및 Kalman 필터 등으로 구성되며, 최종단으로서 FIR 로우패스 필터를 사용하는 HW design 방식과 Kalman 필터를 사용하는 HW/SW co-design 방식에 대한 성능과 유효성을 비교하였다. 비교결과, 초음파신호 포락선 검출 성능측면에서는 두 방식이 서로 유사한 특성을 갖지만, 시스템 개발기간 측면에서는 HW design에 비해 HW/SW co-design이 훨씬 더 효율적임을 확인 할 수 있었다. 향후에는 본 연구결과를 이용하여 초음파 TOF를 구하고 이동체의 궤적을 추종하는 연구를 수행할 것이다.
Kalman 필터 적용에 앞서 그림 9에 보인 수행코드에 대해 수행 주기를 계산하여 수행 사이클이 약 2MHz 임을 확인하였다. 이를 통해 기본파 80kHz인 초음파 정류신호의 필터링에 Kalman 필터를 적용할 수 있음을 알 수 있다.
따라서, R값을 적절히 조절하면 필요한 특성을 얻을 수 있을 것으로 판단된다. 이상의 결과들로부터 HW design과 HW/SW co-design를 비교하면, Kalman 필터를 사용하는 HW/SW co-design이 FIR 필터를 사용하는 HW design에 비해서 필터의 속응성은 좋지만 응답 리플이 상대적으로 커지는 것을 알 수 있다. 한편, 시스템 개발 기간 측면에서는 HW/SW co-design이 훨씬 더 효율적임을 확인하였다.
이상의 결과들로부터 HW design과 HW/SW co-design를 비교하면, Kalman 필터를 사용하는 HW/SW co-design이 FIR 필터를 사용하는 HW design에 비해서 필터의 속응성은 좋지만 응답 리플이 상대적으로 커지는 것을 알 수 있다. 한편, 시스템 개발 기간 측면에서는 HW/SW co-design이 훨씬 더 효율적임을 확인하였다.
후속연구
비교결과, 초음파신호 포락선 검출 성능측면에서는 두 방식이 서로 유사한 특성을 갖지만, 시스템 개발기간 측면에서는 HW design에 비해 HW/SW co-design이 훨씬 더 효율적임을 확인 할 수 있었다. 향후에는 본 연구결과를 이용하여 초음파 TOF를 구하고 이동체의 궤적을 추종하는 연구를 수행할 것이다.
질의응답
핵심어
질문
논문에서 추출한 답변
Zynq-7000 SoC 시리즈란?
이들 중에서 Zynq-7000 SoC 시리즈는[1] Xilinx의 7Series FPGA 패브릭과 듀얼코어 Cortex-9 ARM 프로세서를 통합한 것으로서 고성능 디지털 신호처리가 요구되는 분야에서 다양하게 적용되고 있다. 논문 [2]와[3]은 각각 실시간 시스템과 내장 시스템에 Zynq SoC(system on chip)를 적용하여 얻어지는 장점들을 보이고, [4]는 도로상의 신호판 인식에, [5]는 크루즈 제어를 위한 프로토타이핑 장치에 Zynq를 적용한 결과를 보인다.
디지털 신호처리 알고리즘을 FPGA로 구현할 경우 어떤 장단점이 존재하는가?
DSP를 사용하는 종래의 알고리즘 구현방식은 이러한 고성능 신호처리 요구조건을 충족시키지 못하여 최근에 FPGA(Field Programmable Gate Array)를 사용하는 사례가 증가하고 있다. 이 경우 고속처리 성능뿐만이 아니라 필드의 요구에 따라 FPGA 패브릭을 재구성하여 유연하게 적용할 수 있는 장점이 있지만, 하드웨어 기술 언어인 HDL(Hardware Description Language)를 사용해야하기 때문에 프로그래밍이 쉽지 않다. 한편, FPGA와 DSP 또는 마이크로프로세서를 하나의 칩내에 통합하여 HW/SW co-design이 가능한 장치들이 개발되고 있는데, 하드웨어와 밀접한 부분은 FPGA에 구현하고 프로세서에는 종래의 c-프로그래밍에 의한 소프트웨어 어플리케이션을 구현하여 최적의 성능을 얻을 수 있다.
디지털 신호처리 알고리즘이 발전함에 따라 무엇이 요구되는가?
디지털 신호처리 알고리즘의 발전에 따라 더욱 고성능의 고속 연산이 가능한 장치가 요구된다. DSP를 사용하는 종래의 알고리즘 구현방식은 이러한 고성능 신호처리 요구조건을 충족시키지 못하여 최근에 FPGA(Field Programmable Gate Array)를 사용하는 사례가 증가하고 있다.
참고문헌 (16)
"Zynq-7000 All Programmable SoC Overview," DS190 (v1.6) Xilinx, December 2, 2013.
Fleming, S. T. and Thomas, D. B., "FPGA based control for real time systems," 23rd International Conference on Field Programmable Logic and Applications(FPL), pp. 1-2, 2013,
Eberli, F., "Next Generation FPGAs and SOCs-How Embedded Systems Can Profit," IEEE Conference on Computer Vision and Pattern Recognition Workshops(CVPRW), pp. 610-613, 2013.
Russell, M. and Fischaber, S., "OpenCV based road sign recognition on Zynq," 11th IEEE International Conference on Industrial Informatics (INDIN), pp. 596-601, 2013.
Wehner, P., Ferger, M., Gohringer, D., and Hubner, M., "Rapid prototyping of a portable HW/SW co-design on the virtual zynq platform using SystemC," IEEE 26th International Conference on SOC(SOCC), pp. 296-300, 2013.
Gilliland, S., Govindan, P., Gonnot, T., and Saniie, J., "Performance evaluation of FPGA based embedded ARM processor for ultrasonic imaging," IEEE International Ultrasonics Symposium (IUS), pp. 519-522, 2013.
Bruckner, H. P., Spindeldreier, C., and Blume, H., "Energy-efficient inertial sensor fusion on heterogeneous FPGA-fabric/RISC System on Chip," Seventh International Conference on Sensing Technology (ICST), pp. 506-511, 2013.
Astarloa, A., Lazaro, J., Bidarte, U., Zuloaga, A., and Idirin, M., "System-on-Chip implementation of Reliable Ethernet Networks nodes," 39th Annual Conference of the IEEE Industrial Electronics Society, IECON, pp. 2329-2334, 2013.
J. Y., Cho and M. H., Kang, "Design of a Ultrasonic Oil Level Meter Using a FPGA," Journal of The Institute of Electronics Engineers of Korea, Vol. 49, no. 11, pp. 169-174, November 2012.
Ramsey, F., "Understanding the Basis of the Kalman Filter Via a Simple and Intuitive Derivation," IEEE SIGNAL PROCESSING MAGAZINE, pp. 128-132, SEPTEMBER 2012.
Vivado Design Suite User Guide, Using the Vivado IDE, Xilinx, Dec. 18, 2013.
Vivado Design Suite User Guide, Designing with IP, Xilinx, May 1, 2014.
Vivado Design Suite User Guide, Programming and Debugging, Xilinx, Apr. 2014.
LogiCORE IP XADC Wizard v3.0 Product Guide for Vivado Design Suite, Oct. 2, 2013
LogiCORE IP FIR Compiler v7.1 Product Guide for Vivado Design Suite, Dec. 18, 2013
Signal Processing Toolbox For Use with MATLAB version 6, the MathWorks, 2013.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.