時間:2014-04-08 15:29:47來æºï¼šåŠ‰æ–‡é¾,江æ£å·
摘è¦ï¼šæˆ‘國農æ¥ç”¨æ°´æµªè²»ç¾è±¡éžå¸¸åš´é‡ï¼ŒçŒæº‰æ°´åˆ©ç”¨æ•ˆçŽ‡ä½Žï¼Œå› æ¤å¦‚何æé«˜è¾²æ¥çŒæº‰æ°´è³‡æºçš„利用率就顯得尤為é‡è¦ï¼Œç‚ºäº†ç¯€ç´„并且能更好的利用農æ¥çŒæº‰æ°´è³‡æºï¼Œè¨è¨ˆäº†ä¸€ç¨®åŸºäºŽCAN總線控制的農æ¥çŒæº‰æµé‡å¯¦æ™‚ç›£æ¸¬ç³»çµ±ï¼Œè©²ç›£æ¸¬ç³»çµ±æœ‰éˆæ•的測é‡å’Œé¡¯ç¤ºåŠŸèƒ½ï¼Œç³»çµ±ä½¿ç”¨AT89C51å–®ç‰‡æ©Ÿä½œç‚ºå¹³è‡ºå°æµé‡é€²è¡Œé¡¯ç¤ºï¼Œåˆ©ç”¨RG-1æµé‡è¨ˆå°æµé‡é€²è¡Œæ¸¬é‡ï¼Œå¹¶åˆ©ç”¨ç¨ç«‹CAN通信控制器SJA1000åŠCAN總線標準è¨è¨ˆå‡ºçš„一種水æµé‡ç›£æ¸¬ç³»çµ±ã€‚è©²ç³»çµ±å…·æœ‰éˆæ•的測é‡ç²¾åº¦ï¼Œçµæ§‹ç°¡å–®ï¼Œæˆæœ¬ä½Žï¼Œç©©å®šæ€§å’Œé‡å¾©æ€§å¥½ã€‚å¯å–代傳統的æµé‡ç›£æ¸¬ç³»çµ±ï¼Œå¯¦ç¾å°è¾²æ¥çŒæº‰æ°´æµé‡æº–ç¢ºç›£æ¸¬ã€æŽ§åˆ¶çš„ç›®çš„ã€‚
é—œéµè©žï¼šCAN總線;單片機;控制系統;æµé‡è¨ˆ;SJA1000
AgriculturalirrigationbasedonCANbuscontrolmonitoringsystemdesign
WENLong-Liu1,ZHENGChanJiang1
(CollegeofAutomationandElectronicEngineering,QingdaoUniversityofScienceandTechnology,Qingdao266042,China)
Abstract:Theshortageofwaterresourceinourcountry,resourceutilizationislow,howtoimprovetheutilizationofagriculturalirrigationwaterisextremelyimportant.Basedonfieldbuscommunicationandcontroltechnologyiscurrentlyoneofthemaintechnologyinthefieldofindustrialautomaticcontrol,buildingcontrolsystembysingle-chipmicrocomputerandwithSJA1000andTJA1050constructionofCANbuscontrollerforagriculturalirrigationwatermetermonitoring,achievethegoalofsavingwater.
Keywords:CANbus;Single-chipmicrocomputer;Flowgaugeï¼›TJA1050;SJA1000;Controlsystem;
0引言
近年來,隨著經濟社會的發展,å„地水需求é‡é€æ¼¸å¢žåŠ ï¼Œæ°´è³‡æºä¾›éœ€çš„矛盾日益顯著。我國水資æºåˆ©ç”¨æ•ˆçŽ‡å¾ˆä½Žï¼Œè¾²æ¥çŒæº‰æ°´åˆ©è¨æ–½å»ºè¨è½åŽï¼Œæ°´æµªè²»ç¾è±¡åš´é‡ã€‚å› æ¤ï¼Œå¦‚何æé«˜è¾²æ¥çŒæº‰æ°´è³‡æºçš„利用率就顯得極其é‡è¦ã€‚é€šéŽæ¸¬é‡çŒæº‰æµé‡çš„實時信æ¯ä¾†æœ‰æ•ˆåœ°ç¯€ç´„利用水資æºï¼Œé€™å°±ç”¨åˆ°äº†è‡ªå‹•控制系統。確ä¿ç³»çµ±ç©©å®šæ€§ï¼Œé™ä½Žç³»çµ±æˆæœ¬çš„é‡è¦ç’°ç¯€æ˜¯åœ¨è‡ªæŽ§ç³»çµ±ä¸ä½¿ç”¨ä½•種通訊方å¼ã€‚基于ç¾å ´ç¸½ç·šçš„通訊與控制技術是目å‰å·¥æ¥è‡ªå‹•æŽ§åˆ¶é ˜åŸŸä¸çš„ä¸»è¦æŠ€è¡“ä¹‹ä¸€ï¼Œå®ƒå…·æœ‰ä¿¡æ¯æ•¸å—åŒ–å’ŒæŽ§åˆ¶åˆ†æ•£åŒ–ç‰æŠ€è¡“å„ªé»žï¼Œåœ¨è‡ªå‹•æŽ§åˆ¶é ˜åŸŸä¸æ‡‰ç”¨æ—¥ç›Šå»£æ³›ã€‚ç¾å ´ç¸½ç·šæŠ€è¡“的國際先進水平已經é”到二芯載波電纜控制10Kmè·é›¢çš„æŽ¨å»£éšŽæ®µï¼Œä½†æˆ‘國在大田農æ¥çŒæº‰æŽ§åˆ¶ç³»çµ±æ‡‰ç”¨ä¸Šï¼ŒåŸºäºŽç¸½ç·šæ–¹å¼çš„æŽ§åˆ¶æŠ€è¡“還顯得相當薄弱[1]ã€‚å› æ¤ï¼Œå€Ÿé‘’先進的è¨è¨ˆæ€æƒ³ï¼Œé–‹ç™¼å‡ºå…·æœ‰è‡ªä¸»çŸ¥è˜ç”¢æ¬Šçš„基于ç¾å ´ç¸½ç·šçš„çŒæº‰æŽ§åˆ¶ç³»çµ±ï¼Œç¬¦åˆè¾²æ¥ç¾ä»£åŒ–å°è‡ªå‹•化技術的需求。
1系統組æˆ
組æˆç¾å ´ç¶²çµ¡ï¼Œå¹¶é€šéŽä»¥AT89C51處ç†å™¨ç‚ºæ ¸å¿ƒçš„一個數據轉æ›ç³»çµ±ã€‚本系統CAN總線模塊以AT89C51為微處ç†å™¨ï¼Œåœ¨CAN總線通信接å£ä¸Šï¼Œé‡‡ç”¨äº†é£›åˆ©æµ¦å…¬å¸çš„SJA1000å’ŒTJA1050芯片,SJA1000是ç¨ç«‹CAN通信控制器,TJA1050為高性能CAN總線收發器。電路主è¦ç”±å¾®æŽ§åˆ¶å™¨AT89C51ã€ç¨ç«‹CAN通信控制器SJA1000ã€CAN總線收發器TJA1050å’Œæµé‡è¨ˆå››éƒ¨åˆ†æ‰€æ§‹æˆã€‚微處ç†å™¨AT89C51è² è²¬SJA1000çš„åˆå§‹åŒ–ï¼Œé€šéŽæŽ§åˆ¶SJA1000å¯¦ç¾æ•¸æ“šçš„æŽ¥æ”¶å’Œç™¼é€ç‰é€šä¿¡ä»»å‹™ã€‚ç³»çµ±çµæ§‹åŽŸç†åœ–如圖1-1所示:
圖1-1ç³»çµ±çµæ§‹åŽŸç†åœ–
1çŒæº‰ç³»çµ±æ¸¬é‡åŠæ•¸æ“šè™•ç†
æ°´æµé‡å‚³æ„Ÿå™¨ä¸»è¦ç”±é–¥é«”ã€æ°´æµè½‰å組件和éœçˆ¾å‚³æ„Ÿå™¨çµ„æˆã€‚它è£åœ¨é€²æ°´ç«¯ï¼Œç”¨äºŽæª¢æ¸¬é€²æ°´æµé‡ï¼Œç•¶æ°´é€šéŽæ°´æµè½‰åçµ„ä»¶æ™‚ï¼Œç£æ€§è½‰å轉動并且轉速隨著æµé‡è®ŠåŒ–而變化,éœçˆ¾å‚³æ„Ÿå™¨è¼¸å‡ºç›¸æ‡‰è„ˆæ²–信號,å饋給控制器,由控制器判斷水æµé‡çš„大å°ï¼Œé€²è¡Œèª¿æŽ§ã€‚æŽ¥ç·šç«¯å£æœ‰æ£æ¥µã€ä¿¡è™Ÿè¼¸å‡ºç·šã€è² 極。單片機通éŽè¨ˆç®—輸出脈沖數,çµåˆæ°´æµé‡è¨ˆçš„åƒæ•¸è¨ˆç®—æµéŽçš„æ°´æµé‡ï¼›å–®ç‰‡æ©ŸI/O與å˜å„²å™¨çš„æŽ¥å£é€£æŽ¥ï¼Œå–®ç‰‡æ©Ÿå°‡é‡‡é›†åŽçš„æ•¸æ“šç¶“處ç†åŽå¯ä»¥å˜æ”¾åœ¨å˜å„²å™¨ä¸ï¼Œå–®ç‰‡æ©Ÿçš„I/O接å£èˆ‡æ¶²æ™¶ä»¥åŠä¸Šä½æ©Ÿé€£æŽ¥ï¼Œç¶“éŽå–®ç‰‡æ©Ÿé‡‡é›†è™•ç†åŽçš„æ•¸æ“šå¯ä»¥é€²è¡Œå¯¦æ™‚é¡¯ç¤ºå¹¶ä¸Šå‚³è‡³ä¸Šä½æ©Ÿä¿å˜ã€‚æµé‡è¨ˆçš„æŽ¥ç·šæ–¹å¼å¦‚圖1-2所示:
圖1-2æ°´æµé‡å‚³æ„Ÿå™¨æŽ¥ç·šç«¯å£
1.2çŒæº‰ç³»çµ±é€šä¿¡éƒ¨åˆ†çš„組æˆ
CAN總線器件比較æµè¡Œçš„æœ‰å…©å¤§ç¨®:一種是有在片CAN的微控制器。å¦ä¸€ç¨®æ˜¯ç¨ç«‹çš„CAN控制器,本è¨è¨ˆé¸ç”¨PHILIPSå…¬å¸çš„SJA1000CAN控制器以åŠTJA1050總線收發器,其ä¸TJA1050å¯ä»¥æ”¯æŒ110個CAN節點,SJA1000æŒCAN2。0A/Bè¦ç´„。SJA1000用于汽車和一般工æ¥ç’°å¢ƒä¸çš„æŽ§åˆ¶å™¨å±€åŸŸç¶²çµ¡ä¸ï¼Œå®ƒæ˜¯PHILIPSåŠå°Žé«”PCA82C200CAN控制器(BasicCAN)的替代產å“ã€‚è€Œä¸”ï¼Œå®ƒå¢žåŠ äº†æ”¯æŒå…·æœ‰å¾ˆå¤šæ–°ç‰¹æ€§çš„CAN2.0Bå”è°çš„工作模å¼[2]。片內å«ä¿¡æ¯ç·©æ²–ã€ä½æµè™•ç†ã€ä½å®šæ™‚é‚è¼¯ã€æŽ¥æ”¶æ¿¾æ³¢ã€éŒ¯èª¤ç®¡ç†é‚輯ç‰é›»è·¯ï¼Œå¹¶é…置有è±å¯Œçš„功能寄å˜å™¨ã€‚å¯å®Œæˆæ•¸æ“šæˆå¹€ã€ç¸½ç·šå¡«å……ã€éŒ¯èª¤æª¢æ¸¬ã€ç¸½ç·šä»²è£åŠéŒ¯èª¤ç•Œå®šè™•ç†ç‰è¦èŒƒã€‚SJA1000的數據線AD0-AD7連接到單片機的P0å£ï¼Œ/CS與P2.0連接。P2.0為低時,CPU的外部å˜å„²åœ°å€å¯é¸ç¨®SJA1000,CPU通éŽé€™äº›åœ°å€å¯ä»¥å°SJA1000進行讀/寫æ“作。SJA1000çš„ALE,/WR,/RD引腳分別與CPU的相應引腳相連。/INT與CPUçš„INT0相連,CPU通éŽä¸æ–·æ–¹å¼å°SJA1000進行訪å•ï¼Žè©¦é©—ä¸æ‡‰è©²åŠ å¼·CANç¸½ç·šç¯€é»žçš„æŠ—å¹²æ“¾çš„èƒ½åŠ›ï¼Œé€™å°±è¦æ±‚SJA1000ç•¶çš„RX0,TX0ä¸ç›´æŽ¥èˆ‡TJA1050ä¸çš„RXD,TXD相連,而è¦é€šéŽå…‰è—•6N137å’ŒTJA1000相接,這樣總線上的å„個節點之間的電氣隔離就能更好的實ç¾ã€‚ä¸éŽï¼Œæ‡‰è©²æ³¨æ„的是,這樣光藕部分所應用的兩個電æºå¿…é ˆå®Œå…¨é›»æ°£éš”é›¢ï¼Œä¸ç„¶çš„話采用光å¶å°±å¤±åŽ»äº†æ„義。電æºéš”離å¯ä»¥é‡‡ç”¨å¸¶å¤šå€‹5V隔離輸出開關電æºä¾†å¯¦ç¾[3]。單片機與SJ1000的連接原ç†åœ–如圖1-3所示:
圖1-3SJA1000與單片機接å£è¨è¨ˆåŽŸç†åœ–
TJA1050是控制器å€åŸŸç¶²çµ¡(CAN)å”è°æŽ§åˆ¶å™¨å’Œç‰©ç†ç¸½ç·šä¹‹é–“的接å£ã€‚TJA1050å¯ä»¥ç‚ºCAN控制器æä¾›å·®å‹•接收性能,為總線æä¾›å·®å‹•ç™¼é€æ€§èƒ½ã€‚èƒ½å¤ å°‡è¼¸å‡ºä¿¡è™ŸCANHå’ŒCANL的最佳匹é…ï¼Œèƒ½å¤ å°‡é›»ç£è¼»å°„變得更å°ã€‚TJA1050çš„CAN總線接å£éƒ¨åˆ†é‡‡å–了抗干擾和安全的一些措施。TJA1000的兩個引腳CANL,CANH都是用一個5.1Ω的電阻與CAN總線連通,其ä¸é›»é˜»å¯ä»¥èµ·åˆ°é™æµä¿è·ä½œç”¨ï¼Œä½¿TJA1000ä¸è¢«éŽæµçš„æå®³[4]。在地與CANL,CANH之間并è¯äº†å…©å€‹30PFçš„é›»å®¹ï¼Œå…·æœ‰é˜²è¼»å°„å’Œæ¿¾é™¤ç¸½ç·šä¸Šçš„é«˜é »å¹²æ“¾çš„èƒ½åŠ›ã€‚å†å°±æ˜¯åœ¨CANH,CANL與地間å¯ä»¥æŽ¥å…¥å…©å€‹é˜²é›·æ“Šç®¡ï¼Œç•¶åœ°èˆ‡å…©å€‹å„輸入端之間出ç¾çž¬è®Šå¹²æ“¾çš„æ™‚候,防雷擊管的放電å¯ä»¥èµ·åˆ°ä¸€å®šçš„ä¿è·ä½œç”¨[5]。TJA1050è¨è¨ˆåŽŸç†åœ–如圖1-4所示:
圖1-4TJA1050è¨è¨ˆåŽŸç†åœ–
2系統的軟件è¨è¨ˆ
CAN總線的軟件è¨è¨ˆä¸»è¦åŒ…å«ä¸‰éƒ¨åˆ†ï¼šCANåˆå§‹åŒ–程åºã€å ±æ–‡çš„發é€ç¨‹åºã€å ±æ–‡çš„æŽ¥æ”¶ç¨‹åº[6]。CANåˆå§‹åŒ–ä¸»è¦æ˜¯è¨ç½®CANçš„é€šä¿¡åƒæ•¸ã€‚需è¦åˆå§‹åŒ–çš„CAN控制寄å˜å™¨æœ‰ï¼šæ¨¡å¼å¯„å˜å™¨ã€æ™‚分寄å˜å™¨ã€æŽ¥æ”¶ä»£ç¢¼å¯„å˜å™¨ã€å±è”½å¯„å˜å™¨ã€ç¸½ç·šå®šæ™‚寄å˜å™¨ã€è¼¸å‡ºæŽ§åˆ¶å¯„å˜å™¨ç‰ã€‚值得注æ„的是以上寄å˜å™¨åªèƒ½åœ¨CAN控制器處于復ä½ç‹€æ…‹ä¸‹æ‰å¯å¯«è¨ªå•[7]ã€‚ç™¼é€æ•¸æ“šç¨‹åºæŠŠæ•¸æ“šå˜å„²å€ä¸å¾…發é€çš„æ•¸æ“šå–出,組æˆä¿¡æ¯å¹€ï¼Œå¹¶å°‡ä¸»æ©Ÿçš„ID地å€å¡«å…¥å¹€é ,將信æ¯å¹€ç™¼é€åˆ°CAN控制器的發é€ç·©æ²–å€ã€‚在接收到主機的發é€è«‹æ±‚åŽï¼Œç™¼é€ç¨‹åºå•Ÿå‹•發é€å‘½ä»¤ã€‚ä¿¡æ¯å¾žCAN控制器發é€åˆ°ç¸½ç·šæ˜¯ç”±CAN控制器自動完æˆçš„。信æ¯å¾žCAN總線到CAN控制器的接收緩沖å€ä¹Ÿæ˜¯ç”±CAN控制器自動完æˆçš„。接收程åºåªéœ€å¾žæŽ¥æ”¶ç·©æ²–å€è®€å–ä¿¡æ¯ï¼Œå¹¶å°‡å…¶å˜å„²åœ¨æ•¸æ“šå˜å„²å€ã€‚
2.1CAN總線節點åˆå§‹åŒ–程åº
節點åˆå§‹åŒ–ä¸»è¦æŒ‡çš„æ˜¯åœ¨ç³»çµ±ä¸Šé›»ä»¥åŽå°89C51以åŠCAN控制器SJA1000所進行åˆå§‹åŒ–,來ä¿è‰å·¥ä½œä¸»é »ã€è¼¸å‡ºç‰¹æ€§ä»¥åŠæ³¢ç‰¹çއç‰ã€‚89C51çš„åˆå§‹åŒ–能通éŽçµåˆä»–們的監控任務來進行,主è¦å°±æ˜¯å®Œæˆå°ä¸æ–·å…許與å±è”½ä»¥åŠå®šæ™‚器的使用與和è¨ç½®ç‰ã€‚這里著é‡ä¾†èªªæ˜ŽSJA1000çš„åˆå§‹åŒ–,SJA1000內部沒有微處ç†å™¨ï¼Œè¦å¯¦ç¾å®ƒçš„åˆå§‹åŒ–è¦ä¾é 89C51å°å…¶ç·¨ç¨‹å¯¦ç¾ã€‚åœ¨å¾©ä½æ¨¡å¼ä¸‹æ‰èƒ½é€²è¡ŒSJA1000çš„åˆå§‹åŒ–ï¼Œå› æ¤åœ¨SJA1000åˆå§‹åŒ–程åºä¸ç¬¬ä¸€è¦æŠŠå·¥ä½œæ–¹å¼ç½®æ›ç‚ºå¾©ä½æ¨¡å¼ï¼Œç„¶åŽè¨ç½®é©—收濾波方å¼ç‰ã€‚在CANå”è°ç‰©ç†å±¤ç•¶ä¸çš„通信波特率的大å°ä»¥åŠåŒæ¥è·³è½‰å¯¬åº¦éƒ½æ˜¯ç”±å®šæ™‚寄å˜å™¨BTR0å’ŒBTR1çš„ç¨‹åºæ‰€æ±ºå®šã€‚è‘—é‡å¼·èª¿çš„æ˜¯ï¼šå°ä¸€å€‹ç³»çµ±ç•¶ä¸çš„æ‰€æœ‰çš„節點來說,這兩個寄å˜å™¨çš„æ‰€æœ‰å…§å®¹ä¸€å®šè¦ä¸€æ¨£ï¼Œä¸ç„¶å°‡æ²’有辦法進行通信。當åˆå§‹åŒ–çš„è¨ç½®å®Œæˆä»¥åŽï¼ŒæŠŠå¾©ä½è«‹æ±‚ä½ç½®‘0’,SJA1000å°±èƒ½å¤ é€²å…¥åˆ°å·¥ä½œç‹€æ…‹ï¼Œä¾†å®Œæˆæ£å¸¸çš„通信任務[8]。åˆå§‹åŒ–程åºå¦‚下:
#include<80c196kd.h>//包å«çš„æŽ§åˆ¶å™¨å¯„å˜å™¨å®šç¾©
#include_SFR_H_
#include_FUNCS_H_
#defineBASE_CAN0xa000//定義CAN控制器基å€
typedefstruct{
unsignedintid;/*å ±æ–‡æ¨™è˜ç¬¦*/
unsignedcharrtr;/*é 程幀ä½*/
unsignedchardlen;/*數據長度*/
unsignedchardata[8];/*數據*/
}MSG_STRUCT;/*å°‡CANå”è°çš„幀用Cèªžè¨€çš„çµæ§‹è¡¨ç¤º*/
voidinit_can(){
*(unsignedchar*)(BASE_CAN+0)=0x01;
/*SJA1000進入復ä½ç‹€æ…‹*/
*(unsignedchar*)(BASE_CAN+4)=0x00;
/*åˆå§‹åŒ–接收代碼寄å˜å™¨ACR*/
*(unsignedchar*)(BASE_CAN+5)=0xff;
/*åˆå§‹åŒ–接收å±è”½å¯„å˜å™¨AMR*/
*(unsignedchar*)(BASE_CAN+6)=0x00;
/*åˆå§‹åŒ–總線時åºå¯„å˜å™¨BTR0*/
*(unsignedchar*)(BASE_CAN+7)=0x14;
/*åˆå§‹åŒ–總線時åºå¯„å˜å™¨BTR1*/
*(unsignedchar*)(BASE_CAN+8)=0xfa;
/*åˆå§‹åŒ–輸出控制寄å˜å™¨OCR*/
}
2.2å ±æ–‡ç™¼é€ç¨‹åº
發é€ç¨‹åºè² è²¬ç¯€é»žå ±æ–‡çš„ç™¼é€ï¼Œç™¼é€æ™‚用戶åªéœ€å°‡å¾…發é€çš„æ•¸æ“šæŒ‰ç‰¹å®šæ ¼å¼çµ„åˆæˆä¸€å¹€å ±æ–‡ï¼Œé€å…¥SJA1000發é€ç·©å˜å€ä¸ï¼Œå¹¶å°‡SJA1000的命令寄å˜å™¨ç™¼é€è«‹æ±‚標志ä½(TR)ç½®ä½ã€‚SJA1000會自動啟動發é€éŽç¨‹ã€‚但是,在往SJA1000發é€ç·©å˜å€ç™¼é€å ±æ–‡ä¹‹å‰ï¼Œå¿…é ˆå…ˆå°ç™¼é€ç·©æ²–器是å¦é‡‹æ”¾é€²è¡Œåˆ¤æ–·ï¼Œåªæœ‰ç•¶ç™¼é€ç·©æ²–器標志(TBS)為“1”時,發é€ç·©æ²–器æ‰è¢«é‡‹æ”¾ï¼Œå¯å°‡æ–°å ±æ–‡å¯«å…¥ç™¼é€ç·©å˜ï¼Œå¦å‰‡ï¼Œåœ¨ç™¼é€ç·©æ²–å™¨è¢«éŽ–å®šæ™‚ï¼Œæ–°å ±æ–‡æ˜¯ä¸èƒ½è¢«å¯«å…¥ç™¼é€ç·©æ²–器的。發é€ç¨‹åºåˆ†æ•¸æ“šå¹€å’Œç™¼é€é 程幀兩種。é ç¨‹å¹€ç„¡æ•¸æ“šå ´ã€‚ç™¼é€ç¨‹åºä¸€èˆ¬ç·¨å¯«æˆå程åºçš„å½¢å¼ã€‚å ±æ–‡ç™¼é€ç¨‹åºå¦‚下:
unsignedcharcan_send(MSG_STRUCTsmsg)
{unsignedcharv;
inti;
v=*(unsignedchar*)(BASE_CAN+2);
if(v&0x08)/*判斷是å¦å¯ä»¥ç™¼é€æ•¸æ“š*/
{v=smsg.id>>3;/*標è˜ç¬¦é€è˜åˆ¥ç¢¼å¯„å˜å™¨*/
*(unsignedchar*)(BASE_CAN+10)=v;
v=*(unsignedchar*)(BASE_CAN+10);
v=smsg.id&7;/*è˜åˆ¥ç¢¼0-2ä½ã€RTRã€DLC*/
v<<=5;
v+=smsg.dlen;
*(unsignedchar*)(BASE_CAN+11)=v;
for(i=0;ii
{
*(unsignedchar*)(BASE_CAN+12+i)=smsg.data[i];
}
*(unsignedchar*)(BASE_CAN+1)=0x01;
return(1);
}
else
return(0);
}
2.3å ±æ–‡æŽ¥æ”¶ç¨‹åº
SJA1000çš„å ±æ–‡æŽ¥æ”¶æ˜¯å®ƒè‡ªèº«ç¨ç«‹å®Œæˆçš„ï¼Œå®ƒæŽ¥æ”¶åˆ°çš„å ±æ–‡ç¶“éŽæ¿¾æ³¢é©—收以åŽï¼Œæš«æ™‚放在接收緩沖器FIFOç•¶ä¸ã€‚åœ¨å ±æ–‡é€²åˆ°æŽ¥æ”¶ç·©æ²–å™¨ä¹‹åŽï¼Œç‹€æ…‹å¯„å˜å™¨çš„RBS會被置‘1’,與æ¤åŒæ™‚è‹¥ä¸æ–·ä½¿èƒ½å¯„å˜å™¨çš„RIE被è¨ç‚º‘1’æ™‚ï¼Œä¸æ–·å¯„å˜å™¨çš„RIä½ä¹Ÿæœƒè¢«ç½®ç‚º‘1’,然åŽSJA1000å‘CPUæå‡ºä¸æ–·è«‹æ±‚ã€‚å ±æ–‡æŽ¥æ”¶å¯ä»¥é‡‡å–æŸ¥è©¢æŽ¥æ”¶æ–¹å¼æˆ–è€…æ˜¯ä¸æ–·æŽ¥æ”¶æ–¹å¼ã€‚如果å°é€šä¿¡çš„å¯¦æ™‚æ€§çš„è¦æ±‚沒有那么強那就å¯ä»¥é‡‡å–查詢接收方å¼[9]ã€‚å ±æ–‡æŽ¥æ”¶ç¨‹åºå¦‚下:
unsignedcharcan_receive()
{
MSG_STRUCTrmsg;
inti;
unsignedcharbuf1,buf2;
while((*(unsignedchar*)(BASE_CAN+2))&0x01)
/*åˆ¤æ–·æ˜¯å¦æœ‰å¯æŽ¥æ”¶ä¿¡æ¯*/
{
buf1=*(unsignedchar*)(BASE_CAN+20);
/*將一幀信æ¯å–出*/
buf2=*(unsignedchar*)(BASE_CAN+21);
rmsg.dlen=buf2&0x0f;/*數據長度*/
for(i=0;i
rmsg.data[i]=*(unsignedchar*)(BASE_CAN+22+i);
}
*(unsignedchar*)(BASE_CAN+1)=0x04;
/*釋放接收緩沖器*/
rmsg.rtr=(buf2>>4)&0x01;/*é 程幀*/
rmsg.id=buf1;/*å–å‡ºå ±æ–‡æ¨™è˜ç¬¦*/
rmsg.id<<=3;
rmsg.id|=(buf2>>5)&0x06;
switch(rmsg.id)/*按標è˜ç¬¦è½‰å…¥ä¸åŒçš„æ•¸æ“šè™•ç†ç¨‹åº*/
case
......
break;
}
3ç³»çµ±æ‡‰ç”¨å¿…è¦æ€§ç¸½çµ
ä¸åœ‹æ˜¯ä¸€å€‹æ°´è³‡æºåš´é‡ç¼ºä¹çš„國家,æå€¡ç¯€æ°´çŒæº‰å‹¢åœ¨å¿…è¡Œï¼Œå¯¦æ–½æŒ‰æ–¹æ”¶è²»æ˜¯è¾²ç”°çŒæº‰ç”¨æ°´çš„必然趨勢,最終實ç¾è¾²ç”°çŒæº‰ç”¨æ°´çš„微機自動監測ã€è¨ˆé‡ã€æ”¶è²»ä¸€é«”化。CANç¸½ç·šæ˜¯è‡ªå‹•åŒ–æŽ§åˆ¶é ˜åŸŸçš„ç†±é»žä¹‹ä¸€ï¼Œè¢«è½ç‚ºè‡ªå‹•åŒ–é ˜åŸŸçš„å±€åŸŸç¶²ï¼Œç¾åœ¨å·²ç¶“å»£æ³›æ‡‰ç”¨äºŽå·¥æ¥æŽ§åˆ¶çš„å„å€‹é ˜åŸŸã€‚åœ¨æœ¬æ¬¡è¨è¨ˆä¸å°‡æŽ§åˆ¶å™¨èˆ‡CAN總線進行了很好的çµåˆï¼Œåœ¨æ‡‰ç”¨ä¸å……分發CANç¸½ç·šçš„å„ªå‹¢ï¼Œåœ¨è¾²ç”°çŒæº‰ç›£æ¸¬ä¸ç™¼æ®æ›´å¤§çš„作用。
åƒè€ƒæ–‡ç»
[1]饒鋿¿¤,é„’ç¹¼è»,é„勇蕓.ç¾å ´ç¸½ç·šCAN原ç†èˆ‡æ‡‰ç”¨æŠ€è¡“[M].北京:北京航空航天大å¸å‡ºç‰ˆç¤¾,2003.
[2]è¬å¸å‹¤ï¼Žç¾å ´ç¸½ç·šèˆ‡ç™¼å±•趨勢éŽç¨‹æª¢æ¸¬æŽ§åˆ¶å„€è¡¨åŠç³»çµ±ç¾ç‹€å’Œç™¼å±•ç ”è¨Žæœƒæ–‡é›†,1996(12):252-257
[3]ä¼å‰æ°.基于CANç¸½ç·šçš„ç¯€æ°´çŒæº‰è‡ªæŽ§ç³»çµ±è¨è¨ˆèˆ‡ç ”ç©¶[J]ç¯€æ°´çŒæº‰2006(1)13-5
[4]鄔寬明.CAN總線原ç†å’Œæ‡‰ç”¨ç³»çµ±è¨è¨ˆ.北京:北京航空航天大å¸å‡ºç‰ˆç¤¾,1996
[5]å²ä¹…æ ¹,張培ä»,陳真勇.CANç¾å ´ç¸½ç·šç³»çµ±è¨è¨ˆæŠ€è¡“.北京:國防工æ¥å‡ºç‰ˆç¤¾,2004
[6]陳楊,劉曙生,é¾å¿—å¼·.基于CANç¸½ç·šçš„æ•¸æ“šé€šä¿¡ç³»çµ±ç ”ç©¶[J].測控技術,2000,19(10):53-55
[7]å²ä¹æ ¹ç‰.CANç¾å ´ç¸½ç·šè¨è¨ˆæŠ€è¡“[M].北京:國防工æ¥å‡ºç‰ˆç¤¾,2004.
[8]蔡è¯é‹’,廖冬åˆ,潘å¥,ç‰ï¼ŽC8051F040ä¸çš„CAN控制器的應用[J].單片機與嵌入å¼ç³»çµ±æ‡‰ç”¨,2005(1):55—58.
[9]ç« ç£Š,æŽè€€,劉光徽.基于CAN總線網絡的ç¾å ´ç›£æŽ§ç³»çµ±[J].儀表技術與傳感器,2007(12):39-41,49
標簽:
ä¸Šä¸€ç¯‡ï¼šé«˜å£“è®Šé »å™¨åœ¨é›»å» é€é¢¨æ©Ÿä¸Šçš„æ‡‰ç”¨
下一篇:電梯物è¯ç¶²ç¶²çµ¡çµæ§‹åŠæ•¸æ“šå‚³...
ä¸åœ‹å‚³å‹•網版權與å…è²¬è²æ˜Žï¼šå‡¡æœ¬ç¶²æ³¨æ˜Ž[來æºï¼šä¸åœ‹å‚³å‹•ç¶²]的所有文å—ã€åœ–片ã€éŸ³è¦–å’Œè¦–é »æ–‡ä»¶ï¼Œç‰ˆæ¬Šå‡ç‚ºä¸åœ‹å‚³å‹•ç¶²(www.hysjfh.com)ç¨å®¶æ‰€æœ‰ã€‚如需轉載請與0755-82949061è¯ç³»ã€‚任何媒體ã€ç¶²ç«™æˆ–å€‹äººè½‰è¼‰ä½¿ç”¨æ™‚é ˆæ³¨æ˜Žä¾†æºâ€œä¸åœ‹å‚³å‹•ç¶²â€ï¼Œé•å者本網將追究其法律責任。
本網轉載并注明其他來æºçš„稿件,å‡ä¾†è‡ªäº’è¯ç¶²æˆ–æ¥å…§æŠ•稿人士,版權屬于原版權人。轉載請ä¿ç•™ç¨¿ä»¶ä¾†æºåŠä½œè€…ï¼Œç¦æ¢æ“…自篡改,é•è€…è‡ªè² ç‰ˆæ¬Šæ³•å¾‹è²¬ä»»ã€‚
相關資訊