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

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

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