基于dsPIC30F6011單片機(jī)的CAN總線擴(kuò)展技術(shù)
2 網(wǎng)關(guān)的硬件設(shè)計
硬件電路開發(fā)采用集成電路,開發(fā)周期短,成本低。CPU采用Microchip公司的16位單片機(jī)dsPIC30F6011作為核心部件,其內(nèi)部集成了兩個CAN控制器,支持CAN 2.0A/B協(xié)議,CPU的速度可以達(dá)到30 MIPS,程序存儲器空間有132 KB,內(nèi)部RAM有6 144 B,數(shù)據(jù)程序存儲器有2 048 B,集成的功能強(qiáng)大,體積小,性價比比較高。物理層采用兩個CAN驅(qū)動器PCA82C250。其中一組的PCA82C250的RXD,TXD引腳不是和CPUdsPIC30F6011直接連接,而在中間用光速光藕6N137隔離。
單片機(jī)dsPIC30F6011有兩個通用的UART口,可以作為和PC機(jī)或其他上位機(jī)通信的接口來用。另外,dsPIC30F6011采用TQPF封裝64引腳,利用通用I/O驅(qū)動LED燈作為指示燈,預(yù)留并行液晶顯示器和 4×4行列式鍵盤的接口。
CAN控制器和驅(qū)動器部分采用了光電隔離器,因此電源設(shè)計部分要求有兩個隔離的5 V電源??紤]到可以會用到液晶顯示器,因此一路電源設(shè)計采用輸出容量1 A的開關(guān)電源LM9076,而另外一路采用隔離DC/DC模塊電源。這樣CAN子網(wǎng)之間實現(xiàn)了電氣隔離,如果一個網(wǎng)絡(luò)出了問題并不影響另外一個網(wǎng)絡(luò)的正常工作,提高了CAN網(wǎng)絡(luò)的抗干擾性能。硬件電路設(shè)計外圍電路少、設(shè)計簡單、成本低。設(shè)計的CAN網(wǎng)關(guān)硬件設(shè)計系統(tǒng)框圖如圖3所示。
3 網(wǎng)關(guān)的軟件設(shè)計
CAN網(wǎng)關(guān)作為消息的轉(zhuǎn)發(fā)器,要準(zhǔn)確、實時地接收兩個CAN發(fā)送的信息,并且要實時發(fā)出去。對于不斷發(fā)出信息的問題節(jié)點要及時屏蔽,避免錯誤信息蔓延到另一個CAN網(wǎng)絡(luò)。如果CAN網(wǎng)關(guān)被設(shè)置成透明網(wǎng)關(guān)則直接把一個CAN網(wǎng)絡(luò)的信息轉(zhuǎn)發(fā)到另外一個網(wǎng)絡(luò)中即可,如果CAN網(wǎng)關(guān)被設(shè)置成和某個區(qū)間ID相關(guān),則要做一些信息過濾和屏蔽處理。當(dāng)CAN網(wǎng)關(guān)檢測到總線有錯誤時,要通過備用的UART口將錯誤信息上發(fā)到上位機(jī)或其他信息處理主機(jī)。
評論