適用于變電站的CAN現(xiàn)場(chǎng)總線通信適配卡的設(shè)計(jì)
3、CAN通訊適配卡的結(jié)構(gòu)
這里研制的CAN適配卡由ISA接口、雙口RAM、微控制器89C52、CAN通 信控制器SJA1000、CAN收發(fā)器82C250、數(shù)據(jù)緩存器、地址譯碼與控制邏輯和中 斷信號(hào)控制邏輯等部分組成。其硬件結(jié)構(gòu)框圖如圖1所示。
3.1雙口RAM及控制電路
PC機(jī)與CAN控制器之間要進(jìn)行數(shù)據(jù)的傳送,必須在PC機(jī)和適配卡上的微處理器 之間建立雙向的數(shù)據(jù)通道[5]。這里采用共用外部數(shù)據(jù)存儲(chǔ)器的方法。集成雙口R AM是一種性能優(yōu)良的快速通信器件,適用于多CPU分布式系統(tǒng)及高速數(shù)字系統(tǒng)中,它 有兩路完全獨(dú)立的端口,每個(gè)端口都有完整的地址和數(shù)據(jù)控制線,這里采用IDT7006雙 口RAM。對(duì)于雙口RAM的應(yīng)用,一個(gè)很重要的問(wèn)題就是必須避免兩個(gè)端口的爭(zhēng)用,兩 邊同時(shí)讀/寫(xiě)同一地址單元。但只要遵循一定的通信規(guī)則,使用合理的控制邏輯電路是可以 避免爭(zhēng)用現(xiàn)象的。這里采用可編程邏輯器件EPM7128S來(lái)實(shí)現(xiàn)。EPN171285是一種典 型的EPLD器件,采用了先進(jìn)的CMOS EEPROM技術(shù),內(nèi)含2 500個(gè)邏輯門(mén)和128個(gè)宏單 元,可以在PCB板上直接對(duì)芯片進(jìn)行編程。在該適配卡中,EPM7128S主要完成數(shù)據(jù) 總線的驅(qū)動(dòng)、中斷信號(hào)處理以及共享存儲(chǔ)器和數(shù)據(jù)緩沖器的地址譯碼。
適配卡上的雙口RAM使用內(nèi)存映像的方式直接映射到主機(jī)內(nèi)存空間,實(shí)現(xiàn)適配卡與主機(jī) 的數(shù)據(jù)交換[6]。內(nèi)存映象法是將適配卡的數(shù)據(jù)存儲(chǔ)地址配置于PC機(jī)的主存儲(chǔ) 器的高端,PC機(jī)可以采用寫(xiě)主存儲(chǔ)器的方式將數(shù)據(jù)直接寫(xiě)在適配卡的數(shù)據(jù)存儲(chǔ)器中, PC機(jī)不訪問(wèn)適配卡的微控制器時(shí)就可以讀寫(xiě)數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)。
3.2微控制器電路
微控制器采用ATMEL公司的89C52,它與MCS51系列完全兼容,帶有8k字 節(jié)的系統(tǒng)可編程Flash和256B的片內(nèi)RAM。它主要承擔(dān)節(jié)點(diǎn)與PC機(jī)之間的數(shù) 據(jù)通信和協(xié)調(diào)管理工作。
當(dāng)89C52與CAN總線通信時(shí),通常由于總線上所掛的節(jié)點(diǎn)有多個(gè),所以需要在適配卡 上設(shè)計(jì)一個(gè)數(shù)據(jù)緩沖器,用于暫存由節(jié)點(diǎn)上發(fā)來(lái)的數(shù)據(jù)。考慮到變電站需要測(cè)控的節(jié)點(diǎn)較多 ,所以選用容量較大的緩沖器,這里選用DS1245。它是DALLAS公司生產(chǎn)的全靜態(tài)非 易失性保護(hù)RAM,容量為128kbit,在芯片內(nèi)部有鋰電池和掉電保護(hù)電路,可防止因 適配卡掉電引起的測(cè)量數(shù)據(jù)丟失。
由于適配卡的工作環(huán)境干擾很?chē)?yán)重,使得電路調(diào)試比較復(fù)雜且故障率也較高,本卡設(shè)計(jì)了三 種復(fù)位方式[7]。一種為上電復(fù)位方式,即在PC機(jī)通電時(shí),同時(shí)對(duì)適配卡也進(jìn) 行復(fù)位;第二種為在調(diào)試時(shí)出現(xiàn)故障,使用手動(dòng)復(fù)位鍵進(jìn)行復(fù)位;第三種方式為軟件復(fù)位, 這種方法是使用初始化模塊中的軟件指令對(duì)適配卡進(jìn)行復(fù)位。
3.3通信控制器
CAN通信控制器采用PHILIPS公司的SJA1000,它是一種獨(dú)立的CAN控制器, 主要應(yīng)用于移動(dòng)目標(biāo)和一般的工業(yè)環(huán)境中的區(qū)域控制。在本適配卡中SJA1000主要完成 具體的報(bào)文發(fā)送和報(bào)文接收。SJA1000的基本特點(diǎn)有:
(1)具有擴(kuò)展的64字節(jié)接受緩沖器,先進(jìn)先出(FIFO);
(2)支持CAN2.0A和CAN2.0B協(xié)議;
(3)支持11位和29位的標(biāo)識(shí)碼;
(4)通信速率可達(dá)1Mbps;
(5)24MHz時(shí)鐘頻率;
(6)可與不同的微處理器接口;
(7)可編程的CAN輸出驅(qū)動(dòng)器配置;可工作于BasicCAN和PeliCAN兩種狀態(tài)。
CAN控制器的內(nèi)部采用模塊結(jié)構(gòu),由七個(gè)部分組成:接口管理邏輯(IML)用于解釋 來(lái)自CPU的命令,控制CAN寄存器的尋址,向主控制器提供中斷信息和狀態(tài)信息;發(fā) 送緩沖器(TXB)是CPU與BSP之間的接口,緩沖器可以存儲(chǔ)有13個(gè)字節(jié)的一條 完整的報(bào)文;接收緩沖器(RXB)是接收濾波器和CPU之間的接口,用于存儲(chǔ)從CAN總線上接收并被確認(rèn)的信息;驗(yàn)收濾波器(ACF),用于對(duì)接收到的標(biāo)識(shí)碼進(jìn)行驗(yàn)收 ,以決定是否接收下這條報(bào)文;位流處理器(BSP)是一個(gè)在發(fā)送緩沖器、RXFIFO和CAN總線之間控制數(shù)據(jù)流的隊(duì)列發(fā)生器,它還執(zhí)行總線上的錯(cuò)誤檢測(cè)、仲裁、填充和 錯(cuò)誤處理;位時(shí)序邏輯(BTL),用于監(jiān)視串行的CAN總線和位時(shí)序;錯(cuò)誤管理邏輯 (EML),用于限制傳輸層模塊的錯(cuò)誤。
3.4輔助電路
CAN控制器SJA1000并不能直接與總線相連,還要通過(guò)總線驅(qū)動(dòng)器才能接于總線上。 本適配卡采用82C250總線驅(qū)動(dòng)器,為了增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力,SJA1000 的TX0和TX1通過(guò)高速光耦6N137后與82C250相連,使得總線上的各節(jié)點(diǎn) 具有很好的電氣隔離。
評(píng)論