當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于ARM處理器的CAN節(jié)點(diǎn)設(shè)計(jì)

引言

隨著信息技術(shù)的飛速發(fā)展,基于ARM在嵌入式系統(tǒng)方面的優(yōu)勢(shì)和CAN總線的廣泛應(yīng)用,目前越來越多的ARM處理器內(nèi)部自帶了CAN控制器,極大的方便了開發(fā)人員對(duì)CAN總線的開發(fā)。本課題是基于ARM2104的微處理器CAN總線系統(tǒng)節(jié)點(diǎn)開發(fā),采用CAN總線可以將節(jié)點(diǎn)控制器直接安裝在現(xiàn)場(chǎng),數(shù)據(jù)經(jīng)處理后發(fā)送到總線上,實(shí)現(xiàn)了信息的全數(shù)字方式傳輸,提高了傳輸?shù)目垢蓴_能力,增加了信息的傳輸量。

總體設(shè)計(jì)方案

本課題中所設(shè)計(jì)的是CAN總線系統(tǒng)節(jié)點(diǎn),系統(tǒng)節(jié)點(diǎn)結(jié)構(gòu)圖如圖1。

圖1  系統(tǒng)節(jié)點(diǎn)結(jié)構(gòu)圖

CAN總線系統(tǒng)應(yīng)用要求:CAN總線接口的擴(kuò)展、點(diǎn)對(duì)點(diǎn)通信。

CAN節(jié)點(diǎn)的設(shè)計(jì)主要是CAN通信控制器與微處理器之間、CAN總線收發(fā)器與物理總線之間的電路的設(shè)計(jì)。微控制器主要負(fù)責(zé)CAN控制器的初始化,進(jìn)行與CAN控制器的數(shù)據(jù)傳遞,并按照預(yù)定的程序進(jìn)行處理;CAN的通信協(xié)議主要由CAN控制器完成,CAN控制器主要負(fù)責(zé)將數(shù)據(jù)以CAN報(bào)文的形式傳遞,并進(jìn)行系統(tǒng)的診斷、測(cè)試以及處理CAN總線上的錯(cuò)誤等;而CAN總線收發(fā)器是CAN控制器和CAN總線之間的接口,完成物理電平的轉(zhuǎn)換,功能是增大通信距離,提高系統(tǒng)的瞬間抗干擾能力,保護(hù)總線,降低射頻干擾(RFI)。

通常一個(gè)完整的CAN節(jié)點(diǎn)應(yīng)該包括三個(gè)部分:微控制器、CAN控制器、CAN收發(fā)器。目前廣泛流行的CAN總線器件有兩大類:一類是獨(dú)立的CAN控器,另一類是帶有在片CAN的微控制器。

CAN節(jié)點(diǎn)硬件電路設(shè)計(jì)

對(duì)于CAN節(jié)點(diǎn)硬件電路的的各接口電路的設(shè)計(jì)有:CAN接口電路、CPU模塊、外圍電路(復(fù)位電路和JATG接口電路)。其中CPU及電源電路如下圖2所示:
 

圖2  CPU及電源模塊

LPC2104要使用兩組電源,I/O供電電源為3.3V應(yīng)用系統(tǒng)。首先,電源DW1將電源整流,經(jīng)過C1、C3濾波,然后通過78M05將電源穩(wěn)壓至5V,再使用LDO芯片(低差壓電源芯片)穩(wěn)壓輸出3.3V及1.8V電壓。LD0芯片采用S-1131B33UC和S-1131B18UC,其特點(diǎn)為輸出電流大、精度高、穩(wěn)定性高、功耗低。

設(shè)計(jì)中的CPU芯片與控制器SJA1000的配腳圖如圖3所示。

圖3  模擬總線硬件圖
 

CAN節(jié)點(diǎn)的軟件設(shè)計(jì)

CAN節(jié)點(diǎn)的軟件設(shè)計(jì)主要包括ARM處理器的編程和SJA1000驅(qū)動(dòng)程序的設(shè)計(jì)。在硬件電路確定以后,系統(tǒng)控制的主要功能將依賴于軟件來實(shí)現(xiàn)。系統(tǒng)能否正常可靠的工作,除了硬件的合理設(shè)計(jì)以外,與功能完善的軟件設(shè)計(jì)是分不開的。

軟件程序流程圖如下圖4所示:
 

圖4  主程序流程圖

配置軟件包使用的GPIO必須在文件config.h中進(jìn)行,其程序清單如列表1所示,其中程序清單(1)設(shè)置地址總線的寬度,只能為8、16、和24三個(gè)值之一。清單(2)設(shè)置信號(hào)AD0對(duì)應(yīng)GPIO,其中0對(duì)應(yīng)P0.0,1對(duì)應(yīng)P0.1,以此類推。地址/數(shù)據(jù)總線的其它信號(hào)以這個(gè)信號(hào)為基準(zhǔn),順序定義。清單(3)信號(hào)ALE對(duì)應(yīng)GPIO,其中0對(duì)應(yīng)P0.0,1對(duì)應(yīng)P0.1,以此類推。清單(4)信號(hào)WR對(duì)應(yīng)GPIO,其中0對(duì)應(yīng)P0.0,1對(duì)應(yīng)P0.1,以此類推。

程序清單列表1 配置總線使用的GPIO

#define ADDR_N_BIT 16 (1)

#define AD0_PIN_NUM 8 (2)

#define ALE_PIN_NUM 0 (3)

#define WR_PIN_NUM 1 (4)

#define RD_PIN_NUM 4 (5)

#include“exbus.h” (6)

本系統(tǒng)CAN控制器采用SJA1000,SJA1000控制器在微控制器正常通訊前,都必須先在相應(yīng)地址寄存器中加載,確定接收標(biāo)識(shí)碼、總線接收波特率以及輸出控制等,這就是CAN控制器的初始化。系統(tǒng)所用的CAN總線控制器SJA1000和CAN2.0A以及CAN2.0B兩個(gè)版本的協(xié)議同時(shí)兼容。本系統(tǒng)設(shè)計(jì)以CAN2.0A的Basic CAN為協(xié)議標(biāo)準(zhǔn)進(jìn)行設(shè)計(jì)。

測(cè)試之前編寫的程序前首先要確定SJA1000的片選地址,確定與其他外部存儲(chǔ)器無沖突。其次,微處理器對(duì)SJA1000的控制訪問是以外部存儲(chǔ)器的方式,來訪問SJA1000的內(nèi)部寄存器,所以應(yīng)該正確定義微處理器訪問SJA1000時(shí),SJA1000內(nèi)部寄存器的訪問地址。

整個(gè)流程進(jìn)行測(cè)試之后,SJA1000有8個(gè)不同的中斷,這些中斷可使主控制器立即作用在CAN控制器的某些狀態(tài)上。一旦CAN產(chǎn)生中斷,SJA1000就將中斷輸出(管腳16)設(shè)為低電平,直到主控制器通過讀SJA1000的中斷寄存器對(duì)中斷采取相應(yīng)措施,在主控制器響應(yīng)后中斷,或接收INFO里有更多有效數(shù)據(jù),SJA1000立刻將中斷輸出再次設(shè)為低電平。采用中斷接收的方式來接收數(shù)據(jù),LPC2104的P0.16設(shè)置為外部中斷INT,整個(gè)數(shù)據(jù)接收模塊由數(shù)據(jù)接收函數(shù)void ReceiveData(uint8 *Rt)、中斷處理函數(shù)CANException(void)構(gòu)成。當(dāng)SJA1000接收到CAN總線數(shù)據(jù),通過接收中斷使得LPC2104產(chǎn)生外部中斷INT而使其進(jìn)入中斷處理函數(shù),進(jìn)而對(duì)接收到的數(shù)據(jù)進(jìn)行處理。[!--empirenews.page--]

可想,在CAN節(jié)點(diǎn)的軟件設(shè)計(jì)的整個(gè)流程中,當(dāng)硬件電路確定以后,系統(tǒng)控制的主要功能將依賴于軟件來實(shí)現(xiàn),并且能夠正??煽康墓ぷ?。

結(jié)論

ARM芯片作為主控制器,CAN總線作為數(shù)據(jù)傳輸方式來進(jìn)行通訊的嵌入式系統(tǒng)得到了越來越廣泛的應(yīng)用。同時(shí)CAN通訊的可靠性也成為影響系統(tǒng)性能的關(guān)鍵部分之一。

本文以LPC2104為例,給出了一類微處理器與CAN控制器SJA1000之間的較為通用的硬件連接方法,對(duì)CAN總線節(jié)點(diǎn)進(jìn)行了可靠性設(shè)計(jì),采用CAN總線可以將節(jié)點(diǎn)控制器直接安裝在現(xiàn)場(chǎng),數(shù)據(jù)經(jīng)處理后發(fā)送到總線上,實(shí)現(xiàn)了信息的全數(shù)字方式傳輸,提高了傳輸?shù)目垢蓴_能力,增加了信息的傳輸量。

該設(shè)計(jì)現(xiàn)已在工廠車間中的車身控制系統(tǒng)中得到了應(yīng)用,且運(yùn)行可靠。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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