2011년 9월 30일 금요일

One Page Proposal 쓰는법

http://willy82.egloos.com/1196276

One Page Proposal 쓰는법

│제목│ 많은 분량의 사업 계획을 강렬한 효과와 명확성, 의도 등을 잃지 않은채 한 쪽에 집약하는 것이 1 page proposal이기 때문에 제목 역시 기획서의 내용을 한 줄로 집약하여야 합니다.

│부제│ 부제는 제목 바로 아래 그보다 작은 크기로 씁니다. 제목을 좀더 세부적으로 설명하는 간결문으로서, 2차적 정보와 설명을 덧붙여 흥미를 불러 일으키는 역할을 가져옵니다.

│목표│ 목적을 나타내는, 하나의 문장으로 이루어진 '목표' 부분은 '의도'라고 해도 좋을 것입니다. 명백한 언어로 이 기획서가 성취하려는 바를 선언하고 있기 때문입니다.

│2차목표│ 실행시키려고 하는 프로젝트가 무엇이든 목적은 거의 한 가지 이상일 것입니다. 목적이나 장점을 나열하는 것은 축적된 효과를 가져옵니다.

│논리적근거│ 일종의 '설득'으로 한두 개 혹은 세 개의 짧은 문단으로 구성된 '논리적근거'는 이 프로젝트가 할 수 있고, 할 것이며, 앞으로 나아가야만 하는 모든 이유를 놀리적으로 설명합니다.

│재정│ 재정 부분은 어려운 숫자들과 관계가 있습니다. 비용과 수입은물론이고 제안한 사업을 현실로 만드는 데 필요한 다른 종류의 재정지원도 다루게 됩니다.

│현재상태│ '현재 상황은 어떠한가?', '지금까지 어떤 상황이었는가?', '거래의 어떤 요소들이 이미 자리를 잡았는가?', '누구와 손을 잡았는가?', '이미 계약된 거래가 있는가?' 와 같은질문에 답할 수 있는 단계입니다. 기획서가 작성된 날까지의 현재 상황을 정확하게 읽는 사람 앞에 그려 주어야 합니다.

│실행│ 실행은 기본적으로 읽는 사람의 마음속에 떠오르는 질문인 '그렇다면 내가 어떻게 하면 되는가?' 에 대한 대답입니다. 기획서를 작성하는 사람이 원하는 것이 무엇이든, 추천, 투자, 대출, 직접적인 행위 등 상세히 밝혀야 합니다.

One Page Proposal

제목 ( 소제목 ) : 스토리의 헤드라인부제 : 제목을 보강하라.목표 : 원하는 바를 진술하라.2차 목표(목표의 세부 항목):목적을 상세히 밝힌다.논리적 근거 : 누가, 무엇을, 어디서, , 어떻게 ( 설정/매력포인트/설득/시기조절-자신과상대방고르기)재정 : 숫자로 말하기.현재 상태 : 사업이 위치한 현 상태.실행 : 아무것도 부탁하는 것이 없다면 그것은 기획서가 아니다.날짜와 서명

2011년 9월 29일 목요일

µC/TCP-IP

http://micrium.com/page/products/rtos/tcp-ip

μC/TCP-IP is a compact, reliable, high-performance TCP/IP protocol stack, optimized for embedded systems. Built from the ground up with Micrium quality, scalability and reliability, μC/TCP-IP enables the rapid configuration of required network options to minimize time-to-market.

μC/TCP-IP allows for adjustment of the memory footprint based upon design requirements. μC/TCP-IP can be configured to include only those network components necessary to the system. When a component is not used, it is not included in the build, saving valuable memory space.

The μC/TCP-IP design introduces a new concept: Large and small buffers. A large buffer is of the size required to transport a complete Ethernet frame. This is what other TCP/IP stacks do. But, in an embedded system, it is quite possible that the amount of information to transmit and receive does not require the use of a full Ethernet frame. In this case using buffers of the size of full Ethernet frames is a waste of RAM. μC/TCP-IP allows the designer to maximize the system performance by defining different quantities of small and large buffers.

μC/TCP-IP requires the presence of an RTOS for task scheduling and mutual exclusion. To meet this requirement, Micrium provides source code to allow network applications to readily accommodate μC/OS-II and μC/OS-III. Based on the component’s extensible Kernel interface, other Kernels can also be adapted to μC/TCP-IP.

μC/TCP-IP can be used on 16-, 32-, and even 64-bit CPUs or DSPs.

Micro-IP for embedded system

http://www.pjort.com/micro-ip/
Micro-IP is a protocol that is intended to provide Internet-like communication between small embedded nodes on the same or different buses. It is also intended to provide those nodes with communication to and from the Internet. Typically this means nodes in vehicles, home-appliances or nodes on computerised machinery.
Micro-IP is not intended to replace the real-time protocols used in embedded systems.
Micro-IP is not (yet) a standard of any kind. It is only a suggested protocol. That is, it is still in development. The purpose of this web site is to be a starting point for anyone that is interested in Micro-IP.

2011년 9월 27일 화요일

Surge Observer, Surge Protetor

http://blog.naver.com/pcintern?Redirect=Log&logNo=150031337871


==================================================================

바리스터(Varistor)라고하는 부품입니다. Variable Resistor를 줄인 말입니다.
양단에 걸리는 전압에 따라 저항값이 변하는 일종의 반도체 저항입니다.
릴레이 같이 접점이 있는 부품을 사용할 때 전기적인 스파크가 발생하여 회로가 손상되는 경우가 있는데
이를 방지하기 위해 바리스터같은 부품을 사용합니다.
또 트랜지스터 같은 부품의 서지전압에 대해서도 회로를 보호하는 역활을 합니다.
위 회로를 보면 릴레이의 접점이 본 회로와 분리되어 있지않아 접점에서 발생하는 고전압의 스파크가
본 회로에 유입되어 회로를 손상시킬 수 있습니다. 그래서 바리스터를 달아 회로를 보호하는 것입니다.
저도 그다지 사용해보지 않은 이런게 있다는 정도만 아는 부품인데
아마도 SVR391Dxx의 품범을 가졌을 겁니다.

======================

써지옵서버(Surge Observer),써지프로택터(Surge Protector)입니다.

릴레이에서 생기는 역기전압.낙뢰등에서 생기는 임펄스성 써어지 전압을 흡수하는 소자로서...

391은 공칭압이 390V라는 의미입니다.(471이면 470V. 220이면 22V를 뜻합니다.)

보통 제조사에 따라. ZNR.TNR.SVR 등으로 호칭하는데 일종의 바리스터(VARISTOR)입니다.

예를 들어 TNR 471 23G라면 공칭전압이 470V이고 크기는 23mm(파이)라는 의미입니다.

예를 들어 ZNR 391 14D라면 공칭전압이 390V이고 크기는 14mm(파이)라는 의미입니다.



[참조]

http://industrial.panasonic.com/www-data/pdf/AWA0000/AWA0000CE2.pdf

http://www.koaproducts.com/pdf/nv.pdf

http://www.okaya.com/images/noise/1400.pdf


2011년 9월 25일 일요일

무소의 뿔처럼 혼자서 가라 - 숫타니파타

서로 사귄 사람에게는
사랑과 그리움이 생긴다.
사랑과 그리움에는 괴로움이 따르는 법.
연정에서 근심 걱정이 생기는 줄 알고
무소의 뿔처럼 혼자서 가라.

숲속에서 묶여 있지 않은 사슴이
먹이를 찾아 여기저기 다니듯이
지혜로운 이는 독립과 자유를 찾아
무소의 뿔처럼 혼자서 가라.

욕망은 실로 그 빛깔이 곱고 감미로우며
우리를 즐겁게 한다.
그러나 한편 여러 가지 모양으로
우리 마음을 산산이 흐트려 놓는다.
욕망의 대상에서
무소의 뿔처럼 혼자서 가라.

서로 다투는 철학적 견해를 초월하고
깨달음에 이르는 길에 도달하여
도를 얻은 사람은
'나는 지혜를 얻었으니
이제는 남의 지도를 받을 필요가 없다'고 알아
무소의 뿔처럼 혼자서 가라.

탐내지 말고, 속이지 말며,
갈망하지 말고, 남의 덕을 가리지 말고,
혼탁과 미혹을 버리고
세상의 온갖 애착에서 벗어나
무소의뿔처럼 혼자서 가라.

세상의 유희나 오락
혹은 쾌락에 젖지 말고
관심도 가지지 말라.
꾸밈 없이 진실을 말하면서
무소의 뿔처럼 혼자서 가라.

물속의 고기가 그물을 찢듯이
한번 불타버린 곳에는
다시 불이 붙지 않듯이
모든 번뇌의 매듭을 끊어버리고
무소의 뿔처럼 혼자서 가라.

마음속의 다섯 가지 덮개를 벗기고
온갖 번노를 제거하여 의지하지 않으며
애욕의 허물을 끊어버리고
무소의 뿔처럼 혼자서 가라.

최고의 목적에 도달하기 위해 노력 정진하고
마음의 안일을 물리치고
수행에 게으르지 말며
용맹정진하여 몸의 힘과 지혜의 힘을 갖추고
무소의 뿔처럼 혼자서 가라.

애착을 없애는 일에 게으르지 말며,
벙어리도 되지 말라.
학문을 닦고 마음을 안정시켜
이치를 분명히 알며 자제하고 노력해서
무소의 뿔처럼 혼자서 가라.

이빨이 억세고 뭇짐승의 왕인 사자가
다른 짐승을 제압하듯이
궁벽한 곳에 거처를 마련하고
무소의 뿔처럼 혼자서 가라.

자비와 고요와 동정과 해탈과 기쁨을
적당한 때에 따라 익히고
모든 세상을 저버림 없이
무소의 뿔처럼 혼자서 가라.

탐욕과 혐오와 헤맴을 버리고
속박을 끊어 목숨을 잃어도 두려워하지 말고
무소의 뿔처럼 혼자서 가라.

소리에 놀라지 않는 사자와 같이,
그물에 걸리지 않는 바람과 같이,
흙탕물에 더럽히지 않는 연꽃과 같이
무소의 뿔처럼 혼자서 가라.

- '숫타니파타' 中 ...

2011년 9월 22일 목요일

Linux Wireless

http://linuxwireless.org/


This is the main source of Documentation for the Linux wireless (IEEE-802.11) subsystem. This wiki features information for end-users, developers and vendors.
This site covers all the new 802.11 drivers, the new core mac80211 and cfg80211 components along with the new userspace and in-kernel nl80211 configuration interface. New nl80211 userspace applications are also documented.

솔내시스템 시리얼 무선랜 컨버터 CSW-M83

http://www.eztcpmall.com/shop/goods/goods_view.php?goodsno=91&category=006002



삼성 S3C64X0 계열 프로세서에서 RaLink RT3070 USB Wireless 사용하기

http://www.aesop.or.kr/?document_srl=279782

처음 USB 타입 무선랜 사용하면서 설정 방법을 적어 봅니다.



제가 한 방법이 가장 좋은 방법이라고는 할수 없습니다.



저 또한 초보자 이기때문에 일단은 동작하는것 까지만 한것이니 참조용으로 보시면 됍니다.



1. 처음 하실일은 http://www.ralink.com.tw/support.php?s=2 에서 linux Driver (STA)를 다운받습니다.



2. 작업 하실 디렉토리에 압축 파일을 풀어 줍니다.



3. 압축 푸시면 "DPO_RT3070_LinuxSTA_V2.3.0.2_20100412" 이라는 디렉토리가 생성됍니다.



4. DPO_RT3070_LinuxSTA_V2.3.0.2_20100412 디렉토리에서 "Makefile" 파일을 오픈 합니다.



참 파일 오픈시는 root 계정으로 하시길 바랍니다.



"Makefile"에서

라인 18번

PLATFORM = PC ==> #PLATFORM = PC 변경.

라인 36번

# PLATFORM = SMDK ==> PLATFORM = SMDK 변경.



라인 186번

ifeq ($(PLATFORM),SMDK)
LINUX_SRC = /home/bhushan/itcenter/may28/linux-2.6-samsung
CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
endif

내용 아래와 같이

ifeq ($(PLATFORM),SMDK)
LINUX_SRC = /work/S3C6410/kernel/linux-2.6.29
CROSS_COMPILE = arm-s3c6410-linux-gnueabi-
endif



"LINUX_SRC" 과"CROSS_COMPILE"는 각자의 환경에 맞게 설정 하셔야 합니다.



5. "DPO_RT3070_LinuxSTA_V2.3.0.2_20100412\os\linux" 디렉토리에서 "rt_linux.c" 파일을 오픈 합니다.



ULONG RTDebugLevel = RT_DEBUG_ERROR;

MODULE_LICENSE("GPL"); <== 추가 부분...
#ifdef RTMP_MAC_USB
#ifdef OS_ABL_SUPPORT
MODULE_LICENSE("GPL");
#endif // OS_ABL_SUPPORT //
#endif // RTMP_MAC_USB //



설정에서 OSABL = NO ==> OSABL = YES로 하면 LICENSE부분이 해결 돼나 다른 문제가 발생하길래

그냥 위와 같이 추가 하였습니다.

만약 MODULE_LICENSE("GPL"); 부분을 추가 안하시면 묘듈을 올리때 문제가 발생합니다.



6. 이제 make 를 합니다.



make를 완료하면"tftpboot" 디렉토리에 "rt3070sta.ko" 파일이 카피됍니다.

"rt3070sta.ko" 파일을 타겟 rootfilesystem 에 카피 합니다.



7. 이제 타겟 rootfilesystem에 "/etc" 디렉토리에 "Wireless\RT2870STA" 디렉토리를 만들어 줍니다.

그럼 "/etc/Wireless\RT2870STA" 에 "DPO_RT3070_LinuxSTA_V2.3.0.2_20100412"디렉토리에 있는

RT2870STA.dat 파일을 카피 합니다.



8. 이제 커널 부분에 설정을 할 차례입니다.



이부분은 "WiFi Setting" 문서를 참조 하시길 바랍니다.



9. 커널과 램디스크를 컴파일후 타겟에 올리고 부팅 합니다.



10. 처음 으로 insmod rt3070sta.ko 실행 합니다.



[root@linux app]$ insmod rt3070sta.ko

rtusb init --->


=== pAd = c8132000, size = 500624 ===

<-- RTMPAllocAdapterBlock, Status=0
ra0 (usb): not using net_device_ops yet
usbcore: registered new interface driver rt2870



11. 다음 Ip address 설정 입니다.

[root@linux app]$ ifconfig ra0 192.168.123.161 up
<-- RTMPAllocTxRxRingMemory, Status=0
-->RTUSBVenderReset
<--RTUSBVenderReset
Key1Str is Invalid key length(0) or Type(0)
Key2Str is Invalid key length(0) or Type(0)
Key3Str is Invalid key length(0) or Type(0)
Key4Str is Invalid key length(0) or Type(0)
1. Phy Mode = 5
2. Phy Mode = 5
NVM is Efuse and its size =2d[2d0-2fc]
3. Phy Mode = 9
RTMPSetPhyMode: channel is out of range, use first channel=1
MCS Set = ff 00 00 00 01
<==== rt28xx_init, Status=0
0x1300 = 00064300



12. 주변 무선랜 환경을 확인 합니다.

[root@linux app]$ iwlist ra0 scan
===>rt_ioctl_giwscan. 3(3) BSS returned, data->length = 333
ra0 Scan completed :
Cell 01 - Address: 00:0E:E8:E2:9E:C7
Protocol:802.11b/g
ESSID:"iptime"
Mode:Managed
Frequency:2.412 GHz (Channel 1)
Quality:26/100 Signal level:-79 dBm Noise level:-84 dBm
Encryption key:off
Bit Rates:54 Mb/s
Cell 02 - Address: 00:40:5A:44:C7:12
Protocol:802.11b/g
ESSID:"myLGNet"
Mode:Managed
Frequency:2.412 GHz (Channel 1)
Quality:13/100 Signal level:-85 dBm Noise level:-80 dBm
Encryption key:on
Bit Rates:54 Mb/s
Cell 03 - Address: 00:40:5A:44:C7:11
Protocol:802.11b/g
ESSID:""
Mode:Managed
Frequency:2.412 GHz (Channel 1)
Quality:13/100 Signal level:-85 dBm Noise level:-80 dBm
Encryption key:on
Bit Rates:54 Mb/s
IE: WPA Version 1
Group Cipher : TKIP
Pairwise Ciphers (1) : TKIP
Authentication Suites (1) : PSK



13. 무선랜 환경을 설정합니다.

[root@linux app]$ iwconfig ra0 essid "iptime"



14. 이제 ping를 함 때려 봅니다. 나오겠징 ㅠㅠㅠ~~~~~

[root@linux app]$ ping 192.169.123.1
PING 192.169.123.1 (192.169.123.1): 56 data bytes

--- 192.169.123.1 ping statistics ---
4 packets transmitted, 0 packets received, 100% packet loss



아 이상하네요 환경은 잡히지만 ping은 어디갔나 ㅠㅠ

만약 여기서 ping이 돼시는분은 유선랜 케이블을 제거해보세요

유선 랜이 연결돼있으면 ping은 됍니다.



15. 유선랜 케이블을 제가 확인후 ping 테스트 합니다.

만약 안돼시면

[root@linux app]$ ifconfig eth0 down

유선랜 콘트롤러을 사용안하게 합니다.

[root@linux app]$ ping 192.168.123.1
PING 192.168.123.1 (192.168.123.1): 56 data bytes
64 bytes from 192.168.123.1: seq=0 ttl=128 time=7.904 ms
64 bytes from 192.168.123.1: seq=1 ttl=128 time=1.365 ms



여기까지 간단(?) 하게 RT3070 USB 무선랜 설정을 적봡습니다.



다른분 자료만 보다가 직접쓰려는 여러가지 너무 미흡한게 많네요



그리고 유선/무선을 동시에 사용하는 방법 아직 제가 하지를 못했습니다.



혹 아시는분은 방법좀 공유 해주시면 고맙겟습니다.

친절한 임베디드 시스템 개발자 되기 강좌

http://recipes.egloos.com/

2011년 9월 21일 수요일

WiFi-RS232 한진데이타

http://smartkit.co.kr/shop/item.php?it_id=6904079656


중국OEM

아두이노스토리 네이버블로그

http://cafe.naver.com/arduinostory

RS232 TO UART Converter

http://www.devicemart.co.kr/goods/view.php?seq=20154

Processing

http://www.processing.org/

Processing is an open source programming language and environment for people who want to create images, animations, and interactions. Initially developed to serve as a software sketchbook and to teach fundamentals of computer programming within a visual context, Processing also has evolved into a tool for generating finished professional work. Today, there are tens of thousands of students, artists, designers, researchers, and hobbyists who use Processing for learning, prototyping, and production.               

A New Software Serial Library for Arduino

http://arduiniana.org/libraries/newsoftserial/

Arduino wisdom and gems by Mikal Hart

NewSoftSerial

A New Software Serial Library for Arduino

NewSoftSerial is the latest of three Arduino libraries providing “soft” serial port support. It’s the direct descendant of ladyada’s AFSoftSerial, which introduced interrupt-driven receives – a dramatic improvement over the polling required by the native SoftwareSerial.
Without interrupts, your program’s design is considerably restricted, as it must continually poll the serial port at very short, regular intervals. This makes it nearly impossible, for example, to use SoftwareSerial to receive GPS data and parse it into a usable form. Your program is too busy trying to keep up with NMEA characters as they arrive to actually spend time assembling them into something meaningful. This is where AFSoftSerial’s (and NewSoftSerial’s) interrupt architecture is a godsend. Using interrupt-driven RX, your program fills its buffer behind the scenes while processing previously received data.

아두이노로 손바닥 프린터 제어하기 (영수증 프린터, Thermal Printer)

http://robobob.co.kr/50

손바닥 프린터 사용기
오늘도 재밌는 제품을 소개 시켜드리겠습니다.
누구보다도 제가 갖고싶었던 아이템인지라 손에 잡히는 날(오늘)로 사용테스트를 해봤습니다.
예전부터 손바닥만한 휴대형 프린터를 갖고 싶었는데 아직 세상에 그런 제품이 안나왔네요.
대신, 도처에서 이미 많이 활용되고 있는 열전사 방식의 소형 프린터를 입수하게 되었습니다.
여기서 소개하는 제품은 TTL 레벨(5V) 시리얼 통신 제어로 간단히 제어가 되는 10만원 이하의 일명(자칭) 손바닥 프린터입니다.

쉽게말하면, 전원선 빼고 전선 2가닥만 TX/RX핀에 연결해주면 아두이노 같은 손바닥 컴퓨터로 곧바로 제어가 가능합니다. 정말 군침도는 아이템이네요 ^^.

간단한 문자 출력과, 바코드 출력, 비트맵 출력이 가능하므로 다양하게 응용이 가능합니다.

참고로, 아두이노 UNO는 하드웨어 시리얼 통신포트가 1개 있으나, 본 예제에선 편리한 테스트를 위해서
하드웨어 시리얼 통신포트는 PC와의 연결에 사용하고, 실제 프린터와의 통신은 소프트웨어 시리얼을 사용하였습니다.
이렇게하여 PC측에서 사용자 입력을 받아서 프린터 테스트를 할 수 있게됩니다.
물론, PC없이도 아두이노 만으로도 모든 기능의 작동이 가능합니다.

※ 소프트웨어 시리얼 이란? 아두이노와 같은 마이크로 콘트롤러들을 대게 하드웨어 시리얼포트를 제공합니다.
하드웨어 지원이라 속도,안정,사용편리성이 모두 우수합니다만 개수 제한이 있으며
아두이노 UNO의 경우 1개만 제공됩니다.(참고로, Mega 2560은 4개 지원)
이럴때 여러기기와 시리얼 통신이 필요할 경우에 사용하는 것이 소프트웨어 시리얼입니다.
범용 디지탈핀을 소프트웨어적으로 제어하여 시리얼 통신을 가능케하는것이므로,
성능과 충돌가능성에 좀더 제약이 있는편입니다.
하지만, 적절히 사용하면 편리하게 이용할 수 있겠죠.
현재 아두이노 스케치에서도 기본적으로 소프트웨어시리얼 라이브러리가 포함되어 있습니다.
본, 예제에선 기본제공 라이브러리가 아닌 다른버전의 라이브러리를 사용하므로 따로 설치 해줘야 합니다.

2011년 9월 20일 화요일

누리텔레콤, 스마트그리드 통합시스템 공개

누리텔레콤, 스마트그리드 통합시스템 공개
http://www.greendaily.co.kr/news/articleView.html?idxno=16049
2011년 09월 06일 (화)



누리텔레콤은 8일부터 10일까지 서울 삼성동 코엑스에서 열리는 ‘스마트&클라우드쇼 2011’에서 통합 양방향 원격검침(AMI) 시스템과 에너지관리시스템(EMS) 제품을 선보인다고 6일 밝혔다.

전시회에서 누리텔레콤은 전기·수도·가스 통합 AMI 시스템 ‘아이미르’와 공장·빌딩·가정에서 에너지 효율을 높일 수 있는 에너지관리시스템과 에너지 사용정보 표시장치(IHD) 등 다양한 장치를 전시할 계획이다


누리텔레콤은 스마트 미터·통신용 모뎀·통신용 집중장치·검침 소프트웨어·인터넷 빌링 서비스까지 아우르는 AMI 토털 솔루션을 보유하고 있으며, 국내 전국 공장과 빌딩 15만호에 이동통신망을 이용한 원격검침 시스템을 구축하고 있다.

또 근거리무선통신 기술인 지그비 메시 무선통신망을 이용해 스웨덴 예테보리시 26만5000가구를 대상으로 스마트시티를 구축했다. 지금까지 세계 13개국 52만호에 AMI 시스템을 선보이며 국내 업체 중 가장 국내업체 중 많은 사물지능통신(M2M) 구축을 달성한 바 있다.

사물지능통신이란 사물과 사물간의 지능형 통신서비스로 각종 다양한 기기들이 지능적으로 정보를 수집·처리·전달하는 네트워크 인프라와 서비스다.

2011년 9월 19일 월요일

SPI 통신

SPI : Serial Peripheral Interface

http://www.terms.co.kr/SPI.htm
SPI (serial peripheral interface) ; 주변장치용 직렬 인터페이스

SPI는 두 개의 주변장치간에 직렬 통신으로 데이터를 교환할 수 있게 해주는 인터페이스로서, 그 중 하나가 주가 되고 다른 하나가 종이 되어 동작한다. SPI는 전이중 방식으로 동작하는데, 이는 데이터가 양방향으로 동시에 전달될 수 있음을 의미한다. SPI는 대부분 CPU와 주변장치들간에 통신을 하는 시스템에 주로 채용되지만, 두 개의 마이크로프로세서들 사이를 SPI의 형태로 연결하는 것도 가능하다. 이 용어는 원래 모토롤라에서 만들어졌으며, National Semiconductor라는 회사에서는 이와 동일한 인터페이스를 "마이크로와이어"라고 부른다.
직렬 인터페이스는 병렬 인터페이스에 비해 몇 가지 장점이 있다. 그 중 가장 큰 장점은 배선이 간단해진다는 것이다. 그 외에 직렬 인터페이스용 전선을 병렬 인터페이스용 전선에 비해 더 길게 만들 수 있는데, 이는 전선 내부의 도선들 간에 누화 등과 같은 간섭이 훨씬 덜하기 때문이다.
SPI에 의해 제어될 수 있는 주변장치들로는 시프트 레지스터, 메모리 칩, 포트 확장기, 디스플레이 드라이버, 데이터 변환기, 프린터, 데이터 저장장치, 센서, 마이크로프로세서 등 여러 가지 형식들이 있다. 데이터가 전선을 통해 시프트 레지스터에 직렬방식으로 들어가면, 각 부시스템에는 병렬처리의 형식으로 전달된다.

http://miro.knu.ac.kr/drupal/node/3445

[펌] SPI통신에 대해...

아래 글에서 중요 내용은 윤교수님의 책에서 발췌한 것입니다.
프로도 및 샘에 관한 얘기등은 제가 그냥 편하게 얘기하려는 것이고, 원저와는 아무런 상관이 없음을 밝히며
교수님께 누가 되지 않기를 바랍니다. (__)
1. SPI 란 근거리용 고속 직렬 동기식 통신 규격이다.
* SPI 통신이란 Serial Peripheral Interface의 약자로
Motorola사에서 개발된 근거리용 고속 직렬 동기식 통신 규격이다.
* MOSI, MISO, SCK, /SS 네 선을 이용한다.
Serial Peripheral Interface를 해석해 보면 "직렬 주변 인터페이스" 정도 될것이다.
USART와 비교해 보면 일단 "고속"이라는 점이 상당한 차이가 있을듯 싶다.
USART가 최고속도 얼마나 나오겠지만, 일반적으로 SPI는 클럭/2 정도가 나온다고 한다.
예를 들어 16MHz를 장착한 MCU에서는 속도가 8M 정도가 나온다는 얘기겠지.
하지만, 이는 이론적인 수치일뿐 실제로 8M가 나오기는 힘들다고 한다.
소프트웨어적인 처리나, 하드웨어 적인 처리도 감안해야 하니까..
어쨌거나 저쨌거나, 이런 이론적인 것이 당장 중요하지는 않다.
우리는 일단 SPI로 개통을 해야 하니까.. 그래도,
2. ATMega128이 갖고 있는 SPI 통신의 특징은 다음과 같다.
128이 갖고 있는 SPI의 기본적인 특징은 한번 훑어보고 지나가도록 하자.
1. 4선을 사용하는 직렬 동기식 통신으로서 전이중 통신이 가능하다.
2. 항상 MASTER와 SLAVE 사이에서 직렬로 데이터를 송수신한다.
3. 마스터의 데이터 송수신 여부에 관계없이 클럭은 항상 마스터가 발생한다.
4. LSB 혹은 MSB부터 전송가능하다.
5. 수십 MHz까지 통신이 가능하며 7가지 전송속도중 택일할수 있다.
6. Sleep Mode를 해제하는 wake-up 기능을 가진다.
한가지 재미난 사실은 128의 ISP기능 자체도 SPI를 이용한다는 점이다.
하지만, 이 경우 MOSI 대신 PDO(SPI Serial Programming Data Output) 단자를 이용하고,
MISO대신 PDI(SPI Serial Programming Data Input) 단자를 사용하도록 되어 있다는 점을 유념하기 바란다.
데이터 쉬트를 안보고 128에 다운로드 해보신 분들은 엉뚱한 MOSI와 MISO에 연결해놓고,
다운로드 안된다고 고심했던 분들도 계시리라 생각한다.
얼마나 허무할것이냐.. ㅠㅠ
3. 하나의 프로도와 다수의 샘은 피곤하다.
앞으로 MASTER는 프로도, SLAVE는 샘이라 부르겠다.
SPI 통신은 비단 하나의 프로도와 하나의 샘만이 아닌, 하나의 프로도와 여러명의 샘을 둘수 있다.
메리와 피핀은 SLAVE라 할수 없는 관계이므로 SLAVE는 샘1, 샘2, 샘n이라 부른다.
하나의 프로도와 n명의 샘이 있는데, 각각의 샘에는 MOSI, MISO, SCK는 공통으로 물리지만,
/SS 만큼은 개별로 할당해 주어야 한다.
생각해 보면 당연한것이, 샘이 3명 있는데, "샘" 하고 부르면, 어느 샘이 응답할것인가?
"샘 원", "샘 투" 라고 정확하게 불러주어야 한다.
고로, 5명의 샘이 있다면, MISO, MOSI, SCK는 공통으로 물려주므로 항상 3선이 필요한데다가,
5명 각각에 /SS를 할당해 주어야 하므로, 8선이 필요하다.
조금만 더 생각해 보면 20개가 있다면 20+3은 23개의 선이 필요하다는 얘기이고,
이것은 회로의 복잡도를 증가시킨다. 즉, 샘이 늘어날수록 회로가 복잡해 진다는 얘기이므로
샘이 많은 회로에서는 SPI를 쓰기가 짜증난다는 얘기다.
하지만, IIC 방식에 비해서 통신 제어가 간단하며, 훨씬 높은 속도가 가능하므로
하나의 프로도와 몇명의 샘에 대해서는 적합한 통신방식이라고 할수 있겠다.
또한, 클럭신호를 줄때, rising edge 혹은 falling edge에서 동작하는 데다, 앞쪽 엣지(leading edge), 뒷쪽 엣지(trailing edge)
총 4가지에 의해 데이터가 인식한다.
머리 아프므로 남들 다 쓰는 방식으로 하자. 그냥 이런게 있다는 것만 알아두고, 문제 생길경우 찾아보도록 하자.
4. USART와 SPI는 매우 다른 프로토콜이다 !
USART 통신과 SPI 통신은 상당히 다른데,
(serial이라는 단어가 들어가서 비슷하게 생각하지 말자..
당근이 "java"라는 단어가 들어간 "java"와 "java-script"가 모가 다르냐는 질문 몇년동안 받았다. 아주 괴롭다. ㅠㅠ)
SPI는 프로도와 샘의 관계가 아닌, 프로도와 메리의 관계가 형성된다.
이 둘은 서로 원하는 시점에 원하는 데이터를 마음대로 보낼수 있다.
그러니까, 메리는 프로도가 원치 않아도 데이터를 프로도에게 보낼수 있다는 것이다.
전문 용어로 얘기하자면 MASTER-MASTER의 관계라 이거지.
하지만, SPI는 프로도와 샘의 관계가 형성되면, (즉 MASTER-SLAVE 관계라면)
샘이 프로도에게 말하고 싶다고 해도, 프로도의 허락이 없이는 말하지 못한다는 점이다.
이와 반대로 프로도는 자기가 말하고 싶으면 언제든지 샘에게 말을 건넬수 있다.
그렇다면.. 샘이 말하고 싶다면?
여기서 한가지 꼭 집고 넘어가도록 하자..
프로도가 샘에게 말하고 싶다고 한다면, 언제든지 말을 건넬수 있다고 앞서 얘기하였다.
그렇지만, 프로도가 샘에게 말을 건다 하여도, 샘은 모라도 응답을 해야 한다.
왜냐하면 SPI 통신은 반드시 송수신이 동시에 이루어지기 때문이다.
따라서, 프로도가 샘에게 "이놈아 절대반지 나한테 돌려줘"라고 말하면, 샘은 "네 여기 있습니다. 절대반지" 라고
송수신이 동시에 이루어지면서 데이터가 동시에 오고 간다. 전혀 문제가 없다.
하지만, 샘이 말하고 싶다면 골치가 아파지는데..
샘은 말하고 싶은데, 프로도가 물어보기 전까지는 말할수 없다.
따라서, 프로도는 샘에게 아무런 의미없는 "궁시렁 궁시렁(dummy data)"를 건네준다.
샘은 "아하~ 프로도 나리가 나에게 모라 하는군" 하면서 덩달아 동시에 본인이 원하는 말(데이터)를 건넨다.
하지만, 이때 프로도가 궁시렁 거린것은 샘에게 전혀 의미가 없는 데이터 이므로 그냥 버리고,
자신이 할말을 하는 것이다.
궁금한 점이 생긴다..
샘이 말하고 싶으면 항상 프로도가 "궁시렁 궁시렁"거려야 하는가? 그렇다!
그 궁시렁 궁시렁 대는 데이터는 당연히 의미가 없는거겠지? 그렇다!
그렇다면 왜 궁시렁 대는가? 나한테 따지지 마라! SPI가 그렇게 하는거란다!
본좌 글이 잘 이해가 안가는 분은..
반지의 제왕을 다시 보던가.. SPI를 다시 보던가 해라.. ^^
------------------------------------------------------------------
펌 : 네이버 까페 당근이의 AVR 갖구 놀기
작성자 : 당근이

Atmel AVR Studio 5

http://www.atmel.com/microsite/avr_studio_5/default.asp?category_id=163&family_id=607

Atmel maXTouch E Series

The new Atmel AVR Studio 5

Atmel® AVR Studio® 5 is the Integrated Development Environment (IDE) for developing and debugging embedded Atmel AVR® applications. The AVR Studio 5 IDE gives you a seamless and easy-to-use environment to write, build, and debug your C/C++ and assembler code.

AVR 개발환경 세팅 - Eric's Display Device Cafe

http://cafe.naver.com/ericdisplay.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=19&

Arduino Tutorial

http://www.ladyada.net/learn/arduino/index.html

Lesson Plan
Follow these lessons for happiness and prosperity.
  • Lesson 0
    Pre-flight check...Is your Arduino and computer ready?
  • Lesson 1
    The "Hello World!" of electronics, a simple blinking light
  • Lesson 2
    Sketches, variables, procedures and hacking code
  • Lesson 3
    Breadboards, resistors and LEDs, schematics, and basic RGB color-mixing
  • Lesson 4
    The serial library and binary data - getting chatty with Arduino and crunching numbers
  • Lesson 5
    Buttons & switches, digital inputs, pull-up and pull-down resistors, if/if-else statements, debouncing and your first contract product design.
  • Lesson 6
    LEDs in more detail, Kirchoff's Voltage Law, Ohm's Law and a peek at the potentiometer

2011년 9월 5일 월요일

Tutorial 09 for Arduino: Wireless Communication

http://www.element14.com/community/videos/1910/l/Tutorial-09-for-Arduino:-Wireless-Communication

http://youtu.be/vKVNmA8C6m8

Microship WiFi Module

http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en548014

MRF24WB0MA is an agency certified IEEE 802.11 Wi-Fi radio transceiver module. The MRF24WB0MA has an integrated PCB antenna, matching circuitry, and supports Wi-Fi with the free TCP/IP protocol stack. The MRF24WB0MA Module connects to hundreds of PIC® microcontrollers via a 4-wire SPI interface and is an ideal solution for low-power, low data-rate Wi-Fi sensor networks, home automation, building automation and consumer applications.

WiFi DiamondBack 1.0 -- Arduino Compatible WiFi

http://www.cutedigi.com/product_info.php?products_id=4570&osCsid=9a17c1ae00bdeb5990b271a0cd2f9e0b


WiFi Shield WiShield V2.0 for Arduino - CuteDigi

http://www.cutedigi.com/product_info.php?products_id=4361

WinAVR

http://sourceforge.net/projects/winavr/files/

2011년 9월 2일 금요일

Spartfun WiFi Shield

http://www.sparkfun.com/products/9367

WiFly Shield
sku: WRL-09367
Replacement: WRL-09954. The new version breaks out the PI09, FORCE WAKE, and the hardware reset lines. It also has a different crystal and uses the RN-131C. This page is for reference only.
Description: The WiFly Shield equips your Arduino the ability to connect to 802.11b/g wireless networks. The featured components of the shield are a Roving Network's RN-131G wireless module and an SC16IS750 SPI-to-UART chip. The SPI-to-UART bridge is used to allow for faster transmission speed and to free up the Arduino's UART.

Power is taken from the Vin pin of your Arduino, regulated to 3.3V, and provided to both the RN-131G and the SC16IS750. You'll communicate with the WiFly Shield over SPI using Arduino digital pins 10-13 (CS, MOSI, MISO, SCLK respectively).

The shield includes the RN-131G, SC16IS750 and their supporting components. The shield also provides a small prototyping area, with 0.1" spaced holes. Headers are not soldered on, we recommend the 6 and 8-pin stackable headers.

Arduino wireless water sensor

http://lifeboat.co.nz/the-finished-wireless-water-sensor/