• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于C8051F500的CAN總線通信系統(tǒng)的節(jié)點設計

      2011-08-07 07:53:10吳志玲靳鴻馮彥君
      電子測試 2011年8期
      關鍵詞:子程序寄存器消息

      吳志玲,靳鴻,馮彥君

      (中北大學電子測試技術重點實驗室,儀器科學與動態(tài)測試教育部重點實驗室,山西太原030051)

      0 引言

      CAN( Controller area network),即控制器局域網(wǎng),是目前國際上應用最廣泛的現(xiàn)場總線之一。CAN為串行通信協(xié)議,能有效的支持具有很高安全等級的分布式實時控制系統(tǒng)。CAN的應用范圍極其廣泛,從高速的網(wǎng)絡到低價位的多路接線都可以使用CAN。在汽車電子行業(yè)里,使用CAN連接發(fā)動機控制單元、傳感器、剎車系統(tǒng)、電子系統(tǒng)等,其傳輸速率可達1Mbps。CAN 總線因傳輸時間短, 受干擾的概率低, 保證了通信的實時性。另外, CAN 總線[1]可對錯誤來源進行正確的定位, 將永久的硬件錯誤從軟件錯誤中獨立出來, 其協(xié)議采用CRC 檢驗并可提供相應的錯誤處理能力, 同時保證了數(shù)據(jù)通信的可靠性。

      Silicon Lab公司的C8051F500單片機內部集成了CAN控制器[2],符合Bosch規(guī)范2.0A(基本CAN)和2.0B[3](全功能CAN),方便了CAN網(wǎng)絡通信系統(tǒng)的設計。由于C8051F500的高集成度,只需少量外圍測量電路便可組成集數(shù)據(jù)采集、控制和通信功能于一體的單片機系統(tǒng),同時還可提高系統(tǒng)的整體可靠性。另外,C8051F500內核與普通51系列兼容,且指令簡單易學,因此,可縮短系統(tǒng)研發(fā)周期。

      1 硬件描述

      1.1 系統(tǒng)整體結構

      CAN功能節(jié)點硬件分布原理圖如圖1所示。

      圖1 CAN功能節(jié)點組成原理圖

      1.2 C8051F500 單片機

      Silicon Lab公司推出的C8051F500是完全集成的混合信號片上系統(tǒng)型MCU。

      該單片機內部集成了CAN控制器,其與收發(fā)模塊(CTM1050)共同構成CAN節(jié)點模塊。其中CAN控制器包括CAN核、消息存儲器、消息處理器和控制寄存器[4]。由于其MCU無法直接訪問消息RAM,因此有兩組位于控制寄存器的接口寄存器被用來控制CPU對消息RAM的訪問。接口寄存器通過緩存?zhèn)鬏攲⒁獋鬏數(shù)臄?shù)據(jù),避免了CPU訪問消息RAM時同CAN消息的發(fā)送和接收之間的沖突。在單個傳輸時,一個完整的消息對象[5]或者消息對象的一部分在消息RAM和IFx消息緩沖寄存器之間進行可靠傳輸。兩個消息寄存器組的功能是一樣的(除了測試處于基本模式)。

      1.3 隔離CAN收發(fā)器CTM1050

      CTM1050[6]是CAN控制器與CAN物理總線之間的接口芯片,其功能框圖如圖2所示。該模塊是集電源隔離、電氣隔離[7]、CAN收發(fā)器、CAN總線保護于一體的隔離CAN收發(fā)器模塊,可以實現(xiàn)帶隔離的CAN收發(fā)電路,從而進一步提高了系統(tǒng)的抗干擾能力和穩(wěn)定性。其隔離電壓可以達到DC 2500 V ,并且能連接任何一款CAN協(xié)議控制器。該芯片TxD、RxD 引腳兼容+3.3V及+5V的CAN控制器,不需要外接其他元器件直接將+3.3V或+5V的CAN控制器發(fā)送、接收引腳與CTM模塊的發(fā)送、接收引腳相連接。由此可見,CTM1050接口簡單,使用方便,非常適合對體積有一定要求的系統(tǒng)設計。

      圖2 CTM2050T功能框圖

      2 系統(tǒng)軟件

      在CAN初始化時會打開CAN中斷,即CAN總線上有數(shù)據(jù)要發(fā)送時會產(chǎn)生一個中斷,此時由單片機的MCU來判斷其優(yōu)先級是否為最優(yōu),若是,則響應其中斷。此時單片機內的CAN處理器會控制消息緩存寄存器寫入數(shù)據(jù),并按照協(xié)議對消息進行處理;等發(fā)送請求中斷產(chǎn)生,響應中斷并發(fā)送處理好的數(shù)據(jù),此為一次數(shù)據(jù)收發(fā)過程[8]。CAN總線數(shù)據(jù)收發(fā)流程圖如圖3所示。

      圖3 CAN總線收發(fā)程序流程

      2.1 系統(tǒng)初始化

      系統(tǒng)初始化主要包括端口、時鐘和CAN控制器的初始化。此處主要對CAN控制器初始化做詳細說明,其一般步驟如下:

      ·將SFRPAGE寄存器設置為CAN0_PAGE;

      ·將CAN0CN寄存器中的INIT和CCE位

      設置為’1’;

      ·設置位定時寄存器和BRP擴展寄存器中的時序參數(shù);

      ·初始化每個消息對象或將其MsgVal位設置為NOT VALID(無效);

      ·將INIT位清零。

      其初始化部分程序如下:

      2.2 收發(fā)程序

      系統(tǒng)初始化完成后,在主程序中調用接收子程序,由接收子程序來響應總線上的消息接收請求命令。接收子程序要比發(fā)送子程序復雜一些,因為在處理接收報文的過程中,還要對諸如總線關閉、錯誤報警、接收溢出等情況進行處理。下面給出部分接收子程序:

      發(fā)送子程序負責節(jié)點報文的發(fā)送。發(fā)送時用戶只需將處理好的待發(fā)送的數(shù)據(jù)按特定的格式組合成一幀報文,送入發(fā)送緩存區(qū)中,然后啟動發(fā)送即可。由于發(fā)送過程與接收過程只是數(shù)據(jù)緩存寄存器與消息RAM之間的數(shù)據(jù)傳輸方向有所不同,故在此不再贅述。

      3 仿真結果

      此次設計采用IDE開發(fā)環(huán)境,并用其進行仿真,所用適配器為新華龍公司最新產(chǎn)品U-EC6。如圖4所示,為實驗仿真結果中各寄存器、地址空間和相關變量的值。此CAN節(jié)點的通信速率為1Mbps,將適配器與目標節(jié)點相連接,再通過USB數(shù)據(jù)線分別與PC相連,由上位機控制總線給節(jié)點發(fā)送命令,進行數(shù)據(jù)的接受,并對其進行處理,等待發(fā)送中斷到來,再將總線所需數(shù)據(jù)發(fā)送回總線。實驗結果顯示:數(shù)據(jù)傳送完整、準確、高效,并且有效的解決了系統(tǒng)數(shù)據(jù)沖突等問題,滿足本次設計的初衷。

      圖4 結果仿真顯示

      4 結語

      本次設計采用由內部集成了CAN控制的C8051500單片機與隔離CAN收發(fā)器CTM1050共同構成的模塊作為CAN總線通信系統(tǒng)的智能節(jié)點。首先,解決了節(jié)點的CPU在訪問消息RAM時同CAN消息的發(fā)送與接收發(fā)生沖突等問題;其次,使微控制器這一核心部件的控制得以簡化;最后,由于同以往的節(jié)點相比減少了外部隔離光耦,還使得單片機的外圍電路得到大大簡化,從而使系統(tǒng)的穩(wěn)定性、可靠性及實時性得到進一步高。

      [3]李迎.基于C8051F040的CAN總線接口嵌入式系統(tǒng)開發(fā)[J].電子測量技術,2009(2):90-94.

      [4]饒運濤,鄒繼軍,鄭永云.現(xiàn)場總線CAN原理與應用技術[M].北京:北京航空航天大學出版社,2003.

      [5]袁越陽.C8051F040的CAN模塊應用研究[J].單片機與嵌入式系統(tǒng)應用,2008(10):76-79.

      [6]楊春杰,王曙光,亢紅波,等.CAN總線技術[M].北京:北京航空航天大學出版社,2010.

      [7]于曉光.CAN總線隔離器的設計與應用[J].電子設計工程,2009(12):1-4.

      [8]于成毅,裴東興,梁志劍.基于CAN總線的數(shù)據(jù)采集節(jié)點的設計[J].電子測試,2009(11):62-66.

      [1]王黎明,夏立,邵英,閆曉玲.CAN現(xiàn)場總線系統(tǒng)的設計與應用[M].北京:電子工業(yè)出版社,2008.

      [2]鮑可進.C8051F單片機原理及應[M].北京:中國電力出版社,2006.

      猜你喜歡
      子程序寄存器消息
      Lite寄存器模型的設計與實現(xiàn)
      計算機應用(2020年5期)2020-06-07 07:06:44
      一張圖看5G消息
      分簇結構向量寄存器分配策略研究*
      淺談子程序在數(shù)控車編程中的應用
      子程序在數(shù)控車加工槽中的應用探索
      消息
      消息
      消息
      西門子840D系統(tǒng)JOG模式下PLC調用并執(zhí)行NC程序
      簡化編程與子程序嵌套的應用
      科技傳播(2011年24期)2011-08-29 05:39:46
      永州市| 綦江县| 荥阳市| 河东区| 临颍县| 吉木萨尔县| 宁武县| 西峡县| 修水县| 聊城市| 墨玉县| 清原| 白朗县| 嘉义县| 社旗县| 饶河县| 宝山区| 临夏市| 昌邑市| 达日县| 孝义市| 图木舒克市| 成安县| 建瓯市| 常宁市| 九江市| 来凤县| 项城市| 潼关县| 新兴县| 青海省| 新蔡县| 义乌市| 华亭县| 台山市| 葫芦岛市| 孝义市| 昌平区| 江安县| 钦州市| 蓬安县|