| 1 | /** |
|---|
| 2 | @file |
|---|
| 3 | DHL_COM.h |
|---|
| 4 | |
|---|
| 5 | @brief |
|---|
| 6 | PHOENIX HAL library |
|---|
| 7 | |
|---|
| 8 | Communication API interface (UART, I2C, ..) |
|---|
| 9 | |
|---|
| 10 | Copyright 2006~2010 Digital STREAM Technology, Inc. |
|---|
| 11 | All Rights Reserved |
|---|
| 12 | */ |
|---|
| 13 | |
|---|
| 14 | |
|---|
| 15 | #ifndef __DHL_COM_H__ |
|---|
| 16 | #define __DHL_COM_H__ |
|---|
| 17 | |
|---|
| 18 | |
|---|
| 19 | #include "DHL_OSAL.h" |
|---|
| 20 | |
|---|
| 21 | |
|---|
| 22 | |
|---|
| 23 | #ifdef __cplusplus |
|---|
| 24 | extern "C" { |
|---|
| 25 | #endif |
|---|
| 26 | |
|---|
| 27 | |
|---|
| 28 | |
|---|
| 29 | #if COMMENT |
|---|
| 30 | ____Overview____(){} |
|---|
| 31 | #endif |
|---|
| 32 | |
|---|
| 33 | /** |
|---|
| 34 | @file DHL_COM.h |
|---|
| 35 | |
|---|
| 36 | À̰÷¿¡ ÀÌ ¸ðµâ¿¡ ´ëÇØ ¼³¸íÀÌ ÇÊ¿äÇÑ °¢Á¾ ³»¿ë ±â¼ú.. |
|---|
| 37 | |
|---|
| 38 | module overview |
|---|
| 39 | - |
|---|
| 40 | - |
|---|
| 41 | |
|---|
| 42 | APIs |
|---|
| 43 | |
|---|
| 44 | implementations |
|---|
| 45 | |
|---|
| 46 | dependencies |
|---|
| 47 | |
|---|
| 48 | nv parameters |
|---|
| 49 | |
|---|
| 50 | |
|---|
| 51 | |
|---|
| 52 | Å×À̺í, Ç¥, ±×¸² µîµµ ÇÊ¿äÇϸé ascii code¸¦ ÀÌ¿ëÇÏ¿© ÀÛ¼º.. |
|---|
| 53 | (Âü°í) Á¦´ë·Î º¸ÀÌ·Á¸é ¸Ç ¿ÞÂÊÀ» Á¦¿ÜÇϰí´Â TAB µîÀÇ »ç¿ëÀ» ÇÏÁö ¾Ê¾Æ¾ß ÇÔ. |
|---|
| 54 | |
|---|
| 55 | example) |
|---|
| 56 | fifo queue diagram |
|---|
| 57 | |
|---|
| 58 | start rp wp end |
|---|
| 59 | +------+---+------+ |
|---|
| 60 | | |XXX| | <--- API call |
|---|
| 61 | +------+---+------+ |
|---|
| 62 | |
|---|
| 63 | |
|---|
| 64 | @todo |
|---|
| 65 | todo »çÇ×Àº ÄÚ¸àÆ® ¾î´À ºÎºÐÀ̵çÁö ÀÌ ¸í·É¾î¸¦ Ȱ¿ëÇÏÀÚ. |
|---|
| 66 | */ |
|---|
| 67 | |
|---|
| 68 | |
|---|
| 69 | #if COMMENT |
|---|
| 70 | ____Config____(){} |
|---|
| 71 | #endif |
|---|
| 72 | |
|---|
| 73 | /* |
|---|
| 74 | ÀÌ ºÎºÐÀº º°µµÀÇ DHL_XXX_Config configuration file À» |
|---|
| 75 | Ȱ¿ëÇÏ´Â °ÍÀÌ ÁÁÀ» °Í °°À½. |
|---|
| 76 | */ |
|---|
| 77 | |
|---|
| 78 | |
|---|
| 79 | #if COMMENT |
|---|
| 80 | ____Types____(){} |
|---|
| 81 | #endif |
|---|
| 82 | |
|---|
| 83 | /* |
|---|
| 84 | ´Ù¸¥ ¸ðµâµé°ú °øÀ¯ µÇ´Â structure ¹× enumerations. |
|---|
| 85 | */ |
|---|
| 86 | |
|---|
| 87 | |
|---|
| 88 | #if COMMENT |
|---|
| 89 | ____Defines____(){} |
|---|
| 90 | #endif |
|---|
| 91 | |
|---|
| 92 | |
|---|
| 93 | /** @brief UART ³»ºÎ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿¡·¯ °ªµé. |
|---|
| 94 | |
|---|
| 95 | ±×·¯³ª API´Â ¸ðµÎ DHL_RESULT ŸÀÔÀ» »ç¿ëÇØ¾ß ÇϹǷΠ|
|---|
| 96 | Á÷Á¢ÀûÀ¸·Î À̵éÀ» »ç¿ëÇÒ ¼ö´Â ¾øÀ½. |
|---|
| 97 | */ |
|---|
| 98 | typedef enum |
|---|
| 99 | { |
|---|
| 100 | eDHL_COM_US__OK, |
|---|
| 101 | eDHL_UART_ERROR, |
|---|
| 102 | eDHL_UART_AlreadyOpen, |
|---|
| 103 | eDHL_UART_OpenErr, |
|---|
| 104 | eDHL_UART_WriteErr, |
|---|
| 105 | eDHL_UART_UnknownCmd |
|---|
| 106 | |
|---|
| 107 | } tDHL_COM_UartStatus; |
|---|
| 108 | |
|---|
| 109 | |
|---|
| 110 | /** @brief µ¥ÀÌÅÍ ¼ö½Å Äݹé ÇÔ¼ö ŸÀÔ. |
|---|
| 111 | |
|---|
| 112 | */ |
|---|
| 113 | typedef void (*tDHL_COM_RX_CB)(UINT8 *pData, UINT32 size); |
|---|
| 114 | |
|---|
| 115 | |
|---|
| 116 | /** @brief Åë½Å Æ÷Æ® ¼³Á¤ ŸÀÔ. |
|---|
| 117 | |
|---|
| 118 | DHL_COM_Config API ¿¡¼ ¾î¶² ¼³Á¤À» ÇÒ °ÍÀÎÁö ÁöÁ¤. |
|---|
| 119 | */ |
|---|
| 120 | typedef enum |
|---|
| 121 | { |
|---|
| 122 | /** Åë½Å ¼Óµµ ¼³Á¤. ÀÌ ¼³Á¤À» Çϱâ Àü±îÁö´Â ¼Û¼ö½ÅÀÌ Á¦ÇѵȴÙ. |
|---|
| 123 | ÀÎÀÚ: UINT32 baudrate. |
|---|
| 124 | °ªÀº 9600, 19200, 115200 °ú °°ÀÌ ±×³É ¼ýÀÚ¸¦ »ç¿ëÇÑ´Ù. |
|---|
| 125 | */ |
|---|
| 126 | eDHL_COM_CT_Baudrate, |
|---|
| 127 | |
|---|
| 128 | /** Àü¼Û ¸ðµå ¼³Á¤. |
|---|
| 129 | ÀÎÀÚ: BOOL bAsyncTxMode. |
|---|
| 130 | TRUE¸¦ ÁöÁ¤Çϸé async mode·Î Àü¼ÛÇÑ´Ù. |
|---|
| 131 | */ |
|---|
| 132 | eDHL_COM_CT_AsyncTxMode, |
|---|
| 133 | |
|---|
| 134 | |
|---|
| 135 | } tDHL_COM_ConfigType; |
|---|
| 136 | |
|---|
| 137 | |
|---|
| 138 | /** @brief Åë½Å¿ë Æ÷Æ® ½Äº°ÀÚ. |
|---|
| 139 | |
|---|
| 140 | ¸¹Àº APIµéÀÌ ÀÌ ½Äº°ÀÚ¸¦ ù¹øÂ° ÀÎÀÚ·Î ¿ä±¸ÇÑ´Ù. |
|---|
| 141 | º¸ÅëÀº ÇϳªÀÇ Åë½Å Æ÷Æ®¸¸ Á¦°øÇϴµ¥, ±×·² °æ¿ì ID´Â ¹«½ÃµÉ ¼ö ÀÖ´Ù. |
|---|
| 142 | */ |
|---|
| 143 | typedef UINT32 tDHL_COM_ID; |
|---|
| 144 | |
|---|
| 145 | |
|---|
| 146 | |
|---|
| 147 | #if COMMENT |
|---|
| 148 | ____API____(){} |
|---|
| 149 | #endif |
|---|
| 150 | |
|---|
| 151 | /** |
|---|
| 152 | @brief Åë½Å ¸ðµâÀ» ÃʱâÈ ÇÑ´Ù. |
|---|
| 153 | |
|---|
| 154 | ÁÖÀÇ»çÇ×: |
|---|
| 155 | config api¸¦ È£ÃâÇÏ¿© Åë½Å ¼³Á¤ÀÌ ¿Ï·áµÇ±â Àü ±îÁö´Â ½ÇÁ¦ Åë½Å ÀÛ¾÷Àº ÀÌ·ç¾îÁöÁö ¾Ê´Â´Ù. |
|---|
| 156 | */ |
|---|
| 157 | void DHL_COM_Init(void); |
|---|
| 158 | |
|---|
| 159 | /** |
|---|
| 160 | @brief Åë½Å ¸ðµâÀ» ´Ý´Â´Ù. |
|---|
| 161 | */ |
|---|
| 162 | void DHL_COM_Uninit(void); |
|---|
| 163 | |
|---|
| 164 | |
|---|
| 165 | /** |
|---|
| 166 | @brief Tx Àü¼ÛÀÌ Áö±Ý ¹Ù·Î °¡´ÉÇÑÁö üũÇÑ´Ù. |
|---|
| 167 | |
|---|
| 168 | @param[in] port »ç¿ëÇÒ Åë½Å¿ë Æ÷Æ® ¹øÈ£. |
|---|
| 169 | @return |
|---|
| 170 | TRUE: busy. ÇöÀç´Â Àü¼Û ºÒ°¡. |
|---|
| 171 | FALSE: not busy. Àü¼Û °¡´ÉÇÔ. |
|---|
| 172 | */ |
|---|
| 173 | BOOL DHL_COM_IsTxBusy(tDHL_COM_ID port); |
|---|
| 174 | |
|---|
| 175 | /** |
|---|
| 176 | @brief Åë½Å Æ÷Æ®¸¦ ÅëÇØ µ¥ÀÌÅ͸¦ Àü¼ÛÇÑ´Ù. |
|---|
| 177 | |
|---|
| 178 | ³»ºÎ ¿É¼Ç¿¡ µû¶ó blocking callÀÌ µÉ ¼öµµ ÀÖ°í, |
|---|
| 179 | ÀÎÅÍ·´Æ® ¶Ç´Â task¿¡¼ Àü¼ÛÀÌ µÉ ¼öµµ ÀÖ´Ù. |
|---|
| 180 | |
|---|
| 181 | Àü¼Û ¹æ½Ä ¿É¼ÇÀº eDHL_COM_CT_AsyncTxMode ¸¦ »ç¿ëÇϵµ·Ï ÇÑ´Ù. |
|---|
| 182 | |
|---|
| 183 | @param[in] port »ç¿ëÇÒ Åë½Å¿ë Æ÷Æ® ¹øÈ£. |
|---|
| 184 | @param[in] pData Àü¼ÛÇÒ µ¥ÀÌÅÍ ¹öÆÛ. |
|---|
| 185 | @param[in] size Àü¼ÛÇÒ µ¥ÀÌÅÍ ±æÀÌ. ¹ÙÀÌÆ® ´ÜÀ§. |
|---|
| 186 | */ |
|---|
| 187 | DHL_RESULT DHL_COM_StartTx(tDHL_COM_ID port, UINT8 *pData, UINT32 size); |
|---|
| 188 | |
|---|
| 189 | /** |
|---|
| 190 | @brief ÇöÀç Àü¼Û ÀÛ¾÷À» Áß´ÜÇÑ´Ù. |
|---|
| 191 | |
|---|
| 192 | Tx µ¿ÀÛÀÌ asynchrounous (non-blocking ¹æ½Ä) À̰í, |
|---|
| 193 | ÇöÀç Àü¼Û ÁßÀÎ ÆÐŶÀÌ ÀÖ´Ù¸é Àü¼ÛÀ» Áß´ÜÇÑ´Ù. |
|---|
| 194 | |
|---|
| 195 | Tx µ¿ÀÛÀÌ synchronous ¹æ½Ä (blocking call) À̶ó¸é ÀÌ ÇÔ¼ö´Â ¾Æ¹« Àϵµ ÇÏÁö ¾Ê´Â´Ù. |
|---|
| 196 | (ÀÌ °æ¿ì ¼³·É ´Ù¸¥ task¿¡¼ abort¸¦ ½ÃµµÇÏ´õ¶óµµ abort´Â ¾ÈµÊ) |
|---|
| 197 | |
|---|
| 198 | firmware update µî¿¡¼ ´ë·®ÀÇ Å« ÆÐŶÀ» º¸³»´Â Áß Áß´ÜÇÏ´Â °æ¿ì, |
|---|
| 199 | ÀÌ API°¡ »ç¿ëµÉ ¼ö ÀÖ´Ù. |
|---|
| 200 | |
|---|
| 201 | @param[in] port »ç¿ëÇÒ Åë½Å¿ë Æ÷Æ® ¹øÈ£. |
|---|
| 202 | */ |
|---|
| 203 | void DHL_COM_AbortTx(tDHL_COM_ID port); |
|---|
| 204 | |
|---|
| 205 | |
|---|
| 206 | /* |
|---|
| 207 | |
|---|
| 208 | */ |
|---|
| 209 | BOOL DHL_COM_IsRxReady(tDHL_COM_ID port); |
|---|
| 210 | |
|---|
| 211 | /* |
|---|
| 212 | |
|---|
| 213 | */ |
|---|
| 214 | void DHL_COM_Receive(tDHL_COM_ID port, UINT8 *pBuf, UINT32 nBufSize, UINT32 *pReadSize); |
|---|
| 215 | |
|---|
| 216 | |
|---|
| 217 | /** |
|---|
| 218 | @brief ¼ö½Å µ¥ÀÌÅ͸¦ Àü´ÞÇØ ÁÖ´Â ÄÝ¹é µî·Ï. |
|---|
| 219 | |
|---|
| 220 | µ¥ÀÌÅÍ ¼ö½Å¿¡ °üÇØ¼´Â Á÷Á¢ Read, Receive µîÀÇ API´Â Á¦°øÇÏÁö ¾Ê´Â´Ù. |
|---|
| 221 | HAL ³»ºÎ¿¡¼ µ¥ÀÌÅÍ ¼ö½ÅÇÑ ÈÄ¿¡ »óÀ§ °èÃþ¿¡ callbackÀ» ¿Ã·ÁÁØ´Ù. |
|---|
| 222 | ÆÐŶ Çϳª ÀüüÀÇ µ¥ÀÌÅͰ¡ ´Ù ¼ö½ÅµÈ ÀÌÈÄ¿¡ callbackÀÌ È£ÃâµÈ´Ù. |
|---|
| 223 | |
|---|
| 224 | Æ÷Æ® ´ç ÇϳªÀÇ ÄÝ¹é ¸¸ µî·Ï °¡´ÉÇÏ´Ù. |
|---|
| 225 | ±âÁ¸¿¡ ¸ÕÀú µî·ÏµÈ ÄݹéÀÌ ÀÖ´Â °æ¿ì ±âÁ¸ Äݹé Á¤º¸´Â Áö¿öÁø´Ù. |
|---|
| 226 | |
|---|
| 227 | @param[in] port »ç¿ëÇÒ Åë½Å¿ë Æ÷Æ® ¹øÈ£. |
|---|
| 228 | @param[in] callback µî·ÏÇÒ callback ÇÔ¼ö. |
|---|
| 229 | */ |
|---|
| 230 | void DHL_COM_RegisterRxCallback(tDHL_COM_ID port, tDHL_COM_RX_CB callback); |
|---|
| 231 | |
|---|
| 232 | /** |
|---|
| 233 | @brief Åë½Å °ü·Ã °¢Á¾ ¼³Á¤. |
|---|
| 234 | |
|---|
| 235 | config api¸¦ È£ÃâÇÏ¿© Åë½Å ¼³Á¤ÀÌ ¿Ï·áµÇ±â Àü ±îÁö´Â ½ÇÁ¦ Åë½Å ÀÛ¾÷Àº ÀÌ·ç¾îÁöÁö ¾Ê´Â´Ù. |
|---|
| 236 | |
|---|
| 237 | @param[in] port ¼³Á¤À» ÇÒ Åë½Å Æ÷Æ®. global ÇÑ ¼³Á¤ÀÎ °æ¿ì ÀÌ °ªÀº ¹«½ÃµÈ´Ù. |
|---|
| 238 | @param[in] type ¼³Á¤ Á¾·ù. |
|---|
| 239 | @param[in] data ¼³Á¤ °ª. ¾Æ·¡¿¡´Â ŸÀÔÀÌ void* ¶ó°í µÇ¾î ÀÖÁö¸¸ type °ª¿¡ µû¶ó ½ÇÁ¦ ŸÀÔÀº ´Þ¶óÁø´Ù. |
|---|
| 240 | */ |
|---|
| 241 | void DHL_COM_Config(tDHL_COM_ID port, tDHL_COM_ConfigType type, void *data); |
|---|
| 242 | |
|---|
| 243 | /** |
|---|
| 244 | |
|---|
| 245 | */ |
|---|
| 246 | void DHL_COM_Status(void); |
|---|
| 247 | |
|---|
| 248 | |
|---|
| 249 | |
|---|
| 250 | |
|---|
| 251 | #ifdef __cplusplus |
|---|
| 252 | } /* extern "C" */ |
|---|
| 253 | #endif |
|---|
| 254 | |
|---|
| 255 | |
|---|
| 256 | |
|---|
| 257 | #endif /* __DHL_COM_H__ */ |
|---|
| 258 | |
|---|