新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于CAN總線PC適配卡設(shè)計

基于CAN總線PC適配卡設(shè)計

作者: 時間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
引 言

分布式產(chǎn)業(yè)測控系統(tǒng)需要有現(xiàn)場總線來連接各現(xiàn)場設(shè)備及處理控制單元。CAN總線就是一種具有較高性能價格比、能滿足分布式控制要求的現(xiàn)場總線,具有廣泛的應用遠景。它實際上是一種簡化型網(wǎng)絡(luò)結(jié)構(gòu),在構(gòu)造單片處理器網(wǎng)絡(luò)中極為有用。為了使上位機也能和CAN總線相連,使微機成為系統(tǒng)的上位機,增強控制系統(tǒng)的功能,從而進一步延伸CAN總線連通范圍,就需要提供一個微機和CAN總線的接口。本文先容作者設(shè)計制作的一種CAN總線PCI適配器。

本文引用地址:http://butianyuan.cn/article/201611/319297.htm

接口的硬件設(shè)計

PCI接口的實現(xiàn)

目前市面上有些CAN總線的適配器,但大多都是基于PC/104或者ISA總線,傳輸速度較慢,效率低下。作者在設(shè)計中使用高效的PCI總線,實現(xiàn)了數(shù)據(jù)的高速傳輸。與ISA總線相比較,PCI總線具有如下特點:①傳輸速度高。PCI總線寬度為32位(可擴展為64位)。時鐘頻率為0~33MHz。并且支持突發(fā)傳送,傳輸速度可以達到132Mb/s。相比較,ISA總線寬度為8/16位,時鐘頻率為132Mb/s相比較,ISA總線為8位/16位,時鐘頻率為8MHz,不支持突發(fā)傳送,傳輸速率僅為8Mb/s;②即插即用。PCI實現(xiàn)了真正的即插即用。系統(tǒng)可以實現(xiàn)對PCI設(shè)備的自動配置;③生命周期長。PCI總線與處理器無關(guān)(通過橋或直接集成),可支持多種系列處理器,包括將來會出現(xiàn)的新一代處理器。

由于PCI總線規(guī)范十分復雜,其接口設(shè)計難度較大,但目前有很多廠商提供了專用的PCI接口芯片。這些接口芯片大多對PCI總線規(guī)范2.1、2.2版完全兼容,從而大大減輕了PCI板卡設(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ā)的難易。如不提供足夠的芯片說明和應用樣例及開發(fā)工具,將大大增加開發(fā)難度和延長開發(fā)周期。這里我們采用PLX公司的PCI總線目標接口芯片PCI9052作為CAN總線適配器的PCI總線接口芯片,負責與計算機之間的數(shù)據(jù)通訊。9052是PLX公司開發(fā)的低價格PCI總線從模式接口芯片,低功耗,符合PCI2.1規(guī)范,提供的局部總線可通過編程設(shè)置為8/16/32位的(非)復用總線。

CAN總線接口的實現(xiàn)

CAN總線之所以在國內(nèi)乃至全球范圍內(nèi)一直保持高速發(fā)展,完全取決于其卓越的性能。CAN總線主要應用在汽車領(lǐng)域,隨著集成工藝的發(fā)展和本錢的降低,被越來越多的控制領(lǐng)域內(nèi)的軟硬件工程師所接受,廣泛的應用于各行各業(yè)的控制領(lǐng)域網(wǎng)中。其主要性能指標如下:①多站仲裁結(jié)構(gòu)(分地址優(yōu)先級,非破壞方式仲裁);②支持主從廣播方式;③不加任何擴展最多110個節(jié)點;④最高通訊速率1Mbps,最遠通訊間隔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總線上通訊脈沖的邊沿斜率來降低射頻干擾。其速度可以達到1Mbps,最多節(jié)點數(shù)可以達到110個。


地址譯碼和邏輯控制是由EPM7064S完成的。EPM7064S是ALTERA出品的MAX7000系列的一種。它主要實現(xiàn)兩路獨立的CAN總線通道的地址譯碼、實現(xiàn)控制信號的驅(qū)動和電平轉(zhuǎn)換。通過EPM7064S可以進步系統(tǒng)的可靠性,縮小板卡的尺寸,方便以后板卡功能的擴展。為了在每個CAN總線通道出現(xiàn)故障時能夠重新初始化,在接口卡中使用了兩片復位芯片MAX811。由EPM7064S產(chǎn)生控制信號,當CAN總線通道出現(xiàn)異常時,控制MAX811復位SJA1000控制器。其總線接口原理圖1。


PCI為每一個PCI設(shè)備提供了一個配置空間來實現(xiàn)設(shè)備的即插即用(PnP)。在PC機上電自檢時,配置軟件掃描PCI總線,檢測所有的PCI設(shè)備,讀取配置信息,并為每一個PCI設(shè)備分配系統(tǒng)資源,實現(xiàn)PCI設(shè)備的即插即用。每一個PCI功能設(shè)備都有一個64個雙字的配置空間,以特定的格式存儲設(shè)備支持的功能。PCI協(xié)議定義了開頭的16個雙字的格式和用途,稱為設(shè)備的配置頭區(qū)域。其它48個雙字是設(shè)備特定的。CAN卡的硬件資源為映射SJA1000內(nèi)部寄存器的內(nèi)存映射空間和一個中斷源。

PCI9052提供了5個局部地址空間,可以選用其中的一個作為SJA1000的地址空間,分配32個8位地址空間。同時設(shè)置相應的初始化,PCI配置寄存器中的寄存器PCIBAR2設(shè)置為0XFFFFFFE0,向系統(tǒng)請求分配內(nèi)存的數(shù)目為32,類型為不可預讀,其它寄存器的值可設(shè)置為0。設(shè)置局部地址空間的范圍為0X00000000~0X00000020。對中斷的配置是把PCI中斷請求線分配到系統(tǒng)的某一ISA中斷請求(IRQ)線上。在本控制卡中利用一塊串行EEPROM(93C46B)存放控制卡的PCI配置信息。上電后訪問93C46B,實現(xiàn)本控制卡的自動配置。


圖1 總線接口原理圖

接口的軟件設(shè)計

軟件的設(shè)計包括PCI驅(qū)動程序的設(shè)計和COM組件的設(shè)計。由于PCI設(shè)備的中斷、I/O端口、映射內(nèi)存等資源都是動態(tài)分配的,必須編寫驅(qū)動程序治理硬件,才能供用戶編程使用。CAN卡驅(qū)動程序的開發(fā)工具采用WINDRIVER。由于CAN卡上沒有微控制器,因此對總線端口的所有操縱都是由驅(qū)動程序來完成的。這不僅可以由計算機來實現(xiàn)復雜的功能,例如,錯誤檢測、斷點續(xù)傳等,同時節(jié)省了硬件,而且有利于卡的升級——只要更換驅(qū)動程序即可。驅(qū)動程序的功能主要是配置SJA1000的接口、收發(fā)CAN總線上的數(shù)據(jù)、對總線進行實時監(jiān)測、接收用戶程序的收發(fā)命令。收發(fā)數(shù)據(jù)和CAN總線錯誤均采用中斷處理,驅(qū)動程序可以快速響應,通過事件(Event)內(nèi)核對象直接通知給用戶程序。CAN總線通訊適配器的初始化是CAN總線設(shè)計的重要環(huán)節(jié),也是設(shè)計的難點。在其初始化過程中需要設(shè)置的參數(shù)有時鐘、總線配置、標志標識符屏蔽段、擴展標識符屏蔽段、信息塊、定時器0、定時器1、信息塊的控制段、信息塊的工作方式等。CAN總線適配器簡化流程圖如圖2所示。

圖2 CAN總線適配器簡化流程圖

結(jié)論

本文設(shè)計的CAN總線適配器結(jié)構(gòu)簡單,可用于分布的現(xiàn)場總線控制系統(tǒng)。在WIN2000下經(jīng)過長時間的運行測試,運行穩(wěn)定可靠。它可以適應不同的傳輸速率和間隔,有效保證了產(chǎn)業(yè)過程監(jiān)控的實時性,同時也減輕了上位機的工作負擔,滿足不同的用戶要求。在不同偏壓和分布參數(shù)條件下為芯片ESD保護的SNTSCR的I-V特性在CMOS工藝中已經(jīng)具體講述過。SNTSCR可以在小區(qū)域內(nèi)保持高的ESD電平對于現(xiàn)代高集成科學很有吸引力。不采用厚柵氧化層,一般小于0.25μmCMOS工藝中,SNTSCR在有效保護混合電壓接口電路免于ESD破壞時充分兼容。



關(guān)鍵詞: CAN總線PC適配

評論


技術(shù)專區(qū)

關(guān)閉