基于PCI软“核”的PCI总线接口设计与实现

发布于:2007/3/30 9:05:32 | 404 次阅读

摘要:介绍一种利用PCI软“核”快速实现PCI总线接口设计的方法,并给出PCI Master下设计DMA控制器的例子。
    关键词:PCI Bus LogiCore DMA PCI Master PCI Slave
PCI总线是通过主桥电路挂接在Host CPU上的局部总线,典型的PCI局部总线系统结构如图1所示。PCI的外部设备既可以作为PCI总线目标设备(Slave),实现基本的传送要求,也可以作为PCI总线的主控设备(Master),访问其他PCI总线设备及系统的其他资源。用户在实际应用中可以根据实际需求来设计设备的功能。
由于PCI总线规范[1]定义了严格的电气特性和时序要求,因而开发基于PCI总线的接口卡有一定的难度。它要求在接口卡和终端设备之间有一个总线接口控制器,以解码PCI总线线范并完成数据传送,这需要开发人员对PCI总线规范有深刻的理解并具有较高的计算机开水平。开发PCI接口大体有两种方式:使用专用的PCI接口芯片和可编程器件。如果使用ASIC厂家提供的专用接口芯片,用户使用到的只是部分PCI接口功能,会造成了一定的资源浪费,而且芯片价格高,不经济。使用可编程器件设计,将厂家提供的PCI软“核”引入可编程器件中,根据插卡的功能进行化,不必实现所有的PCI功能机以将PCI插卡的用户逻辑与PCI接口逻辑集成在一个芯片上,实现紧凑的系统设计。当系统升级时,只需更改可编程器件的逻辑,无需更新PCB版图。许多可编程器件产生厂商都提供经过测试的PCI接口功能模块,如Xilinx公司的LogiCore,Altera公司的AMPP(Altera Megafunction Partners Prongam)。下面介绍用Xilinx公司的LogiCore来实现控制连接在PCI局部总线上的外设。
1 Xilinx公司的LogiCore简介
Xilinx公司的LogiCore逻辑框图如图2所示。可以看出,该LogiCore的功能是将左边复杂的PCI接口转换成右边的用户接口信号:周期控制信号(包括用于配置PCI接口的信号CEG[255:0])、从设备控制信号、主设备控制信号、状态机信号等。其主要的功能是起一个桥梁作用,完成用户设备与PCI总线的信息传送,并且可以在Bus Master方式下直接访问系统主存储器。图2的LogiCorem逻辑框图只给出Xilinx的LogiCore中与PCI Master控制器有关的关键信号。现在就以上信号进行介绍:
PCI Host 端总线接口:
AD[31:0] 时分复用地址/数据信号,在帧信号有效的一个时钟AD[31:0]上的信号为地址信号。
C/BE[3:0] 命令/字节使能信号,在帧信号有效的个节拍,指示总线作业类型。
FRAMF 由总线上设备驱动,指明传输的起始时间和终止时间,在该信号有效期间表示总线传输开始,当该信号无效时,传输的是一个数据节拍。
IRDY 由总线主设备驱动,读操作时表示总线传输开始,当该信号无效时,传输的一个数据节拍。
IRDY 由总线主设备驱动,读操作时表示已准备好接受数据,写操作时表示有效数据已经在数据上。
TRDY 由从设备驱动,读操作时从设备正在把有效数据放在数据总线上;写操作时表示从设备准备接受来自Host的数据。
DEBSEL 译码出的地址在该设备的地址范围内时,则该信号有效。
IDSEL 配置读、写期间由Host发出的片选信号。
STOP 从设备向Host表示停止目前信号的传送。
PAR 奇偶校验信号,它通过AD[31:0]和C/BE[3:0]进行奇偶校验。
PERR 该信号只报告数据奇偶校验错。
SERR 该信号只报靠地址奇偶校验错,或者特殊命令序列中的数据奇偶校验错。
INTR_A 表示PCI设备请求中断。
REQ 表示总线主设备向仲裁器发出要占用PCI总线的请求。
User端总线接口:
ADIO[31:0] 地址数据复用总线,该总线由三态缓冲器驱动。
ADDR[31:0] 在地址周期,输出PCI总线当前作业的起始地址。
DEVSEL_USR 是DEVSEL信号的“克隆”版本。
FRAME_USR 是FRAME信号的“克隆”版本。

    STOP_USR 是STOP信号的“克隆”版本。
CFG_HIT 表明一个有效的配置周期开始。
ADDR_VLD 表明当前作业地址线的起始地址有效。
S_SRC_EN 在Slave模式读操作期间,告诉用户模块驱动下一片数据到总线ADIO[31:0]上。
S_DATA_VLD 表明当前ADIO[31:0]上的数据为有效数据(在Slave模式下)。
BASE_HIT[7:0] 表明基地址寄存器译码并选中相应的PCI映射空间。
CFG[255:0] PCI设备配置空间接口信号。
M_SRC_EN 在写操作时,表明数据源可以驱动下一片数据到ADIO[31:0]上(在Initiator模式下)。
M_DATA_VLD 表明当前数据线ADIO[31:0]上的数据为有效数据(在Initiator模式下)。
REQUEST 在主设备模式下,DMA控制器请求系统仲裁器让出总线。
M_WRDN 在主设备模式下,当前的作业进行读操作或写操作。M_WRDN=1时表示写,M_WRDN=0时表示读。
M_DBE[3:0] 在主设备模式下,驱动总线命令和字节有效信号。
COMPLETE 在主设备模式下,当前的DMA方式传送数据完成。
M-DMTA 表示在Initiator模式下当前主设备正片于数据周期。
DR_BUS 表示主设备状态机正驱动PCI总线。
I_IDLE 表示主设备状态机正在空闲状态,当前PCI总线没有被驱动。
M_ADDR_USR 表示主设备状态机在地址周期要求驱动地址信号到ADIO[31:0]上。
RST PCI总线复位信号的“克隆”版本。
CLK 由系统缓冲区驱动的PCI总线时钟。
INTER_USR 由用户发出的中断请求信号。是INTR_A信号的“克隆”版本。
从LogiCore提供的接口看出,该软“核”将复杂的PCI接口按照PCI的两种工作模式转化成相对简单的Slave和Master两组独立接口信号。用户可以根据实际需要来确定的应用那种模式,从而选用相应的一组或两组信号作为接口。而且LogiCore这种桥梁作用只是对PCI功能进行划分,它将PCI控制器的逻辑留给用户来实现,并给出状态机的接口信号。
2 PCI Master控制器的实现
以一个基于PCI总线的数据采集卡为例说明利用LogiCore实现PCI Master控制器的方法。由PCI协议知道,当PCI设备工作在Master模式下,可以直接访问计算机系统主存储器,而不通过计算机CPU。为此,在PCI Master控制器中必须设计一个DMA控制器。这样同主存储器传送数据时,可以暂时接管系统总线,控制传送字节数,判断DMA传输是否结束,发出DMA结束等信号来保证数据的正确传送。该数据采集卡所实现的功能就是不断从外部接收数据并以DMA方式输入到计算机系统缓冲区中,同时将预先放在计算机内存中的大量数据以DMA方式输出到外部的仪器中。DMA控制器属于LogiCore逻辑框图中的用户控制模块。它由现行字节数寄存器、现行地址寄存器、基字节数寄存器、基地址寄存器、半满地址寄存器、全满地址寄存器、状态寄存器、读写缓冲器及控制寄存器和优先级编码器等组成、DMA控制器原理图如图3所示。其中控制寄存器和优先级编码器是DMA控制器的关键。
2.1 DMA控制器的特点
(1)现行地址寄存器、基字节数寄存器、基地址寄存器、半满地址寄存器、全满地址寄存器5个寄存器可由高层应用程序根据当前驱动程序分配的系统内存空间来灵活配置。当传送完规定的传送长度(字节数减到零时),结束当前DMA传送并自动重新对现行地址寄存器进行初始化,具有自动初始化能力。
(2)优先级编码器中的4个DMA请求源的优先级是固定的,不可以旋转。优先级按照从高到低依次为读缓冲器、STATUS_C(由状态寄存器C-D发出的)、写缓冲器、STATUS_D(由状态寄存器C-D发出的)。
优先权编码器对4个DMA请求源进行优先级编码,并向LogiCore发出DMA请求信号。
(3)DMA数据传送有单字节传送和数据块传送两种方式。数据块传送方式可由用户初始化基字节寄存器来灵活设置传送的数据块长度。DMA控制器向系统缓冲区发送状态寄存器C-D中的信息时采用单字节传送方式。而传送读缓冲器和写缓存器中的数据时采用数据块传送方式并可由用户设置传送数据的长度。此时每传送一个数据,地址指针加1,字节数据1。
(4)DMA控制器中读缓冲器和写缓冲器都是2KB。

2.2 DMA控制器基本工作原理
首先由高层应用程序根据采集卡的低层驱动程序分配的系统内存地址对基地址寄存器、半满地址寄存器、全满地址寄存器、状态寄存器、读写缓冲器和控制寄存器进行初始化。然后启动系统,开始工作。当读缓冲器的数据量不到半满或写缓冲器中接收到的数据量已超过半满或状态寄存器C-D有状态信息向高层报告时,则向优先级编码器发出相应的请求信号。DMA优先级编码器根据DMA请求对象的操作类型向DMA控制寄存器发出相应的控制信号。当DMA控制器检索到对应的控制信息发生变化时,向LogiCore发出DMA请求,并用基字节寄存器和基地址寄存器分别初始化现行字节数寄存器和现行地址寄存器。当计算机系统允许DMA控制器占用PCI总线时,则DMA控制器接管PCI总线,并在地址周期向LogiCore发出DMA读写命令,同时输出当前要对系统缓冲区操作的起始地址。在随后的数据周期中,从数据总线ADIO上输出或接收数据,同时修改地址指针(DMA支持隐含寻址)和字节计数器值,DMA控制器检测传送是否结束。如未结束则不停循环传送。当检测到字节计数器即将为零时,则向LogiCore发出COMPLETE信号,COMPLETE信号持续到字节计数器为零时,DMA控制器释放掉对PCI总线的控制权,使CPU恢复正常工作状态。
在DMA控制器中,状态寄存器C-D有两个DMA请求源STATUS_C和STATUS_D。其中STATUS_C在地址比较器检测到读缓冲器读完对应系统缓冲区一半空间或全部读守对应系统缓冲区数据时,置相应的状态信息并向优先级编码器发出STATUS_C请求信号。而STATUS_D在地址比较器检测到写缓冲器写完对应系统缓冲区数据、置相应的状态信息并向优先级编码器发出STATUS_D的请求信号。
值和注意的是,在DMA控制器设计过程中,当进行数据块传输、字节数寄存器计数快结束时,应提前向计算机系统发出完成本次数据块传送的COMPLETE信号,这样可保证DMA数据块传送的正确进行。至于提前几个字节数据可以根据试验来确定,一般提前2~4个字节即可。
PCI总线设计中定义的双向信号,均要用OE信号来控制。同时有些信号如地址比较等要进行分割,以使用最少的通用逻辑模块数来实现。这些是PCI总线设计所要注意的事项。由于LogiCore中对这些情况在逻辑上已经进行优化处理,从而使用户避免了同复杂的PCI接口打交道,减少犯错误的可能,缩短了开发周期。
本数据采集卡在WINDOWS 98多任务操作系统下运行数据传输速率可以达到140Mbps,满足了实际要求。
参与讨论
后参与讨论

//评论区

推荐阅读

智能网联汽车国际标准法规协调专家组(HEAG)召开工作会议

近年来智能网联汽车快速发展,新技术不断涌现,与相关产业融合度持续提升,正在推动全球汽车产业发生深刻变革。为应对此种形势,欧、美、日等汽车工业发达国家和地区都加大了智能网联汽车的国际标准法规协调的参与力度,在联合国世界车辆法规论坛(UN/WP.29)和国际标准化组织(ISO)层面,智能网联汽车相关国际标准法规协调活动正快速推进。 为更有效地支撑上述组织的国际标准法规协调活动,2017年全国汽车标准

0215jiejie | 发布于:2022-12-01 0评论 0赞

苹果推出搭载M2芯片的新款iPad Pro 799美元起售

据苹果官网,苹果推出搭载M2芯片的新款iPadPro。 11英寸wifi版起售价为799美元,wifi+蜂窝网络版起售价为999美元;12.9英寸wifi版起售价为1099美元,wifi+蜂窝网络版起售价为1299美元。

0215jiejie | 发布于:2022-10-19 0评论 0赞

新能源汽车领衔 “中国智造”加速登陆欧洲市场

全球五大车展之一巴黎车展时隔四年再度启幕。在这场被视为“全球汽车行业风向标”的盛会上,国内外汽车品牌云集,长城汽车、比亚迪等再次领衔中国汽车出海。 长城汽车欧洲区域总裁孟祥军表示:“欧洲是长城汽车最重要的海外市场之一,巴黎车展是长城汽车向欧洲市场展示GWM品牌和产品的最佳机会。长城汽车正在研究汽车行业碳排放的整个生命周期,到2025年,将推出50多款新能源产品,全力支持可再生能源使用,为全球用户

0215jiejie | 发布于:2022-10-19 0评论 0赞

严监管时代来临,电子烟“通配”大战走向何方?

针对通配烟弹厂商的一系列诉讼的结果,将对生产通配烟弹的品牌未来在电子烟行业的发展产生深远影响。 10月1日,《电子烟强制性国家标准》正式实施,中国电子烟监管全面生效。而在电子烟行业进入规范化、法治化阶段前夕,一场围绕着通配烟弹的争论在行业里发酵。 “通配”是电子烟从业者约定俗成的概念。换弹式电子烟由烟杆和烟弹组成,“通配”烟弹指的是非品牌商生产、可与品牌烟杆匹配使用的烟弹。多位业内人士表示,被

0215jiejie | 发布于:2022-10-19 0评论 0赞

Bourns 全新大功率分流电阻器

采用金属感应引脚,专用于大电流应用中进行精确测量 全新分流电阻器专为电池管理系统、大电流工业控制和电动汽车充电站 提供高可靠性、高成本效益的解决方案 美国柏恩Bourns全球知名电子组件领导制造供货商,宣布新增12款CSM2F系列功率分流电阻器,扩展其产品组合。全新系列采用铆接通孔金属传感引脚,可满足大电流应用中对电压测试点精确定位日益增长的需求。最新型Bourns?CSM2F系列分流电阻器

0215jiejie | 发布于:2022-10-18 0评论 0赞

请尊重元宇宙“这个筐”

元宇宙是个筐,啥都往里装,但区别在于有的像聚宝盆,有的像垃圾桶。国庆假期刚结束,中青宝“90后”董事长李逸伦便亲自上阵,玩起了元宇宙婚礼。靠着老板首秀和代言,中青宝顺势推出“MetaLove元囍”App,正式进军元宇宙婚礼赛道。 就产品而言,如同其他元宇宙产品,李逸伦的元宇宙婚礼“新奇与吐槽齐飞”:有人说是有趣的尝试,有人则认为像QQ炫舞结婚系统。要知道,QQ炫舞是一款推出了十余年的老游戏。

0215jiejie | 发布于:2022-10-13 0评论 0赞

边缘计算:突围商业模式痛点

截至8月末,中国5G基站总数达210.2万个,中国5G发展已经进入下半场。随着5G加速融入千行百业,互动直播、vCDN、安防监控等场景率先大规模落地,车联网、云游戏、工业互联网、智慧园区、智慧物流等场景也快速走向成熟,这些更大流量、更低时延、更高性能的场景涌现,对边缘计算的刚性需求势必爆发。 GrandViewResearch预测,即使在新型冠状病毒肺炎疫情肆虐全球的背景下,边缘计算和5G网络市

0215jiejie | 发布于:2022-10-13 0评论 0赞

商务部回应美商务部升级半导体等领域对华出口管制并调整出口管制“未经验证清单”

商务部新闻发言人10日就美商务部升级半导体等领域对华出口管制并调整出口管制“未经验证清单”应询答记者问。 有记者问:近日,美国商务部在半导体制造和先进计算等领域对华升级出口管制措施。同时,在将9家中国实体移出“未经验证清单”过程中,又将31家中国实体列入,请问中方对此有何回应? 对此,商务部新闻发言人回应称,中方注意到相关情况。首先,通过中美双方前一阶段共同努力,9家中国实体zui终

0215jiejie | 发布于:2022-10-13 0评论 0赞

TCL华星官宣与奔驰合作:推出全球首款横贯A柱的车载显示屏

今年1月,奔驰带来了VISIONEQSS概念车,其中控台采用了一块完全无缝的47.5英寸曲面显示屏,横贯整个A柱,令人印象深刻。今天,TCL华星正式官宣与奔驰达成合作,并认领了VISIONEQSS上这块全球首款横贯整个A柱曲面的车载显示屏。 根据TCL介绍,这款显示屏采用了完全无缝的超薄一体化设计,将仪表盘、中控与副驾娱乐显示融为一体,并能够与3D实时导航系统相辅相成。 同时,这块显示屏还采用

0215jiejie | 发布于:2022-10-12 0评论 0赞

半导体板块暴跌 谁最受伤

国庆假期后首日开盘,上证综指时隔5个月再次失守3000点,与此同时,半导体板块也再度走低,其中,北方华创、雅克科技等个股跌停。10月11日早盘期间,半导体板块持续下挫,北方华创、雅克科技再度跌停。截至下午收盘,北方华创、雅克科技维持跌停状态,华海清科、拓荆科技-U、盛美上海、清溢光电、海光信息的跌幅则超10%。同日,半导体板块中的119只个股中超五成呈现下跌趋势。 在半导体板块遭遇下挫的同时,北

0215jiejie | 发布于:2022-10-12 0评论 0赞