Cortex-M/EFM322013. 5. 1. 22:46

EFM32G210 EVM - W5200을 이용한 TCP/IP 전송 속도 테스트

EFM32G210 EVM - W5200을 이용한 TCP/IP 전송 속도 테스트



[XMega-EX EVM] 확장 테스트 보드를 이용하면 W5200모듈을 연결하여 이더넷 테스트가 가능하다.



EFM32G210 EVM W5200 TCP/IP 모듈 드라이버 코드

//-----------------------------------------------------------------------------

// W5100 HAL

#define W5100_CS_PORT GPIOA

#define W5100_CS_BIT BIT0


#define W5100_RST_PORT GPIOA

#define W5100_RST_BIT BIT1



#define W5100_IO_INIT() GPIO_PinModeSet(gpioPortA, 0, gpioModePushPull, 1);\

                                        GPIO_PinModeSet(gpioPortA, 1, gpioModePushPull, 1);\

                                        IINCHIP_CSon();


#define IINCHIP_CSoff() cbi(W5100_CS_PORT, W5100_CS_BIT)

#define IINCHIP_CSon() sbi(W5100_CS_PORT, W5100_CS_BIT)



#define IINCHIP_SPI_INIT() SPI0_Init();IINCHIP_SPI_SPEED();

#define IINCHIP_SpiSendData SPI0_WriteReadByte

#define IINCHIP_SpiRecvData SPI0_WriteReadByte

#define IINCHIP_SPI_SPEED()            MMC_SPISpeed(SPI_SPEED_MAX) 


#define IINCHIP_RSToff() cbi(W5100_RST_PORT, W5100_RST_BIT)

#define IINCHIP_RSTon() sbi(W5100_RST_PORT, W5100_RST_BIT)

//-----------------------------------------------------------------------------




EFM32를 이용하여 TCP/IP 전송율 테스트 결과 1.4Mbps 이다. EFM32 의 최대 SPI 클럭속도가 1.4Mhz인 것을 생각하면 그리 빠르지는 않은듯...

저전력 웹서버 만들면 좋을것 같다.


Posted by nexp

댓글을 달아 주세요

[INTERFACE]/W72002013. 1. 1. 23:00

[W7200 EVM] TCP/IP 테스트 - W7200 TCP Server 전송 속도 테스트

[W7200 EVM] TCP/IP 테스트 - W7200 TCP Server 전송 속도 테스트




W7200은 Cortex-M3 STM32와 W5200이 한칩에 들어 있는 Internet MCU 이다.


소스코드는 기존 STM32-SM + W5200과 호환이 되지만 SPI(SPI0), CS(PA4), RST(PB8), PowerDown(PB9) 핀은 하드웨어 적으로 고정되어 있다.



W7200 TCP Server 전송 속도

TCP 서버 송수신 속도는 3Mbps정도로 측정된다. STM32-SM EVM (2.5Mbps)과 동일한 코드로 테스트 해보면 W7200이 속도가 좀더 빠르게 나오는데... 아무래도 한칩에 포함되어 있어 그런것이 아닐까 생각해 본다.




W7200 W5200 제어 드라이버 코드

//-----------------------------------------------------------------------------

// W5100 HAL

#define _SPI0_ENABLE 1


#define W5100_CS_PORT GPIOA

#define W5100_CS_BIT BIT4


#define W5100_RST_PORT GPIOB

#define W5100_RST_BIT BIT8

#define IINCHIP_RSToff() cbi(W5100_RST_PORT, W5100_RST_BIT)

#define IINCHIP_RSTon() sbi(W5100_RST_PORT, W5100_RST_BIT)



#define W5100_PD_PORT GPIOB

#define W5100_PD_BIT BIT9

#define IINCHIP_PDoff() cbi(W5100_PD_PORT, W5100_PD_BIT)

#define IINCHIP_PDon() sbi(W5100_PD_PORT, W5100_PD_BIT)




#define W5100_IO_INIT() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE);\

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;\

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;\

GPIO_InitStructure.GPIO_Pin=W5100_CS_BIT;\

GPIO_Init(GPIOA, &GPIO_InitStructure);\

GPIO_InitStructure.GPIO_Pin=W5100_RST_BIT|W5100_PD_BIT;\

GPIO_Init(GPIOB, &GPIO_InitStructure);\

                                        IINCHIP_RSTon();IINCHIP_PDoff();



#define IINCHIP_CSoff() cbi(W5100_CS_PORT, W5100_CS_BIT)

#define IINCHIP_CSon() sbi(W5100_CS_PORT, W5100_CS_BIT)




#define IINCHIP_SPI_INIT() SPI0_Init();SPI0_SetSpeed(SPI_SPEED_MAX);

#define IINCHIP_SpiSendData SPI0_WriteReadByte

#define IINCHIP_SpiRecvData SPI0_WriteReadByte

//-----------------------------------------------------------------------------








Posted by nexp

댓글을 달아 주세요

[INTERFACE]/W72002013. 1. 1. 22:00

[W7200 EVM] Internet MCU 보드제작 - Cortex M3 with hardwired TCP/IP, MAC & PHY

[W7200 EVM] Internet MCU 보드제작 - Cortex M3 with hardwired TCP/IP, MAC & PHY




H/W TCP/IP 포함된 Wiznet 사의 Cortex-M3(STM32) W7200 보드를 제작 했다. W7200은 한 칩에 MAC PHY, H/W TCP/IP(W5200), STM32가 들어 있어 소형의 임베디드 네트웍을 구성할 수 있다.


[STM32-SM EVM] 보드와 핀맵을 호환할 수 있도록 제작했고, STM32코어 이므로 때문에 소스코드는 그대로 사용가능하다.



W7200 특징


W7200 ARM 32-bit Cortex-M3

  - 72MHz maximum frequency (1.25 DMIPS/MHz)
  - 20KBytes Data Memory (RAM)
  - 128KBytes Code Memory
  - Low Power: Support Sleep, Stop and Standby modes
  - 7 timers
  - Three 16-bit timers, each with up to 4 IC/OC/PWM or pulse counter and quadrature (incremental) encoder input
  - 2 watchdog timers (Independent and Window)
  - SysTick timer 24-bit down counter
  - Full-duplex UART
  - Programmable Watchdog Timer
  - CRC calculation unit, 96-bit unique ID
  - GPIO, SPI, USART and USB Interfaces
  - 10BaseT/100BaseTX Ethernet PHY embedded



W7200 블록도




[W7200 EVM]




W7200 - H/W TCP IP W5200, MAC, PHY, STM32 가 하나의 칩으로 구성되어 있어 소형으로 제작 가능하다.

다만 페키기가 QFN타입이 아니라 수작업으로 납땜하기에는 약간의 기술을 요한다.




STM32 코어 이기 때문에 USB2UART를 이용하여 시리얼 포트로 펌웨어 다운로드 할 수 있다.




[ST-Type EVM]형태로 제작해서 기존 확장 보드와 쉽게 호환 가능하다.






W7200 회로도




Posted by nexp

댓글을 달아 주세요

[MCU]/adStar2012. 12. 30. 23:30

[adStar EVM] AJAX를 이용한 실시간 업데이트 웹서버 - 가속도 센서 그래프출력

 [adStar EVM] AJAX를 이용한 실시간 업데이트 웹서버 - 가속도 센서 그래프출력

 

 

임베디드 웹서버의  센서 모니터링을 위한 기술로 실기간 업데이트 가능한 JAVA(AJAX) 기술을 이용하면 쉽게 구현 가능하다.

참고 : Mini WebServer real time page update(실시간 웹페이지 업데이트)

 

 

[adStar EVM] 보드를 이용하여 실시간 업데이트 가능한 임베디드 웹서버를 구현 해보았다. 웹페이지에서 JAVA코드를 디버깅하기는 쉽지 않기 때문에 자주 수정해야 한다. 웹페이지는 SD Card를 통해 업데이트 되어 복사만 하면 되므로 손쉽게 디버깅 할 수 있다.

 

 

adStar 실시간 업데이트 웹서버 테스트 동영상

실시간성 테스를 위해 3축 가속도 센서 데이터를 모니터링 하는 예제를 테스트 했다. 

 

 

 

실시간 업데이트 테스트 코드

실시간 페이지 업데이트를 위해 웹페이지에서는 AJAX가 스레스생하여 xml파일을 요청하고 임베디드 보드에서 xml 데이터만 수정하여 전소하게 된다. 그러면 부하없이 고속으로 실시간 데이터를 전송할 수 있다.

 

void SendToWebpage_sd(int s, char *name, unsigned char *http_response, unsigned long len, int req_type)

{

  : 

  if(req_type==PTYPE_CGI)
  {
   send_len = replace_sys_env_value(http_response,send_len);
  }
  else if(req_type == PTYPE_TEXT)
  {
   send_len = replace_sys_env_value(http_response,send_len);
   

  //XML 데이터 요청이 있으면
   if(strstr(name,"adc_val.xml"))
   {

       //센서 데이터 업데이트
       send_len = replace_sys_env_value(http_response,send_len);
   }      
  }  
  send(s, http_response, send_len, 0);

  file_len -= send_len;
 }
   
 f_close(&fp);

}

 

 

 

realtime embedded web server 테스트 페이지

 

Posted by nexp

댓글을 달아 주세요

[MCU]/adStar2012. 12. 30. 23:00

[adStar EVM] SD Card를 이용한 임베디드 웹서버 테스트

 [adStar EVM] SD Card를 이용한 임베디드 웹서버 테스트

 

 

[adStar EVM]은 SD Card소켓을 내장하고 있기 때문에 여러가지 활용도가 좋은데, SD 카드를 이용하여 간단한 임베디드 웹서버를 제작해 보았다.

adStar의 풍푸한 SDRAM과 고성능이면서 저렴한 adStar의 장점을 최대한 이용해 보았다.

 

SD Card를 이용하면 웹페이 업데이트 및 관리에 있어서 편리한점이 많다. 특히 메모리가 부족한 임베디드 환경에서 저렴하고 웹서버 구현하는데 있어 좋은것 같다.

 

네트웍은 H/W TCPIP W5200모듈을 이용하여 SPI형태로 쉽게 [XP-NET EVM] 보드에 연결하여 테스트 하였다.

 

 

 

[adStar EVM] Embedded Webserver 테스트 동영상 

SD card에 웹페이지를 저장하고 네으웍으로 접속하여 간단한 웹서버 기능을 테스트 하고 있다. 디지털 입력, 디지털 출력, 아날로그 입력 등을 웹브라우저나 스마트폰등에서 접속하여 테스트할수 있다.

 

 

 

adStar 임베디드 웹서버 메인 페이지

임시로 192.168.0.104로 할당하였다.

 

 

 

 

adStar 임베디드 웹서버 디지털 출력 페이지

CGI 파일을 이용하여 LED1, LED2의 출력 상태를 변경하고 이를 LAMP모듈에 출력한다.

 

 

 

 

adStar 임베디드 웹서버 아날로그 입력 페이지 

아날로그 입력 데이터를 그래프로 표시한다. 그래프 표시는 JAVA(ajax) 를 이용하여 실시간으로 표시하도록 했다.

 

 

 

 

 

 

adStar 임베디드 웹서버 디지털 출력 페이지

디지털 출력으로 FND를 사용하였다.

 

 

 

 

 

 

Posted by nexp

댓글을 달아 주세요