時(shÃ)間:2008-09-01 13:41:00來(lái)æºï¼šronggang
摘 è¦ï¼šæœ¬æ–‡ä»‹ç´¹äº†ä¸€ç¨®é‡‡ç”¨åµŒå…¥å¼ç³»çµ±(tÇ’ng)來(lái)實(shÃ)ç¾(xià n)多串å£è½‰(zhuÇŽn)æ›ç¶²(wÇŽng)é—œ(guÄn)的方法。并çµ(jié)åˆC51F023單片機(jÄ«)å’ŒMCF5272處ç†å™¨çš„特點(diÇŽn)åŠå…¶å·¥ä½œåŽŸç†ï¼Œå°(duì)單片機(jÄ«)的編程ç–略進(jìn)行了詳盡的探討。
é—œ(guÄn)éµè©žï¼šåµŒå…¥å¼ç³»çµ±(tÇ’ng);C51F023; MCF5272; 轉(zhuÇŽn)æ›ç¶²(wÇŽng)é—œ(guÄn)
引言
  近些年,互è¯(lián)ç¶²(wÇŽng)以其便æ·ã€é«˜é€Ÿå‚³è¼¸æ•¸(shù)據(jù)的特點(diÇŽn)越來(lái)è¶Šå—到人們的é’çžã€‚互è¯(lián)ç¶²(wÇŽng)已經(jÄ«ng)進(jìn)入了世界的æ¯ä¸€å€‹(gè)è§’è½ã€‚而在工æ¥(yè)控制和通訊è¨(shè)å‚™ä¸ï¼Œæ›´å¤šçš„廿˜¯ç¬¦åˆRS-232標(biÄo)準(zhÇ”n)的串行å£è¨(shè)備。如何將多個(gè)串行å£çš„æ•¸(shù)據(jù)轉(zhuÇŽn)發(fÄ)到網(wÇŽng)絡(luò)上,實(shÃ)ç¾(xià n)è¨(shè)備的é (yuÇŽn)ç¨‹æŽ§åˆ¶ã€æ•¸(shù)據(jù)çš„é (yuÇŽn)程傳輸便æˆäº†ä¸€å€‹(gè)亟待解決的å•(wèn)題。本文æå‡ºäº†ä¸€ç¨®åŸºäºŽåµŒå…¥å¼ç³»çµ±(tÇ’ng)來(lái)實(shÃ)ç¾(xià n)串å£å’Œä¸²å£ã€ä¸²å£å’Œç¶²(wÇŽng)å£ä¹‹é–“的數(shù)據(jù)相互轉(zhuÇŽn)發(fÄ)的方案。
總體è¨(shè)計(jì)方案
  è¨(shè)計(jì)的總體方案如圖一所示。
圖一 多串å£è½‰(zhuÇŽn)æ›ç¶²(wÇŽng)é—œ(guÄn)總體è¨(shè)計(jì)方案
  本系統(tÇ’ng)é‡‡ç”¨æ ¸å¿ƒè™•ç†æ¨¡å¡ŠåŠ å”(xié)處ç†å™¨çš„å…©ç´š(jÃ)è¨(shè)計(jì)方案。這樣è¨(shè)計(jì)的目的是利用å”(xié)處ç†å™¨ç·©è§£æ ¸å¿ƒè™•ç†å™¨çš„處ç†å£“åŠ›ï¼Œå¹¶è§£æ±ºæ ¸å¿ƒè™•ç†å™¨æ•¸(shù)據(jù)æŽ¥å£æ•¸(shù)é‡ç›¸å°(duì)ä¸è¶³å’Œæœ¬ç³»çµ±(tÇ’ng)多路數(shù)據(jù)é‡æŽ¥å…¥éœ€æ±‚çš„çŸ›ç›¾ã€‚
ã€€ã€€æ ¸å¿ƒè™•ç†å™¨é‡‡ç”¨æ‘©æ‰˜ç¾…拉公å¸çš„MCF5272芯片。這款芯片在Motorolaå…¬å¸åµŒå…¥å¼è™•ç†å™¨ä¸å±¬äºŽä¸ä½Žæª”產(chÇŽn)å“。但是低檔ä¸ç‰äºŽä½Žæ•ˆï¼Œåœ¨ä¸»é »66M時(shÃ)å¯ä»¥é”(dá)到63MIPS,接近MPC860çš„MIPS。并且外åœé›»è·¯æŽ¥å£è±å¯Œï¼Œåœ¨æ‘©æ‰˜ç¾…拉冷ç«ç³»åˆ—芯片ä¸é›†æˆåº¦æœ€é«˜ã€‚該處ç†å™¨é›†æˆäº†å…©å€‹(gè)å…¨é›™å·¥çš„ä¸²å£æ”¶ç™¼(fÄ)器,10/100M的以太網(wÇŽng)控制器,USB控制器,QSPIå£ç‰ï¼Œéžå¸¸é©åˆäºŽå¤§é‡åµŒå…¥å¼æ‡‰(yÄ«ng)ç”¨çš„å ´(chÇŽng)åˆã€‚æ ¸å¿ƒè™•ç†å™¨çš„å¤–åœæ“´(kuò)展芯片有FLASHã€SDRAMã€ç¶²(wÇŽng)å¡èŠ¯ç‰‡ã€USBé©…(qÅ«)å‹•(dòng)芯片ç‰ã€‚這就組æˆäº†ä¸€å€‹(gè)æ ¸å¿ƒè™•ç†æ¨¡å¡Šï¼ŒåŒæ™‚(shÃ)我們?cè)è°¶@個(gè)æ ¸å¿ƒè™•ç†æ¨¡å¡Šä¸Šç§»æ¤äº†µCLinuxæ“作系統(tÇ’ng)。利用µCLinuxæ“作系統(tÇ’ng)ä¸è‡ªå¸¶çš„TCP/IPå”(xié)è°æ£§èƒ½å¾ˆæ–¹ä¾¿åœ°å¯¦(shÃ)ç¾(xià n)ç¶²(wÇŽng)絡(luò)數(shù)據(jù)的收發(fÄ)。
  å”(xié)處ç†å™¨é‡‡ç”¨CYGNALå…¬å¸çš„C8051F023單片機(jÄ«)。C8051F023單片機(jÄ«)自帶有兩個(gè)通用異æ¥å…¨é›™å·¥ä¸²å£å’Œä¸€å€‹(gè)SPIå£ï¼ŒåŒæ™‚(shÃ)å¯ä»¥ç”¨å–®ç‰‡æ©Ÿ(jÄ«)å…§(nèi)部的PCA模塊來(lái)軟件模擬第3個(gè)全雙工串å£ã€‚å”(xié)處ç†å™¨èˆ‡æ ¸å¿ƒè™•ç†å™¨é€šéŽ(guò)åŒæ¥ä¸²è¡ŒæŽ¥å£SPIå£é€£æŽ¥ï¼Œé€²(jìn)行數(shù)據(jù)的交æ›ã€‚   在單片機(jÄ«)端三個(gè)串å£ä¸æ–·åœ°æŽ¥æ”¶æ•¸(shù)據(jù),åŒä¸€åŒ–處ç†åŽé€šéŽ(guò)SPIå£ç·šå‚³éžçµ¦MCF5272ã€‚æ ¸å¿ƒè™•ç†æ¨¡å¡ŠæŽ¥æ”¶ä¾†(lái)自SPIå£ç·šå’Œè‡ªèº«å…©å€‹(gè)串å£çš„æ•¸(shù)據(jù)å¹€ï¼Œæ ¹æ“š(jù)數(shù)據(jù)å¹€é 的標(biÄo)å¿—ä½é€²(jìn)行å˜å„²(chÇ”)轉(zhuÇŽn)發(fÄ)。   整套系統(tÇ’ng)共有5個(gè)全雙工串å£å’Œä¸€å€‹(gè)10/100M的以太網(wÇŽng)ç¶²(wÇŽng)å£ç”¨ä¾†(lái)進(jìn)行數(shù)據(jù)的收發(fÄ),實(shÃ)ç¾(xià n)了串å£å’Œä¸²å£ã€ä¸²å£å’Œç¶²(wÇŽng)å£ä¹‹é–“數(shù)據(jù)的相互轉(zhuÇŽn)發(fÄ)。å¯ä»¥æ»¿è¶³å¤§å¤šæ•¸(shù)工控è¨(shè)備和通信系統(tÇ’ng)的需求。
單片機(jÄ«)ä¸å¤šä»»å‹™(wù)調(dià o)度的實(shÃ)ç¾(xià n)
  在C8051F023單片機(jÄ«)ä¸éœ€è¦å¯¦(shÃ)ç¾(xià n)三個(gè)串å£çš„全雙工收發(fÄ)以åŠèˆ‡MCF5272的通訊工作。實(shÃ)ç¾(xià n)這些功能有兩種方案,一種是采用定時(shÃ)輪詢å„個(gè)串å£å’ŒSPIå£ç‰¹å®šå¯„å˜å™¨ï¼Œä»¥åˆ¤æ–·æ˜¯å¦æœ‰æ•¸(shù)據(jù)到é”(dá),并進(jìn)行相應(yÄ«ng)的處ç†ï¼Œé€™ç¨®æ–¹æ¡ˆç·¨ç¨‹ç°¡(jiÇŽn)單但實(shÃ)時(shÃ)性較差;å¦ä¸€ç¨®æ–¹æ¡ˆæ˜¯é‡‡ç”¨ä¸æ–·æ©Ÿ(jÄ«)制,定義å„串å£çš„䏿–·å‘é‡å’Œä¸æ–·è™•ç†ç¨‹åºé€²(jìn)行處ç†ï¼Œé€™ç¨®æ–¹æ¡ˆç·¨ç¨‹è¼ƒå¾©(fù)雜但實(shÃ)時(shÃ)æ€§å¾ˆå¥½ã€‚æ ¹æ“š(jù)我們的需求,å„䏲壿•¸(shù)據(jù)的收發(fÄ),SPI壿•¸(shù)據(jù)的收發(fÄ),內(nèi)部程åºå®šæ™‚(shÃ)器的é‹(yùn)è¡Œéƒ½æ˜¯è¦æ±‚實(shÃ)時(shÃ)é‹(yùn)行的ä¸åŒä»»å‹™(wù),所以采用方案二å¯ä»¥ç²å¾—更好的實(shÃ)時(shÃ)性。由于單片機(jÄ«)å…§(nèi)部沒(méi)有嵌入æ“作系統(tÇ’ng),所以這些多個(gè)ä¸åŒçš„任務(wù)å°±è¦ä¾é å¤šä¸æ–·åŠ ä¸ŠåŒæ¥éŽ–çš„ç–略來(lái)實(shÃ)ç¾(xià n)。
  硬件串å£ã€SPIå£ä»¥åŠå®šæ™‚(shÃ)器都有å„è‡ªçš„ä¸æ–·å‘é‡å’Œä¸æ–·è™•ç†ç¨‹åºæ¨¡å¡Šï¼Œè€Œè»Ÿä»¶ä¸²å£çš„æŽ¥æ”¶å’Œç™¼(fÄ)é€ä¸æ–·å‰‡éœ€è¦ä¾è³´(là i)äºŽè‡ªå®šç¾©çš„å¤–éƒ¨ä¸æ–·å‘é‡ä¾†(lái)實(shÃ)ç¾(xià n)䏿–·æ©Ÿ(jÄ«)åˆ¶ã€‚é€™äº›ä¸æ–·çš„䏿–·ç´š(jÃ)別都相åŒï¼Œå¦‚果發(fÄ)䏿–·æ²–çªï¼Œå‰‡æ ¹æ“š(jù)51單片機(jÄ«)çš„ä¸æ–·å‘é‡è¡¨ï¼Œå…ˆåŸ·(zhÃ)è¡Œä¸æ–·å‘é‡è™Ÿ(hà o)å°çš„䏿–·è™•ç†ç¨‹åºï¼Œå†åŸ·(zhÃ)è¡Œä¸æ–·å‘é‡è™Ÿ(hà o)å¤§çš„ä¸æ–·è™•ç†ç¨‹åºã€‚
  如果在數(shù)據(jù)發(fÄ)é€çš„åŒæ™‚(shÃ),新的數(shù)據(jù)接收進(jìn)來(lái)并沖入發(fÄ)é€ç·©å˜å€(qÅ«),則會(huì)發(fÄ)生ä¸å¯é¿å…的通信數(shù)據(jù)出錯(cuò)。類(lèi)似這樣的å•(wèn)題就需è¦åŒæ¥éޖ來(lái)解決。考慮到實(shÃ)時(shÃ)效應(yÄ«ng),實(shÃ)ç¾(xià n)C8051F023åŒæ¥éŽ–çš„æ©Ÿ(jÄ«)制為:當(dÄng)需è¦ç™¼(fÄ)é€çš„一幀數(shù)據(jù)幀進(jìn)入發(fÄ)é€ç·©å˜æ™‚(shÃ)ï¼Œä¸æ–·è™•ç†ç¨‹åºç«‹åˆ»åŠ éŽ–ï¼Œä¸å…許新的數(shù)據(jù)å†é€²(jìn)入發(fÄ)é€ç·©å˜ï¼Œç›´åˆ°è©²å¹€æ•¸(shù)據(jù)全部發(fÄ)é€å®Œç•¢å†è§£éŽ–ï¼Œæ¤æ™‚(shÃ)新的數(shù)據(jù)æ‰è¢«å…許進(jìn)入發(fÄ)é€ç·©å˜å€(qÅ«)。與æ¤åŒæ™‚(shÃ),在單片機(jÄ«)å…§(nèi)部劃分出四塊二級(jÃ)ç·©å˜å€(qÅ«),將三個(gè)串å£å’Œä¸€å€‹(gè)SPIå£æŽ¥æ”¶åˆ°çš„æ•¸(shù)據(jù)å…ˆå˜å…¥é€™å››å¡ŠäºŒç´š(jÃ)ç·©å˜å€(qÅ«)ä¸ï¼Œä»¥å…數(shù)據(jù)的丟失。
單片機(jī)與MCF5272的連接與通訊
  單片機(jÄ«)與MCF5272之間采用SPIå£é€²(jìn)行通訊。硬件電路如圖二所示。
圖二 單片機(jÄ«)與MCF5272連接原ç†åœ–
  SPIç‚ºåŒæ¥ä¸²è¡ŒæŽ¥å£ï¼Œè¦æ±‚收發(fÄ)åŒæ¥ï¼Œä½†æ˜¯å¯¦(shÃ)際的é‹(yùn)用ä¸ï¼ŒæŒ‡ä»¤ä¿¡è™Ÿ(hà o)的接收和來(lái)自å„䏲壿•¸(shù)據(jù)的發(fÄ)é€é¡¯ç„¶æ˜¯ç•°æ¥çš„。這就需è¦å°(duì)SPIå£é€²(jìn)行異æ¥åŒ–編程è¨(shè)計(jì)。
  將MCF5272çš„QSPIå£è¨(shè)置為主模å¼ï¼Œç‚ºSPI時(shÃ)é˜çš„發(fÄ)逿–¹;而單片機(jÄ«)çš„SPIå£å‰‡è¨(shè)置為從模å¼ã€‚MCF5272在程åºçš„é‹(yùn)行ä¸ï¼Œä¸é–“斷的通éŽ(guò)QSPIå£ç™¼(fÄ)逿•¸(shù)據(jù),在ä¸ç™¼(fÄ)逿Œ‡ä»¤å¹€æ•¸(shù)據(jù)時(shÃ),就發(fÄ)逓0”數(shù)據(jù);而單片機(jÄ«)çš„SPIå£å°±æœƒ(huì)䏿–·çš„æ”¶åˆ°æ•¸(shù)據(jù),在丟棄“0”數(shù)據(jù)外,接收到來(lái)自MCF5272有用的指令幀數(shù)據(jù)。由于SPI的收發(fÄ)åŒæ¥çš„特å¾ï¼ŒMCF5272ä¸é–“斷發(fÄ)逿•¸(shù)據(jù)çš„åŒæ™‚(shÃ),便å¯ä»¥ä¸æ–·çš„æ”¶åˆ°ä¾†(lái)自單片機(jÄ«)SPIå£çš„æ•¸(shù)據(jù)ï¼ŒåŒæ¨£ï¼Œåœ¨ä¸Ÿæ£„æ²’(méi)有任何æ„義的“0”數(shù)據(jù)åŽï¼Œå°‡æŽ¥æ”¶åˆ°é€šéŽ(guò)å„個(gè)串å£å‚³éžè€Œä¾†(lái)å„種ä¸åŒçš„æ•¸(shù)據(jù)。這就實(shÃ)ç¾(xià n)äº†åŒæ¥SPIå£è½‰(zhuÇŽn)變?yÅu)楫惒饺p工的工作。
數(shù)據(jù)幀的åŒä¸€åŒ–
  單片機(jÄ«)的三個(gè)䏲壿‰€æŽ¥æ”¶åˆ°çš„æ•¸(shù)據(jù)都將通éŽ(guò)SPI接å£å‚³éžè‡³æ ¸å¿ƒè™•ç†å™¨MCF5272ï¼ŒåŒæ™‚(shÃ)æ ¸å¿ƒè™•ç†å™¨çš„æ•¸(shù)據(jù)也通éŽ(guò)SPIå£å‚³éžçµ¦å–®ç‰‡æ©Ÿ(jÄ«)。這就需è¦å–®ç‰‡æ©Ÿ(jÄ«)å’ŒMCF5272之間有一致的數(shù)據(jù)接å£ï¼Œä»¥æ–¹ä¾¿æ•¸(shù)據(jù)的分發(fÄ)和接收。我們需è¦å°(duì)三個(gè)ä¸²å£æŽ¥æ”¶åˆ°å’Œå¾žSPIå£æŽ¥æ”¶åˆ°çš„æ•¸(shù)據(jù)幀釿–°å®šç¾©å¹€æ ¼å¼ï¼Œé€²(jìn)行åŒä¸€åŒ–處ç†ã€‚åŒä¸€åŒ–å¹€æ ¼å¼è¦‹(jià n)圖三,其ä¸ä¸²å£æºåœ°å€ç”¨ä¾†(lái)è˜(shÃ)別數(shù)據(jù)來(lái)自哪一個(gè)串å£ï¼Œä¸²å£ç›®çš„地å€ç”¨ä¾†(lái)è˜(shÃ)別數(shù)據(jù)å°‡è¦ç™¼(fÄ)é€è‡³å“ªä¸€å€‹(gè)串å£ã€‚
圖三 ä¸²è¡Œå£æ•¸(shù)據(jù)幀發(fÄ)逿 ¼å¼
  在MCF5272æ ¸å¿ƒè™•ç†æ¿ä¸Šï¼Œå¾žä¸²å£æŽ¥æ”¶åˆ°çš„æ•¸(shù)據(jù)轉(zhuÇŽn)發(fÄ)至網(wÇŽng)絡(luò)åŒæ¨£éœ€è¦é€²(jìn)行åŒä¸€åŒ–的處ç†ã€‚å¹€æ ¼å¼è¦‹(jià n)圖四。
圖四 ç¶²(wÇŽng)壿•¸(shù)據(jù)幀發(fÄ)逿 ¼å¼
çµ(jié) 語(yÇ”)
  整套系統(tÇ’ng)的五個(gè)全雙工串å£å’Œä¸€å€‹(gè)ç¶²(wÇŽng)å£å°(duì)æ ¸å¿ƒè™•ç†æ¿ä¾†(lái)說(shuÅ)æ˜¯å®Œå…¨é€æ˜Žçš„。åªéœ€æ ¹æ“š(jù)實(shÃ)際情æ³ä¸çš„å…·é«”è¦æ±‚在µCLinux下編寫(xiÄ›)上層應(yÄ«ng)用軟件å³å¯ï¼Œå› 而é©ç”¨äºŽå¤§å¤šæ•¸(shù)的工控è¨(shè)備和通訊è¨(shè)備。如果在åŽç«¯é€£æŽ¥ä¸Šç„¡(wú)線傳輸模塊,該方案還é©ç”¨äºŽç„¡(wú)ç·šé€šä¿¡é ˜(lÇng)域。
åƒè€ƒæ–‡ç»(xià n):
  1.《C8051F020/1/2/3æ··åˆä¿¡è™Ÿ(hà o)ISP FLASH微控制器數(shù)據(jù)手冊(cè)》 潘ç¢é‡‘ è¯ ã€€ã€€2.《MCF5272 Coldfire Integrated Microprocessor User’s Manual》   3.《8051單片機(jÄ«)C語(yÇ”)言控制與應(yÄ«ng)用》 陳é¾ä¸‰ 編著 清è¯å¤§å¸(xué)出版社
標(biÄo)簽:
ä¸Šä¸€ç¯‡ï¼šè®Šé »å™¨åœ¨é›¢å¿ƒæ³µç¯€(jié)能ä¸çš„æ‡‰(yÄ«ng)用
下一篇:微能WIN-V63çŸ¢é‡æŽ§åˆ¶è®Šé »å™¨åœ¨...
ä¸åœ‹(guó)傳動(dòng)ç¶²(wÇŽng)版權(quán)與å…責(zé)è²æ˜Žï¼šå‡¡æœ¬ç¶²(wÇŽng)注明[來(lái)æºï¼šä¸åœ‹(guó)傳動(dòng)ç¶²(wÇŽng)]的所有文å—ã€åœ–片ã€éŸ³è¦–å’Œè¦–é »æ–‡ä»¶ï¼Œç‰ˆæ¬Š(quán)å‡ç‚ºä¸åœ‹(guó)傳動(dòng)ç¶²(wÇŽng)(www.hysjfh.com)ç¨(dú)家所有。如需轉(zhuÇŽn)載請(qÇng)與0755-82949061è¯(lián)系。任何媒體ã€ç¶²(wÇŽng)站或個(gè)人轉(zhuÇŽn)載使用時(shÃ)é ˆæ³¨æ˜Žä¾†(lái)æºâ€œä¸åœ‹(guó)傳動(dòng)ç¶²(wÇŽng)â€ï¼Œé•å者本網(wÇŽng)將追究其法律責(zé)任。
本網(wÇŽng)轉(zhuÇŽn)載并注明其他來(lái)æºçš„稿件,å‡ä¾†(lái)自互è¯(lián)ç¶²(wÇŽng)或æ¥(yè)å…§(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuÇŽn)載請(qÇng)ä¿ç•™ç¨¿ä»¶ä¾†(lái)æºåŠä½œè€…ï¼Œç¦æ¢æ“…自篡改,é•è€…è‡ªè² (fù)版權(quán)法律責(zé)任。
相關(guÄn)資訊