精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于DS89C430單片機和XC95144CPLD芯片實現多通道CAN模擬器的設計

電子設計 ? 來源:現代電子技術 ? 作者:王會敏,張遂南 ? 2021-06-10 14:04 ? 次閱讀

CAN總線與一般的串行通信總線相比,它的數據通信具有可靠性高,實時性高,靈活性強等優點,不僅廣泛應用于汽車行業,而且擴展到了機械工業機器人數控機床等諸多領域。尤其在大量數據通信處理中,高可靠性及實時響應的場合,單通道CAN總線不能滿足實際通信的要求。為此,介紹一種基于多通道實時CAN模擬器的設計方案。

1 CAN總線技術介紹

1.1 CAN總線特性

CAN(Controller Area Network)總線是一種串行多主站控制器局域網總線。它具有很高的網絡安全性、通信可靠性和實時性,并且簡單實用,網絡成本低。它主要用于各種過程監測及控制的一種網絡。CAN最初是由德國BOSCH公司為汽車的監測、控制系統而設計的。由于CAN總線具有卓越的特性和極高的可靠性,特別適合于工業過程中監控設備的互連,具體來說,CAN具有如下特性:

(1)CAN可以多主方式工作,網絡上任意一個節點均可以在任意時刻主動地向網絡上的其他節點發送信息,而不分主從,通信方式靈活;

(2)CAN可以點對點、點對多點(成組)及全局廣播方式傳送接收數據;

(3)CAN網絡上的節點信息可分成不同的優先級,可以滿足不同的實時要求;

(4)CAN采用非破壞性總線仲載技術。當兩個節點是向網絡上發送數據時,優先級低的節點主動停止數據發送,而優先級高的節點可以不受影響地繼續傳輸數據,大大節省了總線仲載沖突時間,在網絡負載很重的情況下也不會出現網絡癱瘓;

(5)CAN的直接通信距離最大可達10 km(速率小于5 Kb/s),最高通信速率可達1 Mb/s。

1.2 CAN通信協議

在CAN 2.0B的版本協議中有兩種不同的幀格式,不同之處為標識符域的長度不同,含有11位標識符的幀稱為標準幀,而含有29位標識符的幀稱為擴展幀。擴展格式是CAN 2.0B協議新增加的特性。在報文傳輸時,不同的幀具有不同的傳輸結構,只有嚴格按照該結構進行幀的傳輸,才能被節點正確接收和發送。下面將分別介紹四種傳輸幀的結構:

(1)數據幀(Data):數據幀將數據從發送器傳輸到接收器。CAN協議有兩種數據幀類型標準2.0A和標準2.0B。兩者本質的不同在于ID的長度不同。在2.0A類型中,ID的長度為11位;在2.0B類型中,ID的長度為29位。它由7個域組成:幀起始、仲裁域、控制域、數據域、CRC校驗碼域、應答域、幀結束。

(2)遠程幀(Remote):總線單元發出遠程幀,請求發送具有同一標識符的數據幀。接收數據的節點可通過發遠程幀請求源節點發送數據。它由6個域組成:幀起始、仲裁域、控制域、校驗域、應答域、幀結束。

(3)錯誤幀(Error):任何單元檢測到總線錯誤就發出錯誤幀。由錯誤標志和錯誤分界兩個域組成。接收節點發現總線上的報文有誤時,將自動發出“活動錯誤標志”,其他節點檢測到活動錯誤標志后發送“錯誤認可標志”。

(4)過載幀(Overload):過載幀用在相鄰數據幀或遠程幀之間提供附加的延時。由超載標志和超載分隔符組成。超載幀只能在一個幀結束后開始。當接收方在接收下一幀之前,需要過多的時間處理當前的數據,或在幀間空隙域檢測到顯性電平時,則導致發送超載幀。

1.3 CAN協議控制器

目前主流的CAN協議控制器一般采用I/O總線(SJA1000等)或SPI接口(M(2P2515等)與處理器進行通信。該設計采用SJA1000控制器。

SJA1000是一款獨立CAN控制器,應用于移動目標和工業局域網控制領域。SJA1000具有兩種工作模式:BasicCAN和PeliCAN。該設計采用PeliCAN工作模式。SJA1000用來完成CAN協議所規定的物理層和數據鏈路層的所有功能,它可以支持多種處理器的時序特性,如Intel模式或Motorola模式,與微處理器的接口非常簡單,微處理器以訪問外部存儲器的方式來訪問SJA1000。

SJA1000通過CAN控制器接口即PCA82C250芯片接到CAN總線上。CAN收發器使用飛利浦公司的PCA82C250,它是連接CAN控制器和物理總線之間的接口,提供了對總線的差動發動和接收能力,與ISO11898標準完全兼容,有三種不同的工作方式即高速、斜率控制和待機,可根據實際情況選擇。硬件電路中使用PCA82C250是為了增加通信距離,提高系統的瞬間抗干擾能力,保護總線,降低干擾等。

2 系統設計

2.1 系統方案設計

根據通用計算機的總線分類,可采用基于ISA總線對多通道實時CAN總線模擬器進行研制,根據CAN總線通信原理可以提出以下兩種設計方案:

(1)ISA總線+CAN通信控制器;

(2)ISA總線+微處理器+CAN通信控制器。這兩種設計方案的不同點在于是否采用處理器來加強控制。

由于CAN總線通信要求實時性高,再加上多通道的設計滿足實際的需要,故采用單片機來負責CAN總線的通信功能。在這里主要介紹單片機與CAN控制器之間的設計部分,其系統設計框圖如圖1所示。

單片機選用DALLAS公司的DS89C430,它是當前8051兼容微控制器中性能最高的。具有重新設計的處理器內核,在相同的晶振頻率下,執行指令的速度是最初8051微處理器的12倍。特性:高速8051架構,每個機器周期一個時鐘;片內存儲器16 KB/32 KB/64 KB閃存,在應用可編程,通過串口實現在系統可編程;與8051引腳和指令集兼容;四路雙向、8位I/O端口;三個16位定時器/計數器;256 B暫存RAM等特點。可根據實際應用的需要選擇其部分功能。隨著可編程邏輯器件的飛速發展,其應用領域不斷擴大,可用于譯碼、解碼等方面,使用CPLD可以提高系統集成度,降低噪聲,增強系統可靠性。因此,單片機與CAN控制器之間的鎖存、譯碼采用Xilinx公司XC95144CPLD芯片,優化了系統資源,降低了其功耗。

2.2 系統硬件設計

該部分由單片機、CAN控制器、CAN收發器、SRAM存儲器組成。單片機主要用于系統計算及信息處理等功能;CAN控制器主要用于系統通信;CAN收發器主要用于增強系統的驅動能力;SRAM主要用于緩存數據。系統的發送過程是:單片機將外圍設備傳送過來的信息處理后,按CAN規范規定的格式,將其寫入CAN控制器的發送緩沖區,并啟動發送命令,把數據發送到CAN總線上;接收過程是:CAN控制器從CAN總線上自動接收數據,并經過濾后存入CAN接收緩沖區,且向單片機發出中斷請求,此時單片機可從CAN接收緩沖區讀取要接收的數據。SJA1000提供的微處理器接口方式為典型INTEL或MOTOROLA地址數據多路復用總線模式。主要信號有地址數據信號AD7~AD0,地址選通信號ALE,片選信號CS,讀信號RD,寫信號WR,模式選擇信號MODE。當MODE=1時,為INTEL模式;當MODE=0時,為MOTOROLA模式。后面描述的總線模式均為INTEL模式。AD7~AD0引腳在ALE有效時,傳送的是地址信號,在RD或WR有效時,傳輸的是數據信號,在這里分別與單片機的PO口相連,RD,WR信號線分別與單片機的讀/寫信號線相連。具體方案如圖2所示。限于篇幅限制,虛線內給出1路CAN的連接圖,2路CAN有同樣的連接方法。

SRAM和CAN控制器的片選信號。由于單片機可以查詢或中斷方式訪問,在此采用中斷方式進行CAN多通道選擇訪問,以滿足不同通信速率下數據處理的需要。SRAM的地址線與數據線是分開的,故采用74LS373鎖存器實現鎖存功能。可采用XC95144CPLD芯片以及VHDL硬件描述語言以實現鎖存、譯碼等功能。

2.3 CPLD設計部分

2.3.1 結構設計

CPLD的輸入信號是單片機發送的信號,由高位地址A[15..8]、ALE鎖存信號、中斷信號以及寫/讀信號組成。地址線A14和A15經譯碼后作為片選信號,ALE實現低8位地址線的鎖存。實體和構造體部分代碼如下所示:

2.3.2 仿真結果

該模塊在Xilinx ISE 9.1工具下進行綜合,并在結合ModelSim環境下進行功能仿真。其仿真結果如圖3所示。

3 軟件設計

該系統軟件設計的關鍵是通信程序設計。通信軟件由三部分組成:單片機和CAN控制器的初始化程序、CAN發送程序、CAN接收程序。對于初始化程序,采用MAX232芯片對單片機進行在線編程,可同時對多通道CAN控制器初始化。對于CAN控制器的初始化程序,主要是通過對CAN控制器控制段中的寄存器寫入控制字,從而確定CAN控制器的工作方式等,即通過上電復位、硬件復位或軟件復位給CAN控制器發一個復位請求,便可進入初始化。在復位期間,對必需的寄存器進行設置。對于發送和接受程序,只需把到來的信息幀送到CAN的發送或接受緩沖區,同時啟動命令即可。二者可采用查詢方式或中斷方式,對于中斷方式,程序分為主程序和中斷服務程序兩部分設計。在具體項目中,需要軟硬件結合調試才能保證各部分的設計準確無誤,到達實際應用的要求。

4 結 語

在對CAN通信協議進行分析的基礎上,構建了一種多通道實時CAN總線模擬器架構,同時利用CPLD器件,通過功能仿真,驗證了設計方案的正確性。經實際工程項目使用,驗證了該設計方案切實可行,滿足了實際應用中高可靠性、高實時性以及傳輸速率較高的需求。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    454

    文章

    50430

    瀏覽量

    421881
  • 單片機
    +關注

    關注

    6032

    文章

    44521

    瀏覽量

    633106
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2719

    瀏覽量

    463378
收藏 人收藏

    評論

    相關推薦

    怎樣通過DS89C430企業設計超聲導波激勵信號源系統?

    為什么要設計超聲導波激勵信號源系統?超聲導波激勵信號源系統軟件電路設計由哪些組成?超聲導波激勵信號源系統硬件電路設計包括哪些?請問怎樣通過DS89C430設計超聲導波激勵信號源系統?
    發表于 04-13 07:07

    DS89C430, DS89C440, DS89C450中文

    DS89C430DS89C440 和 DS89C450 是當前 8051 兼容微控制中性能最高的。此系列產品具有重新設計的處理內核,在
    發表于 04-15 17:50 ?56次下載

    DS89C430-DS89C450.pdf

    The DS89C430 and DS89C450 offer the highest performance available in 8051-compatible
    發表于 04-15 17:51 ?29次下載

    DS89C430/S89C450 pdf datasheet

    The DS89C430 and DS89C450 offer the highestperformance available in 8051-compatible
    發表于 08-13 14:06 ?4次下載

    基于AT89C52的PDT模擬器實現

    摘要:分析利用實際裝備進行電子對抗訓練的不足,介紹了用模擬器進行電子對抗仿真訓練的實現方法,給出一個以AT89C52作為單片機系統的核心的PDT模擬
    發表于 05-28 10:47 ?32次下載

    基于DS89C430的超聲導波激勵信號源的設計

     為減少管道超聲導波檢測中頻散現象給檢測工作帶來的不利影響,提出了一種針對管道的超聲導波激勵信號源的設計方法,采用超高速單片機DS89C430、數模轉換器件AD9708和運
    發表于 11-24 18:43 ?20次下載
    基于<b class='flag-5'>DS89C430</b>的超聲導波激勵信號源的設計

    使用免費的SDCC C編譯開發DS89C430/450系列

    摘要:SDCC (小型設備C編譯)是為8位微控制開發的免費C編譯。本應用筆記演示如何使用SDCC來開發
    發表于 04-23 13:55 ?6089次閱讀
    使用免費的SDCC <b class='flag-5'>C</b>編譯<b class='flag-5'>器</b>開發<b class='flag-5'>DS89C430</b>/450系列

    Keil C編譯的使用與DS89C430/450

    application for the Ultra-High-Speed Flash family of microcontrollers, which includes the DS89C430 and the DS89C450. The process of loa
    發表于 04-23 14:03 ?1663次閱讀
    Keil <b class='flag-5'>C</b>編譯<b class='flag-5'>器</b>的使用與<b class='flag-5'>DS89C430</b>/450

    DS89C430/DS89C450超高速閃存微控制存儲

    1-clock-per-machine-cycle device. The DS89C430 can be used as a drop-in replacement for older 8051 architecture designs. However, memor
    發表于 04-23 15:04 ?970次閱讀
    <b class='flag-5'>DS89C430</b>/<b class='flag-5'>DS89C</b>450超高速閃存微控制<b class='flag-5'>器</b>存儲<b class='flag-5'>器</b>接

    如何配置DS89C430雙串口不同定時器使用的Keil C

    Abstract: The DS89C430 and other high-speed microcontrollers have two identical serial ports.
    發表于 04-23 15:45 ?1690次閱讀

    通道實時CAN模擬器設計方案

    在大量數據通信處理中,高可靠性及實時響應的場合,單通道CAN總線不能滿足實際通信的要求。為此,介紹一種基于通道實時CAN
    發表于 09-08 15:25 ?2214次閱讀

    基于C8051F340單片機的步進電機式模擬器儀表系統

    實現基于單片機的步進電機式模擬器儀表系統,采用C8051F340單片機為控制
    發表于 10-24 11:57 ?188次下載
    基于<b class='flag-5'>C</b>8051F340<b class='flag-5'>單片機</b>的步進電機式<b class='flag-5'>模擬器</b>儀表系統

    基于Xilinx XC95144單片機實現數字頻率計的設計

    原理圖如圖1所示。其中測頻模塊采用CPLD(Xilinx XC95144)設計完成,其余功能主要由單片機實現。完成的功能如下:
    發表于 08-05 16:21 ?1712次閱讀
    基于Xilinx <b class='flag-5'>XC95144</b>和<b class='flag-5'>單片機</b><b class='flag-5'>實現</b>數字頻率計的設計

    如何使用Keil C編譯配置具有不同定時DS89C430雙串口

    配置的雙串行端口。DS89C430用戶指南和下面的附錄A描述了DS89C430寄存在系統時鐘頻率設置、波特率產生和串行端口操作中涉及的所有寄存
    的頭像 發表于 02-21 11:56 ?1136次閱讀
    如何使用Keil <b class='flag-5'>C</b>編譯<b class='flag-5'>器</b>配置具有不同定時<b class='flag-5'>器</b>的<b class='flag-5'>DS89C430</b>雙串口

    DS89C430/DS89C450超高速閃存微控制存儲接口時序

    達拉斯半導體DS89C430超高速微控制是一款每機器周期1時鐘的器件。DS89C430可直接替代舊的8051架構設計。但是,必須評估內存接口時序。本應用筆記介紹了使用DS89C430
    的頭像 發表于 03-01 14:31 ?1699次閱讀
    <b class='flag-5'>DS89C430</b>/<b class='flag-5'>DS89C</b>450超高速閃存微控制<b class='flag-5'>器</b>存儲<b class='flag-5'>器</b>接口時序