衡阳派盒市场营销有限公司

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

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

3天內不再提示

在LPC2131微控制器外部實現CAN總線通信設計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-04-18 08:08 ? 次閱讀

Philips公司LPC213l是基于ARM7TDMI-S的高性能32位RISC微控制器。它具有ARM處理器的所有優點——低功耗、高性能和較為豐富的片上資源,但LPC2131內部沒有集成CAN控制器,而無法利用CAN總線來進行通信。為了使得LPC2131能夠利用CAN總線進行通信,可以通過外部擴展來實現其功能。目前,比較普通的方法是在LPC2131的外部采用CAN控制器設計CAN總線接口。LPC2131與CAN控制器的接口電路如圖1所示。

在LPC2131微控制器外部實現CAN總線通信設計

這種方法中,LPC2131是通過GPIO口與CAN控制器SJA1000相連實現數據交互的。LPC2131通過寄存器IOSET/IOCLR來設定I/O口的高/低狀態,雖然可以同時置位/拉低選定的引腳,但不能同時將某些口線拉高而將某些口線拉低。假定P0[15:8]初始狀態為0xa5,若將P0[15:8]同時變為0x5a,則必須通過IO0SET和IO0CLR兩次進行。程序實現如下:

PINSEL0=0x00000000;

IO0DIR=0x0000FF00;

IO0SET=0x5a00;

IO0CLR=0xa500;

P0[15:8]上會出現0xFF的中間狀態。在高速通信系統中,這些中間狀態可能會造成損失。雖然可以通過IO0PIN進行操作來消除這樣的中間狀態,但是Philips公司不推薦這種做法,非必要時盡量不要使用。

CAN驅動器接口芯片與LPC2131的串口接口電平上是相互匹配的,因此理論上可以將二者直接連接,采用串行通信方式實現。采用CAN總線通信,在長距離通信時,CAN總線兩端要加終端電阻。其作用是避免數據傳輸又反射回來,產生反射波而使數據遭到破壞;同時,能提高總線傳輸的抗干擾能力。理論上,在每個接收數據信號的中點進行采樣時,只要反射信號在開始采樣時衰減到足夠低就可以不考慮匹配。通常判斷原則是根據數據速率和電纜長度進行匹配的,但這在實際中難以掌握,一般都是依據經驗進行設計。

編程邏輯器件(PLD)是20世紀70年代在ASIC設計的基礎上發展起來的一種新型邏輯器件。20世紀80年代末,美國Altera和Xilinx公司分別推出大規模和超大規模的復雜可編程邏輯器件(CPLD)及現場可編程邏輯門陣列器件(FPGA)。自從進入20世紀90年代以來,可編程邏輯器件得到了飛速發展,向高度集成、高速度和低價位方向不斷邁進;其應用領域不斷擴大,可用于狀態機、同步、譯碼、解碼、計數、總線接口和串并轉換等很多方面。使用CPLD可以提高系統集成度,降低噪聲,增強系統可靠性并降低成本。

CPLD技術的出現,為我們提供了一種有效的解決辦法:在CAN驅動器接口與LPC2131之間接一塊CPLD,對CPLD進行功能編程,使其負責串行總線的數據傳輸和防止CAN發送反射。

選擇Altera公司MAX3000A系列的型號為EPM3128ATC100-7(簡稱“EPM3128”)的CPLD芯片。此芯片兼容3.3 V和5 V的I/O 口。這樣,LPC2131、EPM3128和TJA1040在I/O電平上是相互匹配的。

1 EPM3128接口定義

EPM3128設置成雙向串行總線通道。其中,2個I/O口被定義為CANRXD(IN)、CANTXD(OUT),分別連接CAN收發器TJA1040的RXD和TXD端,構成CAN總線上接收數據和發送數據通道;另外2個I/O口被定義為ARMRXD(IN)、ARMTXD(OUT),分別連接LPC2131的RXD1和TXD1端,構成處理器的串口接收數據和發送數據通道。整個數據的傳輸過程中,并不改變串行數據的協議和格式,接口電路全為TTL電平,期問不需要進行任何的處理。通信數據的校驗、報錯均交給通信兩端的處理器完成。LPC2131、EPM3128和TJA1040的接口框圖如圖2所示。

在LPC2131微控制器外部實現CAN總線通信設計

2 EPM3128功能實現

圖3是采用功能塊編程實現EPM3128的數據傳輸和屏蔽CAN發送反射的內部邏輯。圖中txArm2、rxCan2定義為輸入變量,分別對應外部的ARMTXD、CANRXD引腳;txCan2、rxArm2定義為輸出變量,分別對應外部的CANTXD、ARMRXD引腳。總線空閑時,總線上的狀態一直保持為“1”,即txArm2、rxCan2、txCan2、rxArm2的值全部為“1”。當輸入總線收到一個狀態“0”信號時,表示總線開始傳輸數據。如果LPC2131要發送數據,則LPC2131先向ARMTXD端口發送一個“0”起始信號,占據總線并在下一個時鐘開始發送數據幀;如果TJA1040從現場接收到新數據,則TJA1040先向CANRXD端口發送一個“0”起始信號,占據總線并在下一個時鐘開始發送數據幀。以此,完成正常通信過程中數據位從串口到串口的傳輸。

在LPC2131微控制器外部實現CAN總線通信設計

程序屏蔽CAN發送反射,就是屏蔽CAN總線接收到的從輸出總線上反射的“0”信號,因為接口從高阻態被喚醒是靠一個“0”的起始信號。如果LPC2131正在發送數據,此時輸人端口ARMTXD通過變量txArm2傳送一位為“0”的信號到變量txCan2,并從輸出口CANTXD送出。受總線輻射影響CANRXD輸入口會從CAN總線接收到一個“0”信號,并將“0”信號傳送給變量rxCan2,此時rXCan2收到的這個“0”信號是錯誤信號。經邏輯判斷,程序將變量rxArm2維持為1,端口ARMRXD仍保持高阻態“1”。反射的“0”信號雖然被接收到,但在CPLD內部被屏蔽處理掉。如果沒有屏蔽處理,那么這個錯誤的“0”信號將接收總線從高阻態喚醒,直接影響數據的通信。程序中D觸發器的用途有兩方面:一是緩存輸入和輸出,平滑信號的毛刺;二是實現控制信號的功能,如輸出的復位和同步等。

QuartusII軟件編譯程序,并用仿真工具仿真。如圖4所示,波特率為115 200 bps,編輯輸入點txArm2、rxCan2的波形,查看輸出點txCan2、rxArm2的波形。為方便識圖,仿真中將數據端口傳輸占用的時間參數置0。

在LPC2131微控制器外部實現CAN總線通信設計

首先,論證輸出波形的有效性。觀察圖4中的txCan2和rxArm2的波形,可以看出所有時刻的數值都是確定的,從而證明系統處于穩定狀態,波形是有效的。

然后,論證輸出波形的邏輯性。根據程序的邏輯設計,txArm2通道的數據發送享有優先權,始終保持txCan2=txArm2。從仿真結果可以看出,txCan2的波形與txArm2波形完全一致;當txArm2通道為“0”時,屏蔽rxCan2輸入的數據,并保持rxArm2輸出一直為“1”,觀察圖4中任何時刻所有輸入/輸出的波形,可以看出仿真結果正確。

最后,驗證輸出波形的時序性。這部分程序是一個組合邏輯的設計,也就是所有的輸出隨著相應的輸入的變化而變化。由圖4可知,仿真結果的時序正確。

結 語

本文基于CPLD技術實現了LPC2131與CAN總線之間的串行通信。該方法實現簡單,并且穩定性較好,適合于采用CAN總線的多路串行通信系統。該技術已應用到實際中,接受實踐的檢驗。

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

    關注

    32

    文章

    1257

    瀏覽量

    169636
  • CAN總線
    +關注

    關注

    145

    文章

    1955

    瀏覽量

    131098
  • 微控制
    +關注

    關注

    1

    文章

    51

    瀏覽量

    14525
收藏 人收藏

    評論

    相關推薦

    基于LPC2131處理和SJA1000芯片實現CAN通信系統的設計

    Philips LPC2131是基于ARM7TDMI-S的高性能32位RISC微控制器,它一方面具有ARM處理的所有優點:低功耗、高性能;同時又具有較為豐富的片上資源,非常適合嵌入式產品的開發。其特點如下:
    的頭像 發表于 04-02 14:12 ?4387次閱讀
    基于<b class='flag-5'>LPC2131</b>處理<b class='flag-5'>器</b>和SJA1000芯片<b class='flag-5'>實現</b><b class='flag-5'>CAN</b><b class='flag-5'>通信</b>系統的設計

    LPC2131工程模板

    LPC2131工程模板
    發表于 04-06 09:28

    LPC2131 PHILIPS單片16/32位微控制器

    LPC2131 PHILIPS單片16/32位微控制器,詳細介紹,結構框圖,管腳配置,存儲映射.[hide][/hide]
    發表于 08-02 10:52

    proteus仿真lpc2131驅動lcd1602

    這兩天用lpc2131來驅動lcd1602,lcd1602總是不能顯示,于是在網上找資料也不能成功,整了兩天終于有點頭緒,這是裸機程序,如果大家想跑操作系統可以移植一下,附有proteus仿真文件。程序是用ads打開,周立功先生lpc2131工程模板。
    發表于 05-11 15:30

    基于lpc2131ucosII下的模擬MP3播放實驗,資料求助

    1.基于lpc2131ucosII下的模擬電梯控制實驗2.基于lpc2131ucosII下的模擬MP3播放
    發表于 05-19 15:39

    單片機LPC2131相關資料分享

    概述:LPC2131是飛利浦半導體公司生產的一款基于一個支持實時仿真和嵌入式跟蹤的32/16 位ARM7TDMI-STM CPU 的微控制器,并帶有32kB、64kB、512 kB 的嵌入的高速
    發表于 05-18 06:39

    LPC2131/2132/2134/2136/2138 da

    LPC2131/2132/2134/2136/2138 datasheet,pdf Single-chip 16/32-bit microcontrollers; 32/64/128/256
    發表于 03-09 10:15 ?88次下載

    應用LPC2131開發PLC調速測頻單元

    針對PLC調速頻率測量部分存在的不足,開發出一種基于LPC2131微控制器的頻率測量單元。利用其捕獲功能模塊對整形后頻率信號捕獲、計算得到信號周期計數值,再將該周期計數值
    發表于 09-12 10:13 ?38次下載

    LPC2131應用到智能電荷放大器的設計

    本文為LPC2131應用到智能電荷 放大器 的設計,詳細介紹了芯片的選擇以及軟硬件的設計。
    發表于 06-29 16:03 ?127次下載
    <b class='flag-5'>LPC2131</b>應用到智能電荷放大器的設計

    基于LPC2131嵌入式系統μCOS-II實現CAN通訊

    本文基于ARM7TDMI-S處理LPC2131,對內部沒有集成CAN控制器的處理,設計了較為通用的C
    發表于 08-08 15:09 ?1679次閱讀
    基于<b class='flag-5'>LPC2131</b>嵌入式系統μCOS-II<b class='flag-5'>實現</b><b class='flag-5'>CAN</b>通訊

    LPC2131LPC2138系列單芯片微控制器的數據手冊免費下載

    LPC2131/32/34/36/38微控制器基于16/32位ARM7TDMI-S CPU,具有實時仿真和嵌入式跟蹤支持,將微控制器與32 kb、64 kb、128 kb、256 kb和512 kb
    發表于 01-24 08:00 ?60次下載
    <b class='flag-5'>LPC2131</b>到<b class='flag-5'>LPC</b>2138系列單芯片<b class='flag-5'>微控制器</b>的數據手冊免費下載

    LPC2131LPC2132及LPC2138的數據手冊和使用指南資料免費下載

    LPC2131/2132/2138 是基于一個支持實時仿真和嵌入式跟蹤的 32/16 位 ARM7TDMI-STM CPU 的微控制器,并帶有 32kB、64kB、512 kB 的嵌入的高速
    發表于 05-23 08:00 ?11次下載
    <b class='flag-5'>LPC2131</b>和<b class='flag-5'>LPC</b>2132及<b class='flag-5'>LPC</b>2138的數據手冊和使用指南資料免費下載

    LPC2131芯片的PCB原理圖免費下載

    LPC2131芯片的PCB原理圖免費下載
    發表于 10-21 11:19 ?26次下載
    <b class='flag-5'>LPC2131</b>芯片的PCB原理圖免費下載

    基于LPC2292微控制器CAN控制器實現車輛行駛監控系統的設計

    選用帶有ARM7TDMI-S內核的LPC2292微控制器,可實現對車速、轉速信號、開關量信號以及水溫、剎車氣壓、輪胎壓力等模擬量信號的采集、處理以及數據的實時存儲和顯示,通過串口、USB接口可以
    的頭像 發表于 04-02 09:13 ?2657次閱讀
    基于<b class='flag-5'>LPC</b>2292<b class='flag-5'>微控制器</b>和<b class='flag-5'>CAN</b><b class='flag-5'>控制器</b><b class='flag-5'>實現</b>車輛行駛監控系統的設計

    基于LPC2131的的CAN接口模塊硬件電路設計

    電子發燒友網站提供《基于LPC2131的的CAN接口模塊硬件電路設計.rar》資料免費下載
    發表于 11-10 10:46 ?0次下載
    基于<b class='flag-5'>LPC2131</b>的的<b class='flag-5'>CAN</b>接口模塊硬件電路設計
    承德县| 永利高百家乐怎样开户| 谈谈百家乐官网赢钱技巧| 大发888体育开户| 豪享博百家乐的玩法技巧和规则| 百家乐资金注码| 海尔百家乐官网的玩法技巧和规则| 百家乐官网二人视频麻将| 屯昌县| 金盛娱乐| 八大胜娱乐场| kk娱乐城送彩金| 澳盈88| 真龙娱乐| 六合彩最快开奖| 妈祖棋牌迷| bet365存| 皇冠足球即时比分| 赢钱的棋牌游戏| 百家乐官网导航| 百家乐官网平注法到656| 中国百家乐官网澳门真人娱乐平台网址| 神娱乐百家乐官网的玩法技巧和规则 | 百家乐玩法开户彩公司| 网上百家乐有人赢过嘛| 百家乐官网八卦九| 回力百家乐官网的玩法技巧和规则 | 巢湖市| 百家乐官网园zyylc| 线上百家乐官网技巧| 兄弟百家乐官网的玩法技巧和规则| 传奇百家乐官网的玩法技巧和规则 | 网络百家乐官网公式打法| 名人百家乐官网的玩法技巧和规则 | 百家乐视频游戏道具| 安桌百家乐游戏百家乐 | 赌百家乐2号破解| 顶级赌场官网下载| 阳新县| 线上百家乐官网玩法| 鸟巢百家乐官网的玩法技巧和规则|