1ã€ç¡¬ä»¶å¹³è‡º(tái)è¨(shè)計(jì)
如圖1所示,å„分系統(tÇ’ng)介紹如下。

1.1 LPC2214
LPC2214是Philipså…¬å¸çš„一款嵌入å¼å¾®æŽ§åˆ¶å™¨ï¼ˆMCU) ,它采用了ARM7TDM Iå…§(nèi)æ ¸,片上資æºå分è±å¯Œ,帶有16Kå—節(jié)片內(nèi)éœæ…‹(tà i)RAMå’Œ256KB 嵌入的高速Flashå˜å„²(chÇ”)器。128ä½å¯¬åº¦çš„å˜å„²(chÇ”)器接å£å’Œç¨(dú)ç‰¹çš„åŠ é€Ÿçµ(jié)æ§‹(gòu)使32ä½ä»£ç¢¼èƒ½å¤ 在最大時(shÃ)é˜é€Ÿçއ䏋é‹(yùn)行。
å°(duì)代碼è¦(guÄ«)模有嚴(yán)æ ¼æŽ§åˆ¶çš„æ‡‰(yÄ«ng)用å¯ä½¿ç”¨16ä½Thumb模å¼å°‡ä»£ç¢¼è¦(guÄ«)模é™ä½Ž30%,而性能的æå¤±å»å¾ˆå°ã€‚由于LPC2214較å°çš„144è…³å°è£ã€æ¥µä½Žçš„功耗ã€å¤šå€‹(gè)32ä½å®šæ™‚(shÃ)器, 8è·¯10ä½ADC ( 64腳和144è…³å°è£ï¼‰ä»¥åŠå¤šé”(dá)9個(gè)å¤–éƒ¨ä¸æ–·ä½¿å®ƒå€‘特別é©ç”¨äºŽå·¥æ¥(yè)控制ã€é†«(yÄ«)療系統(tÇ’ng)ã€è¨ªå•控制和POS機(jÄ«)。由于內(nèi)置了寬范åœçš„串行通信接å£,它們也éžå¸¸é©åˆäºŽé€šä¿¡ç¶²(wÇŽng)é—œ(guÄn)ã€å”(xié)è°è½‰(zhuÇŽn)æ›å™¨ã€åµŒå…¥å¼è»Ÿmodern以åŠå…¶ä»–å„種類型的應(yÄ«ng)用。
1.2 CPLDæ“´(kuò)展電路åŠéµç›¤LCD
該電路的主è¦åŠŸèƒ½æ˜¯å°(duì)CPU芯片的外åœåŠŸèƒ½é€²(jìn)行擴(kuò)å……,使系統(tÇ’ng)具有良好的人機(jÄ«)接å£ã€‚å°(duì)äºŽåŠŸèƒ½è¦æ±‚比較復(fù)雜的電路,一般都采用CPU + CPLD的模å¼,采用該模å¼çš„åŽŸå› ä¸»è¦æœ‰å…©å€‹(gè)æ–¹é¢: (1) CPU 作為系統(tÇ’ng)çš„æ ¸å¿ƒ,無法ã€ä¹Ÿæ²’æœ‰å¿…è¦æ»¿è¶³æ‰€æœ‰ç”¨æˆ¶çš„å…·é«”åŠŸèƒ½è¦æ±‚,åªéœ€çµ¦ç”¨æˆ¶ä»¥æ¨™(biÄo)準(zhÇ”n)的外部總線接å£EB I (externalbus interface)å³å¯,è®“ç”¨æˆ¶æ ¹æ“š(jù)自己的需è¦é€²(jìn)行必è¦çš„功能擴(kuò)展。(2) CPLD 用在電路è¨(shè)計(jì)䏿œ‰ä»¥ä¸‹å¹¾é»ž(diÇŽn)優(yÅu)å‹¢(shì):坿–¹ä¾¿åœ°å¯¦(shÃ)ç¾(xià n)地å€è¯ç¢¼;編程方å¼ç°¡(jiÇŽn)便,坿–¹ä¾¿åœ°é€šéŽè»Ÿä»¶ç·¨ç¨‹å¯¦(shÃ)ç¾(xià n)å„種é‚輯器件的功能;時(shÃ)é˜å»¶é²å¯é”(dá)ç´ç§’ç´š(jÃ),特別é©åˆåœ¨ç·šç›£(jiÄn)測(cè)é ˜(lÇng)域的應(yÄ«ng)用,具有高å¯é 性。éµç›¤ä¸»è¦ä½œç”¨æ˜¯æ‰‹å‹•(dòng)æŽ§åˆ¶æ–¹å¼æƒ…æ³ä¸‹,å„ä½ç½®çš„傳感器信號(hà o)的檢測(cè)åŠæŽ§åˆ¶,å„處檢測(cè)到的溫度以數(shù)å—é‡çš„æ–¹å¼é¡¯ç¤ºåœ¨LCD 上。實(shÃ)ç¾(xià n)了手動(dòng)æ–¹å¼çš„æº«åº¦æª¢æ¸¬(cè)åŠæŽ§åˆ¶é›†ä¸çµ±(tÇ’ng)一的管ç†ã€‚
1.3 系統(tÇ’ng)å˜å„²(chÇ”)器åŠèª¿(dià o)試接å£
LPC2214支æŒ8ä½ã€16ä½å’Œ32ä½å°‹å€æ–¹å¼,具有較強(qiáng)的尋å€èƒ½åŠ›,坿–¹ä¾¿çš„æ§‹(gòu)建較大的å˜å„²(chÇ”)空間。由于芯片自身帶有256KB 的高速Flash,å°(duì)于采用μC /OS-â…¡è¨(shè)計(jì)嵌入å¼é€šä¿¡æŽ§åˆ¶å™¨å·²ç¶“(jÄ«ng)è¶³å¤ , 無需在外部掛接FLASHå˜å„²(chÇ”)器。系統(tÇ’ng)é¸ç”¨IS61LV25616AL作為SRAMå˜å„²(chÇ”)器,æ»¿è¶³äº†åµŒå…¥å¼æ“作系統(tÇ’ng)åŠé€šä¿¡æŽ§åˆ¶å™¨ä¸çš„å…§(nèi)å˜å¡Šæ‹·è²é‹(yùn)è¡Œè¦æ±‚。
LPC2214支æŒJTAGå”(xié)è°, JTAG( Joint Test Action Groupè¯(lián)åˆæ¸¬(cè)試行動(dòng)å°çµ„)是一種國(guó)際標(biÄo)準(zhÇ”n)測(cè)試å”(xié)è°ã€‚主è¦ç”¨äºŽèŠ¯ç‰‡å…§(nèi)部測(cè)試åŠå°(duì)系統(tÇ’ng)進(jìn)行仿真ã€èª¿(dià o)試,通éŽJTAG接å£,å¯å°(duì)芯片內(nèi)部的所有部件進(jìn)行訪å•,å› è€Œæ˜¯é–‹ç™¼(fÄ)調(dià o)試嵌入å¼ç³»çµ±(tÇ’ng)的一種簡(jiÇŽn)潔高效的手段。目å‰JTAG接å£çš„連接有兩種標(biÄo)準(zhÇ”n),å³14釿ޥå£å’Œ20釿ޥå£,ç†è€…é¸ç”¨14釿ޥå£ã€‚
1.4 系統(tǒng)通信
LPC2214 å…§(nèi)部集æˆäº†å…©å€‹(gè)UART 通é“, 利用MAX489實(shÃ)ç¾(xià n)RS-422通信接å£,以便åŒä¸Šä½æ©Ÿ(jÄ«)之間的通信;å¦å¤–一個(gè)UART接å£ç”¨äºŽåŒåŒç´š(jÃ)系統(tÇ’ng)之間的通信。利用RTL8019AS芯片RJ-45ç¶²(wÇŽng)絡(luò)接å£,在溫控è¨(shè)備出ç¾(xià n)無法處ç†çš„æ•…障時(shÃ),用五級(jÃ)以上的雙絞線接入基于神經(jÄ«ng)ç¶²(wÇŽng)絡(luò)的故障診斷æœå‹™(wù)器,實(shÃ)ç¾(xià n)了é (yuÇŽn)程以太網(wÇŽng)故障診斷功能。
1.5 數(shù)å—åŠæ¨¡æ“¬æŽ¥å£
LPC2214æä¾›äº†å¤šé”(dá)76個(gè)å¯ç·¨ç¨‹çš„I/O端å£,溫度控制器主è¦çš„æ¨¡æ“¬é‡ä¿¡è™Ÿ(hà o)有:å‰å€‰(cÄng)溫度模擬é‡ä¿¡è™Ÿ(hà o),åŽå®¤æº«åº¦æ¨¡æ“¬é‡ä¿¡è™Ÿ(hà o),發(fÄ)å‹•(dòng)機(jÄ«)溫度模擬é‡ä¿¡è™Ÿ(hà o)åŠç³»çµ±(tÇ’ng)è¨(shè)備的模擬é‡ä¿¡è™Ÿ(hà o)8路。模擬信號(hà o)ç¶“(jÄ«ng)隔離放大åŽç”±8è·¯10ä½ADC進(jìn)入溫度控制器。溫度控制器內(nèi)的數(shù)å—信號(hà o)ç”±I/Oå£,ç¶“(jÄ«ng)éŽéš”離放大åŽ,é”(dá)到相應(yÄ«ng)的控制終端,控制通風(fÄ“ng)扇開關(guÄn),系統(tÇ’ng)è¨(shè)備溫度åŠå‰å€‰(cÄng)ã€åŽå®¤çš„空調(dià o)啟åœç‰ã€‚而其他數(shù)據(jù)總線和地å€ç¸½ç·šåŠéƒ¨åˆ†GP IO在系統(tÇ’ng)æ¿ä¸Šå¼•出,以供擴(kuò)展之用。
2 æŽ¥å£æŠ—å¹²æ“¾è¨(shè)計(jì)
在該大型車載系統(tÇ’ng)ä¸,åŽå®¤æŸè™•溫度信號(hà o)變化,將會(huì)直接影響到整個(gè)車載系統(tÇ’ng)的性能åŠç‹€æ…‹(tà i)ã€‚æ‰€ä»¥æœ‰å¿…è¦æé«˜è¼¸å…¥è¼¸å‡ºæŽ¥å£çš„å¯é 性。需è¦å°(duì)數(shù)å—é‡ä¿¡è™Ÿ(hà o)åŠæ¨¡æ“¬é‡ä¿¡è™Ÿ(hà o)采用有效的抗干擾措施。
數(shù)å—釿ޥå£é€šé“ç¸½é«”æ€æƒ³å°±æ˜¯å…¨å…‰é›»éš”離方案,數(shù)å—é‡ï¼ˆé–‹é—œ(guÄn)é‡ï¼‰è¼¸å…¥é€šé“接入光電藕åˆå™¨åŽ,由于光電藕åˆå™¨çš„æŠ—干擾作用,使夾在輸入開關(guÄn)é‡ä¸çš„å„種干擾脈沖都被擋在輸入回路的一邊。å¦å¤–,光電藕åˆå™¨é‚„起到了很好的安全ä¿éšœä½œç”¨,å› ?yà n)楣怆娕汉掀鞯妮斎牖芈泛洼敵龌芈分gå¯è€å£“1000V,甚至更高。控制信號(hà o)輸出也是采用光電隔離方法,考慮到開關(guÄn)é‡çš„輸出直接驅(qÅ«)å‹•(dòng)è¨(shè)備的起åœ,éœ€å¤–åŠ ä¸€äº›ä¿è·(hù)電路,也å¯ä»¥é‡‡ç”¨ç¹¼é›»å™¨,Photo MOS繼電器,光電藕åˆå™¨æ–¹æ³•。
雖然模擬é‡I/O電路與外部電æºçš„隔離å¯ç”¨å®‰å…¨æŸµä¾†å¯¦(shÃ)ç¾(xià n),但是,一些強(qiáng)電干擾還會(huì)ç¶“(jÄ«ng)æ¤å’Œä¸€äº›å…¶ä»–通é“,從模擬é‡è¼¸å…¥è¼¸å‡ºé›»è·¯ä¸²å…¥ç³»çµ±(tÇ’ng),å› æ¤ç‚ºäº†ä¿è‰æ™ºèƒ½è¨(shè)備能在任何時(shÃ)候都能工作在平穩(wÄ›n),安全環(huán)境里,é‚„è¦åŠ éš”é›¢æŽªæ–½ã€‚å› ?yà n)æ§Ÿî—™Mé‡ä¿¡è™Ÿ(hà o)是連續(xù)çš„,ä»»ä½•ç–ŠåŠ åœ¨æ¨¡æ“¬ä¿¡è™Ÿ(hà o)的干擾都會(huì)å› ?yà n)橛袑?shÃ)éš›æ„義而起到作用。這表明抗干擾å±è”½çš„ä½ç½®è¶Šå¾€å¤–推越好,最好在模擬é‡è¼¸å…¥è¼¸å‡ºå£è™•,å› æ¤,è¦æ±‚這里采用的光電藕åˆå™¨å¿…é ˆå…·æœ‰ç·šæ€§è®Šæ›å’Œå‚³è¼¸?shù)奶匦浴?
3 系統(tÇ’ng)軟件è¨(shè)計(jì)
μC /OS-Ⅱ是一個(gè)å…è²»(fèi)çš„ã€æºä»£ç¢¼å…¬é–‹çš„實(shÃ)時(shÃ)嵌入å¼å…§(nèi)æ ¸,æä¾›äº†å¯¦(shÃ)時(shÃ)系統(tÇ’ng)所需的基本功能。μC /OS-â…¡ä¸åŒ…å«å…¨éƒ¨åŠŸèƒ½çš„æ ¸å¿ƒéƒ¨åˆ†,代碼åªå 用8.3KB,而且由于μC /OS-Ⅱ是å¯è£å‰ªçš„,所以用戶系統(tÇ’ng)ä¸å¯¦(shÃ)際的代碼最少å¯é”(dá)2.7KB,å¯è¬‚çŸå°ç²¾æ‚。μC /OS-â…¡é©åˆå°åž‹æŽ§åˆ¶ç³»çµ±(tÇ’ng),具有執(zhÃ)行效率高,å 用空間å°,確定性ã€å¯¦(shÃ)時(shÃ)性優(yÅu)è‰¯å’Œå¯æ“´(kuò)展性強(qiáng)ç‰ç‰¹é»ž(diÇŽn)。μC /OS-Ⅱ采用的是å å…ˆå¼çš„實(shÃ)時(shÃ)多任務(wù)å…§(nèi)æ ¸ã€‚
å å…ˆå¼çš„實(shÃ)時(shÃ)å…§(nèi)æ ¸åœ¨ä»»ä½•æ™‚(shÃ)候都é‹(yùn)行就緒任務(wù)ä¸å„ª(yÅu)先級(jÃ)最高的任務(wù)。這樣μC /OS-â…¡å°±ä¸æ”¯æŒé€šç”¨çš„æ™‚(shÃ)間片輪轉(zhuÇŽn)調(dià o)度。μC /OS-â…¡ä¸æœ€å¤šå¯ä»¥æ”¯æŒ64個(gè)任務(wù),分別å°(duì)應(yÄ«ng)優(yÅu)先級(jÃ)0~63,å…¶ä¸0為最高優(yÅu)先級(jÃ),版本Ⅱä¿ç•™8個(gè)給系統(tÇ’ng),用戶å¯ä»¥ä½¿ç”¨çš„æœ‰54個(gè)。
æº«åº¦æŽ§åˆ¶å™¨çš„æŽ§åˆ¶è¦æ±‚是:大型車載系統(tÇ’ng)è¨(shè)有溫度傳感器來檢測(cè)車載系統(tÇ’ng)多處的溫度,溫度控制器接收到當(dÄng)å‰çš„車載系統(tÇ’ng)å„處溫度,把它與車載å„處原先è¨(shè)定溫度標(biÄo)準(zhÇ”n)作比較以決定系統(tÇ’ng)å„處的工æ³ã€‚æ ¹æ“š(jù)溫度的高低,發(fÄ)出相應(yÄ«ng)的控制信號(hà o),å®ŒæˆæŽ§åˆ¶ä»¥é”(dá)到監(jiÄn)æŽ§çš„ç›®çš„ã€‚å¦‚è»Šä¸Šçš„ä¿æº«å®¤å…§(nèi)è¨(shè)定溫度為20℃,ç•¶(dÄng)溫度控制器接收到溫度傳感器的值為21℃,則溫度控制器發(fÄ)å‡ºé™æº«?cái)?shù)å—æŽ§åˆ¶ä¿¡è™Ÿ(hà o),通風(fÄ“ng)扇打開,ç•¶(dÄng)溫度傳感器的值é”(dá)到è¦(guÄ«)定的范åœï¼ˆ19.8~20.2℃)溫度控制器發(fÄ)å‡ºåœæ¢ä¿¡è™Ÿ(hà o),通風(fÄ“ng)扇關(guÄn)閉。溫度控制器有本機(jÄ«)自動(dòng)ã€æœ¬æ©Ÿ(jÄ«)手動(dòng)二種工作方å¼,æº«åº¦æŽ§åˆ¶å™¨é€šéŽæª¢æ¸¬(cè)éµç›¤ä¿¡è™Ÿ(hà o)æˆ–ä¸Šä½æ©Ÿ(jÄ«)發(fÄ)出的控制信號(hà o)以決定工作于哪一種控制方å¼ä¸‹ã€‚æ¤å¤–,æº«åº¦æŽ§åˆ¶å™¨èƒ½å¤ åŠæ™‚(shÃ)檢測(cè)出電機(jÄ«)éŽè¼‰ã€å‚³æ„Ÿå™¨å¤±éˆç‰æ•…éšœ,ç„¶åŽè¿…速åšå‡ºç°¡(jiÇŽn)單的故障處ç†ã€‚如果故障很復(fù)雜,無法診斷出來,則用雙絞線連接神經(jÄ«ng)ç¶²(wÇŽng)絡(luò)故障診斷æœå‹™(wù)器,開啟控制信號(hà o),實(shÃ)æ–½é (yuÇŽn)程故障診斷。
æ ¹æ“š(jù)æº«åº¦æŽ§åˆ¶å™¨çš„æŽ§åˆ¶è¦æ±‚,本程åºåˆ†ç‚º6個(gè)任務(wù)來實(shÃ)ç¾(xià n),分別是:任務(wù)OSTask Input ( )周期性的采集車載系統(tÇ’ng)溫度傳感器的模擬é‡è¼¸å…¥;任務(wù)OSTaskControl( ï¼‰æ ¹æ“š(jù)溫度控制器接收到當(dÄng)å‰çš„車載系統(tÇ’ng)å„處溫度,把它們分別與車載å„處原先è¨(shè)定溫度作比較和發(fÄ)出相應(yÄ«ng)的控制命令,使被控制端工作于制冷或者制暖工æ³,ç”šè‡³åœæ©Ÿ(jÄ«)(如車載系統(tÇ’ng)的發(fÄ)å‹•(dòng)機(jÄ«)處溫度éŽé«˜ï¼‰ ;任務(wù)OSTaskcontrol choice ( )周期性輪詢UART串å£,檢測(cè)æ˜¯å¦æœ‰ä¸Šä½æ©Ÿ(jÄ«)控制命令,ä»¥ä½¿æŽ§åˆ¶å™¨èƒ½åŠæ™‚(shÃ)的響應(yÄ«ng); OSTaskmode choose ( ï¼‰é€šéŽæª¢æ¸¬(cè)éµç›¤ä¿¡è™Ÿ(hà o)æˆ–ä¸Šä½æ©Ÿ(jÄ«)發(fÄ)出的控制信號(hà o)以決定溫度控制器工作于哪一種控制方å¼ä¸‹,默èª(rèn)æ–¹å¼ç‚ºè‡ªå‹•(dòng);任務(wù)OSTaskRemote Diagnosis ( )的功能是在接收到控制信號(hà o)的情æ³ä¸‹, 周期性地輪詢網(wÇŽng)å¡,以實(shÃ)ç¾(xià n)與é (yuÇŽn)程故障診斷æœå‹™(wù)器進(jìn)行通訊;任務(wù)OSTaskEasy _Recover ( )的功能是執(zhÃ)行一些簡(jiÇŽn)單的故障處ç†ç¨‹åºã€‚任務(wù)之間采用共享變é‡äº¤äº’。
該軟件的åˆå§‹åŒ–工作如下所示:

在μC /OS-â…¡ä¸å‰µ(chuà ng)建用戶任務(wù)時(shÃ)è¦æ³¨æ„到3點(diÇŽn),首先,μC /OS-â…¡ä¸æ¯å€‹(gè)任務(wù)被賦予ä¸åŒçš„優(yÅu)先級(jÃ)。任務(wù)的優(yÅu)先級(jÃ)號(hà o)就是任務(wù)編號(hà o),ä¿ç•™çµ¦ç³»çµ±(tÇ’ng)çš„ä¸èƒ½ç”¨ã€‚其次,μC /OS-â…¡ä¸,æ¯å€‹(gè)任務(wù)éƒ½æœ‰è‡ªå·±çš„å †æ£§ç©ºé–“ã€‚å †æ£§å¿…é ˆè²æ˜Žç‚ºOS STK,并且由連續(xù)的內(nèi)å˜ç©ºé–“組æˆã€‚
用戶å¯ä»¥éœæ…‹(tà i)分é…å †æ£§ç©ºé–“ä¹Ÿå¯ä»¥å‹•(dòng)æ…‹(tà i)地分é…å †æ£§ç©ºé–“ã€‚éœæ…‹(tà i)å †æ£§æ‡‰(yÄ«ng)放在函數(shù)的外é¢ã€‚最åŽ,在調(dià o)用OSTaskCreate時(shÃ)å¿…é ˆçŸ¥é“å †æ£§æ˜¯éžå¢žé‚„æ˜¯éžæ¸›,å› ?yà n)æ©›è„©èˆ¯ä»¨æ¯Žè®¯è¤©ï¼•è‡ˆï½æ”¤é¹˜o上é¢çš„函數(shù)。在OS_CPU.H文件ä¸,ç•¶(dÄng)OS_STK_GROWTH為0時(shÃ),æ£§é ‚ç‚ºå…§(nèi)å˜æœ€ä½Žåœ°å€,ç•¶(dÄng)OS_STK_GROWTH為1時(shÃ),æ£§é ‚ç‚ºå…§(nèi)å˜æœ€é«˜åœ°å€ã€‚在80x86ä¸è™•ç†å™¨çš„å †æ£§æ˜¯ç”±é«˜åœ°å€å‘ä½Žåœ°å€æ–¹å‘增長(zhÇŽng)的。
4 çµ(jié)æŸèªž
本溫控系統(tÇ’ng)硬件上采用先進(jìn)çš„32ä½ARM處ç†å™¨ä½œç‚ºæº«æŽ§è¨(shè)備的主控單元,控制的實(shÃ)時(shÃ)性ã€éˆæ´»æ€§ã€æº–(zhÇ”n)確性和安全性都好于傳統(tÇ’ng)的溫度控制箱,軟件è¨(shè)計(jì)上主è¦é‡‡ç”¨ANSI C語言編程,å¯è®€æ€§å¼·(qiáng)而且容易移æ¤,采用æºä»£ç¢¼å…¬é–‹çš„μC /OS-â…¡æ“作系統(tÇ’ng)進(jìn)行任務(wù)ç®¡ç†æé«˜äº†è»Ÿä»¶çš„åŸ·(zhÃ)行效率和系統(tÇ’ng)的實(shÃ)時(shÃ)æ€§ã€‚å› æ¤é€™åœ¨å¤§åž‹è»Šè¼‰ç³»çµ±(tÇ’ng)ä¸å…·æœ‰å»£é—Šçš„å¸‚å ´(chÇŽng)潛力和商æ¥(yè)價(jià )值。由于ARM微處ç†å™¨çš„優(yÅu)越性能和軟件的å¯ç§»æ¤æ€§,該控制器å¯ä»¥å¾ˆå®¹æ˜“的嵌入到其他系統(tÇ’ng)ä¸,èƒ½å¤ æ‡‰(yÄ«ng)用于樓宇自動(dòng)化和信æ¯å®¶é›»ç‰è«¸å¤šé ˜(lÇng)域。