摘 è¦ï¼šæœ¬æ–‡ä»‹ç´¹äº†ä¸€ç¨®åŸºäºŽus/OS-IIåµŒå…¥å¼æ“作系統和TMS320LF2407A DSP的低壓斷路器新型智能控制器的è¨è¨ˆï¼Œå°us/OS-IIåµŒå…¥å¼æ“作系統ã€åµŒå…¥å¼ç³»çµ±çš„硬件è¨è¨ˆå’Œè»Ÿä»¶é–‹ç™¼é€²è¡Œäº†ä»‹ç´¹ï¼Œå¹¶å°us/OS-II在TMS320LF2407A芯片上的移æ¤é€²è¡Œäº†é‡é»žä»‹ç´¹ã€‚樣機ç¾å ´è©¦é©—表明,該控制器å¯é æ€§é«˜ï¼Œè©¦é©—çµæžœé”åˆ°é æœŸçš„è¨è¨ˆè¦æ±‚ï¼Œå…·æœ‰å»£é—Šçš„æ‡‰ç”¨å‰æ™¯ã€‚
é—œéµè©žï¼šus/OS-II, 嵌入å¼ï¼Œæ–·è·¯å™¨ï¼Œæ™ºèƒ½æŽ§åˆ¶å™¨
Abstract: the design of a new intelligent controller for low voltage circuit breaker based on us/OS-II embedded operate system and TMS320LF2407A DSP is presented, the us/OS-II embedded operate system and the design of hardware and software of embedded system are introduced, especially, the design of transplant from us/OS-II to TMS320LF2407A is introduced in detail. The results of industrial tests show that this intelligent controller has high reliability, the results of experiment has achieve to anticipation request. It can be widely applicated.
Keyword: us/os- II, Embedded, Circuit Breaker, Intelligent Controller
0. 引言
  斷路器的智能æ“作是斷路器智能化發展éŽç¨‹ä¸çš„ä¸€å€‹å…¨æ–°çš„æ¦‚å¿µã€‚æ™ºèƒ½æŽ§åˆ¶å™¨æ˜¯å¯¦ç¾æ™ºèƒ½æ“ä½œçš„æ ¸å¿ƒéƒ¨ä»¶[1],其基本任務是通éŽå°é›»ç¶²åƒæ•¸çš„采集和處ç†ï¼Œçµ¦å‡ºç›¸æ‡‰çš„æŽ§åˆ¶ä¿¡æ¯ã€‚æ¤å¤–,智能控制器通éŽç¾å ´ç¸½ç·šå¯ä»¥å’Œè¨ˆç®—機連接,進行é 程監控管ç†ã€‚æ™ºèƒ½æŽ§åˆ¶å™¨çš„æ ¸å¿ƒéƒ¨åˆ†æ˜¯è»Ÿä»¶è¨è¨ˆã€‚ç›®å‰ï¼Œæˆ‘國的大多數控制器的軟件è¨è¨ˆéƒ½æ˜¯é‡‡ç”¨ä¸»å¾ªç’°ç¨‹åºå’Œä¸æ–·æœå‹™ç¨‹åºç›¸é…åˆçš„è¨è¨ˆæ–¹æ³•。而近年來嵌入å¼ç³»çµ±çš„使用越來越æˆç†Ÿï¼Œå…¶ä¸us/OS-IIåµŒå…¥å¼æ“作系統由于æºä»£ç¢¼å…¬é–‹åŒ–ï¼Œå…§æ ¸é«”ç©å°ï¼Œå¯ç§»æ¤æ€§å¥½ç‰åŽŸå› ï¼Œå—到廣泛的應用。本文采用了TIå…¬å¸çš„DSP芯片TMS320LF2407A作為嵌入å¼ç³»çµ±ç¡¬ä»¶ï¼Œå°‡us/OS-IIåµŒå…¥å¼æ“作系統移æ¤åˆ°DSP芯片ä¸ï¼Œæé«˜äº†ç³»çµ±çš„é‹è¡Œæ•ˆçŽ‡å’Œå¯é 性。
1. us/OS-IIåµŒå…¥å¼æ“作系統
  嵌入å¼ç³»çµ±æ˜¯åŸ·è¡Œå°ˆç”¨åŠŸèƒ½å¹¶è¢«å…§éƒ¨è¨ˆç®—æ©ŸæŽ§åˆ¶çš„è¨å‚™æˆ–系統,æ“ä½œç³»çµ±ä»¥åŠæ‡‰ç”¨è»Ÿä»¶é›†æˆäºŽè¨ˆç®—機硬件系統之ä¸ï¼Œå³ç³»çµ±çš„æ‡‰ç”¨è»Ÿä»¶å’Œç³»çµ±çš„硬件一體化,嵌入å¼ç³»çµ±å…·æœ‰è»Ÿä»¶ä»£ç¢¼å°‘,高度自動化,響應速度快ç‰ç‰¹é»žï¼Œç‰¹åˆ¥æ˜¯é©åˆäºŽè¦æ±‚實時和多任務處ç†çš„æƒ…æ³ã€‚
  us/OS-IIåµŒå…¥å¼æ“ä½œç³»çµ±æ˜¯ä¸€å€‹å®Œæ•´çš„ã€æºä»£ç¢¼å…¬é–‹çš„ã€å¯ç§»æ¤çš„ã€å›ºåŒ–çš„ã€å¯è£å‰ªçš„å å…ˆå¼å¯¦æ™‚å¤šä»»å‹™å…§æ ¸ï¼Œå®ƒæ˜¯ä¸€ç¨®ä¸å¯å‰å¥ªåž‹å…§æ ¸ï¼Œæ‰€ä»¥åœ¨ä»»å‹™èª¿åº¦æ˜¯å¿…é ˆå…ˆè¨å®šä»»å‹™çš„優先級。us/OS-IIåŒ…æ‹¬ä»¥ä¸‹å¹¾å€‹éƒ¨åˆ†ï¼šå…§æ ¸ç®¡ç†ã€ä»»å‹™ç®¡ç†ã€æ™‚間管ç†ã€äº‹ä»¶æŽ§åˆ¶å¡Šã€ä¿¡è™Ÿé‡ç®¡ç†ã€éƒµç®±ç®¡ç†ç‰ã€‚
  us/OS-IIä¸å‰µå»ºçš„任務有5種狀態[2],分別是:ç¡çœ æ…‹ã€ç‰å¾…æ…‹ã€å°±ç·’æ…‹ã€é‹è¡Œæ…‹ã€ä¸æ–·æœå‹™æ…‹ã€‚us/OS-II是å å…ˆå¼å…§æ ¸ï¼Œæ¯å€‹ä»»å‹™éƒ½è¦è¨ç½®å„ªå…ˆç´šï¼Œå„ªå…ˆç´šæœ€é«˜çš„任務å¯ä»¥å…ˆé€²å…¥CPUé‹è¡Œï¼Œå…¶å®ƒä»»å‹™åªèƒ½å…ˆåœ¨å°±ç·’狀態ä¸ç‰å¾…。us/OS-II最多å¯ä»¥å‰µå»ºå¤šé”64個任務(實際å¯ä»¥ä½¿ç”¨çš„æ˜¯56å€‹ï¼Œå› ç‚ºå‰4個和åŽ4個任務優先級被ä¿ç•™åšç³»çµ±å‡ç´šç”¨ï¼‰ã€‚
2. 嵌入å¼ç³»çµ±çš„硬件è¨è¨ˆ
  2.1 æ™ºèƒ½æŽ§åˆ¶å™¨ç¸½é«”çµæ§‹åŠå·¥ä½œåŽŸç†
ã€€ã€€æ™ºèƒ½æŽ§åˆ¶å™¨ç¡¬ä»¶ç³»çµ±çš„ç¸½é«”çµæ§‹å¦‚圖1所示。該控制器的主è¦ä»»å‹™æ˜¯é‡‡é›†é›»ç¶²ä¸Šçš„é›»æµå’Œé›»å£“信號,經éŽä¿¡è™Ÿè™•ç†é›»è·¯çš„調ç†åŽï¼Œä½¿ä¿¡è™Ÿè®Šæ›æˆDSP的輸入標準電壓0到3.3V,DSP控制器通éŽå°é‡‡é›†ä¾†çš„信號進行分æžï¼Œæ£ç¢ºçš„發出動作指令,并通éŽCAN總線å‘監控計算機發é€ç›¸é—œæ•¸æ“šï¼Œå¯¦ç¾é 程監控管ç†ã€‚系統構æˆä¸»è¦åŒ…括DSPåŠå…¶å¤–åœé›»è·¯æ‰€æ§‹æˆçš„æœ€å°ç³»çµ±ã€A/D信號采集與處ç†é›»è·¯ï¼Œæ¶²æ™¶é¡¯ç¤ºé›»è·¯ï¼Œé›»æºï¼Œè„«æ‰£é›»è·¯ç‰éƒ¨åˆ†ã€‚DSP的外åœé›»è·¯åŒ…æ‹¬æ™¶æŒ¯ã€æ¿¾æ³¢å›žè·¯å’Œç‰‡å¤–RAMé€£æŽ¥é¸æ“‡å˜å„²ç©ºé–“時使用的一些門電路。

  2.2 TMS320LF2407A芯片åŠå…¶é–‹ç™¼ç’°å¢ƒCCS2.2簡介
  TMS320LF2407A是專為基于控制的應用而è¨è¨ˆçš„,它將高性能的DSPå…§æ ¸å’Œè±å¯Œçš„微控制器的外è¨é›†æˆäºŽå–®ç‰‡ä¸ï¼Œå¾žè€Œæˆç‚ºå‚³çµ±çš„å¾®æŽ§åˆ¶å™¨çš„ç†æƒ³æ›¿ä»£ã€‚TMS320LF2407A DSP控制器的外è¨åŒ…括[3]:①事件管ç†å™¨â‘¡CAN接å£â‘¢A/Dé€šé“æ¨¡æ•¸è½‰æ›â‘£SPIä¸²è¡Œå¤–è¨æŽ¥å£â‘¤SCI串行通信接å£â‘¥é€šç”¨é›™å‘I/O引腳。CCS2.2是CCS系列ä¸çš„æœ€æ–°ç‰ˆæœ¬ï¼Œæœ‰å¾ˆå¤šæ—¢æ–¹ä¾¿åˆå¼·å¤§çš„功能。主è¦åŒ…括:①支æŒåŒæ™‚è¼‰å…¥å¤šå€‹å·¥ç¨‹æ–‡ä»¶â‘¡å¢žåŠ äº†å–®æ¥èª¿è©¦å‘½ä»¤â‘¢ç·¨è¯å™¨æœ‰æ‰€åŠ å¼·ï¼Œå°èªžæ³•çš„æª¢æŸ¥æ›´åŠ åš´æ ¼â‘£é€šéŽå»ºç«‹åº«å·¥ç¨‹ï¼Œæ”¯æŒç·¨è¯å‡½æ•¸æ–‡ä»¶æˆç‚ºåº«æ–‡ä»¶
3. 嵌入å¼ç³»çµ±çš„軟件è¨è¨ˆ
  3.1 us/OS-II在2407上的移æ¤
  us/OS-II在2407上的實ç¾ç§»æ¤æ˜¯åµŒå…¥å¼ç³»çµ±è»Ÿä»¶è¨è¨ˆçš„é—œéµæ‰€åœ¨ï¼Œä¸»è¦å·¥ä½œæ˜¯å°ç§»æ¤ç›¸é—œçš„OS_CPU.H,OS_CPU_A.ASM,OS_CPU_C.C三個文件的編寫以åŠå°OS_CFG.Hé…置的æ£ç¢ºè¨å®šã€‚
  在å°OS_CFG.Hé…ç½®ä¸æ ¹æ“šåµŒå…¥å¼å¯¦æ™‚系統的實際需è¦ï¼Œå°æœ€ä½Žå„ªå…ˆç´šOS_LOWEST_PRIOã€æœ€å¤šä»»å‹™æŽ§åˆ¶å¡ŠOS_MAX_EVENTSã€æœ€å¤šä»»å‹™æ•¸OS_MAX_TASKS進行è¨ç½®ï¼Œå°éœ€è¦ä½¿ç”¨çš„åŠŸèƒ½é€²è¡Œé¸æ“‡ç½®ä½ã€‚
  å°OS_CPU.H文件的編寫主è¦åŒ…括å°ä»¥ä¸‹4個å®é€²è¡Œè¨ç½®ï¼š
  ①OS_ENTER_CRITICAL()
  ② OS_EXIT_ CRITICAL()
  ③ OS_STK_GROWTH
  ④ OS_TASK_SW()
  其ä¸ï¼ŒOS_ENTER_CRITICAL()和OS_EXIT_ CRITICALï¼ˆï¼‰æ˜¯é—œäºŽé—œä¸æ–·å’Œé–‹ä¸æ–·çš„è¨ç½®ï¼Œç”±äºŽåœ¨TMS320LF2407Aä¸Cç·¨è¯å™¨å¯ä»¥åµŒå…¥åŒ¯ç·¨èªžè¨€ï¼Œæ‰€ä»¥æœ¬æ–‡è¨ç½®ï¼š
  #define OS_ENTER_CRITICAL() asm(" SETC INTM") //é—œä¸æ–·
  #define OS_EXIT_CRITICAL() asm(" CLRC INTM") //開䏿–·
  OS_STK_GROWTHæ˜¯é—œäºŽå †æ£§çš„ä½¿ç”¨æ–¹å¼ï¼Œç”±äºŽTMS320LF2407Aä¸å †æ£§æ˜¯å¾žä½Žåœ°å€å‘高地å€éžå¢žçš„,所以本文è¨ç½®ï¼š
  #define OS_STK_GROWTH 0
  OS_TASK_SW()是在任務切æ›ä¸ä½¿ç”¨çš„,任務切æ›å…¶å¯¦å°±æ˜¯å°‡åŽŸä¾†ä»»å‹™çš„ç›¸é—œå¯„å˜å™¨å€¼å…¥æ£§ä¿å˜ï¼Œä»¥ä¾¿ä»¥åŽé€™å€‹ä»»å‹™è¢«å†æ¬¡èª¿ç”¨æ™‚å¯ä»¥æ¢å¾©åŽŸå…ˆçš„ç›¸é—œå¯„å˜å™¨å€¼ã€‚本文è¨ç½®OS_TASK_SWï¼ˆï¼‰ä½œç‚ºä¸æ–·èª¿ç”¨è»Ÿä¸æ–·æŒ‡ä»¤OSCtxSw。
  å°OS_CPU_C.C文件的編寫包括編寫以下10個C語言函數:
  ①OSTaskStkInit()② OSTaskCreatHook()③ OSTaskDelHook()④ OSTaskSwHook()
  ⑤ OSTaskIdleHook()⑥ OSTaskStatHook()⑦ OSTimeTickHook()⑧ OSIintHookBegin()
  ⑨ OSInitHookEnd()⑩ OSTCBInitHook()
  在本文的實時嵌入å¼ç³»çµ±è¨è¨ˆä¸ï¼Œåªå°OSTaskStkInit()函數進行了編寫,OSTaskStkInit()函數的作用是åˆå§‹åŒ–ä»»å‹™çš„æ£§çµæ§‹ï¼Œå°‡ä»»å‹™æ‰€æœ‰å¯„å˜å™¨çš„值都ä¿å˜åˆ°å †æ£§ä¸ã€‚OSTaskStkInitï¼ˆï¼‰å‡½æ•¸çš„ç¤ºæ„æ€§ä»£ç¢¼å¦‚下所示。
  OS_STK *OSTaskStkInit(void (*task)(void *pd),
  void *pdata,
  OS_STK *ptos,
  INT16U opt)
  {
  opt = opt;
  *ptos++ = (OS_STK)pdata; /* augument */
  *ptos++ = (OS_STK)0; /* blank */
  *ptos++ = (OS_STK)0x27FC;/* ST1 */
  *ptos++ = (OS_STK)0x2600;/* ST0 */
  *ptos++ = (OS_STK)0; /* ACCH */
  *ptos++ = (OS_STK)0; /* ACCL */
  *ptos++ = (OS_STK)0; /* PH */
  *ptos++ = (OS_STK)0; /* PL */
  *ptos++ = (OS_STK)0; /* T */
  *ptos++ = (OS_STK)0; /* AR0 */
  *ptos++ = (OS_STK)0; /* AR2 */
  *ptos++ = (OS_STK)0; /* AR3 */
  *ptos++ = (OS_STK)0; /* AR4 */
  *ptos++ = (OS_STK)0; /* AR5 */
  *ptos++ = (OS_STK)0; /* AR6 */
  *ptos++ = (OS_STK)0; /* AR7 */
  … … …
  return ptos;
  ï½
  其余9個C語言函數åªé€²è¡Œäº†è²æ˜Žï¼Œæ²’有包å«ä»£ç¢¼æˆ–者為了防æ¢Cç·¨è¯å™¨èª¤ç™¼è¦å‘Šåªç·¨å¯«äº†ç°¡å–®çš„æŒ‡é‡è‡ªæˆ‘賦值程åºã€‚
  å°OS_CPU_A.ASM文件的編寫包括編寫以下4個匯編語言函數:
  ①OSStartHighRdy()② OSCtxSw()③ OSIntCtxSw()④ OSTickISR()
  其ä¸ï¼Œèª¿ç”¨OSStartHighRdy()是用來使就緒態任務ä¸å„ªå…ˆç´šæœ€é«˜çš„任務開始é‹è¡Œã€‚OSCtxSw()是用來實ç¾ä»»å‹™åˆ‡æ›ï¼Œä¸æ–·æœå‹™å程åºã€é™·é˜±æˆ–異常處ç†çš„å‘é‡åœ°å€å¿…é ˆæŒ‡å‘OSCtxSw()。OSIntCtxSw()也是用來實ç¾ä»»å‹™åˆ‡æ›çš„,所ä¸åŒçš„æ˜¯OSIntCtxSwï¼ˆï¼‰æ˜¯åœ¨ä¸æ–·æœå‹™ç¨‹åºä¸å¯¦ç¾ä»»å‹™åˆ‡æ›ã€‚OSTickISRï¼ˆï¼‰æ˜¯ç”¨ä¾†å¯¦ç¾æ™‚é˜ç¯€æ‹åŠŸèƒ½ã€‚
  將以上這些函數編寫好以åŽï¼Œå¦‚果能編è¯é€šéŽå¹¶ä¸”è£è¼‰å…¥2407或外部RAMä¸ï¼Œå‰‡èªªæ˜Žus/OS-II在2407ä¸Šç§»æ¤æˆåŠŸã€‚ç§»æ¤æˆåŠŸä»¥åŽå°±è¦é€²è¡Œæ¸¬è©¦ï¼Œå¯ä»¥ç·¨å¯«ä¾‹å¦‚點亮指示燈這樣的å°ç¨‹åºä½œç‚ºä»»å‹™ï¼Œè£è¼‰å…¥DSPé‹è¡Œï¼Œå¦‚æžœé‹è¡ŒæˆåŠŸï¼Œå°±åœ¨æ¤ç¨‹åºåŸºç¤Žä¸Šé€²è¡ŒåµŒå…¥å¼ç³»çµ±çš„軟件開發。
  3.2 智能控制器軟件è¨è¨ˆ
  本文在進行軟件è¨è¨ˆæ™‚æ ¹æ“šéœ€è¦ï¼Œç·¨å¯«äº†ä»¥ä¸‹å¹¾å€‹åŠŸèƒ½ç¨‹åºï¼Œä¸»è¦åŒ…括液晶顯示程åºã€A/D采樣轉æ›ç¨‹åºã€ä¿è·ç®—法ã€çž¬å‹•判斷ä¿è·ç¨‹åºã€æ¿¾æ³¢ç®—æ³•åŠæœ‰æ•ˆå€¼è¨ˆç®—ã€CAN通信的發é€å’ŒæŽ¥å—ç‰[4]。在å„個功能程åºç·¨å¯«å¥½ä»¥åŽï¼Œå‰µå»ºå¤šå€‹ä»»å‹™ï¼Œæ¯å€‹ä»»å‹™åŒ…å«ä¸€å€‹åŠŸèƒ½ç¨‹åºã€‚å°å„å€‹ä»»å‹™è¦æ ¹æ“šä¸åŒçš„實際情æ³è³¦äºˆä¸åŒçš„優先級,其ä¸A/D采樣轉æ›å’Œçž¬å‹•判斷ä¿è·ç”±äºŽå°å¯¦æ™‚æ€§çš„è¦æ±‚比較高,應賦予較高的優先權,液晶顯示由于為了人們讀å–的視覺需è¦ï¼Œå»¶æ™‚時間比較長,賦予的優先權最低。任務優先級的安排如下:
  A/D采樣轉æ›ç¨‹åº > 瞬動判斷ä¿è·ç¨‹åº > æ¿¾æ³¢ç®—æ³•åŠæœ‰æ•ˆå€¼è¨ˆç®— > ä¿è·ç®—法> CAN通信的發é€å’ŒæŽ¥å— > 液晶顯示
  任務通éŽå‡½æ•¸OSTaskCreateExt()來創建,創建一個任務的示例代碼如下:
  //創建任務:
  INT8U OSTaskCreate (void (*task) (void *pd), void *pdata, OS_STK *ptos, INT8U prio)
  其ä¸task是指å‘任務代碼的指é‡;pdata是任務開始執行時,傳éžçµ¦ä»»å‹™çš„åƒæ•¸æŒ‡é‡;ptos是分é…çµ¦ä»»å‹™çš„å †æ£§çš„æ£§é ‚æŒ‡é‡;prio是分é…給任務的優先級。
  //任務示例代碼:
  void Task (void *pdata)
  { While (1)
  {/ï¼Šï¼Šï¼Šæ ¹æ“šå¯¦éš›åŠŸèƒ½ç·¨å¯«çš„ä»£ç¢¼ï¼Šï¼Š/
  OSTimeDly(INT16U ticks); //任務延時
  ï½
  ï½
  當任務被å‰å¥ªCPU的使用åŽï¼Œus/OS-II用任務控制塊OS_TCB來ä¿å˜è©²ä»»å‹™çš„狀態。
4. 實驗
  本文è¨è¨ˆçš„實驗樣機首先在實驗室進行調試,然åŽå†åˆ°ä¼æ¥è©¦é©—站進行ç¾å ´èª¿è©¦ã€‚主è¦è©¦é©—é …ç›®åŒ…æ‹¬æ¶²æ™¶é¡¯ç¤ºã€æ¸¬é‡ã€ä¿è·ç‰¹æ€§æ¸¬è©¦ã€ä¸Šä½æ©Ÿå’ŒæŽ§åˆ¶å™¨ä¹‹é–“çš„CAN總線通信ç‰ã€‚è©¦é©—çµæžœè¡¨æ˜Žï¼šæœ¬æ–‡è¨è¨ˆçš„æ™ºèƒ½æŽ§åˆ¶å™¨å¯¦ç¾äº†æ¸¬é‡ã€ä¿è·ã€é€šä¿¡å’Œç›£æŽ§ç‰åŠŸèƒ½ï¼Œå¯¦æ™‚æ€§å¥½ï¼ŒæŒ‡æ¨™é”åˆ°é æœŸè¦æ±‚。
5. çµæŸèªž
  本文為了實ç¾ä½Žå£“斷路器的å¯é€šä¿¡èˆ‡æ™ºèƒ½åŒ–ï¼Œç ”åˆ¶äº†ä¸€ç¨®åŸºäºŽDSP和嵌入å¼å¯¦æ™‚æ“作系統us/OS-II的新型智能控制器,ä¸åƒ…實ç¾äº†æ–·è·¯å™¨çš„基本功能,而且由于采用了us/OS-II嵌入å¼å¯¦æ™‚æ“作系統,æé«˜äº†DSPçš„é‹è¡Œæ•ˆçŽ‡å’ŒæŽ§åˆ¶å™¨çš„å¯é 性。
åƒè€ƒæ–‡ç»ï¼š
  [1] 包建榮,厲é¯è¡›. 基于單片機嵌入å¼ç¶²çµ¡æŽ¥å…¥æ¨¡å¡Šçš„è¨è¨ˆèˆ‡å¯¦ç¾.
  [2] Jean J.Labrosse著,邵è²è²ç‰è¯. 嵌入å¼å¯¦æ™‚æ“作系統us/OS-II(第2版).北京:北京航空航天大å¸å‡ºç‰ˆç¤¾.2003版
  [3] TIå…¬å¸è‘—,å¾ç§‘è»ç‰è¯. TMS320LF/LC24系列DSPçš„CPU與外è¨. 北京:清è¯å¤§å¸å‡ºç‰ˆç¤¾.2004版
  [4] 劉和平,嚴利平ç‰. TMS320LF240x DSP çµæ§‹ã€åŽŸç†åŠæ‡‰ç”¨[M]. 北京:北京航空航天大å¸å‡ºç‰ˆç¤¾. 2002,4.