技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 多串口轉(zhuǎn)換網(wǎng)關(guān)在嵌入式系統(tǒng)中的實(shí)現(xiàn)

多串口轉(zhuǎn)換網(wǎng)關(guān)在嵌入式系統(tǒng)中的實(shí)現(xiàn)

時(shí)間:2008-09-01 13:41:00來源:ronggang

導(dǎo)語:?嵌入式系統(tǒng)|C51F023|MCF5272|轉(zhuǎn)換網(wǎng)關(guān)

摘 要:本文介紹了一種采用嵌入式系統(tǒng)來實(shí)現(xiàn)多串口轉(zhuǎn)換網(wǎng)關(guān)的方法。并結(jié)合C51F023單片機(jī)和MCF5272處理器的特點(diǎn)及其工作原理,對單片機(jī)的編程策略進(jìn)行了詳盡的探討。

關(guān)鍵詞:嵌入式系統(tǒng);C51F023; MCF5272; 轉(zhuǎn)換網(wǎng)關(guān)

引言

  近些年,互聯(lián)網(wǎng)以其便捷、高速傳輸數(shù)據(jù)的特點(diǎn)越來越受到人們的青睞?;ヂ?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è)亟待解決的問題。本文提出了一種基于嵌入式系統(tǒng)來實(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é)處理器的兩級設(shè)計(jì)方案。這樣設(shè)計(jì)的目的是利用協(xié)處理器緩解核心處理器的處理壓力,并解決核心處理器數(shù)據(jù)接口數(shù)量相對不足和本系統(tǒng)多路數(shù)據(jù)量接入需求的矛盾。

  核心處理器采用摩托羅拉公司的MCF5272芯片。這款芯片在Motorola公司嵌入式處理器中屬于中低檔產(chǎn)品。但是低檔不等于低效,在主頻66M時(shí)可以達(dá)到63MIPS,接近MPC860的MIPS。并且外圍電路接口豐富,在摩托羅拉冷火系列芯片中集成度最高。該處理器集成了兩個(gè)全雙工的串口收發(fā)器,10/100M的以太網(wǎng)控制器,USB控制器,QSPI口等,非常適合于大量嵌入式應(yīng)用的場合。核心處理器的外圍擴(kuò)展芯片有FLASH、SDRAM、網(wǎng)卡芯片、USB驅(qū)動(dòng)芯片等。這就組成了一個(gè)核心處理模塊,同時(shí)我們在這個(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模塊來軟件模擬第3個(gè)全雙工串口。協(xié)處理器與核心處理器通過同步串行接口SPI口連接,進(jìn)行數(shù)據(jù)的交換。   在單片機(jī)端三個(gè)串口不斷地接收數(shù)據(jù),同一化處理后通過SPI口線傳遞給MCF5272。核心處理模塊接收來自SPI口線和自身兩個(gè)串口的數(shù)據(jù)幀,根據(jù)數(shù)據(jù)幀頭的標(biāo)志位進(jìn)行存儲轉(zhuǎn)發(fā)。   整套系統(tǒng)共有5個(gè)全雙工串口和一個(gè)10/100M的以太網(wǎng)網(wǎng)口用來進(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)的處理,這種方案編程簡單但實(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)部沒有嵌入操作系統(tǒng),所以這些多個(gè)不同的任務(wù)就要依靠多中斷加上同步鎖的策略來實(shí)現(xiàn)。

  硬件串口、SPI口以及定時(shí)器都有各自的中斷向量和中斷處理程序模塊,而軟件串口的接收和發(fā)送中斷則需要依賴于自定義的外部中斷向量來實(shí)現(xiàn)中斷機(jī)制。這些中斷的中斷級別都相同,如果發(fā)中斷沖突,則根據(jù)51單片機(jī)的中斷向量表,先執(zhí)行中斷向量號小的中斷處理程序,再執(zhí)行中斷向量號大的中斷處理程序。

  如果在數(shù)據(jù)發(fā)送的同時(shí),新的數(shù)據(jù)接收進(jìn)來并沖入發(fā)送緩存區(qū),則會發(fā)生不可避免的通信數(shù)據(jù)出錯(cuò)。類似這樣的問題就需要同步鎖來解決??紤]到實(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)部劃分出四塊二級緩存區(qū),將三個(gè)串口和一個(gè)SPI口接收到的數(shù)據(jù)先存入這四塊二級緩存區(qū)中,以免數(shù)據(jù)的丟失。

單片機(jī)與MCF5272的連接與通訊

  單片機(jī)與MCF5272之間采用SPI口進(jìn)行通訊。硬件電路如圖二所示。

圖二 單片機(jī)與MCF5272連接原理圖

  SPI為同步串行接口,要求收發(fā)同步,但是實(shí)際的運(yùn)用中,指令信號的接收和來自各串口數(shù)據(jù)的發(fā)送顯然是異步的。這就需要對SPI口進(jìn)行異步化編程設(shè)計(jì)。

  將MCF5272的QSPI口設(shè)置為主模式,為SPI時(shí)鐘的發(fā)送方;而單片機(jī)的SPI口則設(shè)置為從模式。MCF5272在程序的運(yùn)行中,不間斷的通過QSPI口發(fā)送數(shù)據(jù),在不發(fā)送指令幀數(shù)據(jù)時(shí),就發(fā)送“0”數(shù)據(jù);而單片機(jī)的SPI口就會不斷的收到數(shù)據(jù),在丟棄“0”數(shù)據(jù)外,接收到來自MCF5272有用的指令幀數(shù)據(jù)。由于SPI的收發(fā)同步的特征,MCF5272不間斷發(fā)送數(shù)據(jù)的同時(shí),便可以不斷的收到來自單片機(jī)SPI口的數(shù)據(jù),同樣,在丟棄沒有任何意義的“0”數(shù)據(jù)后,將接收到通過各個(gè)串口傳遞而來各種不同的數(shù)據(jù)。這就實(shí)現(xiàn)了同步SPI口轉(zhuǎn)變?yōu)楫惒饺p工的工作。

數(shù)據(jù)幀的同一化

  單片機(jī)的三個(gè)串口所接收到的數(shù)據(jù)都將通過SPI接口傳遞至核心處理器MCF5272,同時(shí)核心處理器的數(shù)據(jù)也通過SPI口傳遞給單片機(jī)。這就需要單片機(jī)和MCF5272之間有一致的數(shù)據(jù)接口,以方便數(shù)據(jù)的分發(fā)和接收。我們需要對三個(gè)串口接收到和從SPI口接收到的數(shù)據(jù)幀重新定義幀格式,進(jìn)行同一化處理。同一化幀格式見圖三,其中串口源地址用來識別數(shù)據(jù)來自哪一個(gè)串口,串口目的地址用來識別數(shù)據(jù)將要發(fā)送至哪一個(gè)串口。

圖三 串行口數(shù)據(jù)幀發(fā)送格式

  在MCF5272核心處理板上,從串口接收到的數(shù)據(jù)轉(zhuǎn)發(fā)至網(wǎng)絡(luò)同樣需要進(jìn)行同一化的處理。幀格式見圖四。

圖四 網(wǎng)口數(shù)據(jù)幀發(fā)送格式

結(jié) 語

  整套系統(tǒng)的五個(gè)全雙工串口和一個(gè)網(wǎng)口對核心處理板來說是完全透明的。只需根據(jù)實(shí)際情況中的具體要求在µCLinux下編寫上層應(yīng)用軟件即可,因而適用于大多數(shù)的工控設(shè)備和通訊設(shè)備。如果在后端連接上無線傳輸模塊,該方案還適用于無線通信領(lǐng)域。

參考文獻(xiàn):

  1.《C8051F020/1/2/3混合信號ISP FLASH微控制器數(shù)據(jù)手冊》 潘琢金 譯   2.《MCF5272 Coldfire Integrated Microprocessor User’s Manual》   3.《8051單片機(jī)C語言控制與應(yīng)用》 陳龍三 編著 清華大學(xué)出版社

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:變頻器在離心泵節(jié)能中的應(yīng)用

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號