基于FPGA的PCI總線(xiàn)串口卡設計
隨著(zhù)計算機測試技術(shù)的飛速發(fā)展,越來(lái)越多的外部設備通過(guò)串口與計算機進(jìn)行通信,實(shí)現信息共享以及設備的集中控制和管理。利用串口進(jìn)行通信具有結構簡(jiǎn)單、傳輸距離遠、成本低廉等優(yōu)點(diǎn),被廣泛應用于各個(gè)領(lǐng)域[1]。同時(shí),PCI(Peripheral Component Interconnect)總線(xiàn)是一種高性能32/64位局部總線(xiàn),最大數據傳輸速率為132 Mb/s,可同時(shí)支持多組外設,數據吞吐量大,是目前應用最廣泛、最流行的一種高速同步總線(xiàn)[2]。因此,利用PCI總線(xiàn)實(shí)現上位機與外部設備的串口通信,可以提高通信能力。
由于大部分I/O 設備沒(méi)有PCI總線(xiàn)功能,要實(shí)現設備與PCI總線(xiàn)的連接,需要PCI接口芯片、通用異步收發(fā)器UART(Universal Asynchronous Receiver Transmitter)等。而目前開(kāi)發(fā)PCI總線(xiàn)與外部設備的串口通信大體上有兩種方式:(1)使用專(zhuān)用的芯片,如:PCI專(zhuān)用接口芯片S5920、S5933等;UART專(zhuān)用芯片8250、8251、16450、16550等。使用廠(chǎng)家提供的專(zhuān)用接口芯片,用戶(hù)可能只使用到它的部分功能,會(huì )造成一定的資源浪費,而且專(zhuān)用芯片價(jià)格高。(2)使用可編程器件FPGA。使用FPGA較使用專(zhuān)用芯片具有以下優(yōu)點(diǎn):一方面用戶(hù)可以根據需要進(jìn)行設計,不會(huì )浪費資源;另一方面可以將PCI接口、UART都做在一片FPGA內,這樣就不需要外接專(zhuān)門(mén)的芯片,簡(jiǎn)化了電路、縮小了體積、提高了系統的可靠性。
1系統硬件設計
本設計中選用Altera公司的FPGA芯片EP1C6SQ240作為核心器件,完成PCI接口以及UART的設計,實(shí)現PCI總線(xiàn)與串口的連接。選用美信公司的MAX490芯片作為電平轉換電路。系統的硬件連接框圖如圖1所示。
數據傳輸過(guò)程:上位機通過(guò)PCI總線(xiàn)發(fā)送并行數據到UART的數據緩存器中,然后數據經(jīng)UART的數據緩存器進(jìn)入UART的移位寄存器進(jìn)行并串轉換后,通過(guò)串口傳到下位機。反之,下位機通過(guò)串口將數據傳送到UART的移位寄存器中,進(jìn)行串并轉換,然后進(jìn)入UART的數據緩存器中,最后傳到上位機。
設計中采用,傳輸距離長(cháng)、抗干擾能力強的RS422串口。但是規定RS422:邏輯1的電平為-6 V~-2 V;邏輯0的電平為+2 V~+6 V。而FPGA的I/O電平一般為0~3.3 V,二者之間的電平不兼容。為了使二者之間的供電電壓保持一致,必須加入電平轉換電路。為此選用美信公司的MAX490芯片來(lái)實(shí)現二者之間的電平轉換,其電路原理圖如圖2所示。
1.1 PCI總線(xiàn)接口
PCI總線(xiàn)接口的功能是將一個(gè)不支持 PCI 協(xié)議的后端設備接口到PCI 總線(xiàn)上。為了實(shí)現PCI總線(xiàn)接口的基本功能,必須完成如下模塊的設計:PCI空間配置模塊、偶校驗模塊、地址譯碼和命令譯碼模塊、設備狀態(tài)機模塊等。PCI總線(xiàn)接口原理框圖如圖3所示。
評論