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