基于Freescale16位DSP的CAN總線通信
CAN (Controller Area Network)即控制器局域網(wǎng),是德國BOSCH 公司在20世界80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議。CAN 總線卓越的特性、極高的可靠性和獨特的設(shè)計,特別適合工業(yè)過程監(jiān)控設(shè)備的互聯(lián),因此受到工業(yè)界的重視,其應(yīng)用范圍已經(jīng)遍及工業(yè)控制自動化、汽車自動化、機械工業(yè)、樓宇自動化等非常廣泛的場合,成為最有前途的現(xiàn)場總線之一。
1 CAN總線的特點
CAN (Controller Area Network)總線是一種多主站控制器局域網(wǎng)總線.CAN 總線與一般的通信總線相比,具有獨特的設(shè)計思想,良好的功能特性,極高的可靠性、實時性和靈活性,突出的現(xiàn)場抗干擾能力。
其特點可主要有:⑴ 通信方式靈活,為多主方式工作。⑵ 網(wǎng)絡(luò)上的節(jié)點信息分成不同的優(yōu)先級,可滿足不同的實時要求。⑶ 只需通過報文濾波即可實現(xiàn)點對點、一點對多點及全局廣播等幾種方式發(fā)送接收數(shù)據(jù),無需專門的“調(diào)度”。⑷ 采用非破壞性總線仲裁技術(shù)。⑸ CAN通信格式采用短幀格式,每幀字節(jié)數(shù)最多為8個。⑹ 直接通信距離最遠可達10 km(速率5 kb/s以下);通信速率最高可達1 Mb/s(此時通信距離最長為40 m)。⑺ 網(wǎng)絡(luò)上的節(jié)點數(shù)主要取決于總線驅(qū)動電路,可達110個,報文標(biāo)識符可達2032種(CAN2.0A)。而擴展格式(CAN2.0B)的報文標(biāo)識符幾乎不受限制。⑻ CAN 總線通信接口中集成了CAN 協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢查、優(yōu)先級判別等項工作。⑼ CAN 的每幀信息都有CRC校驗及其他檢錯措施,并可提供相應(yīng)的錯誤處理功能,保證了數(shù)據(jù)通信的可靠性。⑽ 通信介質(zhì)可為雙絞線、同軸電纜或光纖。⑾ 通信節(jié)點在錯誤嚴(yán)重的情況下具有自動關(guān)閉輸出功能,以使總線上其他節(jié)點操作不受影響。
一個有效的數(shù)據(jù)幀由幀起始、仲裁場、控制場、數(shù)據(jù)場、校驗場、應(yīng)答場和幀結(jié)束組成。CAN2.OB協(xié)議規(guī)定的兩種不同的幀格式,即標(biāo)準(zhǔn)格式和擴展格式,它們的主要區(qū)別在于仲裁場格式不同,標(biāo)準(zhǔn)幀的仲裁場由11位標(biāo)識符和遠程發(fā)送請求位RTR組成。擴展幀的仲裁場由29位標(biāo)識符和替代遠程請求SRR位、標(biāo)志位和遠程發(fā)送請求位RTR組成。如圖1所示。
2 控制器的CAN模塊通信
圖1 CAN數(shù)據(jù)幀結(jié)構(gòu)
DSP56F807芯片本身帶有的CAN 控制模塊MSCAN(Motorola Scalable Controller Area Network)是一個完全的CAN控制器,完全支持CAN2.OA/B協(xié)議。
MSCAN模塊主要由時鐘單元,發(fā)送緩沖區(qū)、接受緩沖區(qū)、接受過濾控制組成。CAN控制器必須通過CAN驅(qū)動芯片才能與CAN 總線相連,DSP56F807芯片的EVM 板上內(nèi)置驅(qū)動芯片PCA82C250。本文使用兩臺PC機和兩塊DSP56F807EVM板完成了一個簡單的MSCAN通信測試程序,一塊EVM板把AD采集來的數(shù)據(jù)通過CAN總線發(fā)送出去,另一塊EVM板完成數(shù)據(jù)的接收。圖2為硬件連接總體結(jié)構(gòu)圖。
2.1 初始化MSCAN
Processor Expert(簡稱PE)是由捷克的UNIS公司開發(fā)的針對Freescale單片機和DSP的嵌入式軟件開發(fā)包, 它集成在CodeWarrior7.0開發(fā)軟件中。Processor Expert是在SDK的基礎(chǔ)上發(fā)展起來的,它提供了各種類型的Bean。PE采用面向?qū)ο蟮挠脩艚涌冢脩敉ㄟ^Bean庫的選擇窗口來選擇并添加工程所需要的Bean,然后對這些Bean的屬性進行設(shè)置、對方法和事件進行代碼編輯。在設(shè)置好Bean以后,還要編寫主程序來組織這些Bean從而完成自己的工程。
在工程中加入Init_MSCAN Bean,打開Bean屬性設(shè)置窗口,如圖3。在完成屬性設(shè)置后,PE會自動生成CAN1_Init()函數(shù),里面包含了MSCAN模塊控制寄存器的初始化設(shè)置。
void CAN1_Init(void)
{
setRegBit(CANCTL0, SFTRES);
......
setReg16(CANBTR0, 9);
setReg16(CANBTR1, 35);
setReg16(CANCTL1, 128);
clrRegBit(CANCTL0, SFTRES);
setReg16(CANRIER, 0);
setReg16(CANTCR, 0);
setReg16(CANCTL0, 0);
}
2.2 MSCAN發(fā)送程序
MSCAN模塊具有三發(fā)送緩沖器結(jié)構(gòu),這樣的發(fā)送結(jié)構(gòu)允許預(yù)先安排多個等待發(fā)送的信息,可獲得最優(yōu)化的實時性能。每個發(fā)送緩沖器帶有一個優(yōu)先級寄存器(TBPR),用戶可以通過編程確定信息發(fā)送的順序。
CPU通過一組發(fā)送緩沖器空標(biāo)志位(TXE [2:0]),確認(rèn)有效的發(fā)送緩沖器,當(dāng)標(biāo)志位為1時,CPU將標(biāo)識符、控制位和數(shù)據(jù)內(nèi)容存儲到發(fā)送緩沖器中,并將該標(biāo)志位清零。當(dāng)標(biāo)志位再次置為1時,說明緩沖器成功地發(fā)送了信息,并產(chǎn)生發(fā)送中斷,重裝發(fā)送緩沖器。圖4為CAN總線發(fā)送程序流程圖。
2.3 MSCAN接受程序
MSCAN具有雙緩沖器的接收結(jié)構(gòu),兩個緩沖器輪流映射到一個存儲器區(qū)域。后臺的接收緩沖器(RxBG)單獨地與MSCAN相聯(lián)系,而CPU只能訪問前臺的接收緩沖器(RxFG),這一結(jié)構(gòu)簡化了軟件的處理過程。
當(dāng)MSCAN控制器接收信息時,先將要接收的信息的標(biāo)識符與接收緩沖器的標(biāo)識符進行比較,只有標(biāo)識符相同的信息才能被接收。MSCAN控制器的接收濾波器使得接收緩沖器可以忽略更多的位來接收信息,即如果只有被屏蔽的那幾位標(biāo)識符不相符,則接收緩沖器仍能接收此信息,此程序為測試程序,忽略了標(biāo)識符的過濾,只要有數(shù)據(jù)就接收。這里用了一個Printf 語句來顯示接收數(shù)據(jù)處理后的電壓值,用以和實際電壓值相比較。圖5為數(shù)據(jù)接收程序流程圖。
3 試驗結(jié)果
在PC機上分別運行發(fā)送和接收程序,通過不斷調(diào)節(jié)電位器,可以看到兩塊EVM板的測試等以同樣的順序點亮或熄滅。同時,在接收程序端,PC機顯示出隨電位器電壓變化而變化的電壓數(shù)據(jù)。CAN總線接收數(shù)據(jù)顯示如圖4。
4 結(jié)論
本文將CAN總線通信應(yīng)用在實際的步進電機伺服控制系統(tǒng)中,上位機采用個人PC機,使用三純科技有限公司的總線通信卡SC2102,下位機采用Motorola公司的嵌入式控制器DSP56F807,采用CAN總線完成上位機與下位機之間的通信任務(wù),傳輸速率可高達1 Mb/s,可以達到系統(tǒng)對于實時性的要求,同時也能達到系統(tǒng)對于穩(wěn)定性的要求。

責(zé)任編輯:售電衡衡
- 相關(guān)閱讀
- 泛在電力物聯(lián)網(wǎng)
- 電動汽車
- 儲能技術(shù)
- 智能電網(wǎng)
- 電力通信
- 電力軟件
- 高壓技術(shù)
-
權(quán)威發(fā)布 | 新能源汽車產(chǎn)業(yè)頂層設(shè)計落地:鼓勵“光儲充放”,有序推進氫燃料供給體系建設(shè)
2020-11-03新能源,汽車,產(chǎn)業(yè),設(shè)計 -
中國自主研制的“人造太陽”重力支撐設(shè)備正式啟運
2020-09-14核聚變,ITER,核電 -
探索 | 既耗能又可供能的數(shù)據(jù)中心 打造融合型綜合能源系統(tǒng)
2020-06-16綜合能源服務(wù),新能源消納,能源互聯(lián)網(wǎng)
-
新基建助推 數(shù)據(jù)中心建設(shè)將迎爆發(fā)期
2020-06-16數(shù)據(jù)中心,能源互聯(lián)網(wǎng),電力新基建 -
泛在電力物聯(lián)網(wǎng)建設(shè)下看電網(wǎng)企業(yè)數(shù)據(jù)變現(xiàn)之路
2019-11-12泛在電力物聯(lián)網(wǎng) -
泛在電力物聯(lián)網(wǎng)建設(shè)典型實踐案例
2019-10-15泛在電力物聯(lián)網(wǎng)案例
-
新基建之充電樁“火”了 想進這個行業(yè)要“心里有底”
2020-06-16充電樁,充電基礎(chǔ)設(shè)施,電力新基建 -
燃料電池汽車駛?cè)雽こ0傩占疫€要多久?
-
備戰(zhàn)全面電動化 多部委及央企“定調(diào)”充電樁配套節(jié)奏
-
權(quán)威發(fā)布 | 新能源汽車產(chǎn)業(yè)頂層設(shè)計落地:鼓勵“光儲充放”,有序推進氫燃料供給體系建設(shè)
2020-11-03新能源,汽車,產(chǎn)業(yè),設(shè)計 -
中國自主研制的“人造太陽”重力支撐設(shè)備正式啟運
2020-09-14核聚變,ITER,核電 -
能源革命和電改政策紅利將長期助力儲能行業(yè)發(fā)展
-
探索 | 既耗能又可供能的數(shù)據(jù)中心 打造融合型綜合能源系統(tǒng)
2020-06-16綜合能源服務(wù),新能源消納,能源互聯(lián)網(wǎng) -
5G新基建助力智能電網(wǎng)發(fā)展
2020-06-125G,智能電網(wǎng),配電網(wǎng) -
從智能電網(wǎng)到智能城市