GPS 수신기이다. 데이터시트를 보고 요약해보려 한다.

블록 다이어그램

 

 

 

1.3 Receiving Unit Specifiacations

 

Receiver type : L1 frequency, C/A Code, 20-channel
Max up-date rate : 1 sec
Accuracy (SA off) : Position < 10m 3D RMS
3D Tracking Sensitivity :    -155dBm at the receiver input(typical)
Operational Limits : Altitude < 18,000m (60,000ft)
                            Velocity < 515m/s (1,000knots)

 

Time To First Fix (TTFF)
a) Cold Start 60sec (typical)
In a ‘Cold Start’ scenario, the receiver has no knowledge of position, time or the satellite constellation. The receiver starts to search for signals blindly. Cold start time is the longest startup for this module

 

b)WarmStart 40sec (typical)

In a ‘Warm Start’ scenario, due to a backup battery the receiver knows its last poison, the approximate time and the constellation almanac. Thanks to this it can quickly acquire satellites and gat a position fix faster then in ‘Cold Start’ mode.


c) Hot Start < 1sec (typical)
In a ‘Hot Start’ scenario, the receiver has been powered off for less then 2 hours since the last valid navigation solution. The GPS uses its last Ephemeris data to calculate a position fix.

Re-acquisition time         3sec typical (within 60sec GPS signal obstruction)

 

1.4 Protocols

 

Default : WGS84 NMEA 0183 9600bps
Activated message : GGA, GSA, GSV, RMC all with checksum enabled

 

 

Output Messages

 

 

 

[출처] : 데이터시트

http://blog.ednchina.com/Upload/Blog//0c314085-bbb9-4132-9192-03f4539bd558.pdf

전자공작 (키트) GPS 데이터 포맷 설명 (NMEA-0183)

http://cafe.naver.com/circuitsmanual/20101

 

내비게이션 만들기'에 해당되는 글 30건 (! 전자공작) |작성자 키트 http://cafe.naver.com/circuitsmanual/20102

 

 

 

 

'기타모듈' 카테고리의 다른 글

TFT LCD7  (0) 2016.07.07

PNP 기능을 플랫폼 드라이버라는 형태로 지원한다.

 

드라이버의 기본동작을 구현하기 위한 자료구조체

/usr/src/linux-3.19.4/include/linux/platform_device.h

 

174 struct platform_driver {
175     int (*probe)(struct platform_device *);
176     int (*remove)(struct platform_device *);
177     void (*shutdown)(struct platform_device *);
178     int (*suspend)(struct platform_device *, pm_message_t state);
179     int (*resume)(struct platform_device *);
180     struct device_driver driver;
181     const struct platform_device_id *id_table;
182     bool prevent_deferred_probe;
183 };

 

490 #define PLATFORM_NAME_SIZE  20
491 #define PLATFORM_MODULE_PREFIX  "platform:"
492    
493 struct platform_device_id {
494     char name[PLATFORM_NAME_SIZE];
495     kernel_ulong_t driver_data;
496 };  

 

 

보통 사용 예

 static struct platform_driver test_driver=

{

  .probe = test_probe,

  .remove= test_remove,

  .suspend= test_suspend

  .resume = test_resume,

  .driver ={

              .name = TEST_DEVICE_DRIVER_NAME,

  },

};

 

 

  • probe() 디바이스가 추가 되었을 때 처리하는 함수를 지정
  • remove() 디바이스가 제거 되었을 때 처리하는 함수를 지정
  • shutdown() 디바이스의 동작을 중지 시킬때 처리하는 함수
  • resume() 디바이스의 동작을 재시작 시킬 때 처리하는 함수
  • driver 구조체 내부의 name 필드만 보통 지정, 나머지 필드는 커널 내부에서 관리되면서 채워진다.
  • id_table  probe()함수가 호출되는 과정에서 해당 디바이스를 구별하고 처리하기 위한 내부 데이터를 지정하는 목적

 

 

 

플랫폼 드라이버 구조체 정보는 다음과 같은 함수로 커널에 등록되거나 제거된다.

  • int platform_driver_register(struct platform_driver *pdev);
  • void platform_dirver_unregister(struct platform_driver *pdev);

 

    platform_driver_register() 함수는  : pdev 정보를 커널 내부에 등록하기 위해서 사용되므로 보통 모듈 초기화 함수에서 사용된다. 반환값이 0이면 정상이다.

 


188 /*
189  * use a macro to avoid include chaining to get THIS_MODULE
190  */
191 #define platform_driver_register(drv) \
192     __platform_driver_register(drv, THIS_MODULE)
193 extern int __platform_driver_register(struct platform_driver *,
194                     struct module *);
195 extern void platform_driver_unregister(struct platform_driver *); 

 

 32 #ifdef MODULE
 33 extern struct module __this_module;
 34 #define THIS_MODULE (&__this_module)
 35 #else
 36 #define THIS_MODULE ((struct module *)0)
 37 #endif

 

다른버전 ----4.0.2

/usr/src/linux-4.0.2/drivers/base/platform.c

 

 

 

 

 

 

 

 

참조 : B003_디바이스 드라이버 모듈 (유영창)

 

 

 

'리눅스커널 > Device Driver' 카테고리의 다른 글

USB 인사이드 muosys.egloos.com  (0) 2016.05.16
PS/2 키보드 LED제어  (0) 2015.05.13
문자디바이스 드라이버와 file_operations  (0) 2015.05.12
IOCTL  (0) 2015.05.12
디바이스드라이버기초정리  (0) 2015.05.11

 

 

sudo apt-get install libopencv-dev 

 

Install Dependencies

 

sudo apt-get install build-essential checkinstall cmake pkg-config yasm
sudo apt-get install libtiff4-dev libjpeg-dev libjasper-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev
sudo apt-get install python-dev python-numpy
sudo apt-get install libtbb-dev
sudo apt-get install libqt4-dev libgtk2.0-dev

 

http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.10/opencv-2.4.10.zip/download

접속 및 소스 다운로드

 

압축풀고

mkdir build

cd build

cmake

make

 

sudo make -j6 install

 

li@li:/$ pkg-config --modversion opencv

 

이클립스 opencv

예제소스및 eclipse 설정방법

https://sites.google.com/site/opencvwikiproject/table-of-contents/opencv-tutorials/introduction-to-opencv/using-opencv-with-eclipse-plugin-cdt

 


 

'OpenCV' 카테고리의 다른 글

[OpenCV] 함수  (0) 2018.08.09
GStreamer사용법  (0) 2016.05.15

+ Recent posts