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