• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 淺談Small RTOS51 下CAN總線數據收發實現

    淺談Small RTOS51 下CAN總線數據收發實現

    作者: 時間:2011-09-03 來源:網絡 收藏
    1 簡介

      現場總線(Fieldbus)是近年來迅速發展起來的一種工業數據總線,它主要解決工業現場的智能化儀器儀表、控制器、執行機構等現場設備間的數字通信以及這些現場控制設備和高級控制系統之間的信息傳遞問題。由于現場總線簡單、可靠、經濟實用等一系列突出的優點,因而受到了許多標準團體和計算機廠商的高度重視。現場總線(Fieldbus)是20世紀80年代末、90年代初國際上發展形成的,用于 現場總線技術

      過程自動化、制造自動化、樓宇自動化等領域的現場智能設備互連通訊網絡。它作為工廠數字通信網絡的基礎,溝通了生產過程現場及控制設備之間及其與更高控制管理層次之間的聯系。它不僅是一個基層網絡,而且還是一種開放式、新型全分布控制系統。這項以智能傳感、控制、計算機、數字通訊等技術為主要內容的綜合技術,已經受到世界范圍的關注,成為自動化技術發展的熱點,并將導致自動化系統結構與設備的深刻變革。國際上許多實力、有影響的公司都先后在不同程度上進行了現場總線技術與產品的開發。德國Bosch公司的CAN(1Mbit/s)是國際標準之一,也是Controller Area Network 的應用標準。它屬于現場總線范疇,是一種有效支持分布式控制或實時控制的串行通信網絡。由于其高性能、高可靠性、及獨特設計,已成為目前國外最普及和實時性最高的現場總線。在可靠性和實時性方面遠遠優于RS-485等工業現線CAN總線主要有下列特征:

      1. 數據信號采用差分電壓傳輸,兩條信號線"CAN_H"和" CAN_L".

      2. 傳輸介質可用雙絞線、同軸電纜或光纖,具有較強的抗干擾能力。直接通信距離最大可達10km(速率小于5kbit/s),最高通信速率可達1Mbit/s(此時距離最長為40m)。

      3. 節點不分主從,節點任意時刻可向其他節點發送信息,依據優先權進行總線訪問,滿足不同的實時要求。

      4. 采用非破壞性基于優先權總線仲裁技術。

      5. 采用短幀結構,每幀為8bit,保證了數據出錯率低。

      6. 可以點對點、點對多點及全局廣播方式傳送接收數據。

      7. 發送期間若丟失仲裁或由于出錯而遭破壞的幀可自動重發送。

      2 Small 簡介

      Small 是一個用于8051系列單片機的多任務實時操作系統。8051系列單片機一般只有很少的ROM和RAM資源,如P89C51只有4KB Flash和128字節RAM.單片微型計算機簡稱為單片機,又稱為微型控制器,是微型計算機的一個重要分支。單片機是70年代中期發展起來的一種大規模集成電路芯片,是CPU、RAM、ROM、I/O接口和中斷系統于同一硅片的器件。80年代以來,單片機發展迅速,各類新產品不斷涌現,出現了許多高性能新型機種,現已逐漸成為工廠自動化和各控制領域的支柱產業之一。一般的實時操作系統如RTX Tiny 雖然小,但是任務沒有優先級和中斷管理,也無源代碼,而uc/os-II規模太大,需要大量外部RAM.基于此,Small 是專為51 單片機編寫嵌入式操作系統,它使用了RTX51 Tiny 的堆棧管理機制,并像uc/os-II一樣是搶占式的。

      3 一個典型的CAN節點

      3.1.CAN總線接口的結構

      一個CAN總線接口有3 部分組成,如圖(a)所示,它們分別對應于CAN總線的物理層、數據鏈路層和應用層。

      最上層為微控制器,主要負責上層應用以及系統控制,包括CAN協議的應用層協議的實現,協調各系統設備的工作。(本設計采用的MCU是8051)

      中間層為CAN控制器,CAN控制器負責處理數據幀,完成數據的打包、解包,錯誤界定,并提供報文緩沖和傳輸濾波。(本設計采用的CAN總線控制器是Philips公司生產SJA1000)

      最底層為CAN收發器,主要是接口電平的轉換,接口電器特性的處理。(本設計采用82C250)

      (a)CAN接口結構


    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 武清区| 通化市| 长宁区| 西华县| 泌阳县| 花莲市| 二连浩特市| 杭州市| 内黄县| 涟源市| 康定县| 佛山市| 丹阳市| 普格县| 德化县| 疏勒县| 仁寿县| 桓仁| 大关县| 阿拉尔市| 咸丰县| 伊金霍洛旗| 渑池县| 瑞丽市| 城口县| 和硕县| 斗六市| 南郑县| 侯马市| 大化| 伊川县| 天门市| 桐乡市| 龙江县| 乌恰县| 房山区| 甘洛县| 从江县| 定日县| 贵德县| 六枝特区|