PIC18單片機(jī)的RS-485/CAN智能轉(zhuǎn)換器的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
RS-485是一個(gè)電氣接口規(guī)范,它定義了一個(gè)基于單對平衡線的多點(diǎn)、雙向(半雙工)通信鏈路,只對接口的電氣特性做出規(guī)定,而不涉及接插件、電纜或協(xié)議,在此基礎(chǔ)上用戶可以建立自己的高層通信協(xié)議,在當(dāng)時(shí)看來是一種相對經(jīng)濟(jì)具有相當(dāng)高噪聲抑制相對高的傳輸速率傳輸距離遠(yuǎn)和寬共模范圍的通信平臺,因此基于RS-485總線的通訊方法得到了廣泛的應(yīng)用。
由于RS-485總線本身存在的許多局限性,隨著科技的發(fā)展RS-485的總線效率低,系統(tǒng)的實(shí)時(shí)性差、通訊的可靠性低、后期維護(hù)成本高、網(wǎng)絡(luò)工程調(diào)試復(fù)雜、傳輸距離不理想、單總線可掛接的節(jié)點(diǎn)少、應(yīng)用不靈活等缺點(diǎn)慢慢的暴露出來。雖歷經(jīng)多次改進(jìn)但均是治標(biāo)不治本。
CAN-bus是一種多主方式的串行通訊總線。具有較高的位速率,高抗電磁干擾性,而且能夠檢測出通信過程中發(fā)生的任何錯(cuò)誤。當(dāng)信號傳輸距離達(dá)到10 km 時(shí)CAN-bus仍可提供高達(dá)5 kb/s的數(shù)據(jù)傳輸速率。他在通信能力、可靠性、實(shí)時(shí)性、靈活性、易用性、傳輸距離、成本等方面有著明顯的優(yōu)勢,從而成為了業(yè)界最有前途的現(xiàn)場總線之一。
基于RS-485網(wǎng)絡(luò)在現(xiàn)場的廣泛應(yīng)用,完全放棄RS-485網(wǎng)絡(luò)系統(tǒng)是不現(xiàn)實(shí)的。但可以考慮一種折衷的辦法,就是在保留現(xiàn)有RS-485系統(tǒng)硬件結(jié)構(gòu)的基礎(chǔ)上給系統(tǒng)添加一個(gè)CAN-bus接口,RS-485/CAN智能轉(zhuǎn)換器的設(shè)計(jì)就具有了現(xiàn)實(shí)的意義。他可以實(shí)現(xiàn)RS-485網(wǎng)絡(luò)與CAN網(wǎng)絡(luò)的互聯(lián)。系統(tǒng)原理框圖如圖1所示。
2 轉(zhuǎn)換器設(shè)計(jì)
轉(zhuǎn)換器設(shè)計(jì)的原理框圖如圖2所示:
在該設(shè)計(jì)中采用了帶CAN控制器的PIC18F258芯片,其特點(diǎn)如表1所示。與傳統(tǒng)的MCU再加上獨(dú)立的CAN控制器的設(shè)計(jì)方法相比,可以使設(shè)計(jì)大大簡化,同時(shí)也增加了系統(tǒng)的可靠性。
表1 PIC18F258單片機(jī)的性能參數(shù) 名稱 特性
高性能RISC CPU 2MB的程序存儲器。4kB的數(shù)據(jù)RAM。16位寬指令,
高達(dá)10 MIPS的執(zhí)行速度。8×8單周期硬件乘法器
豐富的外圍功能模塊 4個(gè)內(nèi)部定時(shí)器,PWM/CCP模塊,USART模塊,
10位8通道A/D。CAN 總線模塊,異步串行通信SPI方式,I2C模式
特殊的單片機(jī)特性 SLEEP方式,帶有片內(nèi)RC振蕩器的監(jiān)視定時(shí)器(WDT),
可編程代碼保護(hù)功能,通過兩個(gè)引腳可進(jìn)行在線串行編程(ICSP)
FLASH 技術(shù) 低功耗,高速增強(qiáng)型FLASH 技術(shù)
2.1 硬件電路設(shè)計(jì)
硬件電路原理圖如圖3所示,包括MCU,總線驅(qū)動(dòng)模塊,光電隔離,DC-DC隔離電源模塊等。
RS485總線驅(qū)動(dòng)模塊采用MAX487,MAX487工作于半雙工模式,內(nèi)部包含一個(gè)發(fā)送器和一個(gè)接收器,在工作時(shí)需要通過使能端來控制“收”和“發(fā)”,將其使能端RE和DE連接到一起,然后接到PIC單片機(jī)的RC4,在軟件中通過對RC4的置位和復(fù)位來控制MAX487的收和發(fā)。
RS-485標(biāo)準(zhǔn)采用差分傳輸,本身已具有一定的抗干擾能力,在其傳輸通道的兩端分別加上一個(gè)6N137芯片,可以進(jìn)一步增強(qiáng)轉(zhuǎn)換器的抗干擾能力??梢员苊庥蓚鬏攩栴}而引起的死機(jī)現(xiàn)象。
CAN總線驅(qū)動(dòng)模塊采用PCA82C250,接口電路比較簡單。同樣也在其傳輸通道加上兩個(gè)高速光耦6N137,實(shí)現(xiàn)總線和轉(zhuǎn)換器的電氣隔離。
在硬件設(shè)計(jì)中需要特別注意電源部分的設(shè)計(jì),因?yàn)楣怦罡綦x兩側(cè)必須采用獨(dú)立的電源供電,否則將不能起到隔離的作用。轉(zhuǎn)換器在現(xiàn)場應(yīng)用的時(shí)候不是采用電池供電,而是采用現(xiàn)場CAN總線的電源來供電,而這個(gè)電源是不穩(wěn)定的電源,而且存在很多干擾量,不能直接應(yīng)用到轉(zhuǎn)換器當(dāng)中,必須經(jīng)過隔離,濾波以及穩(wěn)壓處理。[!--empirenews.page--]
在轉(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ú)立。否則光耦不能起到隔離的作用。
2.2 軟件設(shè)計(jì)
軟件設(shè)計(jì)通過Microchip的開發(fā)工具M(jìn)plab用匯編語言編制,主要包括初始化程序,CAN接收中斷服務(wù)程序,USART接收中斷服務(wù)程序,主程序。應(yīng)用層通信協(xié)議轉(zhuǎn)換程序等。
初始化程序用于設(shè)置CAN模塊的通信波特率,工作方式,接收郵箱和發(fā)送郵箱,對應(yīng)的接收過濾器和接收屏蔽器,以及發(fā)送的優(yōu)先級等。其流程圖如圖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)備。其流程簡圖如圖6所示。
圖6 CAN接收中斷服務(wù)程序
USART接收中斷服務(wù)程序主要用于接收來自RS-485總線的串行數(shù)據(jù)。并將完整的數(shù)據(jù)幀傳送到另外一個(gè)環(huán)形緩沖器。其流程圖和設(shè)計(jì)思想與CAN 接收中斷程序類似,不再例舉。
協(xié)議轉(zhuǎn)換程序需要參照現(xiàn)場RS-485系統(tǒng)原有的協(xié)議,然后由用戶通過配套軟件對通信幀的格式進(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)換。
主程序部分比較簡單。主要為調(diào)用初始化程序,掃描發(fā)送緩沖器是否為空,不空則在空閑時(shí)根據(jù)其優(yōu)先級將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),工作模式可以控制,對于不同協(xié)議的RS-485網(wǎng)絡(luò),只需通過軟件對轉(zhuǎn)換器進(jìn)行相應(yīng)的初始化設(shè)置即可,而不必對硬件進(jìn)行改動(dòng)??梢詽M足絕大多數(shù)場合的使用要求。但是這種利用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ī)制差別不大的地方。