當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]多通道實(shí)時(shí)CAN模擬器設(shè)計(jì)方案

CAN總線與一般的串行通信總線相比,它的數(shù)據(jù)通信具有可靠性高,實(shí)時(shí)性高,靈活性強(qiáng)等優(yōu)點(diǎn),不僅廣泛應(yīng)用于汽車行業(yè),而且擴(kuò)展到了機(jī)械工業(yè)、機(jī)器人、數(shù)控機(jī)床等諸多領(lǐng)域。尤其在大量數(shù)據(jù)通信處理中,高可靠性及實(shí)時(shí)響應(yīng)的場(chǎng)合,單通道CAN總線不能滿足實(shí)際通信的要求。為此,介紹一種基于多通道實(shí)時(shí)CAN模擬器的設(shè)計(jì)方案。

  1 CAN總線技術(shù)介紹

  1.1 CAN總線特性

  CAN(Controller Area Network)總線是一種串行多主站控制器局域網(wǎng)總線。它具有很高的網(wǎng)絡(luò)安全性、通信可靠性和實(shí)時(shí)性,并且簡(jiǎn)單實(shí)用,網(wǎng)絡(luò)成本低。它主要用于各種過(guò)程監(jiān)測(cè)及控制的一種網(wǎng)絡(luò)。CAN最初是由德國(guó)BOSCH公司為汽車的監(jiān)測(cè)、控制系統(tǒng)而設(shè)計(jì)的。由于CAN總線具有卓越的特性和極高的可靠性,特別適合于工業(yè)過(guò)程中監(jiān)控設(shè)備的互連。

  1.2 CAN通信協(xié)議

  在CAN 2.0B的版本協(xié)議中有兩種不同的幀格式,不同之處為標(biāo)識(shí)符域的長(zhǎng)度不同,含有11位標(biāo)識(shí)符的幀稱為標(biāo)準(zhǔn)幀,而含有29位標(biāo)識(shí)符的幀稱為擴(kuò)展幀。擴(kuò)展格式是CAN 2.0B協(xié)議新增加的特性。在報(bào)文傳輸時(shí),不同的幀具有不同的傳輸結(jié)構(gòu),只有嚴(yán)格按照該結(jié)構(gòu)進(jìn)行幀的傳輸,才能被節(jié)點(diǎn)正確接收和發(fā)送。下面將分別介紹四種傳輸幀的結(jié)構(gòu):

  (1)數(shù)據(jù)幀(Data):數(shù)據(jù)幀將數(shù)據(jù)從發(fā)送器傳輸?shù)浇邮掌?。CAN協(xié)議有兩種數(shù)據(jù)幀類型標(biāo)準(zhǔn)2.0A和標(biāo)準(zhǔn)2.0B。兩者本質(zhì)的不同在于ID的長(zhǎng)度不同。在2.0A類型中,ID的長(zhǎng)度為11位;在2.0B類型中,ID的長(zhǎng)度為29位。它由7個(gè)域組成:幀起始、仲裁域、控制域、數(shù)據(jù)域、CRC校驗(yàn)碼域、應(yīng)答域、幀結(jié)束。

  (2)遠(yuǎn)程幀(Remote):總線單元發(fā)出遠(yuǎn)程幀,請(qǐng)求發(fā)送具有同一標(biāo)識(shí)符的數(shù)據(jù)幀。接收數(shù)據(jù)的節(jié)點(diǎn)可通過(guò)發(fā)遠(yuǎn)程幀請(qǐng)求源節(jié)點(diǎn)發(fā)送數(shù)據(jù)。它由6個(gè)域組成:幀起始、仲裁域、控制域、校驗(yàn)域、應(yīng)答域、幀結(jié)束。

  (3)錯(cuò)誤幀(Error):任何單元檢測(cè)到總線錯(cuò)誤就發(fā)出錯(cuò)誤幀。由錯(cuò)誤標(biāo)志和錯(cuò)誤分界兩個(gè)域組成。接收節(jié)點(diǎn)發(fā)現(xiàn)總線上的報(bào)文有誤時(shí),將自動(dòng)發(fā)出“活動(dòng)錯(cuò)誤標(biāo)志”,其他節(jié)點(diǎn)檢測(cè)到活動(dòng)錯(cuò)誤標(biāo)志后發(fā)送“錯(cuò)誤認(rèn)可標(biāo)志”。

  (4)過(guò)載幀(Overload):過(guò)載幀用在相鄰數(shù)據(jù)幀或遠(yuǎn)程幀之間提供附加的延時(shí)。由超載標(biāo)志和超載分隔符組成。超載幀只能在一個(gè)幀結(jié)束后開始。當(dāng)接收方在接收下一幀之前,需要過(guò)多的時(shí)間處理當(dāng)前的數(shù)據(jù),或在幀間空隙域檢測(cè)到顯性電平時(shí),則導(dǎo)致發(fā)送超載幀。

  1.3 CAN協(xié)議控制器

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

  SJA1000是一款獨(dú)立CAN控制器,應(yīng)用于移動(dòng)目標(biāo)和工業(yè)局域網(wǎng)控制領(lǐng)域。SJA1000具有兩種工作模式:BasicCAN和PeliCAN。該設(shè)計(jì)采用PeliCAN工作模式。SJA1000用來(lái)完成CAN協(xié)議所規(guī)定的物理層和數(shù)據(jù)鏈路層的所有功能,它可以支持多種處理器的時(shí)序特性,如Intel模式或Motorola模式,與微處理器的接口非常簡(jiǎn)單,微處理器以訪問(wèn)外部存儲(chǔ)器的方式來(lái)訪問(wèn)SJA1000。

  SJA1000通過(guò)CAN控制器接口即PCA82C250芯片接到CAN總線上。CAN收發(fā)器使用飛利浦公司的PCA82C250,它是連接CAN控制器和物理總線之間的接口,提供了對(duì)總線的差動(dòng)發(fā)動(dòng)和接收能力,與ISO11898標(biāo)準(zhǔn)完全兼容,有三種不同的工作方式即高速、斜率控制和待機(jī),可根據(jù)實(shí)際情況選擇。硬件電路中使用PCA82C250是為了增加通信距離,提高系統(tǒng)的瞬間抗干擾能力,保護(hù)總線,降低干擾等。[!--empirenews.page--]2 系統(tǒng)設(shè)計(jì)

 

  2.1 系統(tǒng)方案設(shè)計(jì)

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

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

  (2)ISA總線+微處理器+CAN通信控制器。這兩種設(shè)計(jì)方案的不同點(diǎn)在于是否采用處理器來(lái)加強(qiáng)控制。

  由于CAN總線通信要求實(shí)時(shí)性高,再加上多通道的設(shè)計(jì)滿足實(shí)際的需要,故采用單片機(jī)來(lái)負(fù)責(zé)CAN總線的通信功能。在這里主要介紹單片機(jī)與CAN控制器之間的設(shè)計(jì)部分,其系統(tǒng)設(shè)計(jì)框圖如圖1所示。

  

 

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

  2.2 系統(tǒng)硬件設(shè)計(jì)

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

  

 

  SRAM和CAN控制器的片選信號(hào)。由于單片機(jī)可以查詢或中斷方式訪問(wèn),在此采用中斷方式進(jìn)行CAN多通道選擇訪問(wèn),以滿足不同通信速率下數(shù)據(jù)處理的需要。SRAM的地址線與數(shù)據(jù)線是分開的,故采用74LS373鎖存器實(shí)現(xiàn)鎖存功能??刹捎肵C95144CPLD芯片以及VHDL硬件描述語(yǔ)言以實(shí)現(xiàn)鎖存、譯碼等功能。

   [!--empirenews.page--]2.3 CPLD設(shè)計(jì)部分

 

  2.3.1 結(jié)構(gòu)設(shè)計(jì)

  CPLD的輸入信號(hào)是單片機(jī)發(fā)送的信號(hào),由高位地址A[15..8]、ALE鎖存信號(hào)、中斷信號(hào)以及寫/讀信號(hào)組成。地址線A14和A15經(jīng)譯碼后作為片選信號(hào),ALE實(shí)現(xiàn)低8位地址線的鎖存。實(shí)體和構(gòu)造體部分代碼如下所示:

  

 

  2.3.2 仿真結(jié)果

  該模塊在Xilinx ISE 9.1工具下進(jìn)行綜合,并在結(jié)合ModelSim環(huán)境下進(jìn)行功能仿真。其仿真結(jié)果如圖3所示。

  

 

  3 軟件設(shè)計(jì)

  該系統(tǒng)軟件設(shè)計(jì)的關(guān)鍵是通信程序設(shè)計(jì)。通信軟件由三部分組成:?jiǎn)纹瑱C(jī)和CAN控制器的初始化程序、CAN發(fā)送程序、CAN接收程序。對(duì)于初始化程序,采用MAX232芯片對(duì)單片機(jī)進(jìn)行在線編程,可同時(shí)對(duì)多通道CAN控制器初始化。對(duì)于CAN控制器的初始化程序,主要是通過(guò)對(duì)CAN控制器控制段中的寄存器寫入控制字,從而確定CAN控制器的工作方式等,即通過(guò)上電復(fù)位、硬件復(fù)位或軟件復(fù)位給CAN控制器發(fā)一個(gè)復(fù)位請(qǐng)求,便可進(jìn)入初始化。在復(fù)位期間,對(duì)必需的寄存器進(jìn)行設(shè)置。對(duì)于發(fā)送和接受程序,只需把到來(lái)的信息幀送到CAN的發(fā)送或接受緩沖區(qū),同時(shí)啟動(dòng)命令即可。二者可采用查詢方式或中斷方式,對(duì)于中斷方式,程序分為主程序和中斷服務(wù)程序兩部分設(shè)計(jì)。在具體項(xiàng)目中,需要軟硬件結(jié)合調(diào)試才能保證各部分的設(shè)計(jì)準(zhǔn)確無(wú)誤,到達(dá)實(shí)際應(yīng)用的要求。

  4 結(jié) 語(yǔ)

  在對(duì)CAN通信協(xié)議進(jìn)行分析的基礎(chǔ)上,構(gòu)建了一種多通道實(shí)時(shí)CAN總線模擬器架構(gòu),同時(shí)利用CPLD器件,通過(guò)功能仿真,驗(yàn)證了設(shè)計(jì)方案的正確性。經(jīng)實(shí)際工程項(xiàng)目使用,驗(yàn)證了該設(shè)計(jì)方案切實(shí)可行,滿足了實(shí)際應(yīng)用中高可靠性、高實(shí)時(shí)性以及傳輸速率較高的需求。

本站聲明: 本文章由作者或相關(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日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(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)閉