ÇÊÀÚ´Â µð¿¡½ºÆ¼ ±â¼úÆÀ¿¡¼ À©µµ¿ì CE °ü·Ã ±â¼úÁö¿ø°ú MS °øÀÎ À©µµ¿ì CE ±³À°°»ç·Î Ȱµ¿Çϰí ÀÖÀ¸¸ç, 2007³â MS À©µµ¿ì ÀÓº£µðµå ºÎ¹® MVP·Î ¼±Á¤µÇ¾ú´Ù.
¡Ü
Cellcore ¿Í RIL À̶õ?
Cellcore¿Í RILÀ̶õ ´Ü¾î´Â À©µµ¿ì CE °³¹ßÀڵ鿡°Ô´Â »ý¼ÒÇÑ ´Ü¾îµéÀÌ´Ù. ¿Ö³ÄÇÏ¸é ±âÁ¸¿¡´Â ¸ð¹ÙÀÏ¿¡¼¸¸ Áö¿øÀÌ µÇ¾ú°í CEÂÊ¿¡¼´Â Çʿ䰡 ¾ø¾ú±â ¶§¹®ÀÌ´Ù. ÇÏÁö¸¸ Çϵå¿þ¾î¿Í ¼ÒÇÁÆ®¿þ¾î, ³×Æ®¿öÅ©ÀÇ ¹ß´Þ·Î ÀÎÇØ ¾ÕÀ¸·Î À©µµ¿ì CE¿¡¼µµ ¸¹ÀÌ ¿ä±¸µÉ °ÍÀ¸·Î ¿¹»óµÇ¾ú´ÂÁö ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿¡¼µµ À©µµ¿ì ÀÓº£µðµå CE 6.0ºÎÅÍ »ó±â ±â´ÉÀ» Áö¿øÇÏ°Ô µÇ¾ú´Ù.
±×·¯¸é Áö±ÝºÎÅÍ À©µµ¿ì CE °³¹ßÀÚ¸¦ À§ÇØ Cellcore¿Í RIL ±â´É¿¡ ´ëÇØ¼ ¾Ë¾Æº¸ÀÚ.
-
Cellcore¶õ? ¹«¼±¿¬°á ¼ºñ½º¸¦ ÁöÇâÇÏ´Â ±âº»ÀûÀÎ °³³äÀ¸·Î CDMA³ª GSM ¸ðµâ°úÀÇ Åë½ÅÀ» °¡´ÉÇÏ°Ô ÇØÁÖ´Â °ÍÀÌ´Ù. ¶ÇÇÑ À½¼ºÀ̳ª µ¥ÀÌÅÍ Åë½ÅÀ» °¡´ÉÇÏ°Ô ÇØÁÖ´Â ÄÄÆ÷³ÍÆ®À̱⵵ ÇÏ´Ù.
-
RILÀ̶õ? Cellcore ½Ã½ºÅÛ ¼ÒÇÁÆ®¿þ¾î¿Í Radio Çϵå¿þ¾î¸¦ ¿¬°áÇÏ´Â ÀÎÅÍÆäÀ̽º·Î ¼¿·ê·¯(cellular) ±â¼úÀ» À§ÇÑ Ãß»óÀûÀÎ ·¹À̾îÀÌ´Ù.
¡Ü
¼¿·ê·¯ ¾ÆÅ°ÅØÃ³
¼¿·ê·¯ ¾ÆÅ°ÅØÃ³´Â »ó´çÈ÷ º¹ÀâÇÑ ÇüÅ·ΠµÇ¾î ÀÖ´Ù. ÇÏÁö¸¸ º¹ÀâÇÑ ¸¸Å ±¸Çöµµ ¾î·ÆÁö¸¸ ±×¸¸ÅÀÇ ¸¹Àº ±â´Éµéµµ Áö¿øÇØ ÁØ´Ù. ±âÁ¸ÀÇ CE µð¹ÙÀ̽º¿¡¼ ³×Æ®¿öÅ©¸¦ ÀÌ¿ëÇÏ·Á¸é Wifi¸¦ ÀÌ¿ëÇϰųª À¯¼±À» ÀÌ¿ëÇß¾î¾ß Çß´Ù. ÇÏÁö¸¸ À©µµ¿ì ÀÓº£µðµå CE 6.0¿¡¼ Áö¿øÇÏ´Â Cellcore ±â´ÉÀ» ÀÌ¿ëÇÑ´Ù¸é ÀüȻӸ¸ ¾Æ´Ï¶ó ÀÎÅÍ³Ý ¹× µ¥ÀÌÅÍ Åë½ÅÀ» ÇÒ ¼ö ÀÖ´Ù.
¶ÇÇÑ RIL µå¶óÀ̹ö¸¸ Æ÷ÆÃÇϸé GSMÀÇ SIM Ä«µåµµ API¸¦ ÅëÇØ Á¦¾î°¡´ÉÇϸç, TAPI¸¦ ÅëÇØ ¸ðµ©Åë½Åµµ °¡´ÉÇϰí, ¸ðµ©À» ÅëÇØ CE µð¹ÙÀ̽º¸¦ ³×Æ®¿öÅ© ¿¬°á Åë·Î·Î ÀÌ¿ëÇØ ´Ù¸¥ µð¹ÙÀ̽º¿¡¼ ÀÎÅͳÝÀ» °¡´ÉÇÏ°Ô ÇÒ ¼ö ÀÖ´Ù.
ÇÑ ¿¹·Î ±×¸²¿¡¼ RIL Proxy¸¦ RIL API¸¦ ÅëÇØ ÀνºÅϽº¸¦ »ý¼ºÇÑ ´ÙÀ½ RIL ÇÔ¼ö¸¦ ÅëÇØ ÀüÈÇϰųª ¹®Á¦¸¦ º¸³¾ ¼ö ÀÖ°í, ¶ÇÇÑ Miniport µå¶óÀ̹ö¸¦ ¸¸µé°Ô µÇ¸é »óÀ§¿¡ ÀÖ´Â NDIS¸¦ ÅëÇØ ÀÎÅͳÝÀ» ÇÒ ¼ö ÀÖ´Ù. ´Ü Åë½Å¸ðµâ ¾÷ü¿¡¼ RIL µå¶óÀ̹ö´Â Á¦°øÇØÁà¾ß ÇÑ´Ù.
±âÁ¸ 5.0¶§¿¡´Â RIL°ú ºñ½ÁÇÑ ±â´ÉÀ» ±¸ÇöÇϱâ À§ÇØ º°µµÀÇ CDC(Communication Device Class) ¶ó´Â °ÍÀ» ¸¸µé¾ú´Ù. ÀÌ CDC´Â ¸ðµ©°ú Åë½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀ¸·Î Serial µå¶óÀ̹ö¸¦ ÀÌ¿ëÇØ ¸ðµ©À» µ¿ÀÛ½ÃŰ´Â ¹æ¹ýÀÌ´Ù. ÀÌ ¹æ¹ýÀº ½Ã¸®¾ó µå¶óÀ̹ö¸¦ ÅëÇØ ¸ðµ©À» Á¦¾îÇÏ°í ½Ã¸®¾ó µå¶óÀ̹öÀÇ PDD ÇÔ¼ö¿¡ ¸ðµ©À» Á¦¾îÇÏ´Â Äڵ带 ¸ðµÎ Æ÷ÆÃÇØÁà¾ß ÇÑ´Ù.
±×·¯³ª À©µµ¿ì ÀÓº£µðµå CE 6.0¿¡¼ cellcore¸¦ Áö¿øÇÏ´Â ¸¸Å 5.0¿¡¼ ¾î·Æ°Ô Æ÷ÆÃÇß´ø ¹æ½ÄÀÌ 6.0¿¡¼ Áö¿øÇϹǷΠRIL µå¶óÀ̹ö¸¦ ¸¹ÀÌ Áö¿øÇÒ °ÍÀ¸·Î »ý°¢ÀÌ µç´Ù. ÀÌ·¸°Ô µÇ¸é À©µµ¿ì CE¿¡¼ RILÀ» »ç¿ëÇϰíÀÚ ÇÒ ¶§ ¾î·Æ°Ô Æ÷ÆÃÇß´ø ÀÛ¾÷À» Å©°Ô ÁÙÀÏ ¼ö ÀÖ°í, ¸¹Àº cellcore ±â´ÉÀ» »ç¿ëÇÏ°Ô µÉ °ÍÀ¸·Î ±â´ë°¡ µÈ´Ù.
¡Ü
RIL
RILÀº Å©°Ô RIL Proxy¿Í RIL Driver·Î ³ª´©¾îÁø´Ù. RIL Proxy´Â ¾ÖÇø®ÄÉÀ̼ǿ¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ÀνºÅϽº·Î CE»ó¿¡¼ ¿©·¯ °³¸¦ »ý¼ºÇؼ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¹Ý¸é RIL DriverÀÇ °æ¿ì¿¡´Â Çϳª¸¸ Á¸ÀçÇÑ´Ù.
RIL Proxy´Â SIM API, RIL API, CellTSP, SMS API¸¦ ÅëÇØ Á¢±ÙÀÌ °¡´ÉÇϸç, VSP(Virtual Serial Port)¸¦ ÅëÇØ¼µµ Á¢±ÙÀÌ °¡´ÉÇÏ´Ù. ÇÏÁö¸¸ RIL Proxy´Â ÀνºÅϽº°¡ ¸¹ÀÌ »ý¼ºÀÌ µÇ°í, RIL Driver´Â ÇϳªÀ̱⠶§¹®¿¡ RIL Driver´Â RIL Proxy¿¡¼ µé¾î¿À´Â ¸í·É¾îµéÀ» ¼øÂ÷ÀûÀ¸·Î Àß Ã³¸®ÇØ Áà¾ß ÇÑ´Ù.
¡Ü
RIL Proxy
½ÇÁ¦ À©µµ¿ì CE¿¡¼ RIL Proxy´Â ril.dll·Î Á¸ÀçÇϸç ril.dllÀº cellcore ¾ÖÇø®ÄÉÀ̼ǿ¡¼ »ý¼ºÇÒ ¶§¸¶´Ù ÇϳªÀÇ ÀνºÅϽº°¡ »ý¼ºµÈ´Ù. ±×¸®°í RIL Proxy´Â Microsoft¿¡¼ ±âº»ÀûÀ¸·Î Á¦°øÀ» Çϸç RIL Driver¿Í RIL Client »çÀÌÀÇ ÀÎÅÍÆäÀ̽º ¿ªÇÒÀ» ´ã´çÇÑ´Ù. ¶ÇÇÑ RIL ÇÔ¼ö¸¦ Á¦¾îÇϱâ À§ÇÑ RIL_xxxIOCTLS ÇÔ¼ö µîÀ» Á¦°øÇÑ´Ù.
´ëÇ¥ÀûÀÎ ÇÔ¼ö
RIL_Initialize() : RIL Proxy¸¦ »ý¼ºÇϱâ À§ÇÑ ÇÔ¼ö
RIL_Deinitialize() : RIL Proxy¸¦ »èÁ¦Çϱâ À§ÇÑ ÇÔ¼ö
| |
|
HANDLE hRingEvent;
int WINAPI WinMain()
{
hRingEvent=CreateEvent(NULL,FALSE,FALSE,NULL);
hRIL = RIL_Initialize(1, MyRILResult, MyRILNotify, RIL_NCLASS_CALLCTRL,
dwParam,&hRil);
WaitForSingleObject(hRingEvent,INFINITE);
MessageBox(NULL,TEXT("Ring"),TEXT("The Phone is Ringing!"),MB_OK);
}
| | | | | |
| |
RIL_Initialize ÇÔ¼ö¸¦ ÅëÇØ RIL Proxy¸¦ »ý¼ºÇÑ´Ù. ¿©±â¼ ù ¹øÂ°, µÎ ¹øÂ°, ¼¼ ¹øÂ° ÀÎÀÚ°¡ Áß¿äÇѵ¥, ù ¹øÂ° ÀÎÀÚ·Î RIL µå¶óÀ̹öÀÇ Index¸¦ ÀÔ·ÂÇÏ°í µÎ ¹øÂ° ÀÎÀÚ·Î RIL ÇÔ¼ö¸¦ ó¸®ÇÏ¸é¼ result °ªµéÀ» ¹ÞÀ» ¼ö ÀÖ´Â Äݹé ÇÔ¼ö¸¦ ÀÔ·ÂÇϰí, ¼¼ ¹øÂ° ÀÎÀÚ·Î RILÇÔ¼ö¿¡¼ ¹ß»ýÇÏ´Â À̺¥Æ®¸¦ ó¸®ÇÒ ¼ö ÀÖ´Â Äݹé ÇÔ¼ö°¡ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù.
 | ¿¹Á¦) RIL Result CALLBACK ÇÔ¼ö |  | |  | |
|
void CALLBACK MyRILResult(
DWORD dwCode, // result code
HRESULT hrCmdID, // Command ID
const void *lpData, // result data
DWORD cbData, // size of lpData
DWORD dwParam // parameter passed
// to
) {
RETAILMSG(1,(TEXT("TEST Result : I : RIL Result - dwCode = 0x%08x\n"),dwCode));
}
| | | | | |
| |
MyRILResult ÇÔ¼ö´Â RIL ÇÔ¼ö¸¦ ÅëÇØ ¸í·É¾î¸¦ ÁÖ´Â °á°ú°ªÀ» ¹Þ´Â Äݹé ÇÔ¼ö ÀÌ´Ù.
 | ¿¹Á¦) RIL Notification CALLBACK ÇÔ¼ö |  | |  | |
|
void CALLBACK MyRILNotify(
DWORD dwCode, // notification code
const void *lpData, // notification data
DWORD cbData, // size of lpData
DWORD dwParam // parameter passed
// to
){
switch (dwCode)
{
case RIL_NOTIFY_RING:
{
SetEvent(hRingEvent);
}
}
}
| | | | | |
| |
RIL ÇÔ¼ö·ÎºÎÅÍ ¾î¶°ÇÑ À̺¥Æ®°¡ µé¾î¿Ô´ÂÁö È®ÀÎÇÒ ¼ö ÀÖ´Â Äݹé ÇÔ¼öÀÌ´Ù.
¡Ü
RIL Driver
RIL Driver´Â À©µµ¿ì CEÀÇ ÀüÇüÀûÀÎ ½ºÆ®¸² ÀÎÅÍÆäÀ̽º µå¶óÀ̹ö·Î PDD(Platform Dependent Driver)¿Í MDD(Modal Device Driver) µÎ ºÎºÐÀ¸·Î ³ª´©¾îÁ® ÀÖÀ¸¸ç, Windows Embedded CE 6.0 Platform Builder¿¡¼ MDD¿Í PDDÀÇ »ùÇà Äڵ带 Á¦°øÇÑ´Ù.
 |
| MDD »ùÇÃ |
 |
| PDD »ùÇÃ |
±×¸®°í RIL Driver´Â °¢ ¸ðµ© Á¦°ø ȸ»ç¸¶´Ù »ç¿ëµÇ´Â ¸ðµ© command°¡ ´Ù¸£±â ¶§¹®¿¡ ÀÌ commend¸¦ ó¸®ÇØ¾ß ÇÏ´Â ÄÚµåµéÀÌ Æ÷ÇԵǾî ÀÖ´Ù. ¶ÇÇÑ RILÀ» Network·Î »ç¿ëÇÏ·Á¸é RIL Miniport Driver°¡ ÇÊ¿äÇÏ´Ù.
RIL Miniport DriverÀÇ ¿ªÇÒÀº RIL Driver¿Í TCP/IP¸¦ ÅëÇØ IP Åë½ÅÀ» ÇÒ ¼ö ÀÖµµ·Ï ó¸®Çϰųª, ¶Ç´Â NDISUIO(NDIS User mode I/O)¿Í RIL Driver °£ÀÇ Åë½ÅÀ» ÇØ ¿ÜºÎ¿¡ ÀÎÅͳÝÀ» ¿¬°áÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù.
¡Ü
À©µµ¿ì ÀÓº£µðµå CE 6.0¿¡¼ RIL Å×½ºÆ®
¼¿·ê·¯ ¿¡¹Ä·¹ÀÌÅÍ(Cellular Emulator)´Â Àüȱ⸦ ¿¡¹Ä·¹ÀÌ¼Ç ÇØÁÖ´Â ÇÁ·Î±×·¥À¸·Î À©µµ¿ì ÀÓº£µðµå CE¿¡¼´Â À̸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù. ÇÏÁö¸¸ Mobile 6 SDK¸¦ ¼³Ä¡ÇÑ´Ù¸é ¼¿·ê·¯ ¿¡¹Ä·¹ÀÌÅ͸¦ CE¿¡¼ ÇÔ²² ¿¬µ¿Çؼ Å×½ºÆ®ÇØ º¼ ¼ö ÀÖ´Ù.
Å×½ºÆ®ÇØ º¼ ¼ö ÀÖ´Â ¹æ¹ýÀº À©µµ¿ì ÀÓº£µðµå CE 6.0¿¡¼ ¿¡¹Ä·¹ÀÌÅÍ·Î OS¸¦ ºôµåÇϰí RIL °ü·Ã ÄÄÆ÷³ÍÆ®¸¦ Ãß°¡ÇÏ¸é ¿¡¹Ä·¹ÀÌÅÍ¿¡¼ ¿¡¹Ä·¹À̼ÇÇØÁÖ´Â ½Ã¸®¾ó Æ÷Æ®¸¦ ÅëÇØ Cellular Emulator·Î ¸Þ½ÃÁö¸¦ Àü´ÞÇÒ ¼ö ÀÖ´Ù.
±×·¡¼ Windows CE ¿¡¹Ä·¹ÀÌÅÍ¿¡¼ Àüȸ¦ °É°Å³ª SMS ¹®ÀÚ¸¦ º¸³»°Å³ª ¿¡¹Ä·¹ÀÌÅͷκÎÅÍ º¸³»¿Â AT command ·Î±× µîÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
±ÛÀ» ¸¶Ä¡¸ç
ÀÌ¿Í °°ÀÌ À©µµ¿ì ÀÓº£µðµå CE 6.0ºÎÅÍ »õ·Ó°Ô Ãß°¡µÈ Cellcore ¹× RIL ±â´ÉÀº ³×Æ®¿öÅ©¿Í Åë½Å±â´ÉÀ» Á¡Â÷ Áß½ÃÇÏ´Â PMP, CNS ¿Í °°Àº ¸ð¹ÙÀÏ ¹× ÀÓº£µðµå ±â±â¿¡ ¶Ç ÇϳªÀÇ Â÷º°ÈµÈ ºÎ°¡±â´ÉÀ» Á¦°øÇÒ °ÍÀ¸·Î ±â´ëÇÑ´Ù. @