亚洲精华国产精华精华液网站,你懂的,娇生惯养4ph归寻(矜以),丰年经继拇中文3与其他教材比较

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 技術百科 > 多串口轉換網關在嵌入式系統中的實現

多串口轉換網關在嵌入式系統中的實現

時間:2008-09-01 13:41:00來源:ronggang

導語:?嵌入式系統|C51F023|MCF5272|轉換網關

摘 要:本文介紹了一種采用嵌入式系統來實現多串口轉換網關的方法。并結合C51F023單片機和MCF5272處理器的特點及其工作原理,對單片機的編程策略進行了詳盡的探討。

關鍵詞:嵌入式系統;C51F023; MCF5272; 轉換網關

引言

  近些年,互聯網以其便捷、高速傳輸數據的特點越來越受到人們的青睞。互聯網已經進入了世界的每一個角落。而在工業控制和通訊設備中,更多的卻是符合RS-232標準的串行口設備。如何將多個串行口的數據轉發到網絡上,實現設備的遠程控制、數據的遠程傳輸便成了一個亟待解決的問題。本文提出了一種基于嵌入式系統來實現串口和串口、串口和網口之間的數據相互轉發的方案。

總體設計方案

  設計的總體方案如圖一所示。

圖一 多串口轉換網關總體設計方案

  本系統采用核心處理模塊加協處理器的兩級設計方案。這樣設計的目的是利用協處理器緩解核心處理器的處理壓力,并解決核心處理器數據接口數量相對不足和本系統多路數據量接入需求的矛盾。

  核心處理器采用摩托羅拉公司的MCF5272芯片。這款芯片在Motorola公司嵌入式處理器中屬于中低檔產品。但是低檔不等于低效,在主頻66M時可以達到63MIPS,接近MPC860的MIPS。并且外圍電路接口豐富,在摩托羅拉冷火系列芯片中集成度最高。該處理器集成了兩個全雙工的串口收發器,10/100M的以太網控制器,USB控制器,QSPI口等,非常適合于大量嵌入式應用的場合。核心處理器的外圍擴展芯片有FLASH、SDRAM、網卡芯片、USB驅動芯片等。這就組成了一個核心處理模塊,同時我們在這個核心處理模塊上移植了µCLinux操作系統。利用µCLinux操作系統中自帶的TCP/IP協議棧能很方便地實現網絡數據的收發。

  協處理器采用CYGNAL公司的C8051F023單片機。C8051F023單片機自帶有兩個通用異步全雙工串口和一個SPI口,同時可以用單片機內部的PCA模塊來軟件模擬第3個全雙工串口。協處理器與核心處理器通過同步串行接口SPI口連接,進行數據的交換。   在單片機端三個串口不斷地接收數據,同一化處理后通過SPI口線傳遞給MCF5272。核心處理模塊接收來自SPI口線和自身兩個串口的數據幀,根據數據幀頭的標志位進行存儲轉發。   整套系統共有5個全雙工串口和一個10/100M的以太網網口用來進行數據的收發,實現了串口和串口、串口和網口之間數據的相互轉發。可以滿足大多數工控設備和通信系統的需求。

單片機中多任務調度的實現

  在C8051F023單片機中需要實現三個串口的全雙工收發以及與MCF5272的通訊工作。實現這些功能有兩種方案,一種是采用定時輪詢各個串口和SPI口特定寄存器,以判斷是否有數據到達,并進行相應的處理,這種方案編程簡單但實時性較差;另一種方案是采用中斷機制,定義各串口的中斷向量和中斷處理程序進行處理,這種方案編程較復雜但實時性很好。根據我們的需求,各串口數據的收發,SPI口數據的收發,內部程序定時器的運行都是要求實時運行的不同任務,所以采用方案二可以獲得更好的實時性。由于單片機內部沒有嵌入操作系統,所以這些多個不同的任務就要依靠多中斷加上同步鎖的策略來實現。

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

  如果在數據發送的同時,新的數據接收進來并沖入發送緩存區,則會發生不可避免的通信數據出錯。類似這樣的問題就需要同步鎖來解決。考慮到實時效應,實現C8051F023同步鎖的機制為:當需要發送的一幀數據幀進入發送緩存時,中斷處理程序立刻加鎖,不允許新的數據再進入發送緩存,直到該幀數據全部發送完畢再解鎖,此時新的數據才被允許進入發送緩存區。與此同時,在單片機內部劃分出四塊二級緩存區,將三個串口和一個SPI口接收到的數據先存入這四塊二級緩存區中,以免數據的丟失。

單片機與MCF5272的連接與通訊

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

圖二 單片機與MCF5272連接原理圖

  SPI為同步串行接口,要求收發同步,但是實際的運用中,指令信號的接收和來自各串口數據的發送顯然是異步的。這就需要對SPI口進行異步化編程設計。

  將MCF5272的QSPI口設置為主模式,為SPI時鐘的發送方;而單片機的SPI口則設置為從模式。MCF5272在程序的運行中,不間斷的通過QSPI口發送數據,在不發送指令幀數據時,就發送“0”數據;而單片機的SPI口就會不斷的收到數據,在丟棄“0”數據外,接收到來自MCF5272有用的指令幀數據。由于SPI的收發同步的特征,MCF5272不間斷發送數據的同時,便可以不斷的收到來自單片機SPI口的數據,同樣,在丟棄沒有任何意義的“0”數據后,將接收到通過各個串口傳遞而來各種不同的數據。這就實現了同步SPI口轉變為異步全雙工的工作。

數據幀的同一化

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

圖三 串行口數據幀發送格式

  在MCF5272核心處理板上,從串口接收到的數據轉發至網絡同樣需要進行同一化的處理。幀格式見圖四。

圖四 網口數據幀發送格式

結 語

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

參考文獻:

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

標簽:

點贊

分享到:

上一篇:變頻器在離心泵節能中的應用

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

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.siyutn.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 沧州市| 舞钢市| 曲靖市| 溧水县| 嘉禾县| 甘洛县| 溆浦县| 红安县| 平阳县| 建昌县| 贺州市| 南城县| 延吉市| 北票市| 睢宁县| 临桂县| 克拉玛依市| 积石山| 大荔县| 阿坝县| 平利县| 秦安县| 大足县| 韶关市| 合肥市| 阜平县| 阿坝县| 尉氏县| 略阳县| 泸定县| 瑞安市| 陇川县| 平远县| 抚顺市| 吉首市| 米易县| 攀枝花市| 滦平县| 曲阜市| 富蕴县| 宁晋县|