




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于 PCI 總線(xiàn)的 CAN 卡的設(shè)計(jì)與實(shí)現(xiàn)現(xiàn)場(chǎng)總線(xiàn) CAN( Controller Area Network 控制器局域網(wǎng)絡(luò))以其高性能、 高可靠性及獨(dú)特的設(shè)計(jì), 越來(lái)越受到人們的重視和青睞, 不但在汽車(chē)行業(yè)中應(yīng)用 廣泛,而且在工業(yè)控制、機(jī)器人、醫(yī)療器械、傳感器等領(lǐng)域發(fā)展迅速。為了擴(kuò)展 CAN 總線(xiàn)的功能, 與計(jì)算機(jī)相連, 可設(shè)計(jì)具有 CAN 接口和 PC 接口的 CAN 適 配卡, 用來(lái)收集 CAN總線(xiàn)上各個(gè)節(jié)點(diǎn)的信息,轉(zhuǎn)發(fā)給 PC 機(jī),并可將 PC 機(jī)的 命令和數(shù)據(jù)轉(zhuǎn)發(fā)給各個(gè)節(jié)點(diǎn)以及完成對(duì) CAN 總線(xiàn)上的用戶(hù)系統(tǒng)的部分監(jiān)控和管 理工作。PCI 總線(xiàn)是 Intel 公司推出的一種先進(jìn)的高
2、性能 32/64 位局部總線(xiàn),可同時(shí)支持 多組外圍設(shè)備,不受制于處理器,數(shù)據(jù)吞吐量大( 33MHz 總線(xiàn)頻率、 32 位傳輸 時(shí)峰值可高達(dá) 132MB/s )。目前 PCI 是處于主流的計(jì)算機(jī)總線(xiàn)。以往的 CAN 卡 一般都是基于 ISA 總線(xiàn)的,由于 ISA 部傳輸速率低, CAN 卡必須增加中繼控制 功能,才能夠適應(yīng) CAN 的高速傳輸,導(dǎo)致造價(jià)高、體積大、傳輸速率低,不利 于 CAN 總線(xiàn)的推廣應(yīng)用。由于 PCI 總線(xiàn)傳輸速度快,而且支持熱插拔、電源管 理等功能,不但能滿(mǎn)足 CAN 總線(xiàn)的高速數(shù)據(jù)傳輸,性能高、功能強(qiáng),而且體積 小、價(jià)格低、使用方便、應(yīng)用范圍廣。CAN 卡的設(shè)計(jì)包括硬件設(shè)
3、計(jì)和軟件設(shè)計(jì)圖 1 CAN 卡電路原理用1 硬件設(shè)計(jì)PCI 總線(xiàn)是一種獨(dú)立于 CPU 的局部總線(xiàn),不同于傳統(tǒng)的 ISA 總線(xiàn)。由于 PCI 總 線(xiàn)規(guī)范定義了嚴(yán)格的電氣特性和時(shí)序要求,開(kāi)發(fā)難度比ISA 總線(xiàn)的開(kāi)發(fā)難度大。實(shí)現(xiàn) PCI 接口的方案一般有兩種:采用可編程邏輯器件和專(zhuān)用總線(xiàn)接口器件。采用可編程邏輯器件實(shí)現(xiàn) PCI 接口的最大好處是比較靈活,可把 PCI 時(shí)序模塊 和功能模塊結(jié)合在一起,可以利用的器件也比較多(如Altera 公司的 CPLD 器件、Xilinx 公司的 FPGA 器件等),還可以購(gòu)買(mǎi)由廠(chǎng)家提供的用 VHDL、AHDL 等硬件描述語(yǔ)言編制的 PCI 核心設(shè)計(jì)模塊,但其設(shè)計(jì)
4、難度還是很高,因?yàn)镻CI總線(xiàn)對(duì)負(fù)載要求、傳輸數(shù)據(jù)的建立時(shí)間的要求都比較苛刻, 同時(shí)還需要器件內(nèi)部 實(shí)現(xiàn)用于配置的各類(lèi)寄存器,以及完成邏輯校驗(yàn)、地址譯碼等工作的寄存器(大 致需要15000 個(gè)門(mén)電路)。此外,還需加入 FIFO、用戶(hù)寄存器組和后端設(shè)備接 口等部分。設(shè)計(jì)這種 PCI 總線(xiàn)接口會(huì)導(dǎo)致將大量的人力、物力投入到復(fù)雜的邏 輯驗(yàn)證和時(shí)序分析的工作上,開(kāi)發(fā)周期較長(zhǎng)。要用專(zhuān)用接口器件雖然沒(méi)有采用可 編程邏輯器件那么靈活,但能夠有效地降低接口設(shè)計(jì)的難度, 縮短開(kāi)發(fā)時(shí)間。專(zhuān) 用接口器件具有較低的成本和很高的通用性,能夠優(yōu)化數(shù)據(jù)傳輸,提供配置空間, 具備用于突發(fā)傳輸功能的片內(nèi)FIFO,提供擴(kuò)展局部總線(xiàn)
5、等優(yōu)點(diǎn),并且許多公司 還提供配套的開(kāi)發(fā)工具(例如評(píng)估板或驅(qū)動(dòng)程序開(kāi)發(fā)軟件) , 使用很方便, 開(kāi)發(fā) 周期短。 目前市場(chǎng)上常見(jiàn)的有 PLX、 AMCC、Cypress 等公司的 PCI 橋芯片, 各個(gè)型號(hào)的 PCI 接口芯片的大致特點(diǎn)如表 1 所示。表 1 各公司 PCI 接口芯片公司心片型號(hào)(模式)芯片功能及特點(diǎn)價(jià)格開(kāi)發(fā)技術(shù)支持PLXPCI9052 (從)PCI9054 (主)型號(hào)眾多,使用方便,性能好較便宜提供快速開(kāi)發(fā)板RDK 出售CYPRESSCY7C09449PV-AC內(nèi)置 DPRAM,有效降便宜(主)低系統(tǒng)成本技術(shù)文檔TIPCI2031 (從)PCI1251 (主)與 TI 的 DSP
6、 可無(wú)縫連接很便宜提供評(píng)估模塊AMCCAMCC5920 (從)AMCC5933(主)FIFO 接口適合于設(shè)計(jì)數(shù)據(jù)采集卡,性能好窗貴提供評(píng)估板PCI 設(shè)備可分為主模式和從模式。主模式橋芯片可以進(jìn)行DMA 操作,而從模式只能接受讀寫(xiě)操作。 根據(jù) PCI 提供的傳輸數(shù)據(jù)帶寬(最大 132MB/S) 和 CAN 總 線(xiàn) (最大 1Mbps )的要求,加上經(jīng)濟(jì)和開(kāi)發(fā)難度與周期上考慮(主模式橋芯片 較昂貴,開(kāi)發(fā)難度較大),又因不需要 DMA 功能,采用從模式橋芯片足以滿(mǎn)足 傳輸數(shù)據(jù)的需要。此外,選擇芯片不僅考慮性能和經(jīng)濟(jì)上的要求, 而且還需要考 慮硬件開(kāi)發(fā)和驅(qū)動(dòng)程序開(kāi)發(fā)的難易。 如果不提供足夠的芯片說(shuō)明和
7、應(yīng)用樣例及開(kāi) 發(fā)工具,將大大增加開(kāi)發(fā)難度和延長(zhǎng)開(kāi)周期。因此,采用 PLX 公司的 PCI 總線(xiàn) 目標(biāo)接口芯片 PCI9052 作為 CAN卡中的 PCI 接口芯片,負(fù)責(zé)與計(jì)算機(jī)之間的 數(shù)據(jù)通信。PCI9052 是 PLX 公司開(kāi)發(fā)的低價(jià)格 PCI 總線(xiàn)從模式接口芯片,低功耗,符合PCI2.1 規(guī)范,提供的局部總線(xiàn)(Local Bus )可通過(guò)編程設(shè)置為 8/16/32 位的(非)復(fù)用總線(xiàn)。其主要特點(diǎn)有:(1) 直接數(shù)據(jù)轉(zhuǎn)換模式 PCI9052 支持 PCI 到 Local Bus 的內(nèi)存映射和 I/O 映射 的突發(fā)讀寫(xiě)。(2) ISA 接口邏輯 PCI9052 支持通過(guò) 8/16 位內(nèi)存映射或
8、 I/O 映射從 PCI 到 ISA 總線(xiàn)的單周期讀、寫(xiě)訪(fǎng)問(wèn)。方便從 ISA 向 PCI 卡的轉(zhuǎn)換。( 3)中斷產(chǎn)生器 由 Local Bus 的兩個(gè)中斷信號(hào)可以產(chǎn)生一個(gè) PCI 中斷信號(hào):INTA# 。( 4)局部總線(xiàn) PCI9052 提供的局部總線(xiàn)不但可編程,而且與 PCI 總線(xiàn)的時(shí)鐘 相互獨(dú)立運(yùn)行, 可實(shí)現(xiàn)異步操作, 總線(xiàn)操作自動(dòng)實(shí)現(xiàn)時(shí)序同步。 兩部分的異步運(yùn) 行方便了高、低速設(shè)備的兼容。局部的運(yùn)行時(shí)鐘頻率范圍 040MHz、TTL 電平,可由 PCI提供或由用戶(hù)自行提供;PCI 的運(yùn)行時(shí)鐘頻率范圍 033MHz(5)串行 EEPROM 用于存入 PCI BUS 和 Local Bus
9、的部分配置信息。(6)4 個(gè)局部設(shè)備片選 基址和地址范圍可以由串行 EEPROM 或主控設(shè)備進(jìn)行 設(shè)置。(7)5 個(gè)局部地址空間 基址和地址范圍及其映射可以由串行 EEPROM 或主控 設(shè)備進(jìn)行設(shè)置。(8)Big/Little Endian 模式的字節(jié)交換適合不同計(jì)算機(jī)體系。(9)局部總線(xiàn)等待狀態(tài) 降了等待信號(hào) LRDYi#用于握手之外,PCI9052 還有一 個(gè)內(nèi)部等待產(chǎn)生器(包括地址到數(shù)據(jù)周期、數(shù)據(jù)到數(shù)據(jù)周期和數(shù)據(jù)到地址周期的 等待)。(10) 延遲讀模式 PCI9052 支持 PCI2.1 規(guī)范的延遲讀模式。(11) FIFO PCI9052 包括一個(gè) 64Byte 的寫(xiě) FIFO 和一
10、個(gè) 32Byte 的讀 FIFO,從而支持預(yù)取模式、即突發(fā)操作。(12) PCI 鎖定機(jī)制 主控設(shè)備可以通過(guò)鎖定信號(hào)占有對(duì) PCI9052 的唯一訪(fǎng)問(wèn)權(quán)。由于 CAN 總線(xiàn)的迅猛發(fā)展,許多芯片廠(chǎng)商開(kāi)發(fā)了很多系列的CAN 通信控制器芯片。如表 2 所示。表 2 主要 CAN 總線(xiàn)芯片制造商芯片型號(hào)芯片功能及特點(diǎn)In tel825278XC196CA/CBCAN 通信控制器,符合 CAN2.0B 擴(kuò)展的8XC196+CAN通信控制器, 符 合 CAN2.0BPhilipsSJA100082C250P51XA-C3CAN 通信控制器,符合 CAN2.0B高性能 CAN 總線(xiàn)收發(fā)器16 位微控制器+C
11、AN 通信控制器,符合CAN2.0BMotorola68HC05X4 系列68HC05 微處理器+CAN 通信控制器NEC72005CAN 通信控制器,符合 CAN2.0A/B由于 PCI9052 可以啟動(dòng)局部總線(xiàn)的讀寫(xiě),CAN 卡不再需要微控制器,采用 CAN 通信控制器即可,本 CAN 卡采用 SJA1000.SJA1000 支持 BasicCAN 和 PeliCAN 模式,具有 FIFO、支持熱插拔等功能,不但可以實(shí)現(xiàn) CAN 總線(xiàn)接口功能,而 且芯片可以根據(jù)晶振的頻率,輸出可編程的 CLKOUT 信號(hào),該信號(hào)正好可作為 PCI9052 的局部總線(xiàn)的總線(xiàn)頻率,節(jié)省了器件,方便了設(shè)計(jì)。CA
12、N 總線(xiàn)的總線(xiàn)頻率可為 12MHz、16MHz 或 24MHz,PCI9052 自動(dòng)實(shí)現(xiàn)局部總線(xiàn)與 PCI 總線(xiàn) 的訪(fǎng)問(wèn)同步。CAN 總線(xiàn)收發(fā)器采用 82C250.該芯片是 CAN 總線(xiàn)控制器和物理總 線(xiàn)的接口,可以提供對(duì) CAN 總線(xiàn)的差動(dòng)發(fā)送和接受能力,具有抗瞬間干擾、保 護(hù)部的能力,可以通過(guò)調(diào)整 CAN 總線(xiàn)通訊脈沖的邊沿斜率來(lái)降低射頻干擾。由于 PCI 設(shè)備在計(jì)算機(jī)中的硬件資源是系統(tǒng)動(dòng)態(tài)分配的,因此在設(shè)計(jì)出基本的 硬件框架后,要進(jìn)行 PCI 配置設(shè)計(jì)。CAN 卡的硬件資源為映射 SJA1000 內(nèi)部寄 存器的內(nèi)存映射間和一個(gè)中斷源。PCI9052 提供 5 個(gè)局部地址空間,可以選用 其
13、中的一個(gè)作為SJA1000 的地址空間,分配 32 個(gè) 8 位地址。同時(shí)設(shè)置相應(yīng)的 初始化,PCI 配置寄存器中的寄存器 PCIBAR2 設(shè)置為 OXFFFFFFEO ,向系統(tǒng)請(qǐng) 求分配內(nèi)存的數(shù)量為 32,類(lèi)型為不可預(yù)讀,其它寄存器的值可設(shè)置為 0。設(shè)置 局部地址空間的范圍為0X000000000X00000020。PCI9052 提供 2 個(gè)局部中 斷源,利用 LINTil 即可,注意的是:LINTil 信號(hào)線(xiàn)沒(méi)有驅(qū)能力,SJA1000 的 INT 引腳也沒(méi)有驅(qū)動(dòng)能力, 因此該信號(hào)線(xiàn)必須加上拉電阻, 否則該信號(hào)線(xiàn)的電平不確 定,工作肯定不正常。 SJA1000 提供電平觸發(fā)中斷信號(hào),因此 P
14、CI9052 的中斷 觸發(fā)模式設(shè)置為電平觸發(fā)。利用 PCI9052的局部設(shè)備片 CS0#作為 SJA1000 的 片選信號(hào)。CS0#片選信號(hào)的起始地址和地址范圍為 CS0 Base Address 寄存器 設(shè)置,值為 0 x00000002。另外,PCI9052 的 LRDYi#信號(hào)為局部總線(xiàn)數(shù)據(jù)準(zhǔn)備 信號(hào), SJA1000 的寄存器地址映射成地址,數(shù)據(jù)傳輸不存在延遲等待,因此 LRDYi#引腳可接地,表示 SJA1000 的寄存器總是立即可讀寫(xiě)。PCI9052 寄存 器的初始值由串行 EEPROM 提供, 在 PCI9052 加電后讀取。EEPROM必須采 用支持連讀功能的芯片,本用 Mic
15、rochip 的 93LC46B 。用 PCX 公司提供的開(kāi)發(fā) 工具 PlxMon 可對(duì) 93LC47B 進(jìn)行讀寫(xiě)。PCI9052 的硬件調(diào)試可采用 PlxMon 。利用它可以對(duì) PCI 設(shè)置的配置資源進(jìn)行檢 驗(yàn)。利用 PLX 提供的 SDK,可以對(duì) PCI9052 的局部寄存器、局部總線(xiàn)及 EEPROM 進(jìn)行讀寫(xiě),這樣可以調(diào)試硬件。借助開(kāi)發(fā)工具,不必開(kāi)發(fā) PCI 設(shè)備的調(diào)試軟件, 可節(jié)省很多時(shí)間。同時(shí), SDK 也為驅(qū)動(dòng)程序的開(kāi)發(fā)提供了程序框架,加快了開(kāi) 發(fā)進(jìn)度. . -用戶(hù)態(tài)I內(nèi)核態(tài)!礎(chǔ)件態(tài)圖2軟件框架圖戶(hù)用序用應(yīng)程CAN 卡的電路框圖如圖 1 所示。2 軟件設(shè)計(jì)軟件設(shè)計(jì)包括驅(qū)動(dòng)程序的設(shè)計(jì)
16、和 COM 組件程序設(shè)計(jì)。由于 PCI 設(shè)備的中斷、I/O 端口、映射內(nèi)存等資源都是動(dòng)態(tài)分配的,必須編寫(xiě)驅(qū) 動(dòng)程序管理硬件,才能供用戶(hù)編程使用。為了通用性和兼容性,CAN 卡驅(qū)動(dòng)程序的開(kāi)發(fā)采用支持 Windows XP、Windows2000 和 Windows98 的 WDM 驅(qū)動(dòng) 程序。開(kāi)發(fā)工具采用 Visual C+6.0 和 Win2000 DDK。由于 CAN 卡上沒(méi)有微控 制器,因此對(duì) CAN 總線(xiàn)端口的所有操作都是由驅(qū)動(dòng)程序來(lái)完成的。這不僅可以 由計(jì)算機(jī)來(lái)實(shí)現(xiàn)復(fù)雜的功能,例如,錯(cuò)誤檢測(cè)、斷點(diǎn)續(xù)傳等,同時(shí)節(jié)省了硬件, 而且有利于 CAN 卡的升級(jí)一一只要更換驅(qū)動(dòng)程序即。 驅(qū)動(dòng)程序的功能主要是配 置 SJA1000 的 CAN 接口、收發(fā) CAN 總線(xiàn)上的數(shù)據(jù)、對(duì)發(fā)數(shù)據(jù)和 CAN 總線(xiàn)錯(cuò) 誤均采用中斷處理,驅(qū)動(dòng)程序可以快速響應(yīng),通過(guò)事件(Eve nt)內(nèi)核對(duì)象直接通知給用戶(hù)程序。由于 WDM 驅(qū)動(dòng)程序運(yùn)行在系統(tǒng)的內(nèi)核態(tài),編寫(xiě)非常復(fù)雜,限 于篇幅,僅給出軟件的框圖(見(jiàn)圖 2 )。為了方便用戶(hù)的使用,還應(yīng)編寫(xiě)相應(yīng)的 API 函數(shù)或 ActiveX 控件等其它應(yīng)用層的 程序提
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)生產(chǎn)合同范本
- 保安帶電 自營(yíng)合同范本
- 企業(yè)形象合同范本
- 公證送達(dá)合同范本
- 上船押金合同范本
- 共同領(lǐng)養(yǎng)寵物合同范本
- 勾調(diào)顧問(wèn)合作協(xié)議合同范本
- 公司租賃民房合同范本
- 勞保中標(biāo)合同范本
- 農(nóng)田包地合同范本
- 《中國(guó)人口老齡化》課件
- 靜脈采血最佳護(hù)理實(shí)踐相關(guān)知識(shí)考核試題
- 檢驗(yàn)檢測(cè)中心檢驗(yàn)員聘用合同
- 腰椎后路減壓手術(shù)
- 商場(chǎng)扶梯安全培訓(xùn)
- 《全科醫(yī)學(xué)概論》課件-以家庭為單位的健康照顧
- 自來(lái)水廠(chǎng)安全施工組織設(shè)計(jì)
- 《跟單信用證統(tǒng)一慣例》UCP600中英文對(duì)照版
- 《醫(yī)院應(yīng)急培訓(xùn)》課件
- 提高教育教學(xué)質(zhì)量深化教學(xué)改革措施
- 招標(biāo)代理機(jī)構(gòu)遴選投標(biāo)方案(技術(shù)標(biāo))
評(píng)論
0/150
提交評(píng)論