《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 基于ARM的CAN總線智能節點的設計

基于ARM的CAN總線智能節點的設計

2008-09-09
作者:高紅玉, 徐建城, 曾成奇

  摘 要: CAN總線是一種應用廣泛的實時性現場總線,提出了基于具有ARM7TDMI內核的32位微控制器" title="微控制器">微控制器的CAN總線智能節點設計方案。詳細介紹了ARM控制器(LPC2294)的特點、智能節點的結構以及系統軟件設計,同時結合現場實際使用給出了硬件抗干擾措施。
  關鍵詞: CAN總線 ARM 嵌入式控制器

?

  CAN(Controller Area Network)即控制器局域網,CAN總線是國際上應用最廣泛的現場總線之一。它最早是由德國Bosch公司推出的,CAN通信協議是一種用于汽車內部測量與執行部件之間的數據通信協議。
  作為一種技術先進、可靠性高、功能完善、成本合理的遠程網絡通訊控制方式,CAN總線已被廣泛應用于各個自動化控制系統中。例如,在汽車電子、自動控制、智能大廈、電力系統、安防監控等各領域中,CAN總線具有不可比擬的優越性。本設計給出CAN總線節點方案。它采用內置多路CAN總線控制器的LPC2294作為主控制器,使得該節點體積小、功耗低、抗干擾性好,因而特別適用于汽車、工業控制以及醫療系統和容錯維護總線中。
1 硬件設計
1.1 LPC2294的特點

  ARM7系列具有ARM7TDMI內核的32位嵌入式微處理器是目前應用很廣的嵌入式RISC處理器。該系列芯片體積小、功耗低、成本低,高性能與靈活性相結合,有較多的寄存器,提供了擴充的增強的固定長的16/ 32 位雙指令集" title="指令集">指令集。用16 位的Thumb指令可以節省高達35%的空間。另外它還實行流水線作業,提供嵌入式ICE2RT邏輯,支持片上斷點和調試點支持,具有先進的軟件開發和調試環境。
  本設計選用的LPC2294是PHILIPS公司新推出的一款功能強大的超低功耗的具有ARM7TDMI內核的32位微控制器。144腳封裝、兩個32位定時器、八路10位ADC、四路CAN通道和PWM通道以及多達九個的外部中斷,內部嵌入256K字節高速Flash 存儲器和16K 字節靜態RAM,包含76(使用了外部存儲器)~112(單片)個GPIO口。如此豐富的片上資源完全可以滿足一般的工業控制的需要, 同時還可以減少系統硬件設計的復雜度。另外,LPC2294支持JTAG實時仿真和跟蹤、128位寬度的存儲器接口和獨特的加速結構,使32 位代碼能夠在高達60MHz 的操作頻率下運行。
  LPC2294內部集成有四路CAN控制器:符合CAN規范CAN2.0B,ISO 11898-1標準;總線數據波特率均可達1Mbps;可訪問32位的寄存器和RAM;全局驗收過濾器可識別幾乎所有總線的11位和29位Rx標識符;驗收過濾器為選擇的標準標識符提供了FullCAN-style自動接收功能。
  作為本設計的核心部件,LPC2294不僅擔負起主控制器的作用,同時還作為CAN網絡的節點控制器,與網絡中的其它節點實現數據傳輸與交換。
1.2 CAN節點硬件電路組成
  CAN節點硬件電路如圖1所示,由ARM微控制器LPC2294、CAN總線收發器TJA1050T、高速光耦" title="光耦">光耦6N137和電源隔離模塊B0505S等組成。


  主控芯片LPC2294的晶振頻率范圍為1~30MHz。本設計選晶振頻率為20MHz,通過設置內部的VPB分頻器可以提高CPU時鐘頻率。內部256K字節的高速Flash 存儲器用于代碼和數據的存儲。對于FLASH 存儲器,可通過內置的串行JTAG接口進行在系統編程(ISP),或進行在應用編程(IAP)。為了便于調試和系統升級,在設計中可以預留這些接口電路。
  LPC2294采用雙電源供電。CPU的供電電壓范圍為1.65~1.95V(1.8 V± 8.3%),I/O的供電電壓范圍為3.0~3.6V(3.3V±10%)。
  收發器TJA1050T 是CAN 協議控制器和物理總線之間的接口,它與“ISO 11898”標準完全兼容。CANH和CANL理想配合,可使電磁輻射減到更低。除此之外,TJA1050T不上電時,總線呈現無源特性,這使得TJA1050T在性能上大大優于以前的CAN總線收發器。TJA1050T有兩種工作模式:高速模式和靜音模式(它們由引腳“S”來控制)。在高速模式中,總線輸出信號有固定的斜率,并且以盡量快的速度切換。高速模式適用于最大位速率和最大總線長度的情況,而且此時其收發器循環延遲最小。靜音模式時發送器是禁能的,它不管TxD的輸入信號。靜音模式可以防止CAN控制器不受控制時對網絡通訊造成堵塞。
1.3 硬件的抗干擾設計
  在本設計所應用的場合中,產生電磁信號的設備較多,包括超短波設備、音頻設備、電源等,因此抗干擾設計顯得尤其重要。主要采取了以下措施:
  (1)為了進一步提高CAN 總線節點的抗干擾能力,保證各節點之間在電氣上是完全隔離和獨立的,LPC2294的TX0和RX0分別通過高速光耦6N137與TJA1050T的TXD和RXD相連。不過,應該特別說明的是,光耦部分電路所采用的兩個電源必須完全隔離,否則采用光耦也就失去了意義。電源的完全隔離采用小功率電源隔離模塊B0505S。電路雖復雜一些,但是卻提高了節點的穩定性和安全性。
  (2)在CAN總線的兩端加有兩個120Ω 的電阻,這兩個電阻對于總線阻抗的匹配起著相當重要的作用。去掉它們會使數據通信的抗干擾性及可靠性大大降低,甚至無法通信。
  (3)CANH 和CANL 與地之間并聯了兩個30pF的小電容,可以濾除總線上的高頻干擾并且具有一定的防電磁輻射的能力;在兩根CAN總線接入端之間并入了5.6V的TVS管,當CAN總線竄入電壓干擾時可通過TVS管的短路起到一定的過壓保護作用。
  (4)為了減小現場對節點的干擾,采用屏蔽雙絞線,且根據實際使用經驗,屏蔽電纜的屏蔽層無需接地。
2 軟件設計
  軟件調試環境采用ARM公司的ARM核處理器集成開發工具ADSv1.2。ADSv1.2集成了匯編、C、C++編譯器和調試器,編譯效率高,提供了功能強大的系統庫,支持軟件調試、JTAG仿真調試及硬件調試。本設計采用的是JTAG仿真調試。
  對于一般的32位ARM應用系統,在運行主程序前必須初始化運行環境,即為ARM芯片編寫啟動代碼。該啟動代碼包括異常向量表、堆棧初始化、存儲系統初始化和目標板初始化等,一般用匯編語言編寫。對于該設計來說,關鍵的是編寫CAN驅動程序。主程序只需通過調用驅動程序提供的接口來實現數據的接收和發送。驅動程序包括四部分內容:CAN控制器的初始化、接收數據、發送數據和總線異常處理。圖2為主程序流程圖。


2.1 CAN控制器初始化
  初始化CAN控制器的操作包括:硬件使能、軟件復位、設置報警界限、設置總線波特率、設置中斷工作方式" title="工作方式">工作方式、設置驗收濾波器" title="驗收濾波器">驗收濾波器工作方式、設置工作模式并啟動CAN等。初始化程序如下:
  HwEnCAN(CanNum); //硬件使能,CanNum=0~3,指四路CAN控制器
  SoftRstCAN(CanNum); //軟件復位寄存器
  CANEWL(CanNum).Bits.EWL_BIT=USE_EWL_CAN[CanNum] ;//設置錯誤警告界限
  CANBTR(CanNum).Word = USE_BTR_CAN[CanNum] ;//初始化波特率
  VICDefVectAddr =(UINT32)CANIntPrg;  //初始化中斷為非向量中斷
  VICIntEnable |=(1<<19)|(1<<(20+ CanNum))|(1<<(26+ CanNum));
  CANIER(CanNum).Word= USE_INT_CAN[CanNum];
  CANAFMR.Bits.AccBP_BIT=1;//配置驗收濾波器(旁路狀態,即屏蔽驗收濾波器)
  CANMOD(CanNum).Bits.TPM_BIT=USE_TPM_CAN[CanNum];//初始化工作模式
  CANMOD(CanNum).Bits.LOM_BIT=USE_MOD_CAN[CanNum] ;
  SoftEnCAN(CanNum); //啟動CAN
  LPC2294片內外設與引腳的連接由引腳連接模塊控制。CAN控制器的硬件使能就是通過軟件設置GPIO寄存器來控制多路開關的,將特定的引腳與CAN控制器連接起來。在設置各CAN寄存器之前必須進行軟件復位,這是因為CAN的某些寄存器必須在軟復位狀態下讀寫。
  值得注意的是,LPC2294為所有的CAN控制器提供了全局接收標識符查詢功能。2K字節的接收過濾用RAM可容納1024個標準標識符或者512個擴展標識符或兩種類型混合的標識符。通過軟件處理,可在該RAM中設置存放1~5個標識符表格。與獨立CAN控制器SJA1000相比,它能更容易地對任意復雜的ID進行篩選過濾,滿足復雜的ID的接收過濾要求。這無疑大大減少了系統軟件設計復雜度及運行時的負擔。設置驗收濾波器工作方式,必須首先創建LUT表格,指定每個表格的起始地址,并用實際的ID地址初始化該表格。最后設定驗收過濾器模式寄存器。若該節點不主動發送數據,可選擇在總線不活動時進入睡眠模式。
2.2 數據發送
  將待發送的數據打包成符合CAN協議的幀格式后,便可寫入發送緩沖區,并啟動發送。圖3為發送子程序流程圖。


  在寫發送緩沖區前必須查詢其狀態。LPC2294中的每個CAN控制器有三個發送緩沖區,它們的狀態可通過查詢CANSR得知。只有當其中有空閑的發送緩沖區時才可將數據寫入。在發送大量數據時,這一步顯得尤其重要,否則發送可靠性將不能保證。啟動發送成功后,只能通過查詢CANGSR的TCS位或配合發送成功中斷來判斷數據是否發送成功。
2.3 數據接收
  接收數據可采用查詢方式或中斷方式。在某一段時間內,CAN總線并不總是在活動,為了提高效率,可采用中斷方式。在初始化程序中必須使能接收中斷。在中斷服務子程序中,讀取CANICR,判斷是否有接收中斷標志,有則讀取接收緩沖區數據。為了防止接收緩沖區數據溢出,可開辟一個循環接收數據隊列來暫時存儲數據,主程序則通過查詢該隊列來獲得總線數據。
2.4 異常情況處理
  在總線發生嚴重故障的情況下,CAN節點有可能脫離總線,此時以下寄存器位被置位:CANSR的BS位、CANIR的BEI位和EI位(如果使能)和CANMOD的RM位。RM將許多CAN控制器功能復位和禁止。軟件下一步必須置零RM位。發送錯誤計數器將遞減計數總線釋放條件(11個連續的隱性位)的第128個事件。軟件可通過讀取Tx錯誤計數器對計數器遞減計數的情況進行監測。
  在應用中,若前面傳輸到CAN控制器的數據未被讀出,而接收緩沖區又沒有及時釋放,就有可能引起后面信息的丟失。這時必須通過寫命令寄存器來清除CANSR的數據溢出位。這兩種異??赏ㄟ^異常中斷來處理,只要在中斷子程序中加入處理代碼即可。其它的總線異常處理可根據使用情況決定是否在軟件中處理。
  總之,軟件的編寫和規劃相當重要。ARM7TDMI指令集是基于RISC的,具有32位ARM/16位Thumb雙指令集,ARM/Thumb程序可通過改寫程序狀態寄存器CPSR相互調用。因此,為了提高程序代碼密度,某些對性能要求不高的代碼可用Thumb指令集編寫。
  由于該方案體積小、功耗低、抗干擾性好,現已應用于電磁環境復雜的某車載通信設備中,滿足了該項目對CAN網絡節點的要求。
參考文獻
1 鄔寬明.CAN總線原理和應用系統設計.北京:北京航空航天出版社,1996
2 周立功.ARM微控制器基礎與實戰.北京:北京航空航天大學出版社,2003
3 http://www.semiconductors.philips.com/pip/LPC2294.html
4 吳明暉.基于ARM的嵌入式系統開發與應用.北京:人民郵電出版社,2004.6

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          1204国产成人精品视频| 国产精品高潮视频| 久久久99久久精品女同性| 最新国产乱人伦偷精品免费网站| 久久久精品国产99久久精品芒果| 欧美成人小视频| 国产精品九色蝌蚪自拍| 在线观看精品| 欧美精品在线看| 国产精品女人网站| 欧美日韩三区四区| 一区二区三区在线免费播放| 欧美日韩国产高清| 1024亚洲| 黄色亚洲精品| 久久精品国产2020观看福利| 久久五月激情| 亚洲福利视频一区| 一本色道久久综合亚洲精品按摩| 夜夜嗨av一区二区三区四区| 国内精品免费午夜毛片| 亚洲激情社区| 国产精品萝li| 国产精品免费一区豆花| 日韩一级精品视频在线观看| 亚洲高清资源综合久久精品| 亚洲美女毛片| 国内综合精品午夜久久资源| 欧美一区二区免费视频| 欧美日韩免费高清| 国产欧美一区二区三区另类精品| 欧美日韩无遮挡| 一区二区三区|亚洲午夜| 日韩一区二区免费高清| 国产精品视频久久久| 久热精品视频在线| 国产精品久久久久久久app| 久久久噜噜噜久久人人看| 狠狠色丁香久久综合频道| 午夜精品一区二区三区在线| 亚洲欧洲午夜| 欧美成人一区二免费视频软件| 夜夜精品视频一区二区| 一本久道久久综合狠狠爱| 欧美巨乳波霸| 亚洲伦伦在线| 亚洲欧美日韩中文视频| 91久久极品少妇xxxxⅹ软件| 久久精品视频在线播放| 久久九九热免费视频| 亚洲欧洲日韩在线| 久久噜噜噜精品国产亚洲综合| 亚洲综合色激情五月| 国产自产2019最新不卡| 欧美日韩午夜精品| 在线播放亚洲一区| 欧美国产日韩亚洲一区| 国产一区二区电影在线观看| 欧美成人精品一区二区| 欧美日韩精品在线播放| 久久久久久久久蜜桃| 欧美在线视频免费观看| 亚洲自拍都市欧美小说| 午夜精品国产| 欧美日韩大片| 一本久道久久久| 亚洲第一黄色网| 国产亚洲精品综合一区91| 亚洲精品国产品国语在线app| 亚洲私人黄色宅男| 国产视频久久网| 久久久精品一区二区三区| 国产精品初高中精品久久| 亚洲欧洲三级| 亚洲国产精品一区二区三区| 亚洲桃花岛网站| 欧美另类变人与禽xxxxx| 亚洲精品网址在线观看| 欧美久久视频| 99精品欧美一区二区三区综合在线| 欧美日韩视频在线一区二区观看视频| 欧美高清在线| 国产偷国产偷亚洲高清97cao| 国产欧美一区二区视频| 久久国产天堂福利天堂| 欧美三级午夜理伦三级中文幕| 国内久久精品| 日韩亚洲精品电影| 亚洲欧美日韩一区在线观看| 欧美视频日韩视频| 国内精品免费在线观看| 亚洲欧美日韩在线不卡| 国产精品红桃| 伊人一区二区三区久久精品| 性欧美大战久久久久久久久| 欧美午夜片在线观看| 一区二区三区高清在线| 久久视频国产精品免费视频在线| 国产精品欧美在线| aa亚洲婷婷| 美女国内精品自产拍在线播放| 国内精品国语自产拍在线观看| 亚洲综合精品四区| 精品成人在线观看| 欧美三级小说| 久久精品国产亚洲一区二区| 久久av红桃一区二区小说| 影院欧美亚洲| 久久99伊人| 亚洲一区二区三区色| 亚洲小少妇裸体bbw| 麻豆国产精品一区二区三区| 欧美性jizz18性欧美| 国产精品激情偷乱一区二区∴| 宅男噜噜噜66国产日韩在线观看| 中文精品视频一区二区在线观看| 国产欧美日韩一区二区三区| 亚洲制服少妇| 亚洲天堂免费在线观看视频| 久久久精品tv| 欧美日韩国产一区二区| 亚洲国产精品v| 午夜精品久久久久久久白皮肤| 99精品黄色片免费大全| 国产欧美日韩亚洲精品| 国产三级欧美三级日产三级99| 亚洲美女啪啪| 亚洲永久精品国产| 欧美日韩美女一区二区| 国产情人综合久久777777| 国产区日韩欧美| 国产精品va在线播放我和闺蜜| 久久久久.com| 国产精品欧美久久久久无广告| 亚洲永久精品大片| 尤物九九久久国产精品的分类| 亚洲欧美国产视频| 欧美日韩在线一区| 一区二区三区三区在线| 国产精品久久久久久av下载红粉| 亚洲一区二区精品视频| 国产真实精品久久二三区| 国产日韩欧美综合精品| 久久综合综合久久综合| 欧美影院在线播放| 国产日韩欧美亚洲一区| 亚洲一本视频| 亚洲国产精品精华液2区45| 久久综合综合久久综合| 免费试看一区| 欧美日韩日本网| 樱桃成人精品视频在线播放| 国产精品久久| 欧美呦呦网站| 国产亚洲午夜| 国产情人综合久久777777| 欧美日韩亚洲激情| 国产乱码精品1区2区3区| 欧美日韩综合一区| 国产精品自拍小视频| 欧美不卡视频一区发布| 国产视频一区二区三区在线观看| 欧美日韩国产一级| 欧美日韩精品| 国产精品一区二区在线观看网站| 亚洲一区二区三区免费观看| 一区二区三区日韩精品| 国产精品一区二区三区四区五区| 欧美日韩国产高清视频| 久久中文精品| 18成人免费观看视频| 久久久久女教师免费一区| 亚洲直播在线一区| 亚洲欧美激情四射在线日| 欧美激情片在线观看| 亚洲七七久久综合桃花剧情介绍| 亚洲精品社区| 亚洲综合精品一区二区| 久久欧美中文字幕| 日韩一区二区精品在线观看| 在线日本高清免费不卡| 国产欧美日韩综合精品二区| 国产一区二区激情| 国产精品久久久久一区二区三区| 欧美日韩1区2区3区| 激情综合色丁香一区二区| 国产精品免费一区豆花| 99综合视频| 久久男人资源视频| 欧美激情网站在线观看| 亚洲福利视频免费观看| 欧美视频中文一区二区三区在线观看| 一本久久知道综合久久| 国产精品毛片va一区二区三区| 欧美片在线观看| 国产亚洲精品久久飘花| 欧美日韩国产丝袜另类| 久久一区国产| 欧美成人69av| 国产欧美日韩中文字幕在线| 香蕉av福利精品导航| 亚洲高清不卡在线观看| 久久精品国产96久久久香蕉| 久久精品欧美日韩精品| 国产精品欧美激情| 亚洲精品乱码久久久久久久久| 亚洲视频播放| 国产精品美女主播在线观看纯欲| 欧美体内she精视频| 99精品久久| 国产精品美女久久久久久久| 激情综合激情| 国产日韩精品视频一区| 欧美丝袜第一区| 欧美片在线播放| 一区二区电影免费在线观看| 玉米视频成人免费看| 国产综合在线视频| 美女任你摸久久| 亚洲美洲欧洲综合国产一区| 国产精品网红福利| 欧美激情精品久久久六区热门| 亚洲国产精品一区在线观看不卡| 欧美巨乳波霸| 美日韩在线观看| 狠狠色综合日日| 久久嫩草精品久久久精品一| 国产丝袜美腿一区二区三区| 一区二区三区国产精品| 一区电影在线观看| 欧美色图五月天| 亚洲美女免费精品视频在线观看| 亚洲福利视频网站| 国产亚洲欧洲997久久综合| 亚洲精品免费看| 欧美日韩专区在线| 国产精品入口日韩视频大尺度| 国产嫩草一区二区三区在线观看| 99国产精品国产精品毛片| 精品999在线播放| 禁久久精品乱码| 另类亚洲自拍| 久久精品一级爱片| 国产一区二区日韩精品欧美精品| 亚洲精品日韩激情在线电影| 国产精品视频免费观看| 正在播放欧美视频| 欧美大片免费看| 亚洲级视频在线观看免费1级| 欧美日韩国产探花| 欧美日韩国产bt| 欧美日韩国产美| 国产精品高清在线| 欧美a级大片| 午夜精品免费视频| 亚洲精品综合精品自拍| 国产精品日韩在线一区| 亚洲欧美制服另类日韩| 欧美日韩亚洲国产一区| 久久精品国产亚洲一区二区| 欧美电影在线观看完整版| 国产综合色产在线精品| 亚洲美女黄色片| 免费看黄裸体一级大秀欧美| 久久青草福利网站| 亚洲欧洲精品一区二区三区波多野1战4| 在线观看成人小视频| 99精品热视频只有精品10| 亚洲国产精品尤物yw在线观看| 久久久另类综合| 国产精品国产三级国产aⅴ入口| 欧美三级午夜理伦三级中视频| 亚洲国产欧美一区二区三区久久| 久久久亚洲国产天美传媒修理工| 亚洲深夜av| 亚洲精品久久久久久久久久久久| 一区二区不卡在线视频 午夜欧美不卡'| 国产精品美女久久久| 久久久青草婷婷精品综合日韩| 亚洲精品国产精品乱码不99按摩| 久久久亚洲高清| 免费成人av在线看| 亚洲欧美日韩国产另类专区| 亚洲宅男天堂在线观看无病毒| 国产精品v欧美精品v日韩| 亚洲国产精品尤物yw在线观看| 国产中文一区二区| 欧美日韩专区在线| 9i看片成人免费高清| 亚洲欧美日韩国产中文| 国产午夜精品在线| 亚洲一区二区少妇| 欧美成人午夜剧场免费观看| 欧美一级午夜免费电影| 在线日韩欧美视频| 老司机凹凸av亚洲导航| 国产一区二区在线免费观看| 久久精品一本久久99精品| 国产一区二区三区在线观看网站| 国产精品成人一区二区三区吃奶| 久久人人97超碰国产公开结果| 亚洲一区亚洲二区| 影音先锋欧美精品| 亚洲人体1000| 一区二区视频在线观看| 亚洲精品一区二区三区樱花| 麻豆精品精华液| 免费欧美日韩国产三级电影| 欧美成人在线免费观看| 久久久蜜臀国产一区二区| 亚洲精品视频在线看| 久久国产一区二区| 久久久久国色av免费观看性色| 制服丝袜亚洲播放| 亚洲欧洲日产国产综合网| 久久精品综合| 国产精品久久久久久久9999| 国产精品成人观看视频国产奇米| 亚洲视频欧美视频| 亚洲午夜羞羞片| 99国产精品| 欧美大尺度在线观看| 国产精品视频yy9299一区| 亚洲黄色av| 在线国产日韩| 亚洲理论在线观看| 欧美视频在线免费看| 亚洲一二三四久久|