- 相關(guān)推薦
基于PCI總線的CAN卡的設(shè)計(jì)與實(shí)現(xiàn)
摘要:介紹了PCI橋接口芯片PCI9052和CAN接口芯片SJA1000,給出了基于PCI總線的CAN總線適配卡軟硬件的設(shè)計(jì)思路、過程及實(shí)現(xiàn)方法。現(xiàn)場(chǎng)總線CAN(Controller Area Network控制器局域網(wǎng)絡(luò))以其高性能、高可靠性及獨(dú)特的設(shè)計(jì),越來越受到人們的重視和青睞,不但在汽車行業(yè)中應(yīng)用廣泛,而且在工業(yè)控制、機(jī)器人、醫(yī)療器械、傳感器等領(lǐng)域發(fā)展迅速。為了擴(kuò)展CAN總線的功能,與計(jì)算機(jī)相連,可設(shè)計(jì)具有CAN接口和PC接口的CAN適配卡,用來收集CAN總線上各個(gè)節(jié)點(diǎn)的信息,轉(zhuǎn)發(fā)給PC機(jī),并可將PC機(jī)的命令和數(shù)據(jù)轉(zhuǎn)發(fā)給各個(gè)節(jié)點(diǎn)以及完成對(duì)CAN總線上的用戶系統(tǒng)的部分監(jiān)控和管理工作。
PCI總線是Intel公司推出的一種先進(jìn)的高性能32/64位局部總線,可同時(shí)支持多組外圍設(shè)備,不受制于處理器,數(shù)據(jù)吞吐量大(33MHz總線頻率、32位傳輸時(shí)峰值可高達(dá)132MB/s)。目前PCI是處于主流的計(jì)算機(jī)總線。以往的CAN卡一般都是基于ISA總線的,由于ISA部傳輸速率低,CAN卡必須增加中繼控制功能,才能夠適應(yīng)CAN的高速傳輸,導(dǎo)致造價(jià)高、體積大、傳輸速率低,不利于CAN總線的推廣應(yīng)用。由于PCI總線傳輸速度快,而且支持熱插拔、電源管理等功能,不但能滿足CAN總線的高速數(shù)據(jù)傳輸,性能高、功能強(qiáng),而且體積小、價(jià)格低、使用方便、應(yīng)用范圍廣。
CAN卡的設(shè)計(jì)包括硬件設(shè)計(jì)和軟件設(shè)計(jì)。
1 硬件設(shè)計(jì)
PCI總線是一種獨(dú)立于CPU的局部總線,不同于傳統(tǒng)的ISA總線。由于PCI總線規(guī)范定義了嚴(yán)格的電氣特性和時(shí)序要求,開發(fā)難度比ISA總線的開發(fā)難度大。實(shí)現(xiàn)PCI接口的方案一般有兩種:采用可編程邏輯器件和專用總線接口器件。采用可編程邏輯器件實(shí)現(xiàn)PCI接口的最大好處是比較靈活,可把PCI時(shí)序模塊和功能模塊結(jié)合在一起,可以利用的器件也比較多(如Altera公司的CPLD器件、Xilinx公司的FPGA器件等),還可以購買由廠家提供的用VHDL、AHDL等硬件描述語言編制的PCI核心設(shè)計(jì)模塊,但其設(shè)計(jì)難度還是很高,因?yàn)镻CI總線對(duì)負(fù)載要求、傳輸數(shù)據(jù)的建立時(shí)間的要求都比較苛刻,同時(shí)還需要器件內(nèi)部實(shí)現(xiàn)用于配置的各類寄存器,以及完成邏輯校驗(yàn)、地址譯碼等工作的寄存器(大致需要15000個(gè)門電路)。此外,還需加入FIFO、用戶寄存器組和后端設(shè)備接口等部分。設(shè)計(jì)這種PCI總線接口會(huì)導(dǎo)致將大量的人力、物力投入到復(fù)雜的邏輯驗(yàn)證和時(shí)序分析的工作上,開發(fā)周期較長(zhǎng)。要用專用接口器件雖然沒有采用可編程邏輯器件那么靈活,但能夠有效地降低接口設(shè)計(jì)的難度,縮短開發(fā)時(shí)間。專用接口器件具有較低的成本和很高的通用性,能夠優(yōu)化數(shù)據(jù)傳輸,提供配置空間,具備用于突發(fā)傳輸功能的片內(nèi)FIFO,提供擴(kuò)展局部總線等優(yōu)點(diǎn),并且許多公司還提供配套的開發(fā)工具(例如評(píng)估板或驅(qū)動(dòng)程序開發(fā)軟件),使用很方便,開發(fā)周期短。目前市場(chǎng)上常見的有PLX、AMCC、Cypress等公司的PCI橋芯片,各個(gè)型號(hào)的PCI接口芯片的大致特點(diǎn)如表1所示。
表1 各公司PCI接口芯片
PCI9054(主)型號(hào)眾多,使用方便,性能好較便宜提供快速開發(fā)板RDK出售CYPRESSCY7C09449PV-AC(主)內(nèi)置DPRAM,有效降低系統(tǒng)成本便宜技術(shù)文檔TIPCI2031(從)
PCI1251(主)與TI的DSP可無縫連接很便宜提供評(píng)估模塊AMCCAMCC5920(從)
AMCC5933(主)FIFO接口適合于設(shè)計(jì)數(shù)據(jù)采集卡,性能好較昂貴提供評(píng)估板
PCI設(shè)備可分為主模式和從模式。主模式橋芯片可以進(jìn)行DMA操作,而從模式只能接受讀寫操作。根據(jù)PCI提供的傳輸數(shù)據(jù)帶寬(最大132MB/s)和CAN總線(最大1Mbps)的要求,加上經(jīng)濟(jì)和開發(fā)難度與周期上考慮(主模式橋芯片較昂貴,開發(fā)難度較大),又因不需要DMA功能,采用從模式橋芯片足以滿足傳輸數(shù)據(jù)的需要。此外,選擇芯片不僅考慮性能和經(jīng)濟(jì)上的要求,而且還需要考慮硬件開發(fā)和驅(qū)動(dòng)程序開發(fā)的難易。如果不提供足夠的芯片說明和應(yīng)用樣例及開發(fā)工具,將大大增加開發(fā)難度和延長(zhǎng)開周期。因此,采用PLX公司的PCI總線目標(biāo)接口芯片PCI9052作為CAN卡中的PCI接口芯片,負(fù)責(zé)與計(jì)算機(jī)之間的數(shù)據(jù)通信。
PCI9052是PLX公司開發(fā)的低價(jià)格PCI總線從模式接口芯片,低功耗,符合PCI2.1規(guī)范,提供的局部總線(Local Bus)可通過編程設(shè)置為8/16/32位的(非)復(fù)用總線。其主要特點(diǎn)有:
(1)直接數(shù)據(jù)轉(zhuǎn)換模式 PCI9052支持PCI到Local Bus的內(nèi)存映射和I/O映射的突發(fā)讀寫。
(2)ISA接口邏輯 PCI9052支持通過8/16位內(nèi)存映射或I/O映射從PCI到ISA總線的單周期讀、寫訪問。方便從ISA向PCI卡的轉(zhuǎn)換。
(3)中斷產(chǎn)生器 由Local Bus的兩個(gè)中斷信號(hào)可以產(chǎn)生一個(gè)PCI中斷信號(hào):INTA#。
(4)局部總線 PCI9052提供的局部總線不但可編程,而且與PCI總線的時(shí)鐘相互獨(dú)立運(yùn)行,可實(shí)現(xiàn)異步操作,總線操作自動(dòng)實(shí)現(xiàn)時(shí)序同步。兩部分的異步運(yùn)行方便了高、低速設(shè)備的兼容。局部的運(yùn)行時(shí)鐘頻率范圍0~40MHz、TTL電平,可由PCI提供或由用戶自行提供;PCI的運(yùn)行時(shí)鐘頻率范圍0~33MHz。
(5)串行EEPROM 用于存入PCI BUS和Local Bus的部分配置信息。
(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)局部總線等待狀態(tài) 降了等待信號(hào)LRDYi#用于握手之外,PCI9052還有一個(gè)內(nèi)部等待產(chǎn)生器(包括地址到數(shù)據(jù)周期、數(shù)據(jù)到數(shù)據(jù)周期和數(shù)據(jù)到地址周期的
【基于PCI總線的CAN卡的設(shè)計(jì)與實(shí)現(xiàn)】相關(guān)文章:
基于CAN總線的工業(yè)通訊網(wǎng)絡(luò)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)03-07
一種改進(jìn)的CAN總線適配卡的設(shè)計(jì)與實(shí)現(xiàn)03-07
基于CAN總線的汽車液晶儀表設(shè)計(jì)03-07
PCI總線協(xié)議的FPGA實(shí)現(xiàn)及驅(qū)動(dòng)設(shè)計(jì)03-18
基于單片機(jī)的CAN智能總線節(jié)點(diǎn)的設(shè)計(jì)03-07
基于PCI總線的雷達(dá)視頻采集方案03-19
高速PCI總線接口卡的開發(fā)03-18