一種基于dsPIC30F6014的CAN節(jié)點(diǎn)設(shè)計(jì)與實(shí)現(xiàn)
出處:微計(jì)算機(jī)信息 發(fā)布于:2011-07-02 21:07:43
引言
CAN是控制器局域網(wǎng)絡(luò)(Controller Area Network, CAN)的簡(jiǎn)稱,是由研發(fā)和生產(chǎn)汽車(chē)電子產(chǎn)品著稱的德國(guó)BOSCH公司開(kāi)發(fā)了的,并終成為國(guó)際標(biāo)準(zhǔn)(ISO118?8)。是國(guó)際上應(yīng)用廣泛的現(xiàn)場(chǎng)總線之一。 在北美和西歐,CAN總線協(xié)議已經(jīng)成為汽車(chē)計(jì)算機(jī)控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標(biāo)準(zhǔn)總線,并且擁有以CAN為底層協(xié)議專(zhuān)為大型貨車(chē)和重工機(jī)械車(chē)輛設(shè)計(jì)的J1939協(xié)議。近年來(lái),其所具有的高可靠性和良好的錯(cuò)誤檢測(cè)能力受到重視,被廣泛應(yīng)用于汽車(chē)計(jì)算機(jī)控制系統(tǒng)和環(huán)境溫度惡劣、電磁輻射強(qiáng)和振動(dòng)大的工業(yè)環(huán)境
新型16位dsPIC30F6014數(shù)字信號(hào)控制器結(jié)合單片機(jī)的控制優(yōu)點(diǎn)及數(shù)字信號(hào)處理器(DSP)的高速運(yùn)算特性,為嵌入式系統(tǒng)提供了單一芯片解決方案。
本篇論文以CAN協(xié)議為基礎(chǔ),結(jié)合dsPIC30F6014的突出性能,在設(shè)計(jì)通訊接口過(guò)程中,提出了基于dsPIC30F6014數(shù)字信號(hào)控制器的CAN節(jié)點(diǎn)設(shè)計(jì)方法。
1 dsPIC30F6014數(shù)字信號(hào)控制器與CAN總線
1.1 dsPIC30F6014數(shù)字信號(hào)控制器特點(diǎn)
dsPIC30F6014數(shù)字信號(hào)控制器(DSC)是單片嵌入式控制器,它集成了單片機(jī)(MCU)的控制功能以及數(shù)字信號(hào)處理器(DSP)的計(jì)算能力和數(shù)據(jù)吞吐能力,運(yùn)算速度可達(dá)20和30 MIPS,配備自編程閃存,并能在工業(yè)級(jí)溫度和擴(kuò)展級(jí)溫度范圍內(nèi)工作。CPU 擁有24 位指令字,指令字帶有長(zhǎng)度可變的操作碼字段。 程序計(jì)數(shù)器(PC)為24位寬,可以尋址高達(dá)4M × 24 位的用戶程序存儲(chǔ)器空間。 單周期指令預(yù)取機(jī)制用來(lái)幫助維持吞吐量并提供可預(yù)測(cè)的執(zhí)行。配備144K字節(jié)增強(qiáng)型閃存及8K字節(jié)靜態(tài)RAM,8K字節(jié)EEPROM,能支持大型的復(fù)雜應(yīng)用。dsPIC系列產(chǎn)品與現(xiàn)有嵌入式系統(tǒng)不同,系統(tǒng)集成了振蕩器,低電壓檢測(cè),看門(mén)狗定時(shí)器,產(chǎn)品無(wú)需使用額外的元件,可降低主板面積和系統(tǒng)成本,為嵌入式系統(tǒng)提供了單一芯片解決方案。此外還具備一系列片上功能,包括I/O端口、定時(shí)器、輸入捕捉、輸出比較、UART、12位A/D轉(zhuǎn)換器、SPI接口、I2C接口及CAN通信等模塊。結(jié)構(gòu)圖如圖1所示:

這些特性使之成為需要更高度、更快轉(zhuǎn)速或無(wú)傳感器控制的電機(jī)控制應(yīng)用領(lǐng)域如非傳感無(wú)刷直流電機(jī)、磁阻轉(zhuǎn)換和感應(yīng)電機(jī)的理想解決方案,另外還可以應(yīng)用于因特網(wǎng)接入設(shè)備和汽車(chē)產(chǎn)品;生物特徵檢測(cè)保護(hù)--如指紋識(shí)別;不間斷電源、電源管理和話音開(kāi)關(guān)(話音識(shí)別系統(tǒng))等領(lǐng)域。
1.2 CAN總線的優(yōu)點(diǎn)
● 具有實(shí)時(shí)性強(qiáng)、傳輸距離較遠(yuǎn)、抗電磁干擾能力強(qiáng)、成本低等優(yōu)點(diǎn);
● 采用雙線串行通信方式,檢錯(cuò)能力強(qiáng),可在高噪聲干擾環(huán)境中工作;
● 具有優(yōu)先權(quán)和仲裁功能,多個(gè)控制模塊通過(guò)CAN 控制器掛到CAN-bus 上,形成多主機(jī)局部網(wǎng)絡(luò);
● 可根據(jù)報(bào)文的ID決定接收或屏蔽該報(bào)文;
● 可靠的錯(cuò)誤處理和檢錯(cuò)機(jī)制;
● 發(fā)送的信息遭到破壞后,可自動(dòng)重發(fā);
● 節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)退出總線的功能;
● 報(bào)文不包含源地址或目標(biāo)地址,僅用標(biāo)志符來(lái)指示功能信息、優(yōu)先級(jí)信息。
1.3 CAN總線技術(shù)特點(diǎn)
CAN總線是德國(guó)BOSCH公司從80年代初為解決現(xiàn)代汽車(chē)中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開(kāi)發(fā)的一種串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。通信速率可達(dá)1MBPS。具體來(lái)說(shuō),CAN具有如下特性:
?。?) CAN可以多主方式工作,網(wǎng)絡(luò)上任意一個(gè)節(jié)點(diǎn)均可以在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息,而不分主從,通信方式靈活;
?。?) CAN可以點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn)(成組)及全局廣播方式傳送接收數(shù)據(jù);
?。?) CAN網(wǎng)絡(luò)上的節(jié)點(diǎn)信息可分成不同的優(yōu)先級(jí),可以滿足不同的實(shí)時(shí)要求;
(4) CAN采用非破壞性總線仲載技術(shù)。當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)向網(wǎng)絡(luò)上發(fā)送數(shù)據(jù)時(shí),優(yōu)先級(jí)低的點(diǎn)主動(dòng)停止數(shù)據(jù)發(fā)送,而優(yōu)先級(jí)高的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù),大大地節(jié)省了總線仲載沖突時(shí)間,在網(wǎng)絡(luò)負(fù)載很重的情況下也不會(huì)出現(xiàn)網(wǎng)絡(luò)癱瘓;
?。?) CAN的直接通信距離可達(dá)10km(速率小于5kbps),通信速率可達(dá)1Mkbps(此時(shí)距離長(zhǎng)為40m)。
1.4 CAN總線可靠性
為防止汽車(chē)在使用壽命期內(nèi)由于數(shù)據(jù)交換錯(cuò)誤而對(duì)司機(jī)造成危險(xiǎn),汽車(chē)的安全系統(tǒng)要求數(shù)據(jù)傳輸具有較高的安全性。如果數(shù)據(jù)傳輸?shù)目煽啃宰銐蚋?或者殘留下來(lái)的數(shù)據(jù)錯(cuò)誤足夠低的話,這一目標(biāo)不難實(shí)現(xiàn)。從總線系統(tǒng)數(shù)據(jù)的角度看,可靠性可以理解為,對(duì)傳輸過(guò)程產(chǎn)生的數(shù)據(jù)錯(cuò)誤的識(shí)別能力。
殘余數(shù)據(jù)錯(cuò)誤的概率可以通過(guò)對(duì)數(shù)據(jù)傳輸可靠性的統(tǒng)計(jì)測(cè)量獲得。它描述了傳送數(shù)據(jù)被破壞和這種破壞不能被探測(cè)出來(lái)的概率。殘余數(shù)據(jù)錯(cuò)誤概率必須非常小,使其在系統(tǒng)整個(gè)壽命周期內(nèi),按平均統(tǒng)計(jì)時(shí)幾乎檢測(cè)不到。計(jì)算殘余錯(cuò)誤概率要求能夠?qū)?shù)據(jù)錯(cuò)誤進(jìn)行分類(lèi) ,并且數(shù)據(jù)傳輸路徑可由一模型描述。如果要確定CAN的殘余錯(cuò)誤概率,我們可將殘留錯(cuò)誤的概率作為具有80~90位的報(bào)文傳送時(shí)位錯(cuò)誤概率的函數(shù),并假定這個(gè)系統(tǒng)中有5~10個(gè)站,并且錯(cuò)誤率為1/1000,那么位錯(cuò)誤概率為10—13數(shù)量級(jí)。例如,CAN網(wǎng)絡(luò)的數(shù)據(jù)傳輸率為1Mbps,如果數(shù)據(jù)傳輸能力僅使用50%,那么對(duì)于一個(gè)工作壽命4000小時(shí)、平均報(bào)文長(zhǎng)度為 80位的系統(tǒng),所傳送的數(shù)據(jù)總量為9×1010。在系統(tǒng)運(yùn)行壽命期內(nèi),不可檢測(cè)的傳輸錯(cuò)誤的統(tǒng)計(jì)平均小于10—2量級(jí)。換句話說(shuō),一個(gè)系統(tǒng)按每年365天,每天工作8小時(shí),每秒錯(cuò)誤率為0. 7計(jì)算,那么按統(tǒng)計(jì)平均,每1000年才會(huì)發(fā)生一個(gè)不可檢測(cè)的錯(cuò)誤。
2 CAN節(jié)點(diǎn)設(shè)計(jì)
2.1 CAN節(jié)點(diǎn)硬件設(shè)計(jì)
圖2所示為CAN總線網(wǎng)絡(luò)示例。圖中給出了三種CAN網(wǎng)絡(luò)實(shí)現(xiàn)方式:微控制器+CAN控制器+CAN收發(fā)器;集成CAN控制器的微控制器+CAN收發(fā)器;CAN的串行I/O器件+CAN收發(fā)器。其中節(jié)點(diǎn)1由MICROCHIP公司的dsPIC30F6014集成CAN控制器+MCP2551CAN收發(fā)器構(gòu)成;節(jié)點(diǎn)2由MICROCHIP公司的PIC單片機(jī)+SPI接口的MCP2550串行CAN控制器+MCP2551CAN收發(fā)器構(gòu)成;PC機(jī)的CAN節(jié)點(diǎn)由Philips公司的SJA1000CAN控制器+PCA82C250CAN收發(fā)器構(gòu)成。本文的研究和試驗(yàn)結(jié)果就是在這一網(wǎng)絡(luò)框架下完成的。

顯然dsPIC30F6014只需加上CAN總線收發(fā)電路就可掛接到CAN通信網(wǎng)絡(luò)上,大大簡(jiǎn)化了通信系統(tǒng)的設(shè)計(jì),同時(shí)可減少通信節(jié)點(diǎn)受到干擾的概率。CAN模塊通過(guò)CAN控制器接口芯片MCP2551連接到物理總線上。MCP2551是一個(gè)可容錯(cuò)的高速CAN器件,可作為CAN協(xié)議控制器和物理總線接口。MCP2551 可為CAN 協(xié)議控制器提供差分收發(fā)能力,它完全符合ISO-11898標(biāo)準(zhǔn),包括能滿足24V 電壓要求。它的工作速率高達(dá)1 Mb/s。
2.2 CAN節(jié)點(diǎn)軟件設(shè)計(jì)
CAN總線的3層結(jié)構(gòu)模型為: 物理層、數(shù)據(jù)鏈路層和應(yīng)用層。系統(tǒng)的開(kāi)發(fā)主要在應(yīng)用層軟件的設(shè)計(jì)上,CAN總線節(jié)點(diǎn)的軟件設(shè)計(jì)主要包括三大部分:CAN節(jié)點(diǎn)初始化、報(bào)文發(fā)送和報(bào)文接收。初始化程序設(shè)計(jì)對(duì)于CAN總線節(jié)點(diǎn)的正常工作相當(dāng)重要。它主要包括工作方式的設(shè)置、接收屏蔽寄存器和接收代碼寄存器的設(shè)置、總線定時(shí)器的設(shè)置和中斷允許寄存器的設(shè)置。MICROCHIP公司提為開(kāi)發(fā)者提供了豐富的開(kāi)發(fā)工具和應(yīng)用程序庫(kù),使得開(kāi)發(fā)代碼效率大大提高。由于CAN 協(xié)議沒(méi)有規(guī)定信息標(biāo)識(shí)符的分配,因此可以根據(jù)不同應(yīng)用使用不同的方法,所以在設(shè)計(jì)一個(gè)基于CAN 的通訊系統(tǒng)時(shí)確定CAN 標(biāo)識(shí)符的分配非常重要。標(biāo)識(shí)符的分配和定位也是較高層解決手段的其中一個(gè)主要的項(xiàng)目。當(dāng)前較流行的CAN應(yīng)用層協(xié)議有 CANOpen協(xié)議DeviceNet協(xié)議。DeviceNet協(xié)議適合于工廠自動(dòng)化控制,CANOpen協(xié)議適合于所有機(jī)械的嵌入式網(wǎng)絡(luò)。對(duì)于小型網(wǎng)絡(luò)(圖2所示)Modbus 協(xié)議是一個(gè)不錯(cuò)的解決發(fā)案。Modbus 協(xié)議是應(yīng)用于電子控制器上的一種通用語(yǔ)言,通過(guò)此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。它已經(jīng)成為一個(gè)通用工業(yè)標(biāo)準(zhǔn)。有了它不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò)進(jìn)行集中監(jiān)控。 Modbus 協(xié)議支持主/從通訊方式同時(shí)也支持使用對(duì)等技術(shù)通訊。因此Modbus協(xié)議不僅能夠支持RS232、RS485 網(wǎng)絡(luò)也能夠充分發(fā)揮CAN-bus 網(wǎng)絡(luò)的性能與通訊效率。
3 系統(tǒng)應(yīng)用中應(yīng)注意的問(wèn)題
在實(shí)際運(yùn)行中, 經(jīng)常會(huì)遇到CAN總線不通和數(shù)據(jù)傳輸過(guò)程中丟幀現(xiàn)象,糾其原因主要有以下幾方面:
?。?)為了進(jìn)一步提高抗干擾措施, 在CAN控制器和收發(fā)器之間應(yīng)使用由高速隔離器件如6N137 構(gòu)成的隔離電路,同時(shí)采用DC-DC模塊將電源隔離,增強(qiáng)抗電磁干擾能力,保護(hù)系統(tǒng)電路不受網(wǎng)絡(luò)影響。
(2) 總線兩端的2個(gè)120歐姆的電阻, 對(duì)于匹配總線阻抗, 起著相當(dāng)重要的作用。若忽略掉它們,會(huì)使數(shù)據(jù)通信的抗干擾性及可靠性大大降低, 甚至無(wú)法通訊。
?。?) 在軟件設(shè)計(jì)時(shí), CAN 總線定時(shí)器的設(shè)置非常關(guān)鍵, CAN 總線上的所有控制器必須有相同的波特率和位長(zhǎng)度。如果各個(gè)控制器的時(shí)鐘頻率不同,必須通過(guò)調(diào)節(jié)各個(gè)段的時(shí)間份額數(shù)調(diào)節(jié)波特率。下面是時(shí)間段編程的一些要求:
傳播段+ 相位緩沖段1> = 相位緩沖段2
相位緩沖段2 > 同步跳轉(zhuǎn)寬度
通常,位的采樣應(yīng)當(dāng)發(fā)生在位時(shí)間的60-70% 左右,取決于系統(tǒng)參數(shù)。
結(jié)語(yǔ)
本文的創(chuàng)新觀點(diǎn)在于:詳細(xì)介紹了dsPIC30F6014數(shù)字信號(hào)控制器CAN節(jié)點(diǎn)實(shí)現(xiàn)方案。研究和試驗(yàn)結(jié)果表明利用dsPIC30F6014數(shù)字信號(hào)控制器構(gòu)成的CAN節(jié)點(diǎn)具有許多優(yōu)良的性能,并能充分發(fā)揮節(jié)點(diǎn)的功能,為嵌入式系統(tǒng)CAN節(jié)點(diǎn)設(shè)計(jì)提供了一種新型實(shí)用方案。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 掌握 DSP:原理剖析與應(yīng)用實(shí)踐2025/5/8 14:03:24
- 模糊邏輯在 DSP 上實(shí)時(shí)執(zhí)行2023/7/25 17:13:30
- 多速率DSP及其在數(shù)模轉(zhuǎn)換中的應(yīng)用2023/6/12 15:28:52
- 使用 DSP 加速 CORDIC 算法2023/3/29 15:46:30
- 高速DSP系統(tǒng)的信號(hào)完整性2022/9/26 16:45:38
- 編碼器的工作原理及作用1
- 超強(qiáng)整理!PCB設(shè)計(jì)之電流與線寬的關(guān)系2
- 三星(SAMSUNG)貼片電容規(guī)格對(duì)照表3
- 電腦藍(lán)屏代碼大全4
- 國(guó)標(biāo)委發(fā)布《電動(dòng)汽車(chē)安全要求第3部分:人員觸電防護(hù)》第1號(hào)修改單5
- 通俗易懂談上拉電阻與下拉電阻6
- 繼電器的工作原理以及驅(qū)動(dòng)電路7
- 電容單位8
- 跟我學(xué)51單片機(jī)(三):?jiǎn)纹瑱C(jī)串口通信實(shí)例9
- 一種三極管開(kāi)關(guān)電路設(shè)計(jì)10
- PCB測(cè)試點(diǎn)設(shè)計(jì)核心規(guī)范
- 高速連接器串?dāng)_問(wèn)題及解決方案
- 電源電路啟動(dòng)異常原因分析
- 降低DC-DC噪聲的PCB設(shè)計(jì)方法
- MOSFET在電池保護(hù)電路中的作用
- PCBDFM可制造性設(shè)計(jì)核心指南
- 二極管的種類(lèi)及主要應(yīng)用場(chǎng)景
- 信號(hào)處理經(jīng)典問(wèn)題:如何設(shè)計(jì)和實(shí)現(xiàn)自適應(yīng)濾波器?
- 連接器安裝與維護(hù)注意事項(xiàng)
- 電源IC調(diào)試過(guò)程中常見(jiàn)問(wèn)題









