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