在å°é›»åé»žç«æ¨¡å¡Šçš„æ¸¬è©¦ä¸ï¼Œç‚ºäº†æ¨¡æ“¬é›»å點ç«ç³»çµ±çš„真實工æ³ï¼Œé›»åé»žç«æ¨¡å¡Šå¾€å¾€è¢«ç½®äºŽé«˜äºŽå¸¸æº«çš„環境下進行電å點ç«å¯¦é©—,以ç²å¾—最接近真實汽車é‹è¡Œå·¥æ³çš„點ç«åƒæ•¸æ•¸æ“šã€‚由于電åé»žç«æ¨¡å¡Šè‡ªèº«çš„ç™¼ç†±ï¼Œå…¶æ ¸å¿ƒå…ƒä»¶çš„æº«åº¦æˆç‚ºå½±éŸ¿é›»å模塊性能的é‡è¦å› ç´ ;å¦å¤–,還è¦è€ƒæ…®ç’°å¢ƒæº«åº¦æ˜¯å¦é”到模擬真實工æ³çš„è¦æ±‚ç‰ã€‚
  本文介紹了一種應用LM35溫度傳感器和PICMicro的溫度檢測節點的è¨è¨ˆæ–¹æ¡ˆï¼Œç”¨äºŽæª¢æ¸¬åœ¨æ¨¡æ“¬æ±½è»Šé›»å點ç«çš„éŽç¨‹ä¸ï¼Œé›»åé»žç«æ¨¡å¡Šçš„æ ¸å¿ƒæ¨¡å¡Šæº«åº¦å’Œç’°å¢ƒæº«åº¦ï¼Œå°‡é—¡æ˜Žæ¨¡å¡Šçµæ§‹ã€å·¥ä½œåŽŸç†åŠé‡‡æ¨£å€¼é‡åŒ–的方法。
節點原ç†èˆ‡çµæ§‹
  該溫度檢測節點由傳感器電路ã€ä¿¡è™Ÿèª¿ç†é›»è·¯ã€å–®ç‰‡æ©Ÿæ‡‰ç”¨ç³»çµ±ã€CAN總線接å£ç‰æ§‹æˆã€‚é›»è·¯åŸºæœ¬å·¥ä½œåŽŸç†æ˜¯ï¼šå‚³æ„Ÿå™¨é›»è·¯å°‡æ„Ÿæ‡‰åˆ°çš„æº«åº¦ä¿¡è™Ÿä»¥é›»å£“的形å¼è¼¸å‡ºåˆ°ä¿¡è™Ÿèª¿ç†é›»è·¯ï¼Œä¿¡è™Ÿç¶“éŽèª¿ç†åŽè¼¸å…¥åˆ°A/D采樣電路,由ADC將數å—é‡å€¼é€çµ¦å–®ç‰‡æ©Ÿç³»çµ±ã€‚單片機系統將監控實時溫度,當溫度超éŽè¦æˆ’值和å±éšªå€¼æ™‚,單片機將主動發é€è¦å‘Šä¿¡æ¯åˆ°ä¸Šä½æ©Ÿï¼Œæé†’æ“作人員檢查。模塊é‚è¼¯çµæ§‹å¦‚圖1所示。
圖1 溫度檢測節點é‚è¼¯çµæ§‹
  傳感器電路采用溫度傳感器LM35,供電電壓為15Vç›´æµï¼Œå·¥ä½œé›»æµç‚º120mA ,功耗極低,在全溫度范åœå·¥ä½œæ™‚,電æµè®ŠåŒ–很å°ï¼Œé›»å£“輸出采用差動信號方å¼ï¼Œç”±2ã€3引腳直接輸出。LM35輸出信號經éŽä¸€å€‹ç”±RC組æˆçš„LPæ¿¾æ³¢å™¨ï¼Œæ¿¾é™¤é«˜é »çš„å™ªè²å¹²æ“¾ã€‚
ã€€ã€€æœ¬ç¯€é»žçš„æ ¸å¿ƒMCU是PIC16F87x,是Microchipå…¬å¸æŽ¨å‡ºçš„ä½ŽåŠŸè€—8ä½å–®ç‰‡æ©Ÿã€‚PIC16F87xæ“æœ‰ç²¾ç°¡æŒ‡ä»¤é›†ï¼ŒåŸ·è¡Œé€Ÿåº¦ç‚º200ns。CAN 控制器采用Microchipå…¬å¸çš„MCP2510,總線驅動器采用PCA82C250,總線隔離電路采用光耦6N317,信號調ç†é›»è·¯é‡‡ç”¨LF412ã€‚æº«åº¦ç›£æ¸¬æ¨¡å¡Šçš„ç¡¬ä»¶çµæ§‹å¦‚圖2所示。
圖2 æº«åº¦ç›£æ¸¬æ¨¡å¡Šç¡¬ä»¶çµæ§‹
  信號調ç†é›»è·¯ä¸»è¦å®Œæˆå°å‚³æ„Ÿå™¨ä¿¡è™Ÿæ”¾å¤§å’Œé™å¹…的功能,將傳感器電路輸出的變化范åœç‚º2Vå·¦å³çš„ç›´æµé›»å£“,調ç†ç‚ºç¬¦åˆPICMicroçš„AD接å£çš„電壓范åœï¼Œæ—¢ä¸èƒ½è¶…éŽAD采樣的é‡ç¨‹ï¼Œåˆè¦æœ‰ç›¸ç•¶çš„信號精度。單片機通éŽA/D采樣通é“采集傳感器的溫度數據,并計算溫度范åœã€‚
  外åœè¨å‚™é›»è·¯ç‚ºPIC16F87x最å°ç³»çµ±é‹è¡Œæ‰€éœ€è¦çš„å¿…è¦å¤–è¨ã€‚PIC16F87x通éŽSPI總線與MCP2510進行數據交æ›ï¼Œå®ŒæˆCAN總線數據包的發é€å’ŒæŽ¥æ”¶ï¼Œå…¶æŽ¥å£é›»è·¯å¦‚圖3所示。
圖3 PIC16F877與MCP2510的接å£é›»è·¯
  其ä¸ï¼ŒSCK為SPI總線時é˜ï¼ŒPIC16F87x模塊的SPIæŽ¥å£æŽ¥MCP2510çš„SIã€SOã€SCK,RA4與RA1分別控制MCP2510的芯片復ä½å’Œç‰‡é¸ã€‚INT接å—MCP2510çš„ä¸æ–·è«‹æ±‚。
系統軟件è¨è¨ˆ
  1系統軟件æµç¨‹
  為了é¿å…å› å¹²æ“¾è€Œç”¢ç”Ÿèª¤å‹•ä½œï¼Œè»Ÿä»¶é‡‡å–了一些冗余和容錯處ç†ï¼Œåœ¨A/D模塊處ç†é‡‡æ¨£æ•¸æ“šæ™‚ï¼Œé‡‡ç”¨äº†è»Ÿä»¶æ¿¾æ³¢æŽªæ–½ï¼Œä»¥æ¿¾é™¤é›»è·¯ä¸å¯èƒ½æœƒå‡ºç¾çš„尖峰干擾。
ã€€ã€€æ–¹æ³•ç‚ºé€£çºŒé‡‡æ¨£äº”æ¬¡ï¼Œé€šéŽæ¯”較判斷,去掉其ä¸çš„æœ€å¤§å€¼å’Œæœ€å°å€¼, 其余三次的值求和åŽå–å¹³å‡å€¼ï¼ŒæŠŠå¹³å‡å€¼ä½œç‚ºCPU用來劃分溫度范åœçš„æœ‰æ•ˆæ•¸æ“šã€‚數據包的解æžå’Œå°è£éƒ½éµå¾ªCAN的應用層å”è°ï¼Œä¸»ç¨‹åºæµç¨‹å¦‚圖4所示。
圖4 ä¸»ç¨‹åºæµç¨‹
  當CPU檢測到溫度出ç¾ç•°å¸¸ï¼Œæœƒæ ¹æ“šæº«åº¦ç•°å¸¸èŒƒåœå‘ä¸Šä½æ©Ÿç™¼å‡ºæº«åº¦ç•°å¸¸è¦å ±ï¼Œé€™æ˜¯è©²ç¯€é»žCPU唯一主動å‘ä¸Šä½æ©Ÿç™¼å‡ºçš„æ•¸æ“šå¹€ã€‚è©²ç¯€é»žçš„æº«åº¦ç›¸é—œæ•¸æ“šå˜æ”¾åœ¨ç·©æ²–å€ï¼Œåœ¨æ²’æœ‰æ”¶åˆ°ä¸Šä½æ©Ÿæ•¸æ“šè«‹æ±‚的時候,該緩沖å€çš„æ•¸æ“šæœƒä¸æ–·çš„被新的數據刷新,以ä¿è‰è©²ç¯€é»žæ•¸æ“šçš„å¯¦æ™‚æ€§ï¼Œä¸æ–·æµç¨‹å¦‚圖5所示。
圖5 CANæŽ¥æ”¶ä¸æ–·æµç¨‹
2 采樣值的é‡åŒ–方法
  采樣值的準確é‡åŒ–是溫控電路æ£å¸¸å·¥ä½œçš„é—œéµï¼Œé€™é‡Œé‡‡ç”¨ä»¥ä¸‹æ›ç®—辦法來進行é‡åŒ–。è¨ç¶“éŽä¿¡è™Ÿèª¿ç†åŽçš„電壓為Ui,則-10V
  Ui=-10V+ΔT·Kt=-10V+55℃×0.111V/℃=-3.895V。
  Ui轉æ›ç‚ºæ•¸å—é‡åŽï¼Œæ¯å€‹æ•¸å—é‡å°æ‡‰é›»å£“值為19.531mV,用Ks表示。å¯ä»¥æ±‚得數å—é‡è®ŠåŒ–å’Œæº«åº¦è®ŠåŒ–ä¹‹é–“çš„å°æ‡‰é—œç³»ï¼šKt/Ks =(0.111V/℃)/(19.531mV/數å—é‡ï¼‰=5.683數å—é‡/℃。
ã€€ã€€å…¶ä»–æº«åº¦å°æ‡‰çš„æ•¸å—é‡ä¹Ÿå¯ä»¥é€šéŽä»¥ä¸Šæ–¹æ³•算出。
3 SPI接å£é€šä¿¡
  PIC16F87x通éŽSPI接å£å’ŒMCP2510進行數據交æ›ã€‚
  MCP2510 è¨è¨ˆå¯èˆ‡è¨±å¤šå¾®æŽ§åˆ¶å™¨çš„ä¸²è¡Œå¤–è¨æŽ¥å£ï¼ˆSPI)直接相連。外部數據和命令通éŽSI引腳傳é€åˆ°å™¨ä»¶ä¸ï¼Œè€Œæ•¸æ“šåœ¨SCK時é˜ä¿¡è™Ÿçš„ä¸Šå‡æ²¿å‚³é€é€²åŽ»ã€‚
  MCP2510在SCK䏋陿²¿é€šéŽSO 引腳發é€è¡¨1列出了所有æ“作的指令å—節。
  以PIC16F87xå‘MCP2510發é€è®€æŒ‡ä»¤ç‚ºä¾‹ï¼Œä¾†èªªæ˜ŽSPI接å£é€šä¿¡éŽç¨‹ã€‚
  在讀æ“作開始時,CS 引腳將被置為低電平。隨åŽè®€æŒ‡ä»¤å’Œ8ä½åœ°å€ç¢¼ï¼ˆA7~A0ï¼‰å°‡è¢«ä¾æ¬¡é€å…¥MCP2510。在接收到讀指令和地å€ç¢¼ä¹‹åŽï¼ŒMCP2510指定地å€å¯„å˜å™¨ä¸çš„æ•¸æ“šå°‡è¢«ç§»å‡ºé€šéŽSO引腳進行發é€ã€‚æ¯ä¸€æ•¸æ“šå—節移出åŽï¼Œå™¨ä»¶å…§éƒ¨çš„åœ°å€æŒ‡é‡å°‡è‡ªå‹•åŠ ä¸€ä»¥æŒ‡å‘下一地å€ã€‚å› æ¤å¯ä»¥å°ä¸‹ä¸€å€‹é€£çºŒåœ°å€å¯„å˜å™¨é€²è¡Œè®€æ“作。通éŽè©²æ–¹æ³•å¯ä»¥é †åºè®€å–ä»»æ„一個連續地å€å¯„å˜å™¨ä¸çš„æ•¸æ“šã€‚é€šéŽæ‹‰é«˜ CS 引腳電平å¯ä»¥çµæŸè®€æ“作,如圖6所示。

圖6 SPI 接å£é€šä¿¡æ™‚åº
çµæŸèªž
  基于LM35開發的溫控節點工作穩定性強ã€å¯é 性高ã€ä¸”具有體ç©å°ã€éˆæ•度高ã€éŸ¿æ‡‰æ™‚é–“çŸã€æŠ—干擾能力強ç‰ç‰¹é»žã€‚è©²ç¯€é»žæˆæœ¬ä½Žå»‰ï¼Œå™¨ä»¶å‡ç‚ºå¸¸è¦å…ƒä»¶ï¼Œæœ‰è¼ƒé«˜çš„å·¥ç¨‹åƒ¹å€¼ã€‚æœ¬ç¯€é»žæ“æœ‰CAN接å£ï¼Œæ—¢å¯ä»¥ä½œç‚ºä¸€å€‹ç¨ç«‹çš„æª¢æ¸¬ç³»çµ±ï¼Œä¹Ÿå¯ä»¥ä½œç‚ºåˆ†å¸ƒå¼æ¸¬è©¦ç³»çµ±çš„一個關éµéƒ¨åˆ†ã€‚CAN的上層å”è°éƒ½å¯ä»¥åœ¨è»Ÿä»¶ä¸å¯¦ç¾ï¼Œä½¿å¾—本節點接å£éˆæ´»ï¼Œä¸å—上層å”è°çš„é™åˆ¶ã€‚