王濤++張封

摘要:CAN總線是一種很有前途的現(xiàn)場(chǎng)總線,CAN總線通信相對(duì)于一般的串行通信總線,它的實(shí)時(shí)性、可靠性和靈活性的特點(diǎn)更加突出。CAN總線技術(shù)在工業(yè)控制、車載、輪船、紡織以及智能家居系統(tǒng)中得到廣泛的應(yīng)用。本文的目的就是對(duì)CAN總線技術(shù)進(jìn)行研究,并且利用低功耗、高性能的ARM微處理器設(shè)計(jì)一個(gè)主從式通信系統(tǒng),實(shí)現(xiàn)CAN總線報(bào)文傳輸。
關(guān)鍵詞:CAN總線技術(shù) ARM微處理器 主從式通信系統(tǒng) 報(bào)文傳輸
中圖分類號(hào):TP273.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)10-0104-01
CAN總線是由德國 BOSCH公司為實(shí)現(xiàn)汽車測(cè)量和執(zhí)行部件之間的數(shù)據(jù)通信而設(shè)計(jì)的一種現(xiàn)場(chǎng)總線,是一種支持分布式控制及實(shí)時(shí)控制的串行通信網(wǎng)絡(luò),CAN總線規(guī)范已成為國際標(biāo)準(zhǔn)。滿足對(duì)系統(tǒng)可靠性和靈活性要求較高的工業(yè)控制系統(tǒng)。發(fā)展主要表現(xiàn)為控制面向系統(tǒng)分散化和多元化,分散式工業(yè)控制為了適應(yīng)這種要求得到了快速的發(fā)展,本文就CAN總線技術(shù)進(jìn)行研究,并且設(shè)計(jì)實(shí)現(xiàn)了CAN總線在主從機(jī)之間的通信。
1 主從通信系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
STM32F103的CAN接口兼容規(guī)范2.0A和2.0B(主動(dòng)),位速率高達(dá)1兆位/秒。它可以接收和發(fā)送11位標(biāo)識(shí)符的標(biāo)準(zhǔn)幀,也可以接收和發(fā)送29位標(biāo)識(shí)符的擴(kuò)展幀。具有3個(gè)發(fā)送郵箱和2個(gè)接收FIFO,3級(jí)14個(gè)可調(diào)節(jié)的濾波器。適用于大數(shù)據(jù)量短距離通信或者長距離小數(shù)據(jù)量,實(shí)時(shí)性要求比較高,多主多從或者各個(gè)節(jié)點(diǎn)平等的現(xiàn)場(chǎng)中使用[3]。
利用CAN控制器把要發(fā)送的報(bào)文通過CAN_Tx線發(fā)送到CAN收發(fā)器,然后由收發(fā)器把這個(gè)邏輯電平信號(hào)轉(zhuǎn)化為差分信號(hào),通過差分線CAN_High和CAN_Low線輸出到CAN總線網(wǎng)絡(luò)。在接受數(shù)據(jù)時(shí),這個(gè)過程相反。基于CAN總線的主從通信系統(tǒng)的結(jié)構(gòu)框圖如1所示。
2 主從通信系統(tǒng)軟件設(shè)計(jì)
CAN的中斷由發(fā)送中斷、接收FIFO中斷、錯(cuò)誤中斷,接收FIFO中斷分為FIFO0和FIFO1的中斷,本實(shí)驗(yàn)中使用的RX0中斷通道即為FIFO0中斷通道,當(dāng)FIFO0S收到新報(bào)文時(shí)引起中斷,我們就在相應(yīng)的中斷服務(wù)函數(shù)讀取這個(gè)新報(bào)文。程序執(zhí)行流程:主機(jī)開始啟動(dòng),初始化主機(jī)系統(tǒng)并且打包報(bào)文并且發(fā)送到CAN網(wǎng)絡(luò),判斷是否接收到報(bào)文,如果是的話打印接收到的報(bào)文,主機(jī)結(jié)束,初始化從機(jī)設(shè)備判斷是否接收到報(bào)文,然后把接收到的報(bào)文通過串口打印,打開報(bào)文并且發(fā)送到CAN網(wǎng)絡(luò)。
3 系統(tǒng)調(diào)試結(jié)果
主機(jī)開始啟動(dòng),初始化主機(jī)系統(tǒng)并且打包報(bào)文內(nèi)容:擴(kuò)展ID號(hào)ExtId:0x1314數(shù)據(jù)段的內(nèi)容為Data[0]=0xab,Data[1]= 0xcd并且發(fā)送到CAN網(wǎng)絡(luò),判斷是否接收到報(bào)文,如果是的話打印接收到的報(bào)文,主機(jī)結(jié)束,初始化從機(jī)設(shè)備判斷是否接收到報(bào)文,然后把接收到的報(bào)文通過串口打印,打開報(bào)文內(nèi)容:擴(kuò)展ID號(hào)ExtId:0x131數(shù)據(jù)段的內(nèi)容為Data[0]=0xdc,Data[1]=0xba并且發(fā)送到CAN網(wǎng)絡(luò)。從超級(jí)終端上可以顯示通信的結(jié)果如圖2所示。
4 結(jié)語
基于CAN總線技術(shù)的主從式通信系統(tǒng)具有很廣泛的應(yīng)用需求,利用RX和TX電路與各模塊組通信,數(shù)據(jù)傳遞快,而且便于調(diào)整延時(shí),數(shù)據(jù)通路單元清晰可見,采用時(shí)序分析設(shè)備可以直接對(duì)路徑進(jìn)行約束,節(jié)省了開發(fā)成本,降低了后端設(shè)計(jì)的復(fù)雜度和成本。CAN總線技術(shù)在工業(yè)控制、車載、輪船、紡織以及智能家居系統(tǒng)中得到廣泛的應(yīng)用。
參考文獻(xiàn)
[1]陸前鋒.肝CAN控制器SJA1000的智能高速控制系統(tǒng)設(shè)計(jì)[M].電子設(shè)計(jì)應(yīng)用,2003: 4-5.
[2]張培仁,孫力.基于C語言C8051F系列微控制器原理與應(yīng)用[M]北京:清華大學(xué)出版社,2007.65-66.
[3]王黎明,夏立,邵英.CAN現(xiàn)場(chǎng)總線系統(tǒng)的設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2008(16):104-105.
收稿日期:2016-09-01
作者簡介:王濤(1988—),男,河南周口人,在讀研究生,研究方向:控制工程。