본문 바로가기

2019/01

(12)
W5300 을 이용한 네트워크 카메라 구현 3/3 - 카메라 이미지 출력 및 영상처리 개요 [SRM32F4-RP] 보드에서 W5300을 제어 하고 고속 TCP전송 테스트 가 완료 되었으므로 네트워크를 통해 카메라 영상을 전송하는 테스트를 진행 해 보자. STM32의 카메라 인터페이스 DCMI를 이용하여 카메라 영상을 얻어 네트워크로 이미지 영상을 보내고 PC 호스트 프로그램에서 영상을 받아서 간단히 영상 처리 할수 있는 프로그램을 작성 할것이다. W5300을 이용하여 TCP 전송률 테스트 결과 60Mbps 이상 전송 가능하므로 640x480x2 Byte RAW(RGB565) 이미지 데이터를 초당 10장을 전송할 수 있다. RAW Data를 사용하는 이유는 영상 처리에 있어 최대한 손실을 없도록 하기 위해서 이다. 640x480 해상도의 RAW 이미지를 초당 10프레임 보내어 출력하고 간단..
W5300 을 이용한 UDP loopback 전송률 테스트 W5300을 이용한 Wiznet ioLibrary Driver 포팅 및 TCP Loopback 전송률 테스트 결과 코드를 활용하여 UDP통신에서 전송률 테스트를 해 보았다. Wiznet ioLibrary Driver 코드에서 제공하는 loopback_udps 함수를 이용하여 UDP 테스트 코드를 작성 했다. int32_t loopback_udps(uint8_t sn, uint8_t* buf, uint16_t port) { int32_t ret; uint16_t size, sentsize; uint8_t destip[4]; uint16_t destport; switch(getSn_SR(sn)) { case SOCK_UDP : if((size = getSn_RX_RSR(sn)) > 0) { if(size >..
[STM32F4-RP] OV2640 카메라 테스트2 - RAW 이미지 데이터 전송 테스트 W5300을 웹서버를 이용한 영상 전송 테스트 W5300을 웹서버를 이용한 영상 전송 테스트에서 JPEG 모드에서 스트리밍 영상 전송이 힘들다는 것을 확인 했다OV2640 을 RAW모드로 설정해서 UDP로 실시간 영상 전송하는 것을 확인 해 보자 카메라 제어 관련 코드는 STMicro에서 제공하는 ov2640.c 파일(https://github.com/STMicroelectronics/stm32-ov2640) 을 이용하였다. 카메라 관련 함수는 _user_code_cam.h 에 작성되어 있다. 카메라에서 라인데이터가 들어올 때 HAL_DCMI_LineEventCallback() 함수와 한프레임이 완료 되었을때 HAL_DCMI_VsyncEventCallback() 함수를 재 정의 해서 main 함수에 알려..
W5300 을 이용한 네트워크 카메라 구현 2/3 - TCP 전송률 테스트 Wiznet ioLibrary Driver 포팅 및 TCP Loopback 전송률 테스트 Wiznet ioLibrary Driver 포팅 W5300을 제어 하기 위해 가장 기본적으로 해야 할 일이 W5300의 레지스터에 원하는 값을 쓰고 읽어 보는 것이다. 레지스터의 값을 쓰고 읽는 함수는 Wiznet ioLibrary Driver에 포함되어 있고 보드에 맞도록 포팅해 주어야 한다. W5300 loopback 테스트 소스코드는 https://github.com/elabsystem/STM32_RP/tree/master/ex10_w5300_loopback 에서 확인 가능하다. W5300 테스트를 위한 [STM32F4-RP] 보드의 기본 개발환경 설정이 완료 되었다면 다운로드 받은 ioLibrary의 Ethe..
W5300 을 이용한 네트워크 카메라 구현 1/3 - 기본 개발환경 구성하기 W5300 테스트를 위한 테스트 보드 제작 및 기본 개발환경 설정 개요 Hardwired TCP/IP가 내장된 이더넷 컨트롤러 칩 W5300(https://www.wiznet.io/ko/product-item/w5300/)은 최대 80Mbps의 네트워크 성능이 있다고 한다. 고속의 네트워크 통신을 적용할 수 있는 분야로 카메라를 제작 해 보면 좋을것 같다. W5300을 이용한 네트워크 카메라를 제작 해 보려고 한다. 첫번째 단계로 W5300을 제어하기 위해 Wiznet ioLibrary Driver (https://github.com/Wiznet/ioLibrary_Driver)를 STM32에 포팅하고 TCP Loopback 테스트로 네트워크 성능을 측정해 볼것이다. 그다음 단계로 STM32 카메라 인터페..
[STM32F4-RP] OV2640 카메라 테스트1 - W5300을 웹서버를 이용한 영상 전송 [STM32F4-RP] OV2640 카메라를 테스트 해보자. W5300에서 웹서버 테스트코드를 활용해서 웹에서 영상을 볼 수 있도록 해볼 예정이다. STM32 DCMI 회로도 [STM32F4-RP] 보드의 카메라 인터페이스(DCMI) 핀맵은 아래 그림과 같다. STM32CubeIDE 설정 STM32에서 카메라는 DCMI 장치에서 설정 할 수 있다. STM32CubeIDE 를 이용하여 DCMI설정을 해 준다. 인터럽트를 사용할 수 있도록 설정하고 DMA 설정도 해 준다. 카메라 모듈에는 Master 클럭을 입력해 주어야 하는데 STM32의 PA8을 MCO로 설정하여 16Mhz의 시스템 클럭이 출력 되도록 해 주었다. 카메라관련 설정은 I2C 인터페이스로 가능하고 I2C2를 활성화 하도록 했다. 설정을 완료..
[STM32F4-RP] W5300을 이용한 웹서버 테스트 STM32F4-RP 보드를 이용한 W5300 개발환경 구성하기에서 포팅한 ioLibrary 의 장점은 표준화된 코드로 다양한 네트워크 응용 프로그램을 쉽게 작성할 수 있다는 것이다. Wiz550web 예제( https://github.com/Wiznet/WIZ550web) 를 참고 하여 간단히 W5300 Web Server 로 보드를 제어 할 수 있다. 표시할 웹페이지에 들어갈 코드를 메모리에 할당한다. const unsigned char index_page[] = { "\ \ \ Embedded Webserver Test\ \ \ %s\r\n", uri_name); } else if(strstr(p_http_request->URI, "led_on.html")) { Led1On(); printf("LED..
[STM32F4-RP Board] 보드 제작 STM32를 테스트 할 수 있는 MCU Board로 표준화 된 핀맵의 테스트 보드를 제작 했다. 여러가지 확장성을 고려 하여 실험하기 편한 형태로 제작 해 공통의 표준화된 핀맵을 사용하고 추후 확장성도 고려해서 Raspberry Pi 형태로 제작 했다. 이보드를 이용하여 다양한 네트워크 관련 응용 예제를 작성해 볼 예정이다. 기존에 제작된 다양한 확장 테스트 보드를 활용하면 쉽게 여러 응용분야게 적용 할 수 있다. 보드에는 표준화된 SSM 타입의 확장 보드를 연결 할 수 있고 Ethernet PHY 보드를 연결하여 STM32의 내장 Ehternet 기능도 사용 할 수 있다. 라즈베리 파이 핀맵(https://pinout.xyz/) 형태로 핀맵을 통일화 해서 라즈베리 파이에 연결 하거나 기존에 제작된 다양..