CAN總線PC適配卡設(shè)計
引 言
分布式工業(yè)測控系統(tǒng)需要有現(xiàn)場總線來連接各現(xiàn)場設(shè)備及處理控制單元。CAN總線就是一種具有較高性能價格比、能滿足分布式控制要求的現(xiàn)場總線,具有廣泛的應(yīng)用前景。它實際上是一種簡化型網(wǎng)絡(luò)結(jié)構(gòu),在構(gòu)造單片處理器網(wǎng)絡(luò)中極為有用。為了使上位機也能和CAN總線相連,使微機成為系統(tǒng)的上位機,增強控制系統(tǒng)的功能,從而進一步延伸CAN總線連通范圍,就需要提供一個微機和CAN總線的接口。本文介紹作者設(shè)計制作的一種CAN總線PC I適配器。
接口的硬件設(shè)計
PCI接口的實現(xiàn)
目前市面上有些CAN總線的適配器,但大多都是基于PC/104或者ISA總線,傳輸速度較慢,效率低下。作者在設(shè)計中使用高效的PCI總線,實現(xiàn)了數(shù)據(jù)的高速傳輸。與ISA總線相比較,PCI總線具有如下特點: ①傳輸速度高。PCI總線寬度為32位(可擴展為64 位)。時鐘頻率為0~33MHz。并且支持突發(fā)傳送,傳輸速度可以達(dá)到132Mb/s。相比較, ISA總線寬度為8/16位,時鐘頻率為132Mb/s。相比較, ISA總線為8位/16位,時鐘頻率為8MHz,不支持突發(fā)傳送,傳輸速率僅為8Mb/s;②即插即用。PC I實現(xiàn)了真正的即插即用。系統(tǒng)可以實現(xiàn)對PCI設(shè)備的自動配置;③生命周期長。PCI總線與處理器無關(guān)(通過橋或直接集成) ,可支持多種系列處理器,包括將來會出現(xiàn)的新一代處理器。
由于PCI總線規(guī)范十分復(fù)雜,其接口設(shè)計難度較大,但目前有許多廠商提供了專用的PCI接口芯片。這些接口芯片大多對PCI總線規(guī)范2.1、2.2版完全兼容,從而大大減輕了PC I板卡設(shè)計的工作量。PCI設(shè)備可以分為主模式和從模式。主模式可以執(zhí)行DMA操作,而從模式只可以執(zhí)行讀寫操作。根據(jù)PCI提供的傳輸數(shù)據(jù)帶寬(最大132Mb/s) 和CAN總線(最大1Mbps)的要求,加上經(jīng)濟和開發(fā)難度與周期上的考慮(主模式橋芯片較昂貴,開發(fā)難度較大) ,又因不需要DMA功能,采用從模式橋芯片足以滿足傳輸數(shù)據(jù)的需要。此外,選擇芯片不僅考慮性能和經(jīng)濟上的要求,而且還需要考慮硬件開發(fā)和驅(qū)動程序開發(fā)的難易。如不提供足夠的芯片說明和應(yīng)用樣例及開發(fā)工具,將大大增加開發(fā)難度和延長開發(fā)周期。這里我們采用PLX公司的PCI總線目標(biāo)接口芯片PCI9052作為CAN總線適配器的PCI總線接口芯片,負(fù)責(zé)與計算機之間的數(shù)據(jù)通信。9052是PLX公司開發(fā)的低價格PC I總線從模式接口芯片,低功耗,符合PCI2.1規(guī)范,提供的局部總線可通過編程設(shè)置為8/16/32位的(非)復(fù)用總線。
CAN總線接口的實現(xiàn)
CAN總線之所以在國內(nèi)乃至全球范圍內(nèi)一直保持高速發(fā)展,完全取決于其卓越的性能。CAN總線主要應(yīng)用在汽車領(lǐng)域,隨著集成工藝的發(fā)展和成本的降低,被越來越多的控制領(lǐng)域內(nèi)的軟硬件工程師所接受,廣泛的應(yīng)用于各行各業(yè)的控制領(lǐng)域網(wǎng)中。其主要性能指標(biāo)如下: ①多站仲裁結(jié)構(gòu)(分地址優(yōu)先級,非破壞方式仲裁) ;②支持主從廣播方式;③不加任何擴展最多110個節(jié)點;④最高通信速率1Mbps,最遠(yuǎn)通信距離5km;⑤通常CAN控制器內(nèi)部設(shè)有接收和發(fā)送緩沖;⑥通信以幀為單位,最多8個字節(jié)的數(shù)據(jù);⑦硬件自動進行16 位CRC校驗;⑧具有極強的總線和通信錯誤的管理能力。
由于PCI9052可以啟動局部總線的讀寫, CAN卡不再需要微控制器,采用CAN通信控制器即可,本卡采用SJA1000。SJA1000支持基本AN(BisicCAN)和增強CAN(PeliCAN)兩種工作模式,支持具有新功能的CAN2.0B協(xié)議規(guī)范。具有FIFO、支持熱插拔等功能,不但可以實現(xiàn)CAN總線接口功能,而且芯片可以根據(jù)晶振的頻率,輸出可編程的信號CLKOUT,該信號正好可作為PCI9052局部總線的總線頻率,節(jié)省了器件,方便了設(shè)計。CAN總線的總線頻率可為12MHz、6MHz或24MHz, PCI9052自動實現(xiàn)局部總線與PCI總線的訪問同步。CAN總線收發(fā)器采用82C250。該芯片是CAN總線控制器和物理總線的接口,可以提供對CAN總線的差動發(fā)送和接收能力,具有抗瞬間干擾、保護總線的能力,可以通過調(diào)整CAN總線上通訊脈沖的邊沿斜率來降低射頻干擾。其速度可以達(dá)到1Mbps,最多節(jié)點數(shù)可以達(dá)到110個。
地址譯碼和邏輯控制是由EPM7064S完成的。EPM7064S是ALTERA 出品的MAX7000系列的一種。它主要實現(xiàn)兩路獨立的CAN總線通道的地址譯碼、實現(xiàn)控制信號的驅(qū)動和電平轉(zhuǎn)換。通過EPM7064S可以提高系統(tǒng)的可靠性,縮小板卡的尺寸,方便以后板卡功能的擴展。為了在每個CAN總線通道出現(xiàn)故障時能夠重新初始化,在接口卡中使用了兩片復(fù)位芯片MAX811。由EPM7064S產(chǎn)生控制信號, 當(dāng)CAN總線通道出現(xiàn)異常時, 控制MAX811復(fù)位SJA1000控制器。其總線接口原理圖如圖1所示。
PCI為每一個PCI設(shè)備提供了一個配置空間來實現(xiàn)設(shè)備的即插即用(PnP)。在PC機上電自檢時,配置軟件掃描PCI總線,檢測所有的PCI設(shè)備,讀取配置信息,并為每一個PC I設(shè)備分配系統(tǒng)資源,實現(xiàn)PCI設(shè)備的即插即用。每一個PCI功能設(shè)備都有一個64個雙字的配置空間,以特定的格式存儲設(shè)備支持的功能。PCI協(xié)議定義了開頭的16個雙字的格式和用途,稱為設(shè)備的配置頭區(qū)域。其它48個雙字是設(shè)備特定的。CAN卡的硬件資源為映射SJA1000內(nèi)部寄存器的內(nèi)存映射空間和一個中斷源。
評論