當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]基于AT91RM9200的CAN智能節(jié)點設計

近年來工業(yè)測控系統(tǒng)從傳統(tǒng)的集中測量控制系統(tǒng)轉(zhuǎn)向網(wǎng)絡化的集散控制系統(tǒng)。隨著現(xiàn)場總線技術(shù)高速發(fā)展和標準化程度的不斷提高,以現(xiàn)場總線技術(shù)為基礎(chǔ)的開放型集散測控系統(tǒng)得到廣泛應用??偩€是控制器局域網(wǎng)(controller area network,CAN)屬于現(xiàn)場總線范疇,是一種能有效支持分布式控制的串行通信網(wǎng)絡,可將掛接在現(xiàn)場總線上作為網(wǎng)絡節(jié)點的智能設備連接成網(wǎng)絡系統(tǒng),并進一步構(gòu)成集散測控系統(tǒng)。CAN智能節(jié)點位于傳感器和執(zhí)行機構(gòu)所在的現(xiàn)場,在集散控制系統(tǒng)中起著承上啟下的作用。一方面,它必須和上位機進行通信,以完成數(shù)據(jù)交換;另一方面,它根據(jù)系統(tǒng)的需要以完成測量與控制的功能。因此,CAN智能節(jié)點的設計在工業(yè)集散測控系統(tǒng)中有著十分重要的作用。本文將提出一種基于ARM9處理器AT91RM9200和CAN控制器MCP25lO構(gòu)建的CAN智能節(jié)點的設計方案,并介紹了該方案的軟硬件設計及調(diào)試方法。

1 硬件設計
    CAN智能節(jié)點的設計涉及2個方面:需要實現(xiàn)的功能;如何實現(xiàn)CAN通信。因此本文基于AT91RM9200和MCP2510提出的CAN智能節(jié)點的設計框架如圖1所示。在此首先介紹主要芯片的特性,然后再說明智能節(jié)點的設計原理。


1.1 芯片特性
    AT91RM9200是Atmel公司生產(chǎn)的一款ARM9處理器,它是完全圍繞ARM920T ARM Thumb處理器構(gòu)建的系統(tǒng)。它有豐富的系統(tǒng)與應用外設及標準的接口,從而為低功耗、低成本、高性能的計算機寬范圍應用提供一個單片解決方案。
    MCP2510是由美國微芯科技有限公司(MicrochipTechnology Inc.)生產(chǎn)的一款帶SPI接口的CAN協(xié)議控制器,完全支持CAN總線V2.0A/B技術(shù)規(guī)范;能夠發(fā)送和接收標準和擴展報文,通信速率最高可達1 Mb/s,同時具備驗收過濾以及報文管理功能;通過SPI接口與MCU進行通信,最高數(shù)據(jù)傳輸速率高達5 Mb/s;包含3個發(fā)送緩沖器和2個接收緩沖器,還具有靈活的中斷管理能力。所有這些特點使得MCU對CAN總線的操作變得非常簡單。PCA82C250是由Philips半導體公司生產(chǎn)的一款CAN收發(fā)器,是CAN協(xié)議控制器和物理傳輸線路之間的接口。它可以用高
達l Mb/s的位速率在2條有差動電壓的總線電纜上傳輸數(shù)據(jù)。
1.2 設計原理
    本文將CAN智能節(jié)點需要實現(xiàn)的功能統(tǒng)稱為功能模塊。由于AT91RM9200處理器具有豐富的系統(tǒng)與應用外設及標準的接口,因此根據(jù)應用的需要很容易就可實現(xiàn)功能模塊的擴展。本文著重說明AT91RM9200處理器如何實現(xiàn)CAN總線的擴展。
    AT91RM9200處理器提供4個SPI接口。其中MOSI(主機輸出從機輸入)、MISO(主機輸入從機輸出)、SPCK(串行時鐘)3個引腳信號由4個SPI接口共用;而4個片選信號NPCSO,NPCSl,NPCS2,NPCS3則用于分別選通4個SPI接口。而CAN控制器MCP2510的SPI接口引腳定義:SI(數(shù)據(jù)輸入)、SO(數(shù)據(jù)輸出)、SCK(時鐘輸入)、CS(片選輸入)。該設計將AT91RM9200第二個SPI接口與MCP2510的SPI接口相連(MOSI←→SI,MIS0←→SO,SPCK←→SCK,NPCSl←→CS),從而建立了它們之間通信的橋梁。同時將MCP2510芯片的中斷輸出引腳INT與AT91RM9200芯片的中斷輸入引腳IRQ5相連,從而可將MCP2510芯片產(chǎn)生的中斷(包括發(fā)送、接收、報文錯誤、總線活動喚醒、錯誤等中斷)事件通知AT91RM9200處理器,讓其作出相應的處理。[!--empirenews.page--]
    CAN控制器MCP2510可以通過串行數(shù)據(jù)發(fā)送引腳(TXCAN)和串行數(shù)據(jù)接收引腳(RXCAN)直接連接到CAN收發(fā)器PCA82C250。該設計為了實現(xiàn)MC-P2510與PCA82C250之間的電流隔離,在它們之間放置了2個光耦。然而,在協(xié)議控制器和收發(fā)器之間使用光耦,通常會增加總線節(jié)點的循環(huán)延遲。光耦6N137的典型傳播延時為60 ns,比較適合傳輸速率小于等于125 Kb/s時的中低速應用場合;而在傳輸速率在125 Kb/s~1 Mb/s的高速應用場合中,應考慮使用傳播延時小于40 ns的高速光耦,如HCPL-7101。
    CAN收發(fā)器PCA82C250通過有差動發(fā)送和接收功能的2個總線終端CANH和CANL連接到總線電纜。PCA82C250的輸入引腳Rs通過外接電阻Rext到地,可以選擇3種不同的工作模式。第1種是高速模式,支持最大的總線速度和/或長度;第2種是斜率模式,其輸出轉(zhuǎn)換速度可故意降低以減少電磁輻射;第3種是準備模式,其在電池供電并對功耗消耗非常低的應用非常適合。該設計將PCA82C250的引腳RS外接阻值為47 kΩ的電阻,從而使它工作在斜率模式,這樣可以使用非屏蔽的總線電纜,降低系統(tǒng)的成本。但總線信號轉(zhuǎn)換速率被故意減低了,因此該設計只能應用在傳輸速率小于等于125 Kb/s時的中低速應用場合,相應光耦選擇6N137即可。

2 軟件設計
    CAN智能節(jié)點軟件設計主要包括2個方面:CAN通信和CAN節(jié)點功能模塊的軟件設計。CAN節(jié)點功能模塊軟件的實現(xiàn)因需求而異,在此不做介紹。本文著重介紹CAN通信軟件的設計,它主要由3部分組成:CAN初始化、CAN發(fā)送數(shù)據(jù)、CAN接收數(shù)據(jù)。
2.1 CAN初始化
    由圖2(a)可知,CAN初始化主要包括PIOA端口初始化、SPI初始化、MCP2510初始化、中斷初始化。


    現(xiàn)分別介紹如下:
    (1)PIOA端口初始化。由于AT91RM9200每個引腳可配置為通用功能I/O線或與1個或2個外設I/O復用的I/O線。因此必須通過軟件配置PIOA端口:將PA0,PAl,PA2,PA4引腳分別定義為MISO,MOSI,SPCK,NPCSl,從而完成CAN智能節(jié)點SPI接口的定義;將PA3引腳定義為IRQ5,從而完成CAN智能節(jié)點中斷信號的定義。
    (2)SPI初始化。通過PIOA端口初始化,只是完成SPI接口的引腳定義。為了使SPI接口能夠正常工作,首先配置電源管理控制器(PMC)以使能SPI時鐘;如果允許SPI中斷請求,必須對高級中斷控制器(AIC)進行配置;最后通過SPI的模式寄存器SPI_MR。指定SPI為主機模式、固定外設選擇、SPI時鐘為MCK、片選信號NPCSl有效;通過SPI的片選1寄存器SPI_CSRl指定SPCK時鐘極性、時鐘相位以支持MCP2510的(O,O)或(1,1)的SPI模式,指定SPI接口以8位數(shù)據(jù)進行傳輸匹配MCP2510的命令及數(shù)據(jù)格式,指定SPI的串行時鐘波特率以匹配與MCP2510的通信。
    (3)MCP2510初始化。在完成PIOA端口、SPI初始化的基礎(chǔ)上,即可按照圖2(a)虛線框中的流程進行MCP2510初始化:首先必須使MCP2510進入配置模式;然后對MCP2510相關(guān)寄存器(位定時配置寄存器、接收濾波寄存器、接收屏蔽寄存器、引腳控制和狀態(tài)寄存器)進行配置;最后使MCP2510進入正常模式。根據(jù)MCP2510提供的SPI命令集(讀指令、寫指令、請求發(fā)送指令、狀態(tài)讀指令、位修改指令、復位指令),可以通過對
AT91RM9200的SPI接收數(shù)據(jù)寄存器SPI_RDR,SPI發(fā)送數(shù)據(jù)寄存器SPI_TDR,SPI狀態(tài)寄存器SPI_SR的操作實現(xiàn)相應的函數(shù):McpRdByte(),Mcp-WrByte(),WriteRTS(),McpRdStatus(),BitModify(),McpReset()。軟件通過這些基本的指令函數(shù)完成MCP2510相關(guān)寄存器的配置。
    (4)中斷初始化。通過AT91RM9200的高級中斷控制器(AIC),首先配置IRQ5中斷的優(yōu)先級為最高,中斷觸發(fā)類型為下降沿觸發(fā);接著將中斷服務程序IRQ5_ISR()的地址設置到中斷向量寄存器;最后使能IRQ5中斷。[!--empirenews.page--]
2.2 CAN發(fā)送數(shù)據(jù)
    當完成CAN的初始化后,即可使用3個發(fā)送緩沖器發(fā)送報文數(shù)據(jù)。由圖2(b)可知:在發(fā)送數(shù)據(jù)前,首先通過發(fā)送緩沖器N(N=O,1,2)控制寄存器TXBNCTRL終止報文發(fā)送,并設定發(fā)送緩沖器N報文發(fā)送的優(yōu)先級;接著通過發(fā)送緩沖器N標準標識符高低位寄存器TXBNSIDH,TXBNSIDL設定標準標識符,如果報文采用擴展標識符,還需通過發(fā)送緩沖器N擴展標識符高低位寄存器TXBNEID8,TXBNEID0設定擴展標識符。當發(fā)送緩沖器N相關(guān)寄存器初始化后,發(fā)送任務處于休眠等待狀態(tài)。一旦有數(shù)據(jù)需要發(fā)送,即可將需要發(fā)送的數(shù)據(jù)(每次最多8 B)存放在發(fā)送緩沖器N的數(shù)據(jù)寄存器TXBND7~TXlBND0,并且通過送緩沖器N的數(shù)據(jù)長度寄存器TXBNDLC設定每次發(fā)送的字節(jié)數(shù),最后通過發(fā)送緩沖器N控制寄存器TXB-NCTRL啟動數(shù)據(jù)發(fā)送。當數(shù)據(jù)發(fā)送完畢,發(fā)送任務又處于休眠等待狀態(tài)。
2.3 CAN接收數(shù)據(jù)
    當完成CAN的初始化后,即可使用兩個接收緩沖器接收報文數(shù)據(jù)。由圖2(c)可知:在接收數(shù)據(jù)前,首先通過接收緩沖器N(N=0,1)控制寄存器RXBNCTRL,設定接收緩沖器的工作模式為接收符合濾波條件的所有帶擴展標識符或標準標識符的有效報文;如果允許MCP2510接收中斷,還需通過中斷使能寄存器CANINTE允許接收緩沖器N裝入報文時產(chǎn)生中斷。
    當接收緩沖器N相關(guān)寄存器初始化后,接收任務處于休眠等待狀態(tài)。當接收任務通過輪詢或中斷方法發(fā)現(xiàn)需要接收數(shù)據(jù)時,它通過接收緩沖器N標準標識符高低位寄存器RXBNSIDH,RXBNSIDL獲取標準標識符;如果收到的報文是擴展幀,可通過RXBNSIDL及接收緩沖器N擴展標識符中間、低位寄存器RXBNEID8,RXBNEIDO獲取擴展標識符;通過接收緩沖器N數(shù)據(jù)長度碼寄存器RXBNDLC獲取接收到的數(shù)據(jù)字節(jié)個數(shù),進而通過接收緩沖器N數(shù)據(jù)寄存器RBNDm7~RBNDm0獲取接收報文中的數(shù)據(jù)信息。當數(shù)據(jù)接收完畢,接收任務又處于休眠等待狀態(tài)。

3 軟硬件調(diào)試
    當CAN智能節(jié)點的硬件和軟件設計完畢,需要對其進行軟、硬件的調(diào)試以驗證其設計的正確性。CAN智能節(jié)點軟、硬件調(diào)試按以下步驟依次進行:
    (1)CAN自發(fā)、自收功能調(diào)試。只要在CAN初始化過程完成MCP2510相關(guān)寄存器的配置,將MCP2510設置為環(huán)回模式,即可使MCP2510器件內(nèi)部發(fā)送緩沖器和接收緩沖器之間進行報文自發(fā)、自收,而無需通過CAN總線。


    (2)CAN通信功能調(diào)試。按照圖3所示方案進行CAN通信功能的調(diào)試。其中USB_CAN適配器采用武漢吉陽光電科技有限公司一款帶有USB接口和1路CAN接口的GY8507 USB_CAN總線適配器。通過該適配器,PC可以通過USB接口連接一個標準CAN網(wǎng)絡,從而與CAN智能節(jié)點通信。使用廠家提供的CANTools工具軟件可以方便進行CAN智能節(jié)點數(shù)據(jù)的發(fā)送和接收調(diào)試。
    (3)CAN功能模塊調(diào)試。由于CAN智能節(jié)點具體實現(xiàn)的功能各異,不詳細介紹CAN功能模塊的調(diào)試。

4 結(jié)語
    目前已完成CAN智能節(jié)點通信電路的軟、硬件設計及調(diào)試,并成功將軟件移植到VxWorks 5.5操作系統(tǒng)上運行。基于功能強大的AT91RM-9200處理器以及高可靠和強實時的VxWorks 5.5操作系統(tǒng),容易構(gòu)建出滿足應用需求的CAN智能節(jié)點

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉