PIC18單片機的RS-485/CAN智能轉(zhuǎn)換器的設(shè)計
在轉(zhuǎn)換器中所需電源均為+5 V 的直流電源,共需要3個獨立的+5 V電源,分別為MCU 的電源VCC1,CAN接口芯片一側(cè)所用電源VCC2。RS-485接口芯片一側(cè)所用電源VCC3。因此可以考慮使用1個輸入3個輸出的DC/DC模塊,實際當(dāng)中沒有找到現(xiàn)成的3輸出的DC/DC模塊。因此設(shè)計中采用金升陽公司的B系列和D系列的DC/DC 模塊, 一輸入兩輸出的D050505N-1 W ,再加上一個單輸出的B0505D-1 W。DC/DC兩側(cè)的電感和電容構(gòu)成濾波和穩(wěn)壓電路,其大小值均為典型值。最后構(gòu)成如下圖所示的轉(zhuǎn)換器的電源模塊。
另外,3組電源不能共地。GND1,GND2,GND3必須相互獨立。否則光耦不能起到隔離的作用。本文引用地址:http://www.ex-cimer.com/article/173363.htm
2.2 軟件設(shè)計
軟件設(shè)計通過Microchip的開發(fā)工具Mplab用匯編語言編制,主要包括初始化程序,CAN接收中斷服務(wù)程序,USART接收中斷服務(wù)程序,主程序。應(yīng)用層通信協(xié)議轉(zhuǎn)換程序等。
初始化程序用于設(shè)置CAN模塊的通信波特率,工作方式,接收郵箱和發(fā)送郵箱,對應(yīng)的接收過濾器和接收屏蔽器,以及發(fā)送的優(yōu)先級等。其流程圖如圖5所示。
圖5 初始化程序
CAN接收中斷服務(wù)程序主要用來接收CAN 總線傳輸過來的數(shù)據(jù)幀,并進行幀校驗,如果出錯則要求重發(fā),若數(shù)據(jù)幀正確接收,則將完整的數(shù)據(jù)幀存入到提前開辟的環(huán)形緩沖器中,為后面的數(shù)據(jù)處理和協(xié)議轉(zhuǎn)換做好準(zhǔn)備。其流程簡圖如圖6所示。
圖6 CAN接收中斷服務(wù)程序
USART接收中斷服務(wù)程序主要用于接收來自RS-485總線的串行數(shù)據(jù)。并將完整的數(shù)據(jù)幀傳送到另外一個環(huán)形緩沖器。其流程圖和設(shè)計思想與CAN 接收中斷程序類似,不再例舉。
協(xié)議轉(zhuǎn)換程序需要參照現(xiàn)場RS-485系統(tǒng)原有的協(xié)議,然后由用戶通過配套軟件對通信幀的格式進行相應(yīng)的設(shè)置。進行配置時PC 機必須通過RS-485接口訪問RS-485/CAN智能轉(zhuǎn)換器,通常PC機的RS-232接口必須使用RS-232/RS-485轉(zhuǎn)換器。設(shè)置成功后,就可以實現(xiàn)RS-485與CAN通信幀格式的相互轉(zhuǎn)換。
主程序部分比較簡單。主要為調(diào)用初始化程序,掃描發(fā)送緩沖器是否為空,不空則在空閑時根據(jù)其優(yōu)先級將CAN通信幀或RS-485串行通信幀發(fā)送出去。然后不斷掃描,等待中斷的產(chǎn)生。
3 結(jié)語
利用RS-485/CAN 智能轉(zhuǎn)換器,實現(xiàn)了RS-485網(wǎng)絡(luò)與CAN網(wǎng)絡(luò)的互連,而且智能轉(zhuǎn)換器的通信波特率可調(diào),工作模式可以控制,對于不同協(xié)議的RS-485網(wǎng)絡(luò),只需通過軟件對轉(zhuǎn)換器進行相應(yīng)的初始化設(shè)置即可,而不必對硬件進行改動。可以滿足絕大多數(shù)場合的使用要求。但是這種利用RS-485/CAN智能轉(zhuǎn)換器實現(xiàn)RS-485網(wǎng)絡(luò)和CAN網(wǎng)絡(luò)互連的方案只是一種過渡性的方案,互連后整個系統(tǒng)的性能要受限于RS-485網(wǎng)絡(luò),不能充分體現(xiàn)CAN系統(tǒng)的優(yōu)越性。該方案僅適合新系統(tǒng)與舊系統(tǒng)并存,整體性能要求不太高,新舊系統(tǒng)運行機制差別不大的地方。
評論